Math-LOESS
view release on metacpan or search on metacpan
loess/loess.h view on Meta::CPAN
#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
#define MALLOC(n) safe_malloc(n, __LINE__)
/* Structures */
typedef struct {
int err_status;
char *err_msg;
} loess_errstatus;
typedef struct {
long n;
long p;
double *y;
double *x;
double *weights;
} loess_inputs;
typedef struct {
double span;
int degree;
int normalize;
int parametric[8];
int drop_square[8];
char *family;
} loess_model;
typedef struct {
char *surface;
char *statistics;
double cell;
char *trace_hat;
int iterations;
} loess_control;
typedef struct {
int *parameter;
int *a;
double *xi;
double *vert;
double *vval;
} loess_kd_tree;
typedef struct {
double *fitted_values;
double *fitted_residuals;
double enp;
double residual_scale;
double one_delta;
double two_delta;
double *pseudovalues;
double trace_hat;
double *diagonal;
double *robust;
double *divisor;
} loess_outputs;
typedef struct {
loess_inputs *inputs;
loess_model *model;
loess_control *control;
loess_kd_tree *kd_tree;
loess_outputs *outputs;
loess_errstatus status;
} loess;
typedef struct {
double *fit;
double *se_fit;
int se;
int m;
double residual_scale;
double df;
} prediction;
typedef struct {
double dfn;
double dfd;
double F_value;
double Pr_F;
} anova_struct;
typedef struct {
double *fit;
double *upper;
double *lower;
} confidence_intervals;
// from loess.c
void loess_model_setup(loess_model *model);
void loess_inputs_setup(double *x, double *y, double *w, long n, long p, loess_inputs *inputs);
void loess_outputs_setup(long n, long p, loess_outputs *outputs);
void loess_control_setup(loess_control *control);
( run in 0.534 second using v1.01-cache-2.11-cpan-71847e10f99 )