[gnumeric] Fix moving averages, exponential smothing and principal component tools. [#769659]
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] Fix moving averages, exponential smothing and principal component tools. [#769659]
- Date: Tue, 9 Aug 2016 04:20:11 +0000 (UTC)
commit 60660fec199606e41e43107f7417c9594a0d8cb0
Author: Andreas J. Guelzow <aguelzow pyrshep ca>
Date: Mon Aug 8 22:21:07 2016 -0600
Fix moving averages, exponential smothing and principal
component tools. [#769659]
2016-08-08 Andreas J. Guelzow <aguelzow pyrshep ca>
* analysis-exp-smoothing.c
(analysis_tool_exponential_smoothing_engine_ses_h_run): specify GnmEvalPos
(analysis_tool_exponential_smoothing_engine_ses_r_run): ditto
(analysis_tool_exponential_smoothing_engine_des_run): ditto
(analysis_tool_exponential_smoothing_engine_ates_run): ditto
(analysis_tool_exponential_smoothing_engine_mtes_run): ditto
* analysis-principal-components.c
(analysis_tool_principal_components_engine_run): ditto
* analysis-tools.c
(analysis_tool_sampling_engine_run): ditto
(analysis_tool_sampling_engine): ditto
(analysis_tool_moving_average_engine_run): ditto
NEWS | 4 ++-
src/tools/ChangeLog | 15 ++++++++++
src/tools/analysis-exp-smoothing.c | 41 +++++++++++++++++++---------
src/tools/analysis-principal-components.c | 8 ++++-
src/tools/analysis-tools.c | 24 ++++++++++++-----
5 files changed, 69 insertions(+), 23 deletions(-)
---
diff --git a/NEWS b/NEWS
index 66e30af..2105b73 100644
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,9 @@
Gnumeric 1.12.32
Andreas:
- * improve html4.0 fragment export. [#769343]
+ * Improve html4.0 fragment export. [#769343]
+ * Fix moving averages, exponential smothing and principal
+ component tools. [#769659]
Jean:
* Fix paradox plugin build with pxlib-0.6.7. [#769319]
diff --git a/src/tools/ChangeLog b/src/tools/ChangeLog
index 61088a6..4c6e988 100644
--- a/src/tools/ChangeLog
+++ b/src/tools/ChangeLog
@@ -1,3 +1,18 @@
+2016-08-08 Andreas J. Guelzow <aguelzow pyrshep ca>
+
+ * analysis-exp-smoothing.c
+ (analysis_tool_exponential_smoothing_engine_ses_h_run): specify GnmEvalPos
+ (analysis_tool_exponential_smoothing_engine_ses_r_run): ditto
+ (analysis_tool_exponential_smoothing_engine_des_run): ditto
+ (analysis_tool_exponential_smoothing_engine_ates_run): ditto
+ (analysis_tool_exponential_smoothing_engine_mtes_run): ditto
+ * analysis-principal-components.c
+ (analysis_tool_principal_components_engine_run): ditto
+ * analysis-tools.c
+ (analysis_tool_sampling_engine_run): ditto
+ (analysis_tool_sampling_engine): ditto
+ (analysis_tool_moving_average_engine_run): ditto
+
2016-06-29 Morten Welinder <terra gnome org>
* Release 1.12.31
diff --git a/src/tools/analysis-exp-smoothing.c b/src/tools/analysis-exp-smoothing.c
index e6fed8b..095b407 100644
--- a/src/tools/analysis-exp-smoothing.c
+++ b/src/tools/analysis-exp-smoothing.c
@@ -130,6 +130,10 @@ analysis_tool_exponential_smoothing_engine_ses_h_run (data_analysis_output_t *da
guint delta_y = 1;
gint row;
Sheet *sheet;
+ GnmEvalPos ep;
+
+ sheet = val->v_range.cell.a.sheet;
+ eval_pos_init_sheet (&ep, sheet);
dao_set_italic (dao, col, 0, col, 0);
if (info->base.labels) {
@@ -155,16 +159,15 @@ analysis_tool_exponential_smoothing_engine_ses_h_run (data_analysis_output_t *da
switch (info->base.group_by) {
case GROUPED_BY_ROW:
- height = value_area_get_width (val, NULL);
+ height = value_area_get_width (val, &ep);
mover = &x;
break;
default:
- height = value_area_get_height (val, NULL);
+ height = value_area_get_height (val, &ep);
mover = &y;
break;
}
- sheet = val->v_range.cell.a.sheet;
expr_input = gnm_expr_new_constant (val);
if (plot != NULL) {
@@ -306,6 +309,10 @@ analysis_tool_exponential_smoothing_engine_ses_r_run (data_analysis_output_t *da
guint delta_y = 1;
gint row;
Sheet *sheet;
+ GnmEvalPos ep;
+
+ sheet = val->v_range.cell.a.sheet;
+ eval_pos_init_sheet (&ep, sheet);
dao_set_italic (dao, col, 0, col, 0);
if (info->base.labels) {
@@ -331,16 +338,15 @@ analysis_tool_exponential_smoothing_engine_ses_r_run (data_analysis_output_t *da
switch (info->base.group_by) {
case GROUPED_BY_ROW:
- height = value_area_get_width (val, NULL);
+ height = value_area_get_width (val, &ep);
mover = &x;
break;
default:
- height = value_area_get_height (val, NULL);
+ height = value_area_get_height (val, &ep);
mover = &y;
break;
}
- sheet = val->v_range.cell.a.sheet;
expr_input = gnm_expr_new_constant (val);
if (plot != NULL) {
@@ -494,6 +500,10 @@ analysis_tool_exponential_smoothing_engine_des_run (data_analysis_output_t *dao,
guint delta_y = 1;
gint row;
Sheet *sheet;
+ GnmEvalPos ep;
+
+ sheet = val->v_range.cell.a.sheet;
+ eval_pos_init_sheet (&ep, sheet);
dao_set_italic (dao, col, 0, col, 0);
if (info->base.labels) {
@@ -519,16 +529,15 @@ analysis_tool_exponential_smoothing_engine_des_run (data_analysis_output_t *dao,
switch (info->base.group_by) {
case GROUPED_BY_ROW:
- height = value_area_get_width (val, NULL);
+ height = value_area_get_width (val, &ep);
mover = &x;
break;
default:
- height = value_area_get_height (val, NULL);
+ height = value_area_get_height (val, &ep);
mover = &y;
break;
}
- sheet = val->v_range.cell.a.sheet;
expr_input = gnm_expr_new_constant (val);
if (plot != NULL) {
@@ -751,6 +760,9 @@ analysis_tool_exponential_smoothing_engine_ates_run (data_analysis_output_t *dao
GnmExpr const *expr_linest_intercept;
GnmExpr const *expr_linest_slope;
gint height;
+ GnmEvalPos ep;
+
+ eval_pos_init_sheet (&ep, val->v_range.cell.a.sheet);
if (dao_cell_is_visible (dao, col+3, 1))
{
@@ -784,14 +796,14 @@ analysis_tool_exponential_smoothing_engine_ates_run (data_analysis_output_t *dao
switch (info->base.group_by) {
case GROUPED_BY_ROW:
- height = value_area_get_width (val, NULL);
+ height = value_area_get_width (val, &ep);
expr_input = gnm_expr_new_constant (val);
expr_index = gnm_expr_new_funcall3 (fd_index, gnm_expr_copy (expr_input),
gnm_expr_new_constant (value_new_int (1)),
make_cellref (-1 - col, 0));
break;
default:
- height = value_area_get_height (val, NULL);
+ height = value_area_get_height (val, &ep);
expr_input = gnm_expr_new_constant (val);
expr_index = gnm_expr_new_funcall3 (fd_index, gnm_expr_copy (expr_input),
make_cellref (-1 - col, 0),
@@ -1073,6 +1085,9 @@ analysis_tool_exponential_smoothing_engine_mtes_run (data_analysis_output_t *dao
GnmExpr const *expr_linest_slope;
gint height, starting_length, i;
GnmExprList *args = NULL;
+ GnmEvalPos ep;
+
+ eval_pos_init_sheet (&ep, val->v_range.cell.a.sheet);
if (dao_cell_is_visible (dao, col+3, 1))
{
@@ -1106,14 +1121,14 @@ analysis_tool_exponential_smoothing_engine_mtes_run (data_analysis_output_t *dao
switch (info->base.group_by) {
case GROUPED_BY_ROW:
- height = value_area_get_width (val, NULL);
+ height = value_area_get_width (val, &ep);
expr_input = gnm_expr_new_constant (val);
expr_index = gnm_expr_new_funcall3 (fd_index, gnm_expr_copy (expr_input),
gnm_expr_new_constant (value_new_int (1)),
make_cellref (-1 - col, 0));
break;
default:
- height = value_area_get_height (val, NULL);
+ height = value_area_get_height (val, &ep);
expr_input = gnm_expr_new_constant (val);
expr_index = gnm_expr_new_funcall3 (fd_index, gnm_expr_copy (expr_input),
make_cellref (-1 - col, 0),
diff --git a/src/tools/analysis-principal-components.c b/src/tools/analysis-principal-components.c
index 877c411..86000fd 100644
--- a/src/tools/analysis-principal-components.c
+++ b/src/tools/analysis-principal-components.c
@@ -59,6 +59,7 @@ analysis_tool_principal_components_engine_run (data_analysis_output_t *dao,
int data_points;
GnmExprList *and_args = NULL;
+ GnmEvalPos ep;
if (!dao_cell_is_visible (dao, l, 9 + 3 * l)) {
dao_set_bold (dao, 0, 0, 0, 0);
@@ -107,8 +108,11 @@ analysis_tool_principal_components_engine_run (data_analysis_output_t *dao,
for (i = 1, inputdata = info->input; inputdata != NULL; i++, inputdata = inputdata->next)
analysis_tools_write_label (inputdata->data, dao, info, 0, 9 + 2 * l + i, i);
- data_points = value_area_get_width (info->input->data, NULL) *
- value_area_get_height (info->input->data, NULL);
+ eval_pos_init_sheet (&ep,
+ ((GnmValue *)(info->input->data))->v_range.cell.a.sheet);
+ data_points = value_area_get_width (info->input->data, &ep) *
+ value_area_get_height (info->input->data, &ep);
+
for (i = 0; i < l; i++)
and_args = gnm_expr_list_prepend
(and_args,
diff --git a/src/tools/analysis-tools.c b/src/tools/analysis-tools.c
index 72cd8e4..200ab8b 100644
--- a/src/tools/analysis-tools.c
+++ b/src/tools/analysis-tools.c
@@ -1189,6 +1189,9 @@ analysis_tool_sampling_engine_run (data_analysis_output_t *dao,
GnmExpr const *expr_input = NULL;
char const *format = NULL;
guint offset = info->periodic ? ((info->offset == 0) ? info->period : info->offset): 0;
+ GnmEvalPos ep;
+
+ eval_pos_init_sheet (&ep, val->v_range.cell.a.sheet);
dao_set_italic (dao, col, 0, col + info->number - 1, 0);
@@ -1231,8 +1234,8 @@ analysis_tool_sampling_engine_run (data_analysis_output_t *dao,
if (info->periodic) {
guint i;
- gint height = value_area_get_height (val, NULL);
- gint width = value_area_get_width (val, NULL);
+ gint height = value_area_get_height (val, &ep);
+ gint width = value_area_get_width (val, &ep);
GnmExpr const *expr_period;
for (i=0; i < info->size; i++, offset += info->period) {
@@ -1327,10 +1330,14 @@ analysis_tool_sampling_engine (G_GNUC_UNUSED GOCmdContext *gcc, data_analysis_ou
if (info->periodic) {
info->size = 1;
for (l = info->base.input; l; l = l->next) {
+ GnmEvalPos ep;
GnmValue *val = ((GnmValue *)l->data);
- gint size = (value_area_get_width (val, NULL) *
- value_area_get_height (val, NULL));
- guint usize = (size > 0) ? size : 1;
+ gint size;
+ guint usize;
+ eval_pos_init_sheet (&ep, val->v_range.cell.a.sheet);
+ size = (value_area_get_width (val, &ep) *
+ value_area_get_height (val, &ep));
+ usize = (size > 0) ? size : 1;
if (info->offset == 0)
usize = usize/info->period;
@@ -3716,6 +3723,9 @@ analysis_tool_moving_average_engine_run (data_analysis_output_t *dao,
guint delta_y = 1;
gint row, base;
Sheet *sheet;
+ GnmEvalPos ep;
+
+ eval_pos_init_sheet (&ep, val->v_range.cell.a.sheet);
if (info->base.labels) {
val_c = value_dup (val);
@@ -3746,12 +3756,12 @@ analysis_tool_moving_average_engine_run (data_analysis_output_t *dao,
switch (info->base.group_by) {
case GROUPED_BY_ROW:
- height = value_area_get_width (val, NULL);
+ height = value_area_get_width (val, &ep);
mover = &x;
delta_mover = &delta_x;
break;
default:
- height = value_area_get_height (val, NULL);
+ height = value_area_get_height (val, &ep);
mover = &y;
delta_mover = &delta_y;
break;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]