You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA. */
#ifndef HEADER_MOMENTS
#define HEADER_MOMENTS
struct moments;
+/* Two-pass moments. */
struct moments *moments_create (enum moment max_moment);
void moments_clear (struct moments *);
void moments_pass_one (struct moments *, double value, double weight);
double *skewness, double *kurtosis);
void moments_destroy (struct moments *);
+/* Convenience functions for two-pass moments. */
void moments_of_doubles (const double *array, size_t cnt,
double *weight,
double *mean, double *variance,
double *mean, double *variance,
double *skewness, double *kurtosis);
+/* One-pass moments. Use only if two passes are impractical. */
+struct moments1 *moments1_create (enum moment max_moment);
+void moments1_clear (struct moments1 *);
+void moments1_add (struct moments1 *, double value, double weight);
+void moments1_calculate (const struct moments1 *,
+ double *weight,
+ double *mean, double *variance,
+ double *skewness, double *kurtosis);
+void moments1_destroy (struct moments1 *);
+
+/* Standard errors. */
+double calc_semean (double stddev, double weight);
double calc_seskew (double weight);
double calc_sekurt (double weight);