projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
math: Avoid unneeded extra allocations for fixed-size data structures.
[pspp]
/
src
/
math
/
tukey-hinges.c
diff --git
a/src/math/tukey-hinges.c
b/src/math/tukey-hinges.c
index 99a42cdac8be36e24f44eeea816ebd8e9944493e..b59b878ba64991c2bea385553e24c8e058ab8c2e 100644
(file)
--- a/
src/math/tukey-hinges.c
+++ b/
src/math/tukey-hinges.c
@@
-41,7
+41,7
@@
tukey_hinges_calculate (const struct tukey_hinges *th, double hinge[3])
if (a_star[i] < 1)
{
if (a_star[i] < 1)
{
- if (os->k[i].c_p1 >= 1
)
+ if (os->k[i].c_p1 >= 1)
{
hinge[i] = (1 - a_star[i]) * os->k[i].y
+ a_star[i] * os->k[i].y_p1;
{
hinge[i] = (1 - a_star[i]) * os->k[i].y
+ a_star[i] * os->k[i].y_p1;
@@
-64,26
+64,23
@@
static void
destroy (struct statistic *s)
{
struct tukey_hinges *th = UP_CAST (s, struct tukey_hinges, parent.parent);
destroy (struct statistic *s)
{
struct tukey_hinges *th = UP_CAST (s, struct tukey_hinges, parent.parent);
- struct order_stats *os = &th->parent;
-
- free (os->k);
- free (s);
+ free (th);
};
struct tukey_hinges *
tukey_hinges_create (double W, double c_min)
{
double d;
};
struct tukey_hinges *
tukey_hinges_create (double W, double c_min)
{
double d;
- struct tukey_hinges *th =
xzalloc (sizeof (*th)
);
+ struct tukey_hinges *th =
XZALLOC (struct tukey_hinges
);
struct order_stats *os = &th->parent;
struct statistic *stat = &os->parent;
assert (c_min >= 0);
os->n_k = 3;
struct order_stats *os = &th->parent;
struct statistic *stat = &os->parent;
assert (c_min >= 0);
os->n_k = 3;
- os->k =
xcalloc (3, sizeof (*os->k))
;
+ os->k =
th->k
;
- if (
c_min >= 1.0)
+ if (c_min >= 1.0)
{
d = floor ((W + 3) / 2.0) / 2.0;
{
d = floor ((W + 3) / 2.0) / 2.0;