/* PSPP - a program for statistical analysis.
- Copyright (C) 2012 Free Software Foundation, Inc.
+ Copyright (C) 2012, 2020 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "output/charts/spreadlevel-plot.h"
#include "libpspp/cast.h"
-#include "output/chart-item-provider.h"
+#include "output/chart-provider.h"
#include "gl/xalloc.h"
#include "gl/minmax.h"
#include <float.h>
#include <stdlib.h>
-struct chart_item *
+struct chart *
spreadlevel_plot_create (const char *label, double tx_pwr)
{
- struct spreadlevel_plot_chart *sl = xzalloc (sizeof *sl);
- chart_item_init (&sl->chart_item, &spreadlevel_plot_chart_class, label);
+ struct spreadlevel_plot_chart *sl = XZALLOC (struct spreadlevel_plot_chart);
+ chart_init (&sl->chart, &spreadlevel_plot_chart_class, label);
sl->x_lower = DBL_MAX;
sl->x_upper = -DBL_MAX;
sl->n_data = 0;
sl->data = NULL;
- return &sl->chart_item;
+ return &sl->chart;
}
void
-spreadlevel_plot_add (struct chart_item *ci, double spread, double level)
+spreadlevel_plot_add (struct chart *ci, double spread, double level)
{
struct spreadlevel_plot_chart *sl = to_spreadlevel_plot_chart (ci);
- if ( sl->tx_pwr == 0)
+ /* Zero has a special meaning, in this implementation. */
+ if (sl->tx_pwr == 0)
{
- spread = log (spread);
- level = log (level);
+ spread = log (fabs (spread));
+ level = log (fabs (level));
}
else
{
static void
-spreadlevel_plot_chart_destroy (struct chart_item *chart_item)
+spreadlevel_plot_chart_destroy (struct chart *chart)
{
- struct spreadlevel_plot_chart *sl = to_spreadlevel_plot_chart (chart_item);
+ struct spreadlevel_plot_chart *sl = to_spreadlevel_plot_chart (chart);
free (sl->data);
free (sl);
}
-const struct chart_item_class spreadlevel_plot_chart_class =
+const struct chart_class spreadlevel_plot_chart_class =
{
spreadlevel_plot_chart_destroy
};