[Scipy-svn] r2847 - trunk/Lib/sandbox/pyloess/sandbox/src
scipy-svn@scip...
scipy-svn@scip...
Wed Mar 14 07:48:23 CDT 2007
Author: pierregm
Date: 2007-03-14 07:46:49 -0500 (Wed, 14 Mar 2007)
New Revision: 2847
Modified:
trunk/Lib/sandbox/pyloess/sandbox/src/c_loess.pxd
trunk/Lib/sandbox/pyloess/sandbox/src/cloess.c
trunk/Lib/sandbox/pyloess/sandbox/src/cloess.h
trunk/Lib/sandbox/pyloess/sandbox/src/cloess.pyx
trunk/Lib/sandbox/pyloess/sandbox/src/loess.c
trunk/Lib/sandbox/pyloess/sandbox/src/loess.h
trunk/Lib/sandbox/pyloess/sandbox/src/loessc.c
trunk/Lib/sandbox/pyloess/sandbox/src/misc.c
Log:
sandbox: Thanks to Francesc Altec suggestion, the loess routines now run without crashing...However, they are not yet fully tested.
Modified: trunk/Lib/sandbox/pyloess/sandbox/src/c_loess.pxd
===================================================================
--- trunk/Lib/sandbox/pyloess/sandbox/src/c_loess.pxd 2007-03-14 12:34:56 UTC (rev 2846)
+++ trunk/Lib/sandbox/pyloess/sandbox/src/c_loess.pxd 2007-03-14 12:46:49 UTC (rev 2847)
@@ -2,30 +2,26 @@
cdef extern from "loess.h":
ctypedef struct c_loess_inputs "loess_inputs":
- long n
- long p
- double *y
- double *x
- double *weights
+ long n
+ long p
+ double *y
+ double *x
+ double *weights
ctypedef struct c_loess_model "loess_model":
- double span
- long degree
- long normalize
- long parametric[8]
- long drop_square[8]
- char *family
+ double span
+ int degree
+ int normalize
+ int parametric[8]
+ int drop_square[8]
+ char *family
ctypedef struct c_loess_control "loess_control":
- char *surface
- char *statistics
- double cell
- char *trace_hat
- long iterations
+ char *surface
+ char *statistics
+ double cell
+ char *trace_hat
+ int iterations
ctypedef struct c_loess_kd_tree "loess_kd_tree":
- long *parameter
- long *a
- double *xi
- double *vert
- double *vval
+ pass
ctypedef struct c_loess_outputs "loess_outputs":
double *fitted_values
double *fitted_residuals
@@ -44,44 +40,29 @@
c_loess_control control
c_loess_kd_tree kd_tree
c_loess_outputs outputs
- #typedef struct {
- # double *fit;
- # double *se_fit;
- # double residual_scale;
- # double df;
- #} predicted;
- #
- #struct anova_struct {
- # double dfn;
- # double dfd;
- # double F_value;
- # double Pr_F;
- #};
- #
- #struct ci_struct {
- # double *fit;
- # double *upper;
- # double *lower;
- #};
-cdef extern from "loess.h":
+ ctypedef struct c_prediction "prediction":
+ double *fit
+ double *se_fit
+ double residual_scale
+ double df
+ ctypedef struct c_anova "anova_struct":
+ double dfn
+ double dfd
+ double F_value
+ double Pr_F
+ ctypedef struct c_conf_inv "conf_inv":
+ double *fit
+ double *upper
+ double *lower
+
+cdef extern from "cloess.h":
void loess_setup(double *x, double *y, long n, long p, c_loess *lo)
void loess_fit(c_loess *lo)
- void loess_(double *y, double *x_, int *size_info, double *weights,
- double *span, int *degree, int *parametric, int *drop_square,
- int *normalize, char **statistics, char **surface, double *cell,
- char **trace_hat_in, int *iterations, double *fitted_values,
- double *fitted_residuals, double *enp, double *s, double *one_delta,
- double *two_delta, double *pseudovalues, double *trace_hat_out,
- double *diagonal, double *robust, double *divisor, long *parameter,
- long *a, double *xi, double *vert, double *vval)
void loess_free_mem(c_loess *lo)
void loess_summary(c_loess *lo)
- void condition(char **surface, char *new_stat, char **trace_hat_in)
- int comp(double *d1, double *d2)
-
- void loess_raw(double *y, double *x, double *weights, double *robust, int *d,
- int*n, double *span, int *degree, int *nonparametric,
- int *drop_square, int *sum_drop_sqr, double *cell, char **surf_stat,
- double *surface, long *parameter, long *a, double *xi, double *vert,
- double *vval, double *diagonal, double *trL, double *one_delta,
- double *two_delta, int *setLf)
+ #
+ void predict(double *eval, int m, c_loess *lo, c_prediction *pre, int se)
+ void pred_free_mem(c_prediction *pre)
+ #
+ void anova(c_loess *one, c_loess *two, c_anova *out)
+ void pointwise(c_prediction *pre, int m, double coverage, c_conf_inv *ci)
\ No newline at end of file
Modified: trunk/Lib/sandbox/pyloess/sandbox/src/cloess.c
===================================================================
--- trunk/Lib/sandbox/pyloess/sandbox/src/cloess.c 2007-03-14 12:34:56 UTC (rev 2846)
+++ trunk/Lib/sandbox/pyloess/sandbox/src/cloess.c 2007-03-14 12:46:49 UTC (rev 2847)
@@ -1,4 +1,4 @@
-/* Generated by Pyrex 0.9.5.1a on Mon Mar 12 15:39:59 2007 */
+/* Generated by Pyrex 0.9.5.1a on Wed Mar 14 08:14:04 2007 */
#include "Python.h"
#include "structmember.h"
@@ -14,6 +14,7 @@
#include "stdlib.h"
#include "numpy/arrayobject.h"
#include "loess.h"
+#include "cloess.h"
typedef struct {PyObject **p; char *s;} __Pyx_InternTabEntry; /*proto*/
@@ -25,16 +26,18 @@
static char *__pyx_filename;
static char **__pyx_f;
+static int __Pyx_GetStarArgs(PyObject **args, PyObject **kwds, char *kwd_list[], int nargs, PyObject **args2, PyObject **kwds2); /*proto*/
+
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
-static int __Pyx_PrintItem(PyObject *); /*proto*/
-static int __Pyx_PrintNewline(void); /*proto*/
+static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
-static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/
+static int __Pyx_PrintItem(PyObject *); /*proto*/
+static int __Pyx_PrintNewline(void); /*proto*/
static int __Pyx_InternStrings(__Pyx_InternTabEntry *t); /*proto*/
@@ -62,66 +65,58 @@
struct __pyx_obj_6cloess_loess_inputs {
PyObject_HEAD
- loess_inputs _inputs;
- long nobs;
- long nvar;
- PyArrayObject *x;
- PyArrayObject *y;
- PyArrayObject *weights;
+ loess_inputs (*_base);
};
struct __pyx_obj_6cloess_loess_control {
PyObject_HEAD
- loess_control _control;
- char (*surface);
- char (*statistics);
- char (*trace_hat);
- double cell;
- int iterations;
+ loess_control (*_base);
};
+struct __pyx_obj_6cloess_loess_kd_tree {
+ PyObject_HEAD
+ loess_kd_tree (*_base);
+};
+
+
+struct __pyx_obj_6cloess_loess_model {
+ PyObject_HEAD
+ loess_model (*_base);
+ long npar;
+};
+
+
struct __pyx_obj_6cloess_loess_outputs {
PyObject_HEAD
- loess_outputs _outputs;
- PyArrayObject *fitted_values;
- PyArrayObject *fitted_residuals;
- PyArrayObject *pseudovalues;
- PyArrayObject *diagonal;
- PyArrayObject *robust;
- PyArrayObject *divisor;
- double enp;
- double s;
- double one_delta;
- double two_delta;
- double trace_hat;
+ loess_outputs (*_base);
+ long nobs;
};
-struct __pyx_obj_6cloess_loess_kd_tree {
+struct __pyx_obj_6cloess_loess_anova {
PyObject_HEAD
- loess_kd_tree _kdtree;
- PyArrayObject *parameter;
- PyArrayObject *a;
- PyArrayObject *xi;
- PyArrayObject *vert;
- PyArrayObject *vval;
+ anova_struct (*_base);
+ long nest;
};
-struct __pyx_obj_6cloess_loess_model {
+struct __pyx_obj_6cloess_confidence_interval {
PyObject_HEAD
- loess_model _model;
- double span;
- int degree;
- int normalize;
- char (*family);
- PyObject *parametric_flags;
- PyObject *drop_square_flags;
+ conf_inv (*_base);
+ PyObject *nest;
};
+struct __pyx_obj_6cloess_loess_predicted {
+ PyObject_HEAD
+ prediction (*_base);
+ long nest;
+ struct __pyx_obj_6cloess_confidence_interval *conf_interval;
+};
+
+
struct __pyx_obj_6cloess_loess {
PyObject_HEAD
loess _base;
@@ -130,324 +125,900 @@
struct __pyx_obj_6cloess_loess_control *control;
struct __pyx_obj_6cloess_loess_kd_tree *kd_tree;
struct __pyx_obj_6cloess_loess_outputs *outputs;
+ struct __pyx_obj_6cloess_loess_predicted *predicted;
};
static PyTypeObject *__pyx_ptype_6cloess_loess_inputs = 0;
static PyTypeObject *__pyx_ptype_6cloess_loess_control = 0;
-static PyTypeObject *__pyx_ptype_6cloess_loess_outputs = 0;
static PyTypeObject *__pyx_ptype_6cloess_loess_kd_tree = 0;
static PyTypeObject *__pyx_ptype_6cloess_loess_model = 0;
+static PyTypeObject *__pyx_ptype_6cloess_loess_outputs = 0;
+static PyTypeObject *__pyx_ptype_6cloess_loess_anova = 0;
+static PyTypeObject *__pyx_ptype_6cloess_confidence_interval = 0;
+static PyTypeObject *__pyx_ptype_6cloess_loess_predicted = 0;
static PyTypeObject *__pyx_ptype_6cloess_loess = 0;
-static PyObject *__pyx_k2;
-static double __pyx_k3;
-static int __pyx_k4;
-static int __pyx_k5;
-static PyObject *__pyx_k6;
static PyObject *__pyx_k7;
+static PyObject *__pyx_k8;
static PyObject *__pyx_k9;
-static PyObject *__pyx_k10;
+static PyObject *(__pyx_f_6cloess_floatarray_from_data(PyObject *,PyObject *,double (*))); /*proto*/
+static PyObject *(__pyx_f_6cloess_boolarray_from_data(PyObject *,PyObject *,int (*))); /*proto*/
/* Implementation of cloess */
+static char (__pyx_k1[]) = "Weights";
+static char (__pyx_k2[]) = "Number of observations.";
+static char (__pyx_k3[]) = "Number of independent variables.";
+static char (__pyx_k4[]) = "Normalize the variables. Only useful if more than one variable...";
+static char (__pyx_k5[]) = "Equivalent number of parameters.";
static PyObject *__pyx_n_c_python;
static PyObject *__pyx_n_c_numpy;
-static PyObject *__pyx_n__N;
+static PyObject *__pyx_n_numpy;
static PyObject *__pyx_n_c_loess;
-static PyObject *__pyx_n_numpy;
static PyObject *__pyx_n_False;
-static PyObject *__pyx_n_gaussian;
-static PyObject *__pyx_n_ndim;
-static PyObject *__pyx_n_ValueError;
-static PyObject *__pyx_n_len;
+static PyObject *__pyx_n_empty;
+static PyObject *__pyx_n_float;
+static PyObject *__pyx_n_dtype;
static PyObject *__pyx_n_size;
+static PyObject *__pyx_n_shape;
-static PyObject *__pyx_k11p;
-static PyObject *__pyx_k12p;
-static PyObject *__pyx_k13p;
-static PyObject *__pyx_k14p;
-static char (__pyx_k11[]) = "DEBUG: Initializing loess_inputs...";
-static char (__pyx_k12[]) = "Argument 'x' should be 2D at most!";
-static char (__pyx_k13[]) = "Invalid size of the 'weights' vector!";
-static char (__pyx_k14[]) = " OK.";
-
-static int __pyx_f_6cloess_12loess_inputs___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static int __pyx_f_6cloess_12loess_inputs___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
- PyObject *__pyx_v_x = 0;
- PyObject *__pyx_v_y = 0;
- PyObject *__pyx_v_weights = 0;
- double (*__pyx_v_w_dat);
- npy_intp __pyx_v_n;
- npy_intp __pyx_v_p;
- npy_intp (*__pyx_v_dims);
+static PyObject *__pyx_f_6cloess_floatarray_from_data(PyObject *__pyx_v_rows,PyObject *__pyx_v_cols,double (*__pyx_v_data)) {
+ PyArrayObject *__pyx_v_a_ndr;
+ double (*__pyx_v_a_dat);
PyObject *__pyx_v_i;
- int __pyx_r;
+ PyObject *__pyx_r;
PyObject *__pyx_1 = 0;
PyObject *__pyx_2 = 0;
- int __pyx_3;
+ PyObject *__pyx_3 = 0;
PyObject *__pyx_4 = 0;
- npy_intp __pyx_5;
+ PyObject *__pyx_5 = 0;
long __pyx_6;
- static char *__pyx_argnames[] = {"x","y","weights",0};
- __pyx_v_weights = __pyx_k2;
- if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO|O", __pyx_argnames, &__pyx_v_x, &__pyx_v_y, &__pyx_v_weights)) return -1;
- Py_INCREF(__pyx_v_self);
- Py_INCREF(__pyx_v_x);
- Py_INCREF(__pyx_v_y);
- Py_INCREF(__pyx_v_weights);
+ long __pyx_7;
+ int __pyx_8;
+ int __pyx_9;
+ Py_INCREF(__pyx_v_rows);
+ Py_INCREF(__pyx_v_cols);
+ __pyx_v_a_ndr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
__pyx_v_i = Py_None; Py_INCREF(Py_None);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":27 */
- if (__Pyx_PrintItem(__pyx_k11p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; goto __pyx_L1;}
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":28 */
- __pyx_1 = PyArray_FROMANY(__pyx_v_x,NPY_DOUBLE,1,1,NPY_OWNDATA); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_1)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->x));
- ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->x = ((PyArrayObject *)__pyx_1);
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":22 */
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_numpy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_empty); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":29 */
- __pyx_1 = PyArray_FROMANY(__pyx_v_y,NPY_DOUBLE,1,1,NPY_OWNDATA); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_1)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->y));
- ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->y = ((PyArrayObject *)__pyx_1);
+ __pyx_1 = PyNumber_Multiply(__pyx_v_rows, __pyx_v_cols); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1);
+ __pyx_1 = 0;
+ __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_3);
+ __pyx_3 = 0;
+ __pyx_3 = PyDict_New(); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;}
+ __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n_numpy); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;}
+ __pyx_5 = PyObject_GetAttr(__pyx_4, __pyx_n_float); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (PyDict_SetItem(__pyx_3, __pyx_n_dtype, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ __pyx_4 = PyEval_CallObjectWithKeywords(__pyx_2, __pyx_1, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;}
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (!__Pyx_TypeTest(__pyx_4, __pyx_ptype_7c_numpy_ndarray)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;}
+ Py_DECREF(((PyObject *)__pyx_v_a_ndr));
+ __pyx_v_a_ndr = ((PyArrayObject *)__pyx_4);
+ __pyx_4 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":31 */
- __pyx_1 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->x), __pyx_n_ndim); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; goto __pyx_L1;}
- __pyx_2 = PyInt_FromLong(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; goto __pyx_L1;}
- if (PyObject_Cmp(__pyx_1, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; goto __pyx_L1;}
- __pyx_3 = __pyx_3 > 0;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":23 */
+ __pyx_v_a_dat = ((double (*))__pyx_v_a_ndr->data);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":24 */
+ __pyx_5 = PyObject_GetAttr(((PyObject *)__pyx_v_a_ndr), __pyx_n_size); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; goto __pyx_L1;}
+ __pyx_7 = PyInt_AsLong(__pyx_5); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; goto __pyx_L1;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ for (__pyx_6 = 0; __pyx_6 < __pyx_7; ++__pyx_6) {
+ __pyx_2 = PyInt_FromLong(__pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; goto __pyx_L1;}
+ Py_DECREF(__pyx_v_i);
+ __pyx_v_i = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":25 */
+ __pyx_8 = PyInt_AsLong(__pyx_v_i); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; goto __pyx_L1;}
+ __pyx_9 = PyInt_AsLong(__pyx_v_i); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; goto __pyx_L1;}
+ (__pyx_v_a_dat[__pyx_9]) = (__pyx_v_data[__pyx_8]);
+ }
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":26 */
+ __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; goto __pyx_L1;}
+ if (PyObject_Cmp(__pyx_v_cols, __pyx_1, &__pyx_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; goto __pyx_L1;}
+ __pyx_8 = __pyx_8 > 0;
Py_DECREF(__pyx_1); __pyx_1 = 0;
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- if (__pyx_3) {
+ if (__pyx_8) {
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":32 */
- __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_ValueError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; goto __pyx_L1;}
- __Pyx_Raise(__pyx_1, __pyx_k12p, 0);
- Py_DECREF(__pyx_1); __pyx_1 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; goto __pyx_L1;}
- goto __pyx_L2;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":27 */
+ __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; goto __pyx_L1;}
+ Py_INCREF(__pyx_v_rows);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_rows);
+ Py_INCREF(__pyx_v_cols);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_cols);
+ if (PyObject_SetAttr(((PyObject *)__pyx_v_a_ndr), __pyx_n_shape, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; goto __pyx_L1;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L4;
}
- __pyx_L2:;
+ __pyx_L4:;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":28 */
+ Py_INCREF(((PyObject *)__pyx_v_a_ndr));
+ __pyx_r = ((PyObject *)__pyx_v_a_ndr);
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ Py_XDECREF(__pyx_5);
+ __Pyx_AddTraceback("cloess.floatarray_from_data");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_a_ndr);
+ Py_DECREF(__pyx_v_i);
+ Py_DECREF(__pyx_v_rows);
+ Py_DECREF(__pyx_v_cols);
+ return __pyx_r;
+}
+
+static PyObject *__pyx_n_int;
+static PyObject *__pyx_n_astype;
+static PyObject *__pyx_n_bool;
+
+
+static PyObject *__pyx_f_6cloess_boolarray_from_data(PyObject *__pyx_v_rows,PyObject *__pyx_v_cols,int (*__pyx_v_data)) {
+ PyArrayObject *__pyx_v_a_ndr;
+ int (*__pyx_v_a_dat);
+ PyObject *__pyx_v_i;
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ PyObject *__pyx_5 = 0;
+ long __pyx_6;
+ long __pyx_7;
+ int __pyx_8;
+ int __pyx_9;
+ Py_INCREF(__pyx_v_rows);
+ Py_INCREF(__pyx_v_cols);
+ __pyx_v_a_ndr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
+ __pyx_v_i = Py_None; Py_INCREF(Py_None);
+
/* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":33 */
- __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_len); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_numpy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_empty); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyNumber_Multiply(__pyx_v_rows, __pyx_v_cols); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1);
+ __pyx_1 = 0;
__pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->x));
- PyTuple_SET_ITEM(__pyx_1, 0, ((PyObject *)((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->x));
- __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_3);
+ __pyx_3 = 0;
+ __pyx_3 = PyDict_New(); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
+ __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n_numpy); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
+ __pyx_5 = PyObject_GetAttr(__pyx_4, __pyx_n_int); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ if (PyDict_SetItem(__pyx_3, __pyx_n_dtype, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ __pyx_4 = PyEval_CallObjectWithKeywords(__pyx_2, __pyx_1, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_5 = PyInt_AsLong(__pyx_4); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_v_n = __pyx_5;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (!__Pyx_TypeTest(__pyx_4, __pyx_ptype_7c_numpy_ndarray)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
+ Py_DECREF(((PyObject *)__pyx_v_a_ndr));
+ __pyx_v_a_ndr = ((PyArrayObject *)__pyx_4);
+ __pyx_4 = 0;
/* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":34 */
- __pyx_2 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->x), __pyx_n_size); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; goto __pyx_L1;}
- __pyx_1 = PyInt_FromLong(__pyx_v_n); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; goto __pyx_L1;}
- __pyx_4 = PyNumber_Divide(__pyx_2, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; goto __pyx_L1;}
- Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_v_a_dat = ((int (*))__pyx_v_a_ndr->data);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":35 */
+ __pyx_5 = PyObject_GetAttr(((PyObject *)__pyx_v_a_ndr), __pyx_n_size); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; goto __pyx_L1;}
+ __pyx_7 = PyInt_AsLong(__pyx_5); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; goto __pyx_L1;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ for (__pyx_6 = 0; __pyx_6 < __pyx_7; ++__pyx_6) {
+ __pyx_2 = PyInt_FromLong(__pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; goto __pyx_L1;}
+ Py_DECREF(__pyx_v_i);
+ __pyx_v_i = __pyx_2;
+ __pyx_2 = 0;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":36 */
+ __pyx_8 = PyInt_AsLong(__pyx_v_i); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; goto __pyx_L1;}
+ __pyx_9 = PyInt_AsLong(__pyx_v_i); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; goto __pyx_L1;}
+ (__pyx_v_a_dat[__pyx_9]) = (__pyx_v_data[__pyx_8]);
+ }
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":37 */
+ __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;}
+ if (PyObject_Cmp(__pyx_v_cols, __pyx_1, &__pyx_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;}
+ __pyx_8 = __pyx_8 > 0;
Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_5 = PyInt_AsLong(__pyx_4); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; goto __pyx_L1;}
+ if (__pyx_8) {
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":38 */
+ __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;}
+ Py_INCREF(__pyx_v_rows);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_rows);
+ Py_INCREF(__pyx_v_cols);
+ PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_cols);
+ if (PyObject_SetAttr(((PyObject *)__pyx_v_a_ndr), __pyx_n_shape, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;}
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ goto __pyx_L4;
+ }
+ __pyx_L4:;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":39 */
+ __pyx_4 = PyObject_GetAttr(((PyObject *)__pyx_v_a_ndr), __pyx_n_astype); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;}
+ __pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n_numpy); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;}
+ __pyx_2 = PyObject_GetAttr(__pyx_5, __pyx_n_bool); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;}
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;}
+ PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_3 = PyObject_CallObject(__pyx_4, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;}
Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_v_p = __pyx_5;
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":36 */
- ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->nobs = ((long )__pyx_v_n);
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ Py_XDECREF(__pyx_5);
+ __Pyx_AddTraceback("cloess.boolarray_from_data");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_a_ndr);
+ Py_DECREF(__pyx_v_i);
+ Py_DECREF(__pyx_v_rows);
+ Py_DECREF(__pyx_v_cols);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":37 */
- ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->nvar = ((long )__pyx_v_p);
+static PyObject *__pyx_f_6cloess_12loess_inputs_1x___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_12loess_inputs_1x___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ Py_INCREF(__pyx_v_self);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":38 */
- (__pyx_v_dims[0]) = __pyx_v_n;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":50 */
+ __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_base->n); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; goto __pyx_L1;}
+ __pyx_2 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_base->p); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; goto __pyx_L1;}
+ __pyx_3 = __pyx_f_6cloess_floatarray_from_data(__pyx_1,__pyx_2,((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_base->x); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":40 */
- __pyx_3 = __pyx_v_weights == Py_None;
- if (__pyx_3) {
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("cloess.loess_inputs.x.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":41 */
- __pyx_2 = PyArray_EMPTY(1,__pyx_v_dims,NPY_DOUBLE,NPY_ALIGNED); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_2)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->weights));
- ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->weights = ((PyArrayObject *)__pyx_2);
- Py_DECREF(__pyx_2); __pyx_2 = 0;
+static PyObject *__pyx_f_6cloess_12loess_inputs_1y___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_12loess_inputs_1y___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ Py_INCREF(__pyx_v_self);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":42 */
- __pyx_v_w_dat = ((double (*))((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->weights->data);
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":54 */
+ __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_base->n); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; goto __pyx_L1;}
+ __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; goto __pyx_L1;}
+ __pyx_3 = __pyx_f_6cloess_floatarray_from_data(__pyx_1,__pyx_2,((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_base->y); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":43 */
- __pyx_5 = (__pyx_v_dims[0]);
- for (__pyx_6 = 0; __pyx_6 < __pyx_5; ++__pyx_6) {
- __pyx_1 = PyInt_FromLong(__pyx_6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; goto __pyx_L1;}
- Py_DECREF(__pyx_v_i);
- __pyx_v_i = __pyx_1;
- __pyx_1 = 0;
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("cloess.loess_inputs.y.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":44 */
- __pyx_3 = PyInt_AsLong(__pyx_v_i); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; goto __pyx_L1;}
- (__pyx_v_w_dat[__pyx_3]) = 1;
- }
- goto __pyx_L3;
- }
- /*else*/ {
+static PyObject *__pyx_f_6cloess_12loess_inputs_7weights___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_12loess_inputs_7weights___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ Py_INCREF(__pyx_v_self);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":46 */
- __pyx_4 = PyArray_FROMANY(__pyx_v_weights,NPY_DOUBLE,1,1,NPY_OWNDATA); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_4)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->weights));
- ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->weights = ((PyArrayObject *)__pyx_4);
- Py_DECREF(__pyx_4); __pyx_4 = 0;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":59 */
+ __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_base->n); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
+ __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
+ __pyx_3 = __pyx_f_6cloess_floatarray_from_data(__pyx_1,__pyx_2,((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_base->weights); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":47 */
- __pyx_2 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->weights), __pyx_n_ndim); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;}
- __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;}
- if (PyObject_Cmp(__pyx_2, __pyx_1, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;}
- __pyx_3 = __pyx_3 > 0;
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- Py_DECREF(__pyx_1); __pyx_1 = 0;
- if (!__pyx_3) {
- __pyx_4 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->weights), __pyx_n_size); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;}
- __pyx_2 = PyInt_FromLong(__pyx_v_n); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;}
- if (PyObject_Cmp(__pyx_4, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;}
- __pyx_3 = __pyx_3 != 0;
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- }
- if (__pyx_3) {
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("cloess.loess_inputs.weights.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":48 */
- __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_ValueError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; goto __pyx_L1;}
- __Pyx_Raise(__pyx_1, __pyx_k13p, 0);
- Py_DECREF(__pyx_1); __pyx_1 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; goto __pyx_L1;}
- goto __pyx_L6;
- }
- __pyx_L6:;
+static PyObject *__pyx_n_ndim;
+static PyObject *__pyx_n_ValueError;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":49 */
- __pyx_v_w_dat = ((double (*))((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->weights->data);
+static PyObject *__pyx_k12p;
+
+static char (__pyx_k12[]) = "Invalid size of the 'weights' vector!";
+
+static int __pyx_f_6cloess_12loess_inputs_7weights___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_w); /*proto*/
+static int __pyx_f_6cloess_12loess_inputs_7weights___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_w) {
+ PyArrayObject *__pyx_v_w_ndr;
+ int __pyx_r;
+ PyObject *__pyx_1 = 0;
+ int __pyx_2;
+ PyObject *__pyx_3 = 0;
+ Py_INCREF(__pyx_v_self);
+ Py_INCREF(__pyx_v_w);
+ __pyx_v_w_ndr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":64 */
+ __pyx_1 = PyArray_FROMANY(__pyx_v_w,NPY_DOUBLE,1,1,NPY_OWNDATA); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 64; goto __pyx_L1;}
+ Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_1)));
+ Py_DECREF(((PyObject *)__pyx_v_w_ndr));
+ __pyx_v_w_ndr = ((PyArrayObject *)__pyx_1);
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":65 */
+ __pyx_1 = PyObject_GetAttr(((PyObject *)__pyx_v_w_ndr), __pyx_n_ndim); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;}
+ __pyx_3 = PyInt_FromLong(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;}
+ if (PyObject_Cmp(__pyx_1, __pyx_3, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;}
+ __pyx_2 = __pyx_2 > 0;
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ if (!__pyx_2) {
+ __pyx_1 = PyObject_GetAttr(((PyObject *)__pyx_v_w_ndr), __pyx_n_size); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;}
+ __pyx_3 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_base->n); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;}
+ if (PyObject_Cmp(__pyx_1, __pyx_3, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;}
+ __pyx_2 = __pyx_2 != 0;
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
}
- __pyx_L3:;
+ if (__pyx_2) {
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":51 */
- ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_inputs.n = ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->nobs;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":66 */
+ __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_ValueError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; goto __pyx_L1;}
+ __Pyx_Raise(__pyx_1, __pyx_k12p, 0);
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; goto __pyx_L1;}
+ goto __pyx_L2;
+ }
+ __pyx_L2:;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":52 */
- ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_inputs.p = ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->nvar;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":67 */
+ ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_base->weights = ((double (*))__pyx_v_w_ndr->data);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":53 */
- ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_inputs.x = ((double (*))((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->x->data);
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("cloess.loess_inputs.weights.__set__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_w_ndr);
+ Py_DECREF(__pyx_v_self);
+ Py_DECREF(__pyx_v_w);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":54 */
- ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_inputs.y = ((double (*))((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->y->data);
+static PyObject *__pyx_f_6cloess_12loess_inputs_4nobs___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_12loess_inputs_4nobs___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ Py_INCREF(__pyx_v_self);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":55 */
- ((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_inputs.weights = ((double (*))((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->weights->data);
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":72 */
+ __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_base->n); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; goto __pyx_L1;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":62 */
- if (__Pyx_PrintItem(__pyx_k14p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; goto __pyx_L1;}
- if (__Pyx_PrintNewline() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; goto __pyx_L1;}
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("cloess.loess_inputs.nobs.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":63 */
+static PyObject *__pyx_f_6cloess_12loess_inputs_4nvar___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_12loess_inputs_4nvar___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ Py_INCREF(__pyx_v_self);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":77 */
+ __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_inputs *)__pyx_v_self)->_base->p); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("cloess.loess_inputs.nvar.__get__");
__pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
+
+static PyObject *__pyx_f_6cloess_13loess_control_7surface___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_13loess_control_7surface___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ Py_INCREF(__pyx_v_self);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":87 */
+ __pyx_1 = PyString_FromString(((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_base->surface); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; goto __pyx_L1;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
goto __pyx_L0;
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("cloess.loess_control.surface.__get__");
__pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
+
+static int __pyx_f_6cloess_13loess_control_7surface___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_surface); /*proto*/
+static int __pyx_f_6cloess_13loess_control_7surface___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_surface) {
+ int __pyx_r;
+ char (*__pyx_1);
+ Py_INCREF(__pyx_v_self);
+ Py_INCREF(__pyx_v_surface);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":89 */
+ __pyx_1 = PyString_AsString(__pyx_v_surface); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; goto __pyx_L1;}
+ ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_base->surface = __pyx_1;
+
+ __pyx_r = 0;
goto __pyx_L0;
__pyx_L1:;
+ __Pyx_AddTraceback("cloess.loess_control.surface.__set__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ Py_DECREF(__pyx_v_surface);
+ return __pyx_r;
+}
+
+static PyObject *__pyx_f_6cloess_13loess_control_10statistics___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_13loess_control_10statistics___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ Py_INCREF(__pyx_v_self);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":93 */
+ __pyx_1 = PyString_FromString(((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_base->statistics); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; goto __pyx_L1;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
Py_XDECREF(__pyx_1);
- Py_XDECREF(__pyx_2);
- Py_XDECREF(__pyx_4);
- __Pyx_AddTraceback("cloess.loess_inputs.__init__");
+ __Pyx_AddTraceback("cloess.loess_control.statistics.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
+
+static int __pyx_f_6cloess_13loess_control_10statistics___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_statistics); /*proto*/
+static int __pyx_f_6cloess_13loess_control_10statistics___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_statistics) {
+ int __pyx_r;
+ char (*__pyx_1);
+ Py_INCREF(__pyx_v_self);
+ Py_INCREF(__pyx_v_statistics);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":95 */
+ __pyx_1 = PyString_AsString(__pyx_v_statistics); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; goto __pyx_L1;}
+ ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_base->statistics = __pyx_1;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1:;
+ __Pyx_AddTraceback("cloess.loess_control.statistics.__set__");
__pyx_r = -1;
__pyx_L0:;
- Py_DECREF(__pyx_v_i);
Py_DECREF(__pyx_v_self);
- Py_DECREF(__pyx_v_x);
- Py_DECREF(__pyx_v_y);
- Py_DECREF(__pyx_v_weights);
+ Py_DECREF(__pyx_v_statistics);
return __pyx_r;
}
-static PyObject *__pyx_k15p;
-static PyObject *__pyx_k19p;
+static PyObject *__pyx_f_6cloess_13loess_control_9trace_hat___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_13loess_control_9trace_hat___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ Py_INCREF(__pyx_v_self);
-static char (__pyx_k15[]) = "DEBUG: Initializing loess_control...";
-static char (__pyx_k16[]) = "interpolate";
-static char (__pyx_k17[]) = "approximate";
-static char (__pyx_k18[]) = "wait.to.decide";
-static char (__pyx_k19[]) = "OK.";
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":99 */
+ __pyx_1 = PyString_FromString(((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_base->trace_hat); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; goto __pyx_L1;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
-static int __pyx_f_6cloess_13loess_control___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static int __pyx_f_6cloess_13loess_control___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("cloess.loess_control.trace_hat.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
+
+static int __pyx_f_6cloess_13loess_control_9trace_hat___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_trace_hat); /*proto*/
+static int __pyx_f_6cloess_13loess_control_9trace_hat___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_trace_hat) {
int __pyx_r;
- static char *__pyx_argnames[] = {0};
- if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return -1;
+ char (*__pyx_1);
Py_INCREF(__pyx_v_self);
+ Py_INCREF(__pyx_v_trace_hat);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":76 */
- if (__Pyx_PrintItem(__pyx_k15p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; goto __pyx_L1;}
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":101 */
+ __pyx_1 = PyString_AsString(__pyx_v_trace_hat); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; goto __pyx_L1;}
+ ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_base->trace_hat = __pyx_1;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":77 */
- ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->surface = __pyx_k16;
- ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_control.surface = __pyx_k16;
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1:;
+ __Pyx_AddTraceback("cloess.loess_control.trace_hat.__set__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ Py_DECREF(__pyx_v_trace_hat);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":78 */
- ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->statistics = __pyx_k17;
- ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_control.statistics = __pyx_k17;
+static PyObject *__pyx_f_6cloess_13loess_control_10iterations___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_13loess_control_10iterations___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ Py_INCREF(__pyx_v_self);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":79 */
- ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->cell = 0.2;
- ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_control.cell = 0.2;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":105 */
+ __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_base->iterations); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; goto __pyx_L1;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":80 */
- ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->trace_hat = __pyx_k18;
- ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_control.trace_hat = __pyx_k18;
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("cloess.loess_control.iterations.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":81 */
- ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->iterations = 4;
- ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_control.iterations = 4;
+static int __pyx_f_6cloess_13loess_control_10iterations___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_iterations); /*proto*/
+static int __pyx_f_6cloess_13loess_control_10iterations___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_iterations) {
+ int __pyx_r;
+ int __pyx_1;
+ Py_INCREF(__pyx_v_self);
+ Py_INCREF(__pyx_v_iterations);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":82 */
- if (__Pyx_PrintItem(__pyx_k19p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;}
- if (__Pyx_PrintNewline() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;}
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":107 */
+ __pyx_1 = PyInt_AsLong(__pyx_v_iterations); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L1;}
+ ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_base->iterations = __pyx_1;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":83 */
__pyx_r = 0;
goto __pyx_L0;
+ __pyx_L1:;
+ __Pyx_AddTraceback("cloess.loess_control.iterations.__set__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ Py_DECREF(__pyx_v_iterations);
+ return __pyx_r;
+}
+static PyObject *__pyx_f_6cloess_13loess_control_4cell___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_13loess_control_4cell___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ Py_INCREF(__pyx_v_self);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":111 */
+ __pyx_1 = PyFloat_FromDouble(((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_base->cell); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; goto __pyx_L1;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("cloess.loess_control.cell.__get__");
__pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
+
+static int __pyx_f_6cloess_13loess_control_4cell___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_cell); /*proto*/
+static int __pyx_f_6cloess_13loess_control_4cell___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_cell) {
+ int __pyx_r;
+ double __pyx_1;
+ Py_INCREF(__pyx_v_self);
+ Py_INCREF(__pyx_v_cell);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":113 */
+ __pyx_1 = PyFloat_AsDouble(__pyx_v_cell); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; goto __pyx_L1;}
+ ((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->_base->cell = __pyx_1;
+
+ __pyx_r = 0;
goto __pyx_L0;
__pyx_L1:;
- __Pyx_AddTraceback("cloess.loess_control.__init__");
+ __Pyx_AddTraceback("cloess.loess_control.cell.__set__");
__pyx_r = -1;
__pyx_L0:;
Py_DECREF(__pyx_v_self);
+ Py_DECREF(__pyx_v_cell);
return __pyx_r;
}
+static PyObject *__pyx_n_get;
+static PyObject *__pyx_n_surface;
+static PyObject *__pyx_n_statistics;
+static PyObject *__pyx_n_trace_hat;
+static PyObject *__pyx_n_iterations;
+static PyObject *__pyx_n_cell;
+static PyObject *__pyx_n_parametric_flags;
+
+
+static PyObject *__pyx_f_6cloess_13loess_control_update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_f_6cloess_13loess_control_update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_cellargs = 0;
+ PyObject *__pyx_v_surface;
+ PyObject *__pyx_v_statistics;
+ PyObject *__pyx_v_trace_hat;
+ PyObject *__pyx_v_iterations;
+ PyObject *__pyx_v_cell;
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ int __pyx_4;
+ static char *__pyx_argnames[] = {0};
+ if (__Pyx_GetStarArgs(&__pyx_args, &__pyx_kwds, __pyx_argnames, 0, 0, &__pyx_v_cellargs) < 0) return 0;
+ if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) {
+ Py_XDECREF(__pyx_args);
+ Py_XDECREF(__pyx_kwds);
+ Py_XDECREF(__pyx_v_cellargs);
+ return 0;
+ }
+ Py_INCREF(__pyx_v_self);
+ __pyx_v_surface = Py_None; Py_INCREF(Py_None);
+ __pyx_v_statistics = Py_None; Py_INCREF(Py_None);
+ __pyx_v_trace_hat = Py_None; Py_INCREF(Py_None);
+ __pyx_v_iterations = Py_None; Py_INCREF(Py_None);
+ __pyx_v_cell = Py_None; Py_INCREF(Py_None);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":116 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_cellargs, __pyx_n_get); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;}
+ Py_INCREF(__pyx_n_surface);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_n_surface);
+ Py_INCREF(Py_None);
+ PyTuple_SET_ITEM(__pyx_2, 1, Py_None);
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_surface);
+ __pyx_v_surface = __pyx_3;
+ __pyx_3 = 0;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":117 */
+ __pyx_4 = __pyx_v_surface != Py_None;
+ if (__pyx_4) {
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":118 */
+ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_surface, __pyx_v_surface) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;}
+ goto __pyx_L2;
+ }
+ __pyx_L2:;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":120 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_cellargs, __pyx_n_get); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; goto __pyx_L1;}
+ Py_INCREF(__pyx_n_statistics);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_n_statistics);
+ Py_INCREF(Py_None);
+ PyTuple_SET_ITEM(__pyx_2, 1, Py_None);
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_statistics);
+ __pyx_v_statistics = __pyx_3;
+ __pyx_3 = 0;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":121 */
+ __pyx_4 = __pyx_v_statistics != Py_None;
+ if (__pyx_4) {
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":122 */
+ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_statistics, __pyx_v_statistics) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L1;}
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":124 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_cellargs, __pyx_n_get); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; goto __pyx_L1;}
+ Py_INCREF(__pyx_n_trace_hat);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_n_trace_hat);
+ Py_INCREF(Py_None);
+ PyTuple_SET_ITEM(__pyx_2, 1, Py_None);
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_trace_hat);
+ __pyx_v_trace_hat = __pyx_3;
+ __pyx_3 = 0;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":125 */
+ __pyx_4 = __pyx_v_trace_hat != Py_None;
+ if (__pyx_4) {
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":126 */
+ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_trace_hat, __pyx_v_trace_hat) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L1;}
+ goto __pyx_L4;
+ }
+ __pyx_L4:;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":128 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_cellargs, __pyx_n_get); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; goto __pyx_L1;}
+ Py_INCREF(__pyx_n_iterations);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_n_iterations);
+ Py_INCREF(Py_None);
+ PyTuple_SET_ITEM(__pyx_2, 1, Py_None);
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_iterations);
+ __pyx_v_iterations = __pyx_3;
+ __pyx_3 = 0;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":129 */
+ __pyx_4 = __pyx_v_iterations != Py_None;
+ if (__pyx_4) {
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":130 */
+ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_iterations, __pyx_v_iterations) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;}
+ goto __pyx_L5;
+ }
+ __pyx_L5:;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":132 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_cellargs, __pyx_n_get); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; goto __pyx_L1;}
+ Py_INCREF(__pyx_n_cell);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_n_cell);
+ Py_INCREF(Py_None);
+ PyTuple_SET_ITEM(__pyx_2, 1, Py_None);
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_cell);
+ __pyx_v_cell = __pyx_3;
+ __pyx_3 = 0;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":133 */
+ __pyx_4 = __pyx_v_cell != Py_None;
+ if (__pyx_4) {
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":134 */
+ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_parametric_flags, __pyx_v_cell) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; goto __pyx_L1;}
+ goto __pyx_L6;
+ }
+ __pyx_L6:;
+
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("cloess.loess_control.update");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_XDECREF(__pyx_v_cellargs);
+ Py_DECREF(__pyx_v_surface);
+ Py_DECREF(__pyx_v_statistics);
+ Py_DECREF(__pyx_v_trace_hat);
+ Py_DECREF(__pyx_v_iterations);
+ Py_DECREF(__pyx_v_cell);
+ Py_DECREF(__pyx_v_self);
+ Py_XDECREF(__pyx_args);
+ Py_XDECREF(__pyx_kwds);
+ return __pyx_r;
+}
+
static PyObject *__pyx_n_join;
+static PyObject *__pyx_k18p;
+static PyObject *__pyx_k19p;
static PyObject *__pyx_k20p;
static PyObject *__pyx_k21p;
static PyObject *__pyx_k22p;
static PyObject *__pyx_k23p;
static PyObject *__pyx_k24p;
-static PyObject *__pyx_k25p;
-static PyObject *__pyx_k26p;
-static char (__pyx_k20[]) = "Control :";
-static char (__pyx_k21[]) = "Surface type : %s";
-static char (__pyx_k22[]) = "Statistics : %s";
-static char (__pyx_k23[]) = "Trace estimation : %s";
-static char (__pyx_k24[]) = "Cell size : %s";
-static char (__pyx_k25[]) = "Nb iterations : %s";
-static char (__pyx_k26[]) = "\n";
+static char (__pyx_k18[]) = "Control :";
+static char (__pyx_k19[]) = "Surface type : %s";
+static char (__pyx_k20[]) = "Statistics : %s";
+static char (__pyx_k21[]) = "Trace estimation : %s";
+static char (__pyx_k22[]) = "Cell size : %s";
+static char (__pyx_k23[]) = "Nb iterations : %s";
+static char (__pyx_k24[]) = "\n";
static PyObject *__pyx_f_6cloess_13loess_control___str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_f_6cloess_13loess_control___str__(PyObject *__pyx_v_self) {
@@ -462,25 +1033,25 @@
Py_INCREF(__pyx_v_self);
__pyx_v_strg = Py_None; Py_INCREF(Py_None);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":86 */
- __pyx_1 = PyString_FromString(((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->surface); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; goto __pyx_L1;}
- __pyx_2 = PyNumber_Remainder(__pyx_k21p, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; goto __pyx_L1;}
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":138 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_surface); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; goto __pyx_L1;}
+ __pyx_2 = PyNumber_Remainder(__pyx_k19p, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_1 = PyString_FromString(((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->statistics); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; goto __pyx_L1;}
- __pyx_3 = PyNumber_Remainder(__pyx_k22p, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; goto __pyx_L1;}
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_statistics); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; goto __pyx_L1;}
+ __pyx_3 = PyNumber_Remainder(__pyx_k20p, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_1 = PyString_FromString(((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->trace_hat); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; goto __pyx_L1;}
- __pyx_4 = PyNumber_Remainder(__pyx_k23p, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; goto __pyx_L1;}
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_trace_hat); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; goto __pyx_L1;}
+ __pyx_4 = PyNumber_Remainder(__pyx_k21p, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_1 = PyFloat_FromDouble(((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->cell); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; goto __pyx_L1;}
- __pyx_5 = PyNumber_Remainder(__pyx_k24p, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; goto __pyx_L1;}
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cell); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; goto __pyx_L1;}
+ __pyx_5 = PyNumber_Remainder(__pyx_k22p, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_control *)__pyx_v_self)->iterations); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; goto __pyx_L1;}
- __pyx_6 = PyNumber_Remainder(__pyx_k25p, __pyx_1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; goto __pyx_L1;}
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_iterations); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; goto __pyx_L1;}
+ __pyx_6 = PyNumber_Remainder(__pyx_k23p, __pyx_1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_1 = PyList_New(6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; goto __pyx_L1;}
- Py_INCREF(__pyx_k20p);
- PyList_SET_ITEM(__pyx_1, 0, __pyx_k20p);
+ __pyx_1 = PyList_New(6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;}
+ Py_INCREF(__pyx_k18p);
+ PyList_SET_ITEM(__pyx_1, 0, __pyx_k18p);
PyList_SET_ITEM(__pyx_1, 1, __pyx_2);
PyList_SET_ITEM(__pyx_1, 2, __pyx_3);
PyList_SET_ITEM(__pyx_1, 3, __pyx_4);
@@ -495,12 +1066,12 @@
__pyx_v_strg = __pyx_1;
__pyx_1 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":92 */
- __pyx_2 = PyObject_GetAttr(__pyx_k26p, __pyx_n_join); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; goto __pyx_L1;}
- __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; goto __pyx_L1;}
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":144 */
+ __pyx_2 = PyObject_GetAttr(__pyx_k24p, __pyx_n_join); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; goto __pyx_L1;}
Py_INCREF(__pyx_v_strg);
PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_strg);
- __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; goto __pyx_L1;}
+ __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
Py_DECREF(__pyx_3); __pyx_3 = 0;
__pyx_r = __pyx_4;
@@ -524,525 +1095,608 @@
return __pyx_r;
}
-static PyObject *__pyx_n_pesudovalues;
+static PyObject *__pyx_f_6cloess_11loess_model_4span___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_11loess_model_4span___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ Py_INCREF(__pyx_v_self);
-static PyObject *__pyx_k27p;
-static PyObject *__pyx_k28p;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":183 */
+ __pyx_1 = PyFloat_FromDouble(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_base->span); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; goto __pyx_L1;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
-static char (__pyx_k27[]) = "DEBUG: Initializing loess_outputs...";
-static char (__pyx_k28[]) = "OK.";
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("cloess.loess_model.span.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
-static int __pyx_f_6cloess_13loess_outputs___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static int __pyx_f_6cloess_13loess_outputs___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
- PyObject *__pyx_v_n = 0;
- PyObject *__pyx_v_p = 0;
- npy_intp (*__pyx_v_rows);
- npy_intp (*__pyx_v_cols);
+static int __pyx_f_6cloess_11loess_model_4span___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_span); /*proto*/
+static int __pyx_f_6cloess_11loess_model_4span___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_span) {
int __pyx_r;
+ double __pyx_1;
+ Py_INCREF(__pyx_v_self);
+ Py_INCREF(__pyx_v_span);
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":185 */
+ __pyx_1 = PyFloat_AsDouble(__pyx_v_span); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; goto __pyx_L1;}
+ ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_base->span = __pyx_1;
+
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1:;
+ __Pyx_AddTraceback("cloess.loess_model.span.__set__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ Py_DECREF(__pyx_v_span);
+ return __pyx_r;
+}
+
+static PyObject *__pyx_f_6cloess_11loess_model_6degree___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_11loess_model_6degree___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
PyObject *__pyx_1 = 0;
- static char *__pyx_argnames[] = {"n","p",0};
- if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_n, &__pyx_v_p)) return -1;
Py_INCREF(__pyx_v_self);
- Py_INCREF(__pyx_v_n);
- Py_INCREF(__pyx_v_p);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":106 */
- (__pyx_v_rows[0]) = ((int )__pyx_v_n);
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":189 */
+ __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_base->degree); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L1;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":107 */
- (__pyx_v_cols[0]) = ((int )__pyx_v_p);
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("cloess.loess_model.degree.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":108 */
- if (__Pyx_PrintItem(__pyx_k27p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; goto __pyx_L1;}
+static PyObject *__pyx_f_6cloess_11loess_model_9normalize___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_11loess_model_9normalize___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ Py_INCREF(__pyx_v_self);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":110 */
- __pyx_1 = PyArray_EMPTY(1,__pyx_v_rows,NPY_DOUBLE,NPY_ALIGNED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_1)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->fitted_values));
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->fitted_values = ((PyArrayObject *)__pyx_1);
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":194 */
+ __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_bool); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; goto __pyx_L1;}
+ __pyx_2 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_base->normalize); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; goto __pyx_L1;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
+ __pyx_2 = 0;
+ __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_r = __pyx_2;
+ __pyx_2 = 0;
+ goto __pyx_L0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":111 */
- __pyx_1 = PyArray_EMPTY(1,__pyx_v_rows,NPY_DOUBLE,NPY_ALIGNED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_1)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->fitted_residuals));
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->fitted_residuals = ((PyArrayObject *)__pyx_1);
- Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("cloess.loess_model.normalize.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":112 */
- __pyx_1 = PyArray_EMPTY(1,__pyx_v_rows,NPY_DOUBLE,NPY_ALIGNED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_v_self, __pyx_n_pesudovalues, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;}
- Py_DECREF(__pyx_1); __pyx_1 = 0;
+static int __pyx_f_6cloess_11loess_model_9normalize___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_normalize); /*proto*/
+static int __pyx_f_6cloess_11loess_model_9normalize___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_normalize) {
+ int __pyx_r;
+ int __pyx_1;
+ Py_INCREF(__pyx_v_self);
+ Py_INCREF(__pyx_v_normalize);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":113 */
- __pyx_1 = PyArray_EMPTY(1,__pyx_v_rows,NPY_DOUBLE,NPY_ALIGNED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_1)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->diagonal));
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->diagonal = ((PyArrayObject *)__pyx_1);
- Py_DECREF(__pyx_1); __pyx_1 = 0;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":196 */
+ __pyx_1 = PyInt_AsLong(__pyx_v_normalize); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; goto __pyx_L1;}
+ ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_base->normalize = __pyx_1;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":114 */
- __pyx_1 = PyArray_EMPTY(1,__pyx_v_rows,NPY_DOUBLE,NPY_ALIGNED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_1)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->robust));
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->robust = ((PyArrayObject *)__pyx_1);
- Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_r = 0;
+ goto __pyx_L0;
+ __pyx_L1:;
+ __Pyx_AddTraceback("cloess.loess_model.normalize.__set__");
+ __pyx_r = -1;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ Py_DECREF(__pyx_v_normalize);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":115 */
- __pyx_1 = PyArray_EMPTY(1,__pyx_v_cols,NPY_DOUBLE,NPY_ALIGNED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_1)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->divisor));
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->divisor = ((PyArrayObject *)__pyx_1);
- Py_DECREF(__pyx_1); __pyx_1 = 0;
+static PyObject *__pyx_f_6cloess_11loess_model_6family___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_11loess_model_6family___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ Py_INCREF(__pyx_v_self);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":117 */
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->_outputs.fitted_values = ((double (*))((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->fitted_values->data);
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":200 */
+ __pyx_1 = PyString_FromString(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_base->family); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; goto __pyx_L1;}
+ __pyx_r = __pyx_1;
+ __pyx_1 = 0;
+ goto __pyx_L0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":118 */
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->_outputs.fitted_residuals = ((double (*))((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->fitted_residuals->data);
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ __Pyx_AddTraceback("cloess.loess_model.family.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":119 */
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->_outputs.pseudovalues = ((double (*))((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->pseudovalues->data);
+static PyObject *__pyx_f_6cloess_11loess_model_16parametric_flags___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_11loess_model_16parametric_flags___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ Py_INCREF(__pyx_v_self);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":120 */
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->_outputs.diagonal = ((double (*))((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->diagonal->data);
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":204 */
+ __pyx_1 = PyInt_FromLong(8); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; goto __pyx_L1;}
+ __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; goto __pyx_L1;}
+ __pyx_3 = __pyx_f_6cloess_boolarray_from_data(__pyx_1,__pyx_2,((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_base->parametric); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":121 */
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->_outputs.robust = ((double (*))((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->robust->data);
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("cloess.loess_model.parametric_flags.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":122 */
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->_outputs.divisor = ((double (*))((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->divisor->data);
+static PyObject *__pyx_n_NPY_LONG;
+static PyObject *__pyx_n_max;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":124 */
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->enp = 0;
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->_outputs.enp = 0;
+static int __pyx_f_6cloess_11loess_model_16parametric_flags___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_paramf); /*proto*/
+static int __pyx_f_6cloess_11loess_model_16parametric_flags___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_paramf) {
+ PyArrayObject *__pyx_v_p_ndr;
+ long (*__pyx_v_p_dat);
+ int __pyx_v_i;
+ int __pyx_r;
+ PyObject *__pyx_1 = 0;
+ enum NPY_TYPES __pyx_2;
+ PyObject *__pyx_3 = 0;
+ PyObject *__pyx_4 = 0;
+ PyObject *__pyx_5 = 0;
+ PyObject *__pyx_6 = 0;
+ PyObject *__pyx_7 = 0;
+ int __pyx_8;
+ Py_INCREF(__pyx_v_self);
+ Py_INCREF(__pyx_v_paramf);
+ __pyx_v_p_ndr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":125 */
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->s = 0;
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->_outputs.s = 0;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":209 */
+ __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_NPY_LONG); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; goto __pyx_L1;}
+ __pyx_2 = ((enum NPY_TYPES )PyInt_AsLong(__pyx_1)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_1 = PyArray_FROMANY(__pyx_v_paramf,__pyx_2,1,1,NPY_OWNDATA); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; goto __pyx_L1;}
+ Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_1)));
+ Py_DECREF(((PyObject *)__pyx_v_p_ndr));
+ __pyx_v_p_ndr = ((PyArrayObject *)__pyx_1);
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":126 */
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->one_delta = 0;
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->_outputs.one_delta = 0;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":210 */
+ __pyx_v_p_dat = ((long (*))__pyx_v_p_ndr->data);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":127 */
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->two_delta = 0;
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->_outputs.two_delta = 0;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":211 */
+ __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ __pyx_3 = PyInt_FromLong(__pyx_v_i); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ if (PyObject_Cmp(__pyx_1, __pyx_3, &__pyx_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ __pyx_8 = __pyx_8 <= 0;
+ if (__pyx_8) {
+ __pyx_4 = __Pyx_GetName(__pyx_b, __pyx_n_max); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ __pyx_5 = PyInt_FromLong(8); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ __pyx_6 = PyObject_GetAttr(((PyObject *)__pyx_v_p_ndr), __pyx_n_size); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ __pyx_7 = PyTuple_New(2); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ PyTuple_SET_ITEM(__pyx_7, 0, __pyx_5);
+ PyTuple_SET_ITEM(__pyx_7, 1, __pyx_6);
+ __pyx_5 = 0;
+ __pyx_6 = 0;
+ __pyx_5 = PyObject_CallObject(__pyx_4, __pyx_7); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ Py_DECREF(__pyx_7); __pyx_7 = 0;
+ if (PyObject_Cmp(__pyx_3, __pyx_5, &__pyx_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ __pyx_8 = __pyx_8 < 0;
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ }
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_6 = PyInt_FromLong(__pyx_8); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ __pyx_4 = PyObject_GetIter(__pyx_6); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ Py_DECREF(__pyx_6); __pyx_6 = 0;
+ for (;;) {
+ __pyx_7 = PyIter_Next(__pyx_4);
+ if (!__pyx_7) {
+ if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ break;
+ }
+ __pyx_8 = PyInt_AsLong(__pyx_7); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;}
+ Py_DECREF(__pyx_7); __pyx_7 = 0;
+ __pyx_v_i = __pyx_8;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":128 */
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->trace_hat = 0;
- ((struct __pyx_obj_6cloess_loess_outputs *)__pyx_v_self)->_outputs.trace_hat = 0;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":212 */
+ (((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_base->parametric[__pyx_v_i]) = (__pyx_v_p_dat[__pyx_v_i]);
+ }
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":129 */
- if (__Pyx_PrintItem(__pyx_k28p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L1;}
- if (__Pyx_PrintNewline() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L1;}
-
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1:;
Py_XDECREF(__pyx_1);
- __Pyx_AddTraceback("cloess.loess_outputs.__init__");
+ Py_XDECREF(__pyx_3);
+ Py_XDECREF(__pyx_4);
+ Py_XDECREF(__pyx_5);
+ Py_XDECREF(__pyx_6);
+ Py_XDECREF(__pyx_7);
+ __Pyx_AddTraceback("cloess.loess_model.parametric_flags.__set__");
__pyx_r = -1;
__pyx_L0:;
+ Py_DECREF(__pyx_v_p_ndr);
Py_DECREF(__pyx_v_self);
- Py_DECREF(__pyx_v_n);
- Py_DECREF(__pyx_v_p);
+ Py_DECREF(__pyx_v_paramf);
return __pyx_r;
}
-static PyObject *__pyx_n_max;
-static PyObject *__pyx_n_NPY_LONG;
+static PyObject *__pyx_f_6cloess_11loess_model_17drop_square_flags___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_f_6cloess_11loess_model_17drop_square_flags___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
+ PyObject *__pyx_2 = 0;
+ PyObject *__pyx_3 = 0;
+ Py_INCREF(__pyx_v_self);
-static PyObject *__pyx_k29p;
-static PyObject *__pyx_k30p;
-static PyObject *__pyx_k31p;
-static PyObject *__pyx_k32p;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":216 */
+ __pyx_1 = PyInt_FromLong(8); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; goto __pyx_L1;}
+ __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; goto __pyx_L1;}
+ __pyx_3 = __pyx_f_6cloess_boolarray_from_data(__pyx_1,__pyx_2,((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_base->drop_square); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_r = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L0;
-static char (__pyx_k29[]) = "DEBUG: Initializing loess_kdtree...";
-static char (__pyx_k30[]) = "(python side)";
-static char (__pyx_k31[]) = "(C side)";
-static char (__pyx_k32[]) = "OK.";
+ __pyx_r = Py_None; Py_INCREF(Py_None);
+ goto __pyx_L0;
+ __pyx_L1:;
+ Py_XDECREF(__pyx_1);
+ Py_XDECREF(__pyx_2);
+ Py_XDECREF(__pyx_3);
+ __Pyx_AddTraceback("cloess.loess_model.drop_square_flags.__get__");
+ __pyx_r = 0;
+ __pyx_L0:;
+ Py_DECREF(__pyx_v_self);
+ return __pyx_r;
+}
-static int __pyx_f_6cloess_13loess_kd_tree___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static int __pyx_f_6cloess_13loess_kd_tree___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
- long __pyx_v_n;
- long __pyx_v_p;
- long __pyx_v_maxkd;
- long __pyx_v_nval;
- long __pyx_v_nvert;
- npy_intp (*__pyx_v_nmaxkd);
- npy_intp (*__pyx_v_nnval);
- npy_intp (*__pyx_v_nnvert);
- npy_intp (*__pyx_v_npars);
+static int __pyx_f_6cloess_11loess_model_17drop_square_flags___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_drop_sq); /*proto*/
+static int __pyx_f_6cloess_11loess_model_17drop_square_flags___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_drop_sq) {
+ PyArrayObject *__pyx_v_d_ndr;
+ long (*__pyx_v_d_dat);
+ int __pyx_v_i;
int __pyx_r;
PyObject *__pyx_1 = 0;
- PyObject *__pyx_2 = 0;
+ enum NPY_TYPES __pyx_2;
PyObject *__pyx_3 = 0;
PyObject *__pyx_4 = 0;
- long __pyx_5;
- enum NPY_TYPES __pyx_6;
- static char *__pyx_argnames[] = {"n","p",0};
- if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "ll", __pyx_argnames, &__pyx_v_n, &__pyx_v_p)) return -1;
+ PyObject *__pyx_5 = 0;
+ PyObject *__pyx_6 = 0;
+ PyObject *__pyx_7 = 0;
+ int __pyx_8;
Py_INCREF(__pyx_v_self);
+ Py_INCREF(__pyx_v_drop_sq);
+ __pyx_v_d_ndr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":150 */
- if (__Pyx_PrintItem(__pyx_k29p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; goto __pyx_L1;}
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":151 */
- __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_max); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;}
- __pyx_2 = PyInt_FromLong(__pyx_v_n); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;}
- __pyx_3 = PyInt_FromLong(200); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;}
- __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;}
- PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2);
- PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3);
- __pyx_2 = 0;
- __pyx_3 = 0;
- __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;}
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":221 */
+ __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_NPY_LONG); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; goto __pyx_L1;}
+ __pyx_2 = ((enum NPY_TYPES )PyInt_AsLong(__pyx_1)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_5 = PyInt_AsLong(__pyx_2); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;}
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- __pyx_v_maxkd = __pyx_5;
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":152 */
- __pyx_v_nvert = (__pyx_v_p * 2);
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":153 */
- __pyx_v_nval = ((__pyx_v_p + 1) * __pyx_v_maxkd);
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":155 */
- if (__Pyx_PrintItem(__pyx_k30p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; goto __pyx_L1;}
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":156 */
- (__pyx_v_nmaxkd[0]) = ((int )__pyx_v_maxkd);
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":157 */
- (__pyx_v_nnvert[0]) = ((int )__pyx_v_nvert);
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":158 */
- (__pyx_v_nnval[0]) = ((int )__pyx_v_nval);
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":159 */
- (__pyx_v_npars[0]) = ((int )8);
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":160 */
- __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_NPY_LONG); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; goto __pyx_L1;}
- __pyx_6 = ((enum NPY_TYPES )PyInt_AsLong(__pyx_3)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; goto __pyx_L1;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- __pyx_1 = PyArray_EMPTY(1,__pyx_v_npars,__pyx_6,NPY_ALIGNED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; goto __pyx_L1;}
+ __pyx_1 = PyArray_FROMANY(__pyx_v_drop_sq,__pyx_2,1,1,NPY_OWNDATA); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; goto __pyx_L1;}
Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_1)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->parameter));
- ((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->parameter = ((PyArrayObject *)__pyx_1);
+ Py_DECREF(((PyObject *)__pyx_v_d_ndr));
+ __pyx_v_d_ndr = ((PyArrayObject *)__pyx_1);
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":161 */
- __pyx_4 = __Pyx_GetName(__pyx_b, __pyx_n_NPY_LONG); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;}
- __pyx_6 = ((enum NPY_TYPES )PyInt_AsLong(__pyx_4)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;}
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_2 = PyArray_EMPTY(1,__pyx_v_nmaxkd,__pyx_6,NPY_ALIGNED); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_2)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->a));
- ((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->a = ((PyArrayObject *)__pyx_2);
- Py_DECREF(__pyx_2); __pyx_2 = 0;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":222 */
+ __pyx_v_d_dat = ((long (*))__pyx_v_d_ndr->data);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":162 */
- __pyx_3 = PyArray_EMPTY(1,__pyx_v_nmaxkd,NPY_DOUBLE,NPY_ALIGNED); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_3)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->xi));
- ((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->xi = ((PyArrayObject *)__pyx_3);
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":223 */
+ __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ __pyx_3 = PyInt_FromLong(__pyx_v_i); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ if (PyObject_Cmp(__pyx_1, __pyx_3, &__pyx_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ __pyx_8 = __pyx_8 <= 0;
+ if (__pyx_8) {
+ __pyx_4 = __Pyx_GetName(__pyx_b, __pyx_n_max); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ __pyx_5 = PyInt_FromLong(8); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ __pyx_6 = PyObject_GetAttr(((PyObject *)__pyx_v_d_ndr), __pyx_n_size); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ __pyx_7 = PyTuple_New(2); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ PyTuple_SET_ITEM(__pyx_7, 0, __pyx_5);
+ PyTuple_SET_ITEM(__pyx_7, 1, __pyx_6);
+ __pyx_5 = 0;
+ __pyx_6 = 0;
+ __pyx_5 = PyObject_CallObject(__pyx_4, __pyx_7); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ Py_DECREF(__pyx_7); __pyx_7 = 0;
+ if (PyObject_Cmp(__pyx_3, __pyx_5, &__pyx_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ __pyx_8 = __pyx_8 < 0;
+ Py_DECREF(__pyx_5); __pyx_5 = 0;
+ }
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_6 = PyInt_FromLong(__pyx_8); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ __pyx_4 = PyObject_GetIter(__pyx_6); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ Py_DECREF(__pyx_6); __pyx_6 = 0;
+ for (;;) {
+ __pyx_7 = PyIter_Next(__pyx_4);
+ if (!__pyx_7) {
+ if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ break;
+ }
+ __pyx_8 = PyInt_AsLong(__pyx_7); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+ Py_DECREF(__pyx_7); __pyx_7 = 0;
+ __pyx_v_i = __pyx_8;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":163 */
- __pyx_1 = PyArray_EMPTY(1,__pyx_v_nnvert,NPY_DOUBLE,NPY_ALIGNED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_1)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->vert));
- ((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->vert = ((PyArrayObject *)__pyx_1);
- Py_DECREF(__pyx_1); __pyx_1 = 0;
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":164 */
- __pyx_4 = PyArray_EMPTY(1,__pyx_v_nnval,NPY_DOUBLE,NPY_ALIGNED); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; goto __pyx_L1;}
- Py_INCREF(((PyObject *)((PyArrayObject *)__pyx_4)));
- Py_DECREF(((PyObject *)((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->vval));
- ((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->vval = ((PyArrayObject *)__pyx_4);
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":224 */
+ (((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_base->drop_square[__pyx_v_i]) = (__pyx_v_d_dat[__pyx_v_i]);
+ }
Py_DECREF(__pyx_4); __pyx_4 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":171 */
- if (__Pyx_PrintItem(__pyx_k31p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; goto __pyx_L1;}
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":172 */
- ((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->_kdtree.parameter = ((long (*))((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->parameter->data);
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":173 */
- ((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->_kdtree.a = ((long (*))((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->a->data);
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":174 */
- ((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->_kdtree.xi = ((double (*))((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->xi->data);
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":175 */
- ((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->_kdtree.vert = ((double (*))((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->vert->data);
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":176 */
- ((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->_kdtree.vval = ((double (*))((struct __pyx_obj_6cloess_loess_kd_tree *)__pyx_v_self)->vval->data);
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":187 */
- if (__Pyx_PrintItem(__pyx_k32p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; goto __pyx_L1;}
- if (__Pyx_PrintNewline() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; goto __pyx_L1;}
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":188 */
__pyx_r = 0;
goto __pyx_L0;
-
- __pyx_r = 0;
- goto __pyx_L0;
__pyx_L1:;
Py_XDECREF(__pyx_1);
- Py_XDECREF(__pyx_2);
Py_XDECREF(__pyx_3);
Py_XDECREF(__pyx_4);
- __Pyx_AddTraceback("cloess.loess_kd_tree.__init__");
+ Py_XDECREF(__pyx_5);
+ Py_XDECREF(__pyx_6);
+ Py_XDECREF(__pyx_7);
+ __Pyx_AddTraceback("cloess.loess_model.drop_square_flags.__set__");
__pyx_r = -1;
__pyx_L0:;
+ Py_DECREF(__pyx_v_d_ndr);
Py_DECREF(__pyx_v_self);
+ Py_DECREF(__pyx_v_drop_sq);
return __pyx_r;
}
-static PyObject *__pyx_n_hasattr;
-static PyObject *__pyx_n___len__;
+static PyObject *__pyx_n_family;
+static PyObject *__pyx_n_span;
+static PyObject *__pyx_n_degree;
+static PyObject *__pyx_n_normalize;
+static PyObject *__pyx_n_parametric;
+static PyObject *__pyx_n_drop_square;
+static PyObject *__pyx_n_drop_square_flags;
-static PyObject *__pyx_k33p;
-static PyObject *__pyx_k36p;
-static char (__pyx_k33[]) = "DEBUG: Initializing loess_model...";
-static char (__pyx_k36[]) = "OK.";
-
-static int __pyx_f_6cloess_11loess_model___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static int __pyx_f_6cloess_11loess_model___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
- double __pyx_v_span;
- int __pyx_v_degree;
- int __pyx_v_normalize;
- PyObject *__pyx_v_parametric_in = 0;
- PyObject *__pyx_v_drop_square_in = 0;
- PyObject *__pyx_v_family = 0;
- int __pyx_v_i;
- int __pyx_r;
- char (*__pyx_1);
+static PyObject *__pyx_f_6cloess_11loess_model_update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_f_6cloess_11loess_model_update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+ PyObject *__pyx_v_modelargs = 0;
+ PyObject *__pyx_v_family;
+ PyObject *__pyx_v_span;
+ PyObject *__pyx_v_degree;
+ PyObject *__pyx_v_normalize;
+ PyObject *__pyx_v_parametric;
+ PyObject *__pyx_v_drop_square;
+ PyObject *__pyx_r;
+ PyObject *__pyx_1 = 0;
PyObject *__pyx_2 = 0;
PyObject *__pyx_3 = 0;
- PyObject *__pyx_4 = 0;
- int __pyx_5;
- long __pyx_6;
- long __pyx_7;
- static char *__pyx_argnames[] = {"span","degree","normalize","parametric_in","drop_square_in","family",0};
- __pyx_v_span = __pyx_k3;
- __pyx_v_degree = __pyx_k4;
- __pyx_v_normalize = __pyx_k5;
- __pyx_v_parametric_in = __pyx_k6;
- __pyx_v_drop_square_in = __pyx_k7;
- __pyx_v_family = __pyx_k9;
- if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "|diiOOO", __pyx_argnames, &__pyx_v_span, &__pyx_v_degree, &__pyx_v_normalize, &__pyx_v_parametric_in, &__pyx_v_drop_square_in, &__pyx_v_family)) return -1;
+ int __pyx_4;
+ static char *__pyx_argnames[] = {0};
+ if (__Pyx_GetStarArgs(&__pyx_args, &__pyx_kwds, __pyx_argnames, 0, 0, &__pyx_v_modelargs) < 0) return 0;
+ if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) {
+ Py_XDECREF(__pyx_args);
+ Py_XDECREF(__pyx_kwds);
+ Py_XDECREF(__pyx_v_modelargs);
+ return 0;
+ }
Py_INCREF(__pyx_v_self);
- Py_INCREF(__pyx_v_parametric_in);
- Py_INCREF(__pyx_v_drop_square_in);
- Py_INCREF(__pyx_v_family);
+ __pyx_v_family = Py_None; Py_INCREF(Py_None);
+ __pyx_v_span = Py_None; Py_INCREF(Py_None);
+ __pyx_v_degree = Py_None; Py_INCREF(Py_None);
+ __pyx_v_normalize = Py_None; Py_INCREF(Py_None);
+ __pyx_v_parametric = Py_None; Py_INCREF(Py_None);
+ __pyx_v_drop_square = Py_None; Py_INCREF(Py_None);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":208 */
- if (__Pyx_PrintItem(__pyx_k33p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; goto __pyx_L1;}
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":227 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_modelargs, __pyx_n_get); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; goto __pyx_L1;}
+ Py_INCREF(__pyx_n_family);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_n_family);
+ Py_INCREF(Py_None);
+ PyTuple_SET_ITEM(__pyx_2, 1, Py_None);
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_family);
+ __pyx_v_family = __pyx_3;
+ __pyx_3 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":209 */
- ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->span = __pyx_v_span;
- ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.span = __pyx_v_span;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":228 */
+ __pyx_4 = __pyx_v_family != Py_None;
+ if (__pyx_4) {
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":210 */
- ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->degree = __pyx_v_degree;
- ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.degree = __pyx_v_degree;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":229 */
+ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_family, __pyx_v_family) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; goto __pyx_L1;}
+ goto __pyx_L2;
+ }
+ __pyx_L2:;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":211 */
- ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->normalize = __pyx_v_normalize;
- ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.normalize = __pyx_v_normalize;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":231 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_modelargs, __pyx_n_get); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; goto __pyx_L1;}
+ Py_INCREF(__pyx_n_span);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_n_span);
+ Py_INCREF(Py_None);
+ PyTuple_SET_ITEM(__pyx_2, 1, Py_None);
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_span);
+ __pyx_v_span = __pyx_3;
+ __pyx_3 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":212 */
- __pyx_1 = PyString_AsString(__pyx_v_family); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; goto __pyx_L1;}
- ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->family = __pyx_1;
- __pyx_1 = PyString_AsString(__pyx_v_family); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; goto __pyx_L1;}
- ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.family = __pyx_1;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":232 */
+ __pyx_4 = __pyx_v_span != Py_None;
+ if (__pyx_4) {
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":214 */
- __pyx_2 = PyList_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; goto __pyx_L1;}
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":233 */
+ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_span, __pyx_v_span) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; goto __pyx_L1;}
+ goto __pyx_L3;
+ }
+ __pyx_L3:;
+
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":235 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_modelargs, __pyx_n_get); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; goto __pyx_L1;}
+ Py_INCREF(__pyx_n_degree);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_n_degree);
Py_INCREF(Py_None);
- PyList_SET_ITEM(__pyx_2, 0, Py_None);
- __pyx_3 = PyInt_FromLong(8); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; goto __pyx_L1;}
- __pyx_4 = PyNumber_Multiply(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; goto __pyx_L1;}
+ PyTuple_SET_ITEM(__pyx_2, 1, Py_None);
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
Py_DECREF(__pyx_2); __pyx_2 = 0;
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->parametric_flags);
- ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->parametric_flags = __pyx_4;
- __pyx_4 = 0;
+ Py_DECREF(__pyx_v_degree);
+ __pyx_v_degree = __pyx_3;
+ __pyx_3 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":215 */
- __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_hasattr); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; goto __pyx_L1;}
- __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; goto __pyx_L1;}
- Py_INCREF(__pyx_v_parametric_in);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_parametric_in);
- Py_INCREF(__pyx_n___len__);
- PyTuple_SET_ITEM(__pyx_3, 1, __pyx_n___len__);
- __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; goto __pyx_L1;}
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- __pyx_5 = PyObject_IsTrue(__pyx_4); if (__pyx_5 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; goto __pyx_L1;}
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- if (__pyx_5) {
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":236 */
+ __pyx_4 = __pyx_v_degree != Py_None;
+ if (__pyx_4) {
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":216 */
- __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_len); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; goto __pyx_L1;}
- __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; goto __pyx_L1;}
- Py_INCREF(__pyx_v_parametric_in);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_parametric_in);
- __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; goto __pyx_L1;}
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- __pyx_6 = PyInt_AsLong(__pyx_4); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; goto __pyx_L1;}
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- for (__pyx_v_i = 0; __pyx_v_i < __pyx_6; ++__pyx_v_i) {
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":217 */
- __pyx_2 = PyInt_FromLong(__pyx_v_i); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; goto __pyx_L1;}
- __pyx_3 = PyObject_GetItem(__pyx_v_parametric_in, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; goto __pyx_L1;}
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- __pyx_4 = PyInt_FromLong(__pyx_v_i); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; goto __pyx_L1;}
- if (PyObject_SetItem(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->parametric_flags, __pyx_4, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; goto __pyx_L1;}
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- Py_DECREF(__pyx_3); __pyx_3 = 0;
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":218 */
- __pyx_2 = PyInt_FromLong(__pyx_v_i); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; goto __pyx_L1;}
- __pyx_3 = PyObject_GetItem(__pyx_v_parametric_in, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; goto __pyx_L1;}
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- __pyx_7 = PyInt_AsLong(__pyx_3); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; goto __pyx_L1;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- (((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.parametric[__pyx_v_i]) = __pyx_7;
- }
- goto __pyx_L2;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":237 */
+ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_degree, __pyx_v_degree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; goto __pyx_L1;}
+ goto __pyx_L4;
}
- /*else*/ {
+ __pyx_L4:;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":220 */
- for (__pyx_v_i = 0; __pyx_v_i <= 7; ++__pyx_v_i) {
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":239 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_modelargs, __pyx_n_get); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; goto __pyx_L1;}
+ Py_INCREF(__pyx_n_normalize);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_n_normalize);
+ Py_INCREF(Py_None);
+ PyTuple_SET_ITEM(__pyx_2, 1, Py_None);
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_normalize);
+ __pyx_v_normalize = __pyx_3;
+ __pyx_3 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":221 */
- __pyx_4 = PyInt_FromLong(__pyx_v_i); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; goto __pyx_L1;}
- if (PyObject_SetItem(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->parametric_flags, __pyx_4, __pyx_v_parametric_in) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; goto __pyx_L1;}
- Py_DECREF(__pyx_4); __pyx_4 = 0;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":240 */
+ __pyx_4 = __pyx_v_normalize != Py_None;
+ if (__pyx_4) {
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":222 */
- __pyx_7 = PyInt_AsLong(__pyx_v_parametric_in); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;}
- (((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.parametric[__pyx_v_i]) = __pyx_7;
- }
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":241 */
+ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_normalize, __pyx_v_normalize) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; goto __pyx_L1;}
+ goto __pyx_L5;
}
- __pyx_L2:;
+ __pyx_L5:;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":224 */
- __pyx_2 = PyList_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; goto __pyx_L1;}
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":243 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_modelargs, __pyx_n_get); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; goto __pyx_L1;}
+ Py_INCREF(__pyx_n_parametric);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_n_parametric);
Py_INCREF(Py_None);
- PyList_SET_ITEM(__pyx_2, 0, Py_None);
- __pyx_3 = PyInt_FromLong(8); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; goto __pyx_L1;}
- __pyx_4 = PyNumber_Multiply(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; goto __pyx_L1;}
+ PyTuple_SET_ITEM(__pyx_2, 1, Py_None);
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
Py_DECREF(__pyx_2); __pyx_2 = 0;
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->drop_square_flags);
- ((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->drop_square_flags = __pyx_4;
- __pyx_4 = 0;
+ Py_DECREF(__pyx_v_parametric);
+ __pyx_v_parametric = __pyx_3;
+ __pyx_3 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":225 */
- __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_hasattr); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; goto __pyx_L1;}
- __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; goto __pyx_L1;}
- Py_INCREF(__pyx_v_drop_square_in);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_drop_square_in);
- Py_INCREF(__pyx_n___len__);
- PyTuple_SET_ITEM(__pyx_3, 1, __pyx_n___len__);
- __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; goto __pyx_L1;}
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- __pyx_5 = PyObject_IsTrue(__pyx_4); if (__pyx_5 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; goto __pyx_L1;}
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- if (__pyx_5) {
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":244 */
+ __pyx_4 = __pyx_v_parametric != Py_None;
+ if (__pyx_4) {
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":226 */
- __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_len); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; goto __pyx_L1;}
- __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; goto __pyx_L1;}
- Py_INCREF(__pyx_v_drop_square_in);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_drop_square_in);
- __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; goto __pyx_L1;}
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- __pyx_6 = PyInt_AsLong(__pyx_4); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; goto __pyx_L1;}
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- for (__pyx_v_i = 0; __pyx_v_i < __pyx_6; ++__pyx_v_i) {
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":227 */
- __pyx_2 = PyInt_FromLong(__pyx_v_i); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; goto __pyx_L1;}
- __pyx_3 = PyObject_GetItem(__pyx_v_drop_square_in, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; goto __pyx_L1;}
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- __pyx_4 = PyInt_FromLong(__pyx_v_i); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; goto __pyx_L1;}
- if (PyObject_SetItem(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->drop_square_flags, __pyx_4, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; goto __pyx_L1;}
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- Py_DECREF(__pyx_3); __pyx_3 = 0;
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":228 */
- __pyx_2 = PyInt_FromLong(__pyx_v_i); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; goto __pyx_L1;}
- __pyx_3 = PyObject_GetItem(__pyx_v_drop_square_in, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; goto __pyx_L1;}
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- __pyx_7 = PyInt_AsLong(__pyx_3); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; goto __pyx_L1;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- (((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.drop_square[__pyx_v_i]) = __pyx_7;
- }
- goto __pyx_L7;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":245 */
+ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_parametric_flags, __pyx_v_parametric) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; goto __pyx_L1;}
+ goto __pyx_L6;
}
- /*else*/ {
+ __pyx_L6:;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":230 */
- for (__pyx_v_i = 0; __pyx_v_i < 8; ++__pyx_v_i) {
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":247 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_modelargs, __pyx_n_get); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; goto __pyx_L1;}
+ Py_INCREF(__pyx_n_drop_square);
+ PyTuple_SET_ITEM(__pyx_2, 0, __pyx_n_drop_square);
+ Py_INCREF(Py_None);
+ PyTuple_SET_ITEM(__pyx_2, 1, Py_None);
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; goto __pyx_L1;}
+ Py_DECREF(__pyx_1); __pyx_1 = 0;
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(__pyx_v_drop_square);
+ __pyx_v_drop_square = __pyx_3;
+ __pyx_3 = 0;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":231 */
- __pyx_4 = PyInt_FromLong(__pyx_v_i); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; goto __pyx_L1;}
- if (PyObject_SetItem(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->drop_square_flags, __pyx_4, __pyx_v_drop_square_in) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; goto __pyx_L1;}
- Py_DECREF(__pyx_4); __pyx_4 = 0;
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":248 */
+ __pyx_4 = __pyx_v_drop_square != Py_None;
+ if (__pyx_4) {
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":232 */
- __pyx_7 = PyInt_AsLong(__pyx_v_drop_square_in); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; goto __pyx_L1;}
- (((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.drop_square[__pyx_v_i]) = __pyx_7;
- }
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":249 */
+ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_drop_square_flags, __pyx_v_drop_square) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; goto __pyx_L1;}
+ goto __pyx_L7;
}
__pyx_L7:;
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":233 */
- if (__Pyx_PrintItem(__pyx_k36p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; goto __pyx_L1;}
- if (__Pyx_PrintNewline() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; goto __pyx_L1;}
-
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":246 */
- __pyx_r = 0;
+ __pyx_r = Py_None; Py_INCREF(Py_None);
goto __pyx_L0;
-
- __pyx_r = 0;
- goto __pyx_L0;
__pyx_L1:;
+ Py_XDECREF(__pyx_1);
Py_XDECREF(__pyx_2);
Py_XDECREF(__pyx_3);
- Py_XDECREF(__pyx_4);
- __Pyx_AddTraceback("cloess.loess_model.__init__");
- __pyx_r = -1;
+ __Pyx_AddTraceback("cloess.loess_model.update");
+ __pyx_r = 0;
__pyx_L0:;
+ Py_XDECREF(__pyx_v_modelargs);
+ Py_DECREF(__pyx_v_family);
+ Py_DECREF(__pyx_v_span);
+ Py_DECREF(__pyx_v_degree);
+ Py_DECREF(__pyx_v_normalize);
+ Py_DECREF(__pyx_v_parametric);
+ Py_DECREF(__pyx_v_drop_square);
Py_DECREF(__pyx_v_self);
- Py_DECREF(__pyx_v_parametric_in);
- Py_DECREF(__pyx_v_drop_square_in);
- Py_DECREF(__pyx_v_family);
+ Py_XDECREF(__pyx_args);
+ Py_XDECREF(__pyx_kwds);
return __pyx_r;
}
static PyObject *__pyx_n_id;
-static PyObject *__pyx_k37p;
+static PyObject *__pyx_k31p;
-static char (__pyx_k37[]) = "loess model parameters @%s";
+static char (__pyx_k31[]) = "loess model parameters @%s";
static PyObject *__pyx_f_6cloess_11loess_model___repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_f_6cloess_11loess_model___repr__(PyObject *__pyx_v_self) {
@@ -1052,15 +1706,15 @@
PyObject *__pyx_3 = 0;
Py_INCREF(__pyx_v_self);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":249 */
- __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; goto __pyx_L1;}
- __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; goto __pyx_L1;}
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":252 */
+ __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; goto __pyx_L1;}
Py_INCREF(__pyx_v_self);
PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_self);
- __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; goto __pyx_L1;}
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
Py_DECREF(__pyx_2); __pyx_2 = 0;
- __pyx_1 = PyNumber_Remainder(__pyx_k37p, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; goto __pyx_L1;}
+ __pyx_1 = PyNumber_Remainder(__pyx_k31p, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
__pyx_r = __pyx_1;
__pyx_1 = 0;
@@ -1079,27 +1733,23 @@
return __pyx_r;
}
-static PyObject *__pyx_n___name__;
-static PyObject *__pyx_n_parametric;
-static PyObject *__pyx_n_drop_square;
-
+static PyObject *__pyx_k32p;
+static PyObject *__pyx_k33p;
+static PyObject *__pyx_k34p;
+static PyObject *__pyx_k35p;
+static PyObject *__pyx_k36p;
+static PyObject *__pyx_k37p;
static PyObject *__pyx_k38p;
static PyObject *__pyx_k39p;
-static PyObject *__pyx_k40p;
-static PyObject *__pyx_k41p;
-static PyObject *__pyx_k42p;
-static PyObject *__pyx_k43p;
-static PyObject *__pyx_k44p;
-static PyObject *__pyx_k45p;
-static char (__pyx_k38[]) = "Object : %s";
-static char (__pyx_k39[]) = "family : %s";
-static char (__pyx_k40[]) = "span : %s";
-static char (__pyx_k41[]) = "degree : %s";
-static char (__pyx_k42[]) = "normalized : %s";
-static char (__pyx_k43[]) = "parametric : %s";
-static char (__pyx_k44[]) = "drop_square : %s";
-static char (__pyx_k45[]) = "\n";
+static char (__pyx_k32[]) = "Model parameters.....";
+static char (__pyx_k33[]) = "family : %s";
+static char (__pyx_k34[]) = "span : %s";
+static char (__pyx_k35[]) = "degree : %s";
+static char (__pyx_k36[]) = "normalized : %s";
+static char (__pyx_k37[]) = "parametric : %s";
+static char (__pyx_k38[]) = "drop_square : %s";
+static char (__pyx_k39[]) = "\n";
static PyObject *__pyx_f_6cloess_11loess_model___str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_f_6cloess_11loess_model___str__(PyObject *__pyx_v_self) {
@@ -1112,57 +1762,57 @@
PyObject *__pyx_5 = 0;
PyObject *__pyx_6 = 0;
PyObject *__pyx_7 = 0;
- PyObject *__pyx_8 = 0;
Py_INCREF(__pyx_v_self);
__pyx_v_strg = Py_None; Py_INCREF(Py_None);
- /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":251 */
- __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n___name__); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; goto __pyx_L1;}
- __pyx_2 = PyNumber_Remainder(__pyx_k38p, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; goto __pyx_L1;}
+ /* "/home/backtopop/workspace/pyloess_c/src/cloess.pyx":255 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_family); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; goto __pyx_L1;}
+ __pyx_2 = PyNumber_Remainder(__pyx_k33p, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_1 = PyString_FromString(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.family); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; goto __pyx_L1;}
- __pyx_3 = PyNumber_Remainder(__pyx_k39p, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; goto __pyx_L1;}
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_span); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; goto __pyx_L1;}
+ __pyx_3 = PyNumber_Remainder(__pyx_k34p, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_1 = PyFloat_FromDouble(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.span); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; goto __pyx_L1;}
- __pyx_4 = PyNumber_Remainder(__pyx_k40p, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; goto __pyx_L1;}
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_degree); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; goto __pyx_L1;}
+ __pyx_4 = PyNumber_Remainder(__pyx_k35p, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.degree); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; goto __pyx_L1;}
- __pyx_5 = PyNumber_Remainder(__pyx_k41p, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; goto __pyx_L1;}
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_normalize); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; goto __pyx_L1;}
+ __pyx_5 = PyNumber_Remainder(__pyx_k36p, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6cloess_loess_model *)__pyx_v_self)->_model.normalize); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; goto __pyx_L1;}
- __pyx_6 = PyNumber_Rem