projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix GCC 4.3 warnings about parameters of incomplete type.
[pspp-builds.git]
/
src
/
language
/
stats
/
crosstabs.q
diff --git
a/src/language/stats/crosstabs.q
b/src/language/stats/crosstabs.q
index 3bffa2a32f5839f712548f8f07e4f765fe719c6c..801b128b8a4ad1c5e0398caa897a4cee0a869f08 100644
(file)
--- a/
src/language/stats/crosstabs.q
+++ b/
src/language/stats/crosstabs.q
@@
-637,12
+637,14
@@
calc_general (struct ccase *c, const struct dataset *ds)
te->values[j].f = case_num (c, x->vars[j]);
else
{
te->values[j].f = case_num (c, x->vars[j]);
else
{
- memcpy (te->values[j].s, case_str (c, x->vars[j]),
- var_get_width (x->vars[j]));
+ size_t n = var_get_width (x->vars[j]);
+ if (n > MAX_SHORT_STRING)
+ n = MAX_SHORT_STRING;
+ memcpy (te->values[j].s, case_str (c, x->vars[j]), n);
/* Necessary in order to simplify comparisons. */
memset (&te->values[j].s[var_get_width (x->vars[j])], 0,
/* Necessary in order to simplify comparisons. */
memset (&te->values[j].s[var_get_width (x->vars[j])], 0,
- sizeof (union value) -
var_get_width (x->vars[j])
);
+ sizeof (union value) -
n
);
}
}
}
}
}
}
@@
-1859,7
+1861,6
@@
display_crosstabulation (void)
tab_offset (table, -1, tab_row (table) - num_cells * n_rows);
for (r = 0; r < n_rows; r++)
{
tab_offset (table, -1, tab_row (table) - num_cells * n_rows);
for (r = 0; r < n_rows; r++)
{
- char suffix = 0;
bool mark_missing = false;
if (cmd.miss == CRS_REPORT
bool mark_missing = false;
if (cmd.miss == CRS_REPORT
@@
-1868,6
+1869,7
@@
display_crosstabulation (void)
for (i = 0; i < num_cells; i++)
{
for (i = 0; i < num_cells; i++)
{
+ char suffix = 0;
double v;
switch (cells[i])
double v;
switch (cells[i])
@@
-1876,7
+1878,7
@@
display_crosstabulation (void)
v = row_tot[r];
break;
case CRS_CL_ROW:
v = row_tot[r];
break;
case CRS_CL_ROW:
- v = 100.;
+ v = 100.
0
;
suffix = '%';
break;
case CRS_CL_COLUMN:
suffix = '%';
break;
case CRS_CL_COLUMN:
@@
-1914,7
+1916,6
@@
display_crosstabulation (void)
{
double ct = c < n_cols ? col_tot[c] : W;
bool mark_missing = false;
{
double ct = c < n_cols ? col_tot[c] : W;
bool mark_missing = false;
- char suffix = 0;
int i;
if (cmd.miss == CRS_REPORT && c < n_cols
int i;
if (cmd.miss == CRS_REPORT && c < n_cols
@@
-1923,13
+1924,13
@@
display_crosstabulation (void)
for (i = 0; i < num_cells; i++)
{
for (i = 0; i < num_cells; i++)
{
+ char suffix = 0;
double v;
switch (cells[i])
{
case CRS_CL_COUNT:
v = ct;
double v;
switch (cells[i])
{
case CRS_CL_COUNT:
v = ct;
- suffix = '%';
break;
case CRS_CL_ROW:
v = ct / W * 100.;
break;
case CRS_CL_ROW:
v = ct / W * 100.;
@@
-1952,7
+1953,7
@@
display_crosstabulation (void)
NOT_REACHED ();
}
NOT_REACHED ();
}
-
format_cell_entry (table, c, i, v, suffix, mark_missing);
+ format_cell_entry (table, c, i, v, suffix, mark_missing);
}
last_row = i;
}
}
last_row = i;
}
@@
-2454,7
+2455,7
@@
calc_r (double *X, double *Y, double *r, double *ase_0, double *ase_1)
for (sum_Xr = sum_X2r = 0., i = 0; i < n_rows; i++)
{
sum_Xr += X[i] * row_tot[i];
for (sum_Xr = sum_X2r = 0., i = 0; i < n_rows; i++)
{
sum_Xr += X[i] * row_tot[i];
- sum_X2r +=
X[i] * X[i]
* row_tot[i];
+ sum_X2r +=
pow2 (X[i])
* row_tot[i];
}
Xbar = sum_Xr / W;
}
Xbar = sum_Xr / W;
@@
-2466,11
+2467,11
@@
calc_r (double *X, double *Y, double *r, double *ase_0, double *ase_1)
Ybar = sum_Yc / W;
S = sum_XYf - sum_Xr * sum_Yc / W;
Ybar = sum_Yc / W;
S = sum_XYf - sum_Xr * sum_Yc / W;
- SX = sum_X2r -
sum_Xr * sum_Xr
/ W;
- SY = sum_Y2c -
sum_Yc * sum_Yc
/ W;
+ SX = sum_X2r -
pow2 (sum_Xr)
/ W;
+ SY = sum_Y2c -
pow2 (sum_Yc)
/ W;
T = sqrt (SX * SY);
*r = S / T;
T = sqrt (SX * SY);
*r = S / T;
- *ase_0 = sqrt ((sum_X2Y2f -
(sum_XYf *
sum_XYf) / W) / (sum_X2r * sum_Y2c));
+ *ase_0 = sqrt ((sum_X2Y2f -
pow2 (
sum_XYf) / W) / (sum_X2r * sum_Y2c));
{
double s, c, y, t;
{
double s, c, y, t;
@@
-2560,9
+2561,9
@@
calc_symmetric (double v[N_SYMMETRIC], double ase[N_SYMMETRIC],
Dr = Dc = W * W;
for (r = 0; r < n_rows; r++)
Dr = Dc = W * W;
for (r = 0; r < n_rows; r++)
- Dr -=
row_tot[r] * row_tot[r]
;
+ Dr -=
pow2 (row_tot[r])
;
for (c = 0; c < n_cols; c++)
for (c = 0; c < n_cols; c++)
- Dc -=
col_tot[c] * col_tot[c]
;
+ Dc -=
pow2 (col_tot[c])
;
}
{
}
{
@@
-3071,10
+3072,10
@@
calc_directional (double v[N_DIRECTIONAL], double ase[N_DIRECTIONAL],
}
for (sum_ri2 = 0., i = 0; i < n_rows; i++)
}
for (sum_ri2 = 0., i = 0; i < n_rows; i++)
- sum_ri2 +=
row_tot[i] * row_tot[i]
;
+ sum_ri2 +=
pow2 (row_tot[i])
;
for (sum_cj2 = 0., j = 0; j < n_cols; j++)
for (sum_cj2 = 0., j = 0; j < n_cols; j++)
- sum_cj2 +=
col_tot[j] * col_tot[j]
;
+ sum_cj2 +=
pow2 (col_tot[j])
;
v[3] = (W * sum_fij2_ci - sum_ri2) / (W * W - sum_ri2);
v[4] = (W * sum_fij2_ri - sum_cj2) / (W * W - sum_cj2);
v[3] = (W * sum_fij2_ci - sum_ri2) / (W * W - sum_ri2);
v[4] = (W * sum_fij2_ri - sum_cj2) / (W * W - sum_cj2);
@@
-3164,9
+3165,9
@@
calc_directional (double v[N_DIRECTIONAL], double ase[N_DIRECTIONAL],
for (sum_Xr = sum_X2r = 0., i = 0; i < n_rows; i++)
{
sum_Xr += rows[i].f * row_tot[i];
for (sum_Xr = sum_X2r = 0., i = 0; i < n_rows; i++)
{
sum_Xr += rows[i].f * row_tot[i];
- sum_X2r +=
rows[i].f * rows[i].f
* row_tot[i];
+ sum_X2r +=
pow2 (rows[i].f)
* row_tot[i];
}
}
- SX = sum_X2r -
sum_Xr * sum_Xr
/ W;
+ SX = sum_X2r -
pow2 (sum_Xr)
/ W;
for (SXW = 0., j = 0; j < n_cols; j++)
{
for (SXW = 0., j = 0; j < n_cols; j++)
{
@@
-3174,7
+3175,7
@@
calc_directional (double v[N_DIRECTIONAL], double ase[N_DIRECTIONAL],
for (cum = 0., i = 0; i < n_rows; i++)
{
for (cum = 0., i = 0; i < n_rows; i++)
{
- SXW +=
rows[i].f * rows[i].f
* mat[j + i * n_cols];
+ SXW +=
pow2 (rows[i].f)
* mat[j + i * n_cols];
cum += rows[i].f * mat[j + i * n_cols];
}
cum += rows[i].f * mat[j + i * n_cols];
}
@@
-3191,7
+3192,7
@@
calc_directional (double v[N_DIRECTIONAL], double ase[N_DIRECTIONAL],
for (sum_Yc = sum_Y2c = 0., i = 0; i < n_cols; i++)
{
sum_Yc += cols[i].f * col_tot[i];
for (sum_Yc = sum_Y2c = 0., i = 0; i < n_cols; i++)
{
sum_Yc += cols[i].f * col_tot[i];
- sum_Y2c +=
cols[i].f * cols[i].f
* col_tot[i];
+ sum_Y2c +=
pow2 (cols[i].f)
* col_tot[i];
}
SY = sum_Y2c - sum_Yc * sum_Yc / W;
}
SY = sum_Y2c - sum_Yc * sum_Yc / W;
@@
-3201,7
+3202,7
@@
calc_directional (double v[N_DIRECTIONAL], double ase[N_DIRECTIONAL],
for (cum = 0., j = 0; j < n_cols; j++)
{
for (cum = 0., j = 0; j < n_cols; j++)
{
- SYW +=
cols[j].f * cols[j].f
* mat[j + i * n_cols];
+ SYW +=
pow2 (cols[j].f)
* mat[j + i * n_cols];
cum += cols[j].f * mat[j + i * n_cols];
}
cum += cols[j].f * mat[j + i * n_cols];
}