X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcharts%2Fspreadlevel-plot.c;h=5fd189d6e06c2f2fc8fb3cd75959f7fd857ce246;hb=507ebaea36737618ef8265a60cd3e9005d9f3457;hp=d5b6e3d01a33aa483f6968fd9493a9fffca30a2a;hpb=64ad089c50c954e9130448f1becfab0f6aff6a9b;p=pspp diff --git a/src/output/charts/spreadlevel-plot.c b/src/output/charts/spreadlevel-plot.c index d5b6e3d01a..5fd189d6e0 100644 --- a/src/output/charts/spreadlevel-plot.c +++ b/src/output/charts/spreadlevel-plot.c @@ -1,5 +1,5 @@ /* 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 @@ -19,7 +19,7 @@ #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" @@ -28,11 +28,11 @@ #include #include -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); + chart_init (&sl->chart, &spreadlevel_plot_chart_class, label); sl->x_lower = DBL_MAX; sl->x_upper = -DBL_MAX; @@ -44,19 +44,20 @@ spreadlevel_plot_create (const char *label, double tx_pwr) 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) +void +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 { @@ -78,15 +79,15 @@ spreadlevel_plot_add (struct chart_item *ci, double spread, double level) 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 };