diff --git a/doc/modules/sgd.rst b/doc/modules/sgd.rst index 49810950c341596ffd96fdc3bd8b7212fd4692db..1bc6b59353be765965c9043e4e347005e65a2a25 100644 --- a/doc/modules/sgd.rst +++ b/doc/modules/sgd.rst @@ -64,7 +64,7 @@ for the training samples:: >>> clf.fit(X, y) SGDClassifier(alpha=0.0001, class_weight=None, eta0=0.0, fit_intercept=True, learning_rate='optimal', loss='hinge', n_iter=5, n_jobs=1, - penalty='l2', power_t=0.5, rho=1.0, seed=0, shuffle=False, + penalty='l2', power_t=0.5, rho=0.85, seed=0, shuffle=False, verbose=0) After being fitted, the model can then be used to predict new values:: diff --git a/examples/linear_model/plot_sgd_separating_hyperplane.py b/examples/linear_model/plot_sgd_separating_hyperplane.py index 9080e255533912d8c295cfac3da5fa8aaff8f253..b55b27dc9139064132092141139c02851f1192bd 100644 --- a/examples/linear_model/plot_sgd_separating_hyperplane.py +++ b/examples/linear_model/plot_sgd_separating_hyperplane.py @@ -42,4 +42,3 @@ pl.scatter(X[:,0], X[:,1], c=Y) pl.axis('tight') pl.show() - diff --git a/sklearn/linear_model/base.py b/sklearn/linear_model/base.py index 95d16e1b6d04d9104bde4f2a87a3b8fcf4505a7c..8ef5e866b816c51a65d30b62f3f674aa979e1923 100644 --- a/sklearn/linear_model/base.py +++ b/sklearn/linear_model/base.py @@ -164,19 +164,22 @@ class BaseSGD(BaseEstimator): power_t=0.5, class_weight=None): self.loss = str(loss) self.penalty = str(penalty) + self._set_loss_function(self.loss) + self._set_penalty_type(self.penalty) + self.alpha = float(alpha) self.rho = float(rho) + if self.rho < 0.0 or self.rho > 1.0: + raise ValueError("rho must be in [0, 1]") self.fit_intercept = bool(fit_intercept) self.n_iter = int(n_iter) if self.n_iter <= 0: - raise ValueError("n_iter must be greater than zero.") + raise ValueError("n_iter must be greater than zero") if not isinstance(shuffle, bool): raise ValueError("shuffle must be either True or False") self.shuffle = bool(shuffle) self.seed = seed self.verbose = int(verbose) - self._set_loss_function(self.loss) - self._set_penalty_type(self.penalty) self.learning_rate = str(learning_rate) self._set_learning_rate(self.learning_rate) @@ -203,10 +206,6 @@ class BaseSGD(BaseEstimator): penalty_types = {"l2": 2, "l1": 1, "elasticnet": 3} try: self.penalty_type = penalty_types[penalty] - if self.penalty_type == 2: - self.rho = 1.0 - elif self.penalty_type == 1: - self.rho = 0.0 except KeyError: raise ValueError("Penalty %s is not supported. " % penalty) diff --git a/sklearn/linear_model/sgd_fast.c b/sklearn/linear_model/sgd_fast.c index c6b1a7ac712a7b5fd005eb98d51d630990a0cec5..a638c9e1ac7e748290b3ccb4c9cc8aeb8ef0da54 100644 --- a/sklearn/linear_model/sgd_fast.c +++ b/sklearn/linear_model/sgd_fast.c @@ -1,11 +1,9 @@ -/* Generated by Cython 0.15.1+ on Fri Nov 4 21:49:02 2011 */ +/* Generated by Cython 0.15 on Tue Nov 15 20:42:18 2011 */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. -#elif PY_VERSION_HEX < 0x02040000 - #error Cython requires Python 2.4+. #else #include <stddef.h> /* For offsetof */ @@ -36,6 +34,12 @@ #define PY_LONG_LONG LONG_LONG #endif +#if PY_VERSION_HEX < 0x02040000 + #define METH_COEXIST 0 + #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type) + #define PyDict_Contains(d,o) PySequence_Contains(d,o) +#endif + #if PY_VERSION_HEX < 0x02050000 typedef int Py_ssize_t; #define PY_SSIZE_T_MAX INT_MAX @@ -84,14 +88,8 @@ #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" - #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ - PyCode_New(a, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" - #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ - PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #if PY_MAJOR_VERSION >= 3 @@ -103,16 +101,6 @@ #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif -/* new Py3.3 unicode representation (PEP 393) */ -#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_GET_LENGTH) - #define CYTHON_PEP393_ENABLED - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) -#else - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) -#endif - #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject @@ -279,7 +267,7 @@ # else # define CYTHON_UNUSED # endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +# elif defined(__ICC) || defined(__INTEL_COMPILER) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED @@ -815,6 +803,7 @@ struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Log { static struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Log *__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_Log; + /* "sklearn/linear_model/sgd_fast.pyx":174 * * @@ -882,9 +871,6 @@ static struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Hinge *__pyx_vt #define __Pyx_XGIVEREF(r) #endif /* CYTHON_REFNANNY */ -#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) -#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) - static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ @@ -902,20 +888,15 @@ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact); /*proto*/ -#define IS_UNSIGNED(type) (((type) -1) > 0) /* Run-time type information about structs used with buffers */ struct __Pyx_StructField_; -#define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) - typedef struct { const char* name; /* for error messages only */ struct __Pyx_StructField_* fields; size_t size; /* sizeof(type) */ char typegroup; /* _R_eal, _C_omplex, Signed _I_nt, _U_nsigned int, _S_truct, _P_ointer, _O_bject */ - char is_unsigned; - int flags; } __Pyx_TypeInfo; typedef struct __Pyx_StructField_ { @@ -929,26 +910,13 @@ typedef struct { size_t parent_offset; } __Pyx_BufFmt_StackElem; -typedef struct { - __Pyx_StructField root; - __Pyx_BufFmt_StackElem* head; - size_t fmt_offset; - size_t new_count, enc_count; - int is_complex; - char enc_type; - char new_packmode; - char enc_packmode; -} __Pyx_BufFmt_Context; - -static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, - __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); +static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); - static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/ -static void __Pyx_RaiseBufferFallbackError(void); /*proto*/ +static void __Pyx_RaiseBufferFallbackError(void); /*proto*/ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { @@ -1006,29 +974,22 @@ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize __Pyx_GetItemInt_Generic(o, to_py_func(i))) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) { - if (PyList_CheckExact(o)) { - Py_ssize_t n = (likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); - if (likely((n >= 0) & (n < PyList_GET_SIZE(o)))) { - PyObject *r = PyList_GET_ITEM(o, n); - Py_INCREF(r); - return r; - } + PyObject *r; + if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) { + r = PyList_GET_ITEM(o, i); + Py_INCREF(r); } - else if (PyTuple_CheckExact(o)) { - Py_ssize_t n = (likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); - if (likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) { - PyObject *r = PyTuple_GET_ITEM(o, n); - Py_INCREF(r); - return r; - } + else if (PyTuple_CheckExact(o) && ((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { + r = PyTuple_GET_ITEM(o, i); + Py_INCREF(r); } - else if (likely(i >= 0)) { - PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; - if (likely(m && m->sq_item)) { - return m->sq_item(o, i); - } + else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0))) { + r = PySequence_GetItem(o, i); } - return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); + else { + r = __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); + } + return r; } static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); @@ -1038,23 +999,6 @@ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /*proto*/ -/* structs for buffer access */ - -typedef struct { - Py_ssize_t shape, strides, suboffsets; -} __Pyx_Buf_DimInfo; - -typedef struct { - size_t refcount; - Py_buffer pybuffer; -} __Pyx_Buffer; - -typedef struct { - __Pyx_Buffer *rcbuffer; - char *data; - __Pyx_Buf_DimInfo diminfo[32]; -} __Pyx_LocalBuf_ND; - #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); static void __Pyx_ReleaseBuffer(Py_buffer *view); @@ -1063,13 +1007,11 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view); #define __Pyx_ReleaseBuffer PyBuffer_Release #endif -Py_ssize_t __Pyx_zeros[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -Py_ssize_t __Pyx_minusones[] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; +Py_ssize_t __Pyx_zeros[] = {0, 0}; +Py_ssize_t __Pyx_minusones[] = {-1, -1}; static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level); /*proto*/ -static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name); - static int __Pyx_Print(PyObject*, PyObject *, int); /*proto*/ #if PY_MAJOR_VERSION >= 3 static PyObject* __pyx_print = 0; @@ -1252,6 +1194,8 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, cha static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *, PyObject *); /*proto*/ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *); /*proto*/ +/* Module declarations from 'cython.cython.view' */ + /* Module declarations from 'cython' */ /* Module declarations from 'sklearn.linear_model.sgd_fast' */ @@ -1268,8 +1212,8 @@ static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_8sgd_fast_min(double static double __pyx_f_7sklearn_12linear_model_8sgd_fast_dot(double *, double *, unsigned int, unsigned int); /*proto*/ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_add(double *, double, double *, unsigned int, unsigned int, double); /*proto*/ static void __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty(double *, double, double *, unsigned int, double); /*proto*/ -static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t = { "float64_t", NULL, sizeof(__pyx_t_5numpy_float64_t), 'R', 0, 0 }; -static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t = { "int32_t", NULL, sizeof(__pyx_t_5numpy_int32_t), 'I', IS_UNSIGNED(__pyx_t_5numpy_int32_t), 0 }; +static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t = { "float64_t", NULL, sizeof(__pyx_t_5numpy_float64_t), 'R' }; +static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t = { "int32_t", NULL, sizeof(__pyx_t_5numpy_int32_t), 'I' }; #define __Pyx_MODULE_NAME "sklearn.linear_model.sgd_fast" int __pyx_module_is_main_sklearn__linear_model__sgd_fast = 0; @@ -1289,8 +1233,7 @@ static char __pyx_k_10[] = "Non-native byte order not supported"; static char __pyx_k_12[] = "unknown dtype code in numpy.pxd (%d)"; static char __pyx_k_13[] = "Format string allocated too short, see comment in numpy.pxd"; static char __pyx_k_16[] = "Format string allocated too short."; -static char __pyx_k_20[] = "/home/lars/src/scikit-learn/sklearn/linear_model/sgd_fast.pyx"; -static char __pyx_k_21[] = "sklearn.linear_model.sgd_fast"; +static char __pyx_k_18[] = "sklearn.linear_model.sgd_fast"; static char __pyx_k__B[] = "B"; static char __pyx_k__H[] = "H"; static char __pyx_k__I[] = "I"; @@ -1309,8 +1252,6 @@ static char __pyx_k__i[] = "i"; static char __pyx_k__l[] = "l"; static char __pyx_k__p[] = "p"; static char __pyx_k__q[] = "q"; -static char __pyx_k__t[] = "t"; -static char __pyx_k__u[] = "u"; static char __pyx_k__w[] = "w"; static char __pyx_k__y[] = "y"; static char __pyx_k__Zd[] = "Zd"; @@ -1319,20 +1260,15 @@ static char __pyx_k__Zg[] = "Zg"; static char __pyx_k__np[] = "np"; static char __pyx_k__any[] = "any"; static char __pyx_k__dot[] = "dot"; -static char __pyx_k__eta[] = "eta"; static char __pyx_k__rho[] = "rho"; static char __pyx_k__sys[] = "sys"; static char __pyx_k__eta0[] = "eta0"; static char __pyx_k__loss[] = "loss"; static char __pyx_k__seed[] = "seed"; static char __pyx_k__time[] = "time"; -static char __pyx_k__typw[] = "typw"; static char __pyx_k__alpha[] = "alpha"; -static char __pyx_k__count[] = "count"; static char __pyx_k__dloss[] = "dloss"; static char __pyx_k__dtype[] = "dtype"; -static char __pyx_k__epoch[] = "epoch"; -static char __pyx_k__index[] = "index"; static char __pyx_k__int32[] = "int32"; static char __pyx_k__isinf[] = "isinf"; static char __pyx_k__isnan[] = "isnan"; @@ -1340,55 +1276,37 @@ static char __pyx_k__numpy[] = "numpy"; static char __pyx_k__order[] = "order"; static char __pyx_k__range[] = "range"; static char __pyx_k__shape[] = "shape"; -static char __pyx_k__wnorm[] = "wnorm"; static char __pyx_k__zeros[] = "zeros"; static char __pyx_k__arange[] = "arange"; static char __pyx_k__n_iter[] = "n_iter"; -static char __pyx_k__offset[] = "offset"; static char __pyx_k__random[] = "random"; -static char __pyx_k__stride[] = "stride"; -static char __pyx_k__update[] = "update"; -static char __pyx_k__wscale[] = "wscale"; static char __pyx_k__xrange[] = "xrange"; static char __pyx_k__float64[] = "float64"; static char __pyx_k__nonzero[] = "nonzero"; static char __pyx_k__power_t[] = "power_t"; static char __pyx_k__shuffle[] = "shuffle"; -static char __pyx_k__sumloss[] = "sumloss"; -static char __pyx_k__t_start[] = "t_start"; static char __pyx_k__verbose[] = "verbose"; static char __pyx_k____main__[] = "__main__"; static char __pyx_k____test__[] = "__test__"; static char __pyx_k__intercept[] = "intercept"; -static char __pyx_k__n_samples[] = "n_samples"; static char __pyx_k__plain_sgd[] = "plain_sgd"; static char __pyx_k__ValueError[] = "ValueError"; -static char __pyx_k__X_data_ptr[] = "X_data_ptr"; -static char __pyx_k__Y_data_ptr[] = "Y_data_ptr"; -static char __pyx_k__n_features[] = "n_features"; -static char __pyx_k__q_data_ptr[] = "q_data_ptr"; -static char __pyx_k__sample_idx[] = "sample_idx"; -static char __pyx_k__w_data_ptr[] = "w_data_ptr"; static char __pyx_k__weight_neg[] = "weight_neg"; static char __pyx_k__weight_pos[] = "weight_pos"; static char __pyx_k__RandomState[] = "RandomState"; static char __pyx_k__RuntimeError[] = "RuntimeError"; -static char __pyx_k__class_weight[] = "class_weight"; static char __pyx_k__penalty_type[] = "penalty_type"; static char __pyx_k__fit_intercept[] = "fit_intercept"; static char __pyx_k__learning_rate[] = "learning_rate"; static char __pyx_k__sample_weight[] = "sample_weight"; -static char __pyx_k__index_data_ptr[] = "index_data_ptr"; -static char __pyx_k__sample_weight_data[] = "sample_weight_data"; static char __pyx_k__NotImplementedError[] = "NotImplementedError"; static PyObject *__pyx_kp_s_1; static PyObject *__pyx_kp_u_10; static PyObject *__pyx_kp_u_12; static PyObject *__pyx_kp_u_13; static PyObject *__pyx_kp_u_16; +static PyObject *__pyx_n_s_18; static PyObject *__pyx_kp_s_2; -static PyObject *__pyx_kp_s_20; -static PyObject *__pyx_n_s_21; static PyObject *__pyx_kp_s_3; static PyObject *__pyx_kp_s_4; static PyObject *__pyx_kp_u_6; @@ -1398,73 +1316,47 @@ static PyObject *__pyx_n_s__RandomState; static PyObject *__pyx_n_s__RuntimeError; static PyObject *__pyx_n_s__ValueError; static PyObject *__pyx_n_s__X; -static PyObject *__pyx_n_s__X_data_ptr; static PyObject *__pyx_n_s__Y; -static PyObject *__pyx_n_s__Y_data_ptr; static PyObject *__pyx_n_s____main__; static PyObject *__pyx_n_s____test__; static PyObject *__pyx_n_s__alpha; static PyObject *__pyx_n_s__any; static PyObject *__pyx_n_s__arange; static PyObject *__pyx_n_s__c; -static PyObject *__pyx_n_s__class_weight; -static PyObject *__pyx_n_s__count; static PyObject *__pyx_n_s__dloss; static PyObject *__pyx_n_s__dot; static PyObject *__pyx_n_s__dtype; -static PyObject *__pyx_n_s__epoch; -static PyObject *__pyx_n_s__eta; static PyObject *__pyx_n_s__eta0; static PyObject *__pyx_n_s__fit_intercept; static PyObject *__pyx_n_s__float64; -static PyObject *__pyx_n_s__i; -static PyObject *__pyx_n_s__index; -static PyObject *__pyx_n_s__index_data_ptr; static PyObject *__pyx_n_s__int32; static PyObject *__pyx_n_s__intercept; static PyObject *__pyx_n_s__isinf; static PyObject *__pyx_n_s__isnan; static PyObject *__pyx_n_s__learning_rate; static PyObject *__pyx_n_s__loss; -static PyObject *__pyx_n_s__n_features; static PyObject *__pyx_n_s__n_iter; -static PyObject *__pyx_n_s__n_samples; static PyObject *__pyx_n_s__nonzero; static PyObject *__pyx_n_s__np; static PyObject *__pyx_n_s__numpy; -static PyObject *__pyx_n_s__offset; static PyObject *__pyx_n_s__order; static PyObject *__pyx_n_s__p; static PyObject *__pyx_n_s__penalty_type; static PyObject *__pyx_n_s__plain_sgd; static PyObject *__pyx_n_s__power_t; -static PyObject *__pyx_n_s__q; -static PyObject *__pyx_n_s__q_data_ptr; static PyObject *__pyx_n_s__random; static PyObject *__pyx_n_s__range; static PyObject *__pyx_n_s__rho; -static PyObject *__pyx_n_s__sample_idx; static PyObject *__pyx_n_s__sample_weight; -static PyObject *__pyx_n_s__sample_weight_data; static PyObject *__pyx_n_s__seed; static PyObject *__pyx_n_s__shape; static PyObject *__pyx_n_s__shuffle; -static PyObject *__pyx_n_s__stride; -static PyObject *__pyx_n_s__sumloss; static PyObject *__pyx_n_s__sys; -static PyObject *__pyx_n_s__t; -static PyObject *__pyx_n_s__t_start; static PyObject *__pyx_n_s__time; -static PyObject *__pyx_n_s__typw; -static PyObject *__pyx_n_s__u; -static PyObject *__pyx_n_s__update; static PyObject *__pyx_n_s__verbose; static PyObject *__pyx_n_s__w; -static PyObject *__pyx_n_s__w_data_ptr; static PyObject *__pyx_n_s__weight_neg; static PyObject *__pyx_n_s__weight_pos; -static PyObject *__pyx_n_s__wnorm; -static PyObject *__pyx_n_s__wscale; static PyObject *__pyx_n_s__xrange; static PyObject *__pyx_n_s__y; static PyObject *__pyx_n_s__zeros; @@ -1476,8 +1368,6 @@ static PyObject *__pyx_k_tuple_11; static PyObject *__pyx_k_tuple_14; static PyObject *__pyx_k_tuple_15; static PyObject *__pyx_k_tuple_17; -static PyObject *__pyx_k_tuple_18; -static PyObject *__pyx_k_codeobj_19; /* "sklearn/linear_model/sgd_fast.pyx":34 * """Base class for convex loss functions""" @@ -1488,7 +1378,7 @@ static PyObject *__pyx_k_codeobj_19; */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction *__pyx_v_self, CYTHON_UNUSED double __pyx_v_p, CYTHON_UNUSED double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -1512,7 +1402,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss(CYTH __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -1579,43 +1469,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss( int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("loss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -1653,7 +1537,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss( */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_1dloss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_dloss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction *__pyx_v_self, CYTHON_UNUSED double __pyx_v_p, CYTHON_UNUSED double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_dloss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -1677,7 +1561,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_dloss(CYT __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -1744,43 +1628,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_1dlos int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("dloss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -1818,7 +1696,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFunction_1dlos */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_loss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_loss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression *__pyx_v_self, CYTHON_UNUSED double __pyx_v_p, CYTHON_UNUSED double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_loss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -1842,7 +1720,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_loss(CYTHON __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -1908,43 +1786,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_loss(Py int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("loss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -1982,7 +1854,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_loss(Py */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_1dloss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_dloss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression *__pyx_v_self, CYTHON_UNUSED double __pyx_v_p, CYTHON_UNUSED double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_dloss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -2006,7 +1878,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_dloss(CYTHO __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -2072,43 +1944,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_1dloss( int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("dloss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -2146,7 +2012,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression_1dloss( */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_loss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_14Classification_loss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification *__pyx_v_self, CYTHON_UNUSED double __pyx_v_p, CYTHON_UNUSED double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_14Classification_loss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -2170,7 +2036,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_14Classification_loss(CY __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -2236,43 +2102,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_los int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("loss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -2310,7 +2170,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_los */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_1dloss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_14Classification_dloss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification *__pyx_v_self, CYTHON_UNUSED double __pyx_v_p, CYTHON_UNUSED double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_14Classification_dloss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -2334,7 +2194,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_14Classification_dloss(C __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -2400,43 +2260,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_1dl int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("dloss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -2474,7 +2328,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classification_1dl */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_loss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_loss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_loss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_v_z; double __pyx_r; __Pyx_RefNannyDeclarations @@ -2500,7 +2354,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_loss(CYT __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -2619,43 +2473,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_loss int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("loss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -2693,7 +2541,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_loss */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_1dloss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_dloss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_dloss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_v_z; double __pyx_r; __Pyx_RefNannyDeclarations @@ -2719,7 +2567,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_dloss(CY __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -2838,43 +2686,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_1dlo int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("dloss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -2930,7 +2772,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_2__r */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_ModifiedHuber))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_ModifiedHuber))); __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_ModifiedHuber))); @@ -2962,7 +2804,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_2__r */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_loss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Hinge_loss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Hinge_loss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_v_z; double __pyx_r; __Pyx_RefNannyDeclarations @@ -2988,7 +2830,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Hinge_loss(CYTHON_UNUSE __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -3083,43 +2925,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_loss(PyObject int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("loss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -3157,7 +2993,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_loss(PyObject */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_1dloss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Hinge_dloss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Hinge_dloss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_v_z; double __pyx_r; __Pyx_RefNannyDeclarations @@ -3183,7 +3019,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Hinge_dloss(CYTHON_UNUS __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -3278,43 +3114,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_1dloss(PyObje int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("dloss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -3370,7 +3200,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_2__reduce__(P */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Hinge))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Hinge))); __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Hinge))); @@ -3402,7 +3232,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_2__reduce__(P */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_loss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_3Log_loss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_3Log_loss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_v_z; double __pyx_r; __Pyx_RefNannyDeclarations @@ -3428,7 +3258,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_3Log_loss(CYTHON_UNUSED __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -3546,43 +3376,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_loss(PyObject * int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("loss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -3620,7 +3444,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_loss(PyObject * */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_1dloss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_3Log_dloss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_3Log_dloss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_v_z; double __pyx_r; __Pyx_RefNannyDeclarations @@ -3646,7 +3470,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_3Log_dloss(CYTHON_UNUSED __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -3764,43 +3588,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_1dloss(PyObject int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("dloss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -3856,7 +3674,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_2__reduce__(PyO */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Log))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Log))); __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Log))); @@ -3888,7 +3706,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_2__reduce__(PyO */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_loss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_loss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_loss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -3912,7 +3730,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_loss(CYTHO __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -3975,43 +3793,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_loss(P int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("loss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -4049,7 +3861,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_loss(P */ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_1dloss(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static double __pyx_f_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_dloss(CYTHON_UNUSED struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { +static double __pyx_f_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_dloss(struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss *__pyx_v_self, double __pyx_v_p, double __pyx_v_y, int __pyx_skip_dispatch) { double __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -4073,7 +3885,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_dloss(CYTH __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -4136,43 +3948,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_1dloss int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("dloss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -4228,7 +4034,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_2__red */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredLoss))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredLoss))); __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_SquaredLoss))); @@ -4270,33 +4076,28 @@ static int __pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber___init__(PyObject * int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__c,0}; __Pyx_RefNannySetupContext("__init__"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[1] = {0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__c); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_c = values[0]; - } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__c); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_c = values[0]; + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_c = PyTuple_GET_ITEM(__pyx_args, 0); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -4363,7 +4164,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Huber_loss(struct __pyx __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -4398,7 +4199,14 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Huber_loss(struct __pyx * if abs_r <= self.c: * return 0.5 * r * r */ - __pyx_v_abs_r = fabs(__pyx_v_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_r); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyNumber_Absolute(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_abs_r = __pyx_t_5; /* "sklearn/linear_model/sgd_fast.pyx":192 * cdef double r = p - y @@ -4469,43 +4277,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_1loss(PyObjec int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("loss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("loss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "loss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -4570,7 +4372,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Huber_dloss(struct __py __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -4605,7 +4407,14 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Huber_dloss(struct __py * if abs_r <= self.c: * return r */ - __pyx_v_abs_r = fabs(__pyx_v_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_r); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyNumber_Absolute(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_abs_r = __pyx_t_5; /* "sklearn/linear_model/sgd_fast.pyx":200 * cdef double r = p - y # FIXME y - p @@ -4698,43 +4507,37 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_2dloss(PyObje int __pyx_clineno = 0; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__p,&__pyx_n_s__y,0}; __Pyx_RefNannySetupContext("dloss"); - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__p); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("dloss", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "dloss") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_y = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -4793,12 +4596,12 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_3__reduce__(P __pyx_t_1 = PyFloat_FromDouble(((struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber *)__pyx_v_self)->c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); + __Pyx_GOTREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Huber))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Huber))); __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_12linear_model_8sgd_fast_Huber))); @@ -4881,18 +4684,26 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * double __pyx_v_u; double __pyx_v_typw; PyObject *__pyx_v_t_start = NULL; - __Pyx_LocalBuf_ND __pyx_pybuffernd_X; - __Pyx_Buffer __pyx_pybuffer_X; - __Pyx_LocalBuf_ND __pyx_pybuffernd_index; - __Pyx_Buffer __pyx_pybuffer_index; - __Pyx_LocalBuf_ND __pyx_pybuffernd_sample_weight; - __Pyx_Buffer __pyx_pybuffer_sample_weight; - __Pyx_LocalBuf_ND __pyx_pybuffernd_Y; - __Pyx_Buffer __pyx_pybuffer_Y; - __Pyx_LocalBuf_ND __pyx_pybuffernd_q; - __Pyx_Buffer __pyx_pybuffer_q; - __Pyx_LocalBuf_ND __pyx_pybuffernd_w; - __Pyx_Buffer __pyx_pybuffer_w; + Py_buffer __pyx_bstruct_X; + Py_ssize_t __pyx_bstride_0_X = 0; + Py_ssize_t __pyx_bstride_1_X = 0; + Py_ssize_t __pyx_bshape_0_X = 0; + Py_ssize_t __pyx_bshape_1_X = 0; + Py_buffer __pyx_bstruct_index; + Py_ssize_t __pyx_bstride_0_index = 0; + Py_ssize_t __pyx_bshape_0_index = 0; + Py_buffer __pyx_bstruct_sample_weight; + Py_ssize_t __pyx_bstride_0_sample_weight = 0; + Py_ssize_t __pyx_bshape_0_sample_weight = 0; + Py_buffer __pyx_bstruct_Y; + Py_ssize_t __pyx_bstride_0_Y = 0; + Py_ssize_t __pyx_bshape_0_Y = 0; + Py_buffer __pyx_bstruct_q; + Py_ssize_t __pyx_bstride_0_q = 0; + Py_ssize_t __pyx_bshape_0_q = 0; + Py_buffer __pyx_bstruct_w; + Py_ssize_t __pyx_bstride_0_w = 0; + Py_ssize_t __pyx_bshape_0_w = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -4924,193 +4735,148 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__w,&__pyx_n_s__intercept,&__pyx_n_s__loss,&__pyx_n_s__penalty_type,&__pyx_n_s__alpha,&__pyx_n_s__rho,&__pyx_n_s__X,&__pyx_n_s__Y,&__pyx_n_s__n_iter,&__pyx_n_s__fit_intercept,&__pyx_n_s__verbose,&__pyx_n_s__shuffle,&__pyx_n_s__seed,&__pyx_n_s__weight_pos,&__pyx_n_s__weight_neg,&__pyx_n_s__sample_weight,&__pyx_n_s__learning_rate,&__pyx_n_s__eta0,&__pyx_n_s__power_t,0}; __Pyx_RefNannySetupContext("plain_sgd"); __pyx_self = __pyx_self; - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[19] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18); - case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17); - case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16); - case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15); - case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14); - case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13); - case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12); - case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11); - case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); - case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); - case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); - case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18); + case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17); + case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16); + case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15); + case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14); + case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13); + case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12); + case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11); + case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); + case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); + case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__w); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__intercept); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__w); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__intercept); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 2: - values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__loss); - if (likely(values[2])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 3: - values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__penalty_type); - if (likely(values[3])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 4: - values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__alpha); - if (likely(values[4])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 5: - values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rho); - if (likely(values[5])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 6: - values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__X); - if (likely(values[6])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 6); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 7: - values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__Y); - if (likely(values[7])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 7); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 8: - values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__n_iter); - if (likely(values[8])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 8); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 9: - values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fit_intercept); - if (likely(values[9])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 9); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 10: - values[10] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__verbose); - if (likely(values[10])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 10); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 11: - values[11] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__shuffle); - if (likely(values[11])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 11); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 12: - values[12] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__seed); - if (likely(values[12])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 12); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 13: - values[13] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weight_pos); - if (likely(values[13])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 14: - values[14] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weight_neg); - if (likely(values[14])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 14); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 15: - values[15] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sample_weight); - if (likely(values[15])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 15); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 16: - values[16] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__learning_rate); - if (likely(values[16])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 16); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 17: - values[17] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__eta0); - if (likely(values[17])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 17); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 18: - values[18] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__power_t); - if (likely(values[18])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 18); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } + case 2: + values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__loss); + if (likely(values[2])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "plain_sgd") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + case 3: + values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__penalty_type); + if (likely(values[3])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 4: + values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__alpha); + if (likely(values[4])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 5: + values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rho); + if (likely(values[5])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 6: + values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__X); + if (likely(values[6])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 6); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 7: + values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__Y); + if (likely(values[7])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 7); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 8: + values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__n_iter); + if (likely(values[8])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 8); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 9: + values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fit_intercept); + if (likely(values[9])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 9); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 10: + values[10] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__verbose); + if (likely(values[10])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 10); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 11: + values[11] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__shuffle); + if (likely(values[11])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 11); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 12: + values[12] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__seed); + if (likely(values[12])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 12); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 13: + values[13] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weight_pos); + if (likely(values[13])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 14: + values[14] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weight_neg); + if (likely(values[14])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 14); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 15: + values[15] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sample_weight); + if (likely(values[15])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 15); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 16: + values[16] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__learning_rate); + if (likely(values[16])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 16); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 17: + values[17] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__eta0); + if (likely(values[17])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 17); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 18: + values[18] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__power_t); + if (likely(values[18])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 19, 19, 18); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - __pyx_v_w = ((PyArrayObject *)values[0]); - __pyx_v_intercept = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_intercept == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_loss = ((struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction *)values[2]); - __pyx_v_penalty_type = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_penalty_type == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_alpha = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_alpha == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_rho = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_rho == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_X = ((PyArrayObject *)values[6]); - __pyx_v_Y = ((PyArrayObject *)values[7]); - __pyx_v_n_iter = __Pyx_PyInt_AsInt(values[8]); if (unlikely((__pyx_v_n_iter == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_fit_intercept = __Pyx_PyInt_AsInt(values[9]); if (unlikely((__pyx_v_fit_intercept == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_verbose = __Pyx_PyInt_AsInt(values[10]); if (unlikely((__pyx_v_verbose == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_shuffle = __Pyx_PyInt_AsInt(values[11]); if (unlikely((__pyx_v_shuffle == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_seed = __Pyx_PyInt_AsInt(values[12]); if (unlikely((__pyx_v_seed == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_weight_pos = __pyx_PyFloat_AsDouble(values[13]); if (unlikely((__pyx_v_weight_pos == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_weight_neg = __pyx_PyFloat_AsDouble(values[14]); if (unlikely((__pyx_v_weight_neg == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_sample_weight = ((PyArrayObject *)values[15]); - __pyx_v_learning_rate = __Pyx_PyInt_AsInt(values[16]); if (unlikely((__pyx_v_learning_rate == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_eta0 = __pyx_PyFloat_AsDouble(values[17]); if (unlikely((__pyx_v_eta0 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_power_t = __pyx_PyFloat_AsDouble(values[18]); if (unlikely((__pyx_v_power_t == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 19) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - values[8] = PyTuple_GET_ITEM(__pyx_args, 8); - values[9] = PyTuple_GET_ITEM(__pyx_args, 9); - values[10] = PyTuple_GET_ITEM(__pyx_args, 10); - values[11] = PyTuple_GET_ITEM(__pyx_args, 11); - values[12] = PyTuple_GET_ITEM(__pyx_args, 12); - values[13] = PyTuple_GET_ITEM(__pyx_args, 13); - values[14] = PyTuple_GET_ITEM(__pyx_args, 14); - values[15] = PyTuple_GET_ITEM(__pyx_args, 15); - values[16] = PyTuple_GET_ITEM(__pyx_args, 16); - values[17] = PyTuple_GET_ITEM(__pyx_args, 17); - values[18] = PyTuple_GET_ITEM(__pyx_args, 18); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "plain_sgd") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_w = ((PyArrayObject *)values[0]); __pyx_v_intercept = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_intercept == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L3_error;} @@ -5131,6 +4897,28 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_v_learning_rate = __Pyx_PyInt_AsInt(values[16]); if (unlikely((__pyx_v_learning_rate == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_eta0 = __pyx_PyFloat_AsDouble(values[17]); if (unlikely((__pyx_v_eta0 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_power_t = __pyx_PyFloat_AsDouble(values[18]); if (unlikely((__pyx_v_power_t == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 19) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_w = ((PyArrayObject *)PyTuple_GET_ITEM(__pyx_args, 0)); + __pyx_v_intercept = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_intercept == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_loss = ((struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction *)PyTuple_GET_ITEM(__pyx_args, 2)); + __pyx_v_penalty_type = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 3)); if (unlikely((__pyx_v_penalty_type == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_alpha = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 4)); if (unlikely((__pyx_v_alpha == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_rho = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 5)); if (unlikely((__pyx_v_rho == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_X = ((PyArrayObject *)PyTuple_GET_ITEM(__pyx_args, 6)); + __pyx_v_Y = ((PyArrayObject *)PyTuple_GET_ITEM(__pyx_args, 7)); + __pyx_v_n_iter = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 8)); if (unlikely((__pyx_v_n_iter == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_fit_intercept = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 9)); if (unlikely((__pyx_v_fit_intercept == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_verbose = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 10)); if (unlikely((__pyx_v_verbose == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_shuffle = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 11)); if (unlikely((__pyx_v_shuffle == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_seed = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 12)); if (unlikely((__pyx_v_seed == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_weight_pos = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 13)); if (unlikely((__pyx_v_weight_pos == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_weight_neg = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 14)); if (unlikely((__pyx_v_weight_neg == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_sample_weight = ((PyArrayObject *)PyTuple_GET_ITEM(__pyx_args, 15)); + __pyx_v_learning_rate = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 16)); if (unlikely((__pyx_v_learning_rate == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_eta0 = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 17)); if (unlikely((__pyx_v_eta0 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_power_t = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 18)); if (unlikely((__pyx_v_power_t == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -5141,30 +4929,12 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * return NULL; __pyx_L4_argument_unpacking_done:; __Pyx_INCREF((PyObject *)__pyx_v_w); - __pyx_pybuffer_index.pybuffer.buf = NULL; - __pyx_pybuffer_index.refcount = 0; - __pyx_pybuffernd_index.data = NULL; - __pyx_pybuffernd_index.rcbuffer = &__pyx_pybuffer_index; - __pyx_pybuffer_q.pybuffer.buf = NULL; - __pyx_pybuffer_q.refcount = 0; - __pyx_pybuffernd_q.data = NULL; - __pyx_pybuffernd_q.rcbuffer = &__pyx_pybuffer_q; - __pyx_pybuffer_w.pybuffer.buf = NULL; - __pyx_pybuffer_w.refcount = 0; - __pyx_pybuffernd_w.data = NULL; - __pyx_pybuffernd_w.rcbuffer = &__pyx_pybuffer_w; - __pyx_pybuffer_X.pybuffer.buf = NULL; - __pyx_pybuffer_X.refcount = 0; - __pyx_pybuffernd_X.data = NULL; - __pyx_pybuffernd_X.rcbuffer = &__pyx_pybuffer_X; - __pyx_pybuffer_Y.pybuffer.buf = NULL; - __pyx_pybuffer_Y.refcount = 0; - __pyx_pybuffernd_Y.data = NULL; - __pyx_pybuffernd_Y.rcbuffer = &__pyx_pybuffer_Y; - __pyx_pybuffer_sample_weight.pybuffer.buf = NULL; - __pyx_pybuffer_sample_weight.refcount = 0; - __pyx_pybuffernd_sample_weight.data = NULL; - __pyx_pybuffernd_sample_weight.rcbuffer = &__pyx_pybuffer_sample_weight; + __pyx_bstruct_index.buf = NULL; + __pyx_bstruct_q.buf = NULL; + __pyx_bstruct_w.buf = NULL; + __pyx_bstruct_X.buf = NULL; + __pyx_bstruct_Y.buf = NULL; + __pyx_bstruct_sample_weight.buf = NULL; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w), __pyx_ptype_5numpy_ndarray, 1, "w", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), __pyx_ptype_7sklearn_12linear_model_8sgd_fast_LossFunction, 1, "loss", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_5numpy_ndarray, 1, "X", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -5172,24 +4942,28 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sample_weight), __pyx_ptype_5numpy_ndarray, 1, "sample_weight", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;} { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_w.rcbuffer->pybuffer, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_w, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } - __pyx_pybuffernd_w.diminfo[0].strides = __pyx_pybuffernd_w.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_w.diminfo[0].shape = __pyx_pybuffernd_w.rcbuffer->pybuffer.shape[0]; + __pyx_bstride_0_w = __pyx_bstruct_w.strides[0]; + __pyx_bshape_0_w = __pyx_bstruct_w.shape[0]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_X, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } - __pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_X.diminfo[1].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_X.diminfo[1].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[1]; + __pyx_bstride_0_X = __pyx_bstruct_X.strides[0]; __pyx_bstride_1_X = __pyx_bstruct_X.strides[1]; + __pyx_bshape_0_X = __pyx_bstruct_X.shape[0]; __pyx_bshape_1_X = __pyx_bstruct_X.shape[1]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Y.rcbuffer->pybuffer, (PyObject*)__pyx_v_Y, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_Y, (PyObject*)__pyx_v_Y, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } - __pyx_pybuffernd_Y.diminfo[0].strides = __pyx_pybuffernd_Y.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Y.diminfo[0].shape = __pyx_pybuffernd_Y.rcbuffer->pybuffer.shape[0]; + __pyx_bstride_0_Y = __pyx_bstruct_Y.strides[0]; + __pyx_bshape_0_Y = __pyx_bstruct_Y.shape[0]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sample_weight.rcbuffer->pybuffer, (PyObject*)__pyx_v_sample_weight, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_sample_weight, (PyObject*)__pyx_v_sample_weight, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } - __pyx_pybuffernd_sample_weight.diminfo[0].strides = __pyx_pybuffernd_sample_weight.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sample_weight.diminfo[0].shape = __pyx_pybuffernd_sample_weight.rcbuffer->pybuffer.shape[0]; + __pyx_bstride_0_sample_weight = __pyx_bstruct_sample_weight.strides[0]; + __pyx_bshape_0_sample_weight = __pyx_bstruct_sample_weight.shape[0]; /* "sklearn/linear_model/sgd_fast.pyx":286 * @@ -5269,7 +5043,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_1 = PyLong_FromUnsignedLong(__pyx_v_n_samples); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; @@ -5290,7 +5064,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; @@ -5299,10 +5073,11 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_6 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_index.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { - __pyx_v_index = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_index.rcbuffer->pybuffer.buf = NULL; + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_index, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { + __pyx_v_index = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_index.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_pybuffernd_index.diminfo[0].strides = __pyx_pybuffernd_index.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_index.diminfo[0].shape = __pyx_pybuffernd_index.rcbuffer->pybuffer.shape[0]; + } else {__pyx_bstride_0_index = __pyx_bstruct_index.strides[0]; + __pyx_bshape_0_index = __pyx_bstruct_index.shape[0]; } } __pyx_t_6 = 0; @@ -5454,10 +5229,11 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_7 = ((PyArrayObject *)Py_None); { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_q.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { - __pyx_v_q = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_q.rcbuffer->pybuffer.buf = NULL; + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_q, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { + __pyx_v_q = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_q.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_pybuffernd_q.diminfo[0].strides = __pyx_pybuffernd_q.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_q.diminfo[0].shape = __pyx_pybuffernd_q.rcbuffer->pybuffer.shape[0]; + } else {__pyx_bstride_0_q = __pyx_bstruct_q.strides[0]; + __pyx_bshape_0_q = __pyx_bstruct_q.shape[0]; } } __pyx_t_7 = 0; @@ -5498,12 +5274,12 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_5 = PyLong_FromUnsignedLong(__pyx_v_n_features); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_3)); __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; @@ -5517,7 +5293,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__order), ((PyObject *)__pyx_n_s__c)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; @@ -5526,18 +5302,19 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_7 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_q.rcbuffer->pybuffer); - __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_q.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_q); + __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_q, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack); if (unlikely(__pyx_t_9 < 0)) { PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_q.rcbuffer->pybuffer, (PyObject*)__pyx_v_q, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_q, (PyObject*)__pyx_v_q, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12); } } - __pyx_pybuffernd_q.diminfo[0].strides = __pyx_pybuffernd_q.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_q.diminfo[0].shape = __pyx_pybuffernd_q.rcbuffer->pybuffer.shape[0]; + __pyx_bstride_0_q = __pyx_bstruct_q.strides[0]; + __pyx_bshape_0_q = __pyx_bstruct_q.shape[0]; if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_7 = 0; @@ -5562,20 +5339,68 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * * q_data_ptr = <double *> q.data * cdef double u = 0.0 # <<<<<<<<<<<<<< * - * cdef double typw = sqrt(1.0 / sqrt(alpha)) + * if penalty_type == L2: */ __pyx_v_u = 0.0; - /* "sklearn/linear_model/sgd_fast.pyx":328 + /* "sklearn/linear_model/sgd_fast.pyx":330 + * if penalty_type == L2: + * rho = 1.0 + * elif penalty_type == L1: # <<<<<<<<<<<<<< + * rho = 0.0 + * + */ + switch (__pyx_v_penalty_type) { + + /* "sklearn/linear_model/sgd_fast.pyx":328 * cdef double u = 0.0 * + * if penalty_type == L2: # <<<<<<<<<<<<<< + * rho = 1.0 + * elif penalty_type == L1: + */ + case 2: + + /* "sklearn/linear_model/sgd_fast.pyx":329 + * + * if penalty_type == L2: + * rho = 1.0 # <<<<<<<<<<<<<< + * elif penalty_type == L1: + * rho = 0.0 + */ + __pyx_v_rho = 1.0; + break; + + /* "sklearn/linear_model/sgd_fast.pyx":330 + * if penalty_type == L2: + * rho = 1.0 + * elif penalty_type == L1: # <<<<<<<<<<<<<< + * rho = 0.0 + * + */ + case 1: + + /* "sklearn/linear_model/sgd_fast.pyx":331 + * rho = 1.0 + * elif penalty_type == L1: + * rho = 0.0 # <<<<<<<<<<<<<< + * + * cdef double typw = sqrt(1.0 / sqrt(alpha)) + */ + __pyx_v_rho = 0.0; + break; + } + + /* "sklearn/linear_model/sgd_fast.pyx":333 + * rho = 0.0 + * * cdef double typw = sqrt(1.0 / sqrt(alpha)) # <<<<<<<<<<<<<< * * if learning_rate == OPTIMAL: */ __pyx_v_typw = sqrt((1.0 / sqrt(__pyx_v_alpha))); - /* "sklearn/linear_model/sgd_fast.pyx":330 + /* "sklearn/linear_model/sgd_fast.pyx":335 * cdef double typw = sqrt(1.0 / sqrt(alpha)) * * if learning_rate == OPTIMAL: # <<<<<<<<<<<<<< @@ -5585,7 +5410,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_8 = (__pyx_v_learning_rate == 2); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast.pyx":332 + /* "sklearn/linear_model/sgd_fast.pyx":337 * if learning_rate == OPTIMAL: * # computing eta0, the initial learning rate * eta0 = typw / max(1.0, loss.dloss(-typw, 1.0)) # <<<<<<<<<<<<<< @@ -5597,7 +5422,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * } /*else*/ { - /* "sklearn/linear_model/sgd_fast.pyx":334 + /* "sklearn/linear_model/sgd_fast.pyx":339 * eta0 = typw / max(1.0, loss.dloss(-typw, 1.0)) * else: * eta = eta0 # <<<<<<<<<<<<<< @@ -5608,7 +5433,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * } __pyx_L7:; - /* "sklearn/linear_model/sgd_fast.pyx":336 + /* "sklearn/linear_model/sgd_fast.pyx":341 * eta = eta0 * * if learning_rate == OPTIMAL: # <<<<<<<<<<<<<< @@ -5618,7 +5443,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_8 = (__pyx_v_learning_rate == 2); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast.pyx":338 + /* "sklearn/linear_model/sgd_fast.pyx":343 * if learning_rate == OPTIMAL: * # initialize t such that eta at first example equals eta0 * t = 1.0 / (eta0 * alpha) # <<<<<<<<<<<<<< @@ -5630,7 +5455,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * } /*else*/ { - /* "sklearn/linear_model/sgd_fast.pyx":340 + /* "sklearn/linear_model/sgd_fast.pyx":345 * t = 1.0 / (eta0 * alpha) * else: * t = 1.0 # <<<<<<<<<<<<<< @@ -5641,22 +5466,22 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * } __pyx_L8:; - /* "sklearn/linear_model/sgd_fast.pyx":342 + /* "sklearn/linear_model/sgd_fast.pyx":347 * t = 1.0 * * t_start = time() # <<<<<<<<<<<<<< * for epoch in xrange(n_iter): * if verbose > 0: */ - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__time); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__time); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_t_start = __pyx_t_3; __pyx_t_3 = 0; - /* "sklearn/linear_model/sgd_fast.pyx":343 + /* "sklearn/linear_model/sgd_fast.pyx":348 * * t_start = time() * for epoch in xrange(n_iter): # <<<<<<<<<<<<<< @@ -5667,7 +5492,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_9; __pyx_t_13+=1) { __pyx_v_epoch = __pyx_t_13; - /* "sklearn/linear_model/sgd_fast.pyx":344 + /* "sklearn/linear_model/sgd_fast.pyx":349 * t_start = time() * for epoch in xrange(n_iter): * if verbose > 0: # <<<<<<<<<<<<<< @@ -5677,25 +5502,25 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_8 = (__pyx_v_verbose > 0); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast.pyx":345 + /* "sklearn/linear_model/sgd_fast.pyx":350 * for epoch in xrange(n_iter): * if verbose > 0: * print("-- Epoch %d" % (epoch + 1)) # <<<<<<<<<<<<<< * if shuffle: * np.random.RandomState(seed).shuffle(index) */ - __pyx_t_3 = PyInt_FromLong((__pyx_v_epoch + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyInt_FromLong((__pyx_v_epoch + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_1), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_1), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; goto __pyx_L11; } __pyx_L11:; - /* "sklearn/linear_model/sgd_fast.pyx":346 + /* "sklearn/linear_model/sgd_fast.pyx":351 * if verbose > 0: * print("-- Epoch %d" % (epoch + 1)) * if shuffle: # <<<<<<<<<<<<<< @@ -5704,41 +5529,41 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ if (__pyx_v_shuffle) { - /* "sklearn/linear_model/sgd_fast.pyx":347 + /* "sklearn/linear_model/sgd_fast.pyx":352 * print("-- Epoch %d" % (epoch + 1)) * if shuffle: * np.random.RandomState(seed).shuffle(index) # <<<<<<<<<<<<<< * for i in xrange(n_samples): * sample_idx = index_data_ptr[i] */ - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__random); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__random); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__RandomState); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__RandomState); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyInt_FromLong(__pyx_v_seed); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyInt_FromLong(__pyx_v_seed); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; - __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__shuffle); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__shuffle); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_v_index)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_index)); __Pyx_GIVEREF(((PyObject *)__pyx_v_index)); - __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; @@ -5747,7 +5572,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * } __pyx_L12:; - /* "sklearn/linear_model/sgd_fast.pyx":348 + /* "sklearn/linear_model/sgd_fast.pyx":353 * if shuffle: * np.random.RandomState(seed).shuffle(index) * for i in xrange(n_samples): # <<<<<<<<<<<<<< @@ -5758,7 +5583,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) { __pyx_v_i = __pyx_t_15; - /* "sklearn/linear_model/sgd_fast.pyx":349 + /* "sklearn/linear_model/sgd_fast.pyx":354 * np.random.RandomState(seed).shuffle(index) * for i in xrange(n_samples): * sample_idx = index_data_ptr[i] # <<<<<<<<<<<<<< @@ -5767,7 +5592,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ __pyx_v_sample_idx = (__pyx_v_index_data_ptr[__pyx_v_i]); - /* "sklearn/linear_model/sgd_fast.pyx":352 + /* "sklearn/linear_model/sgd_fast.pyx":357 * * # row offset in elem * offset = sample_idx * stride # <<<<<<<<<<<<<< @@ -5776,7 +5601,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ __pyx_v_offset = (__pyx_v_sample_idx * __pyx_v_stride); - /* "sklearn/linear_model/sgd_fast.pyx":353 + /* "sklearn/linear_model/sgd_fast.pyx":358 * # row offset in elem * offset = sample_idx * stride * y = Y_data_ptr[sample_idx] # <<<<<<<<<<<<<< @@ -5785,7 +5610,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ __pyx_v_y = (__pyx_v_Y_data_ptr[__pyx_v_sample_idx]); - /* "sklearn/linear_model/sgd_fast.pyx":356 + /* "sklearn/linear_model/sgd_fast.pyx":361 * if learning_rate == OPTIMAL: * eta = 1.0 / (alpha * t) * elif learning_rate == INVSCALING: # <<<<<<<<<<<<<< @@ -5794,7 +5619,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ switch (__pyx_v_learning_rate) { - /* "sklearn/linear_model/sgd_fast.pyx":354 + /* "sklearn/linear_model/sgd_fast.pyx":359 * offset = sample_idx * stride * y = Y_data_ptr[sample_idx] * if learning_rate == OPTIMAL: # <<<<<<<<<<<<<< @@ -5803,7 +5628,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ case 2: - /* "sklearn/linear_model/sgd_fast.pyx":355 + /* "sklearn/linear_model/sgd_fast.pyx":360 * y = Y_data_ptr[sample_idx] * if learning_rate == OPTIMAL: * eta = 1.0 / (alpha * t) # <<<<<<<<<<<<<< @@ -5813,7 +5638,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_v_eta = (1.0 / (__pyx_v_alpha * __pyx_v_t)); break; - /* "sklearn/linear_model/sgd_fast.pyx":356 + /* "sklearn/linear_model/sgd_fast.pyx":361 * if learning_rate == OPTIMAL: * eta = 1.0 / (alpha * t) * elif learning_rate == INVSCALING: # <<<<<<<<<<<<<< @@ -5822,7 +5647,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ case 3: - /* "sklearn/linear_model/sgd_fast.pyx":357 + /* "sklearn/linear_model/sgd_fast.pyx":362 * eta = 1.0 / (alpha * t) * elif learning_rate == INVSCALING: * eta = eta0 / pow(t, power_t) # <<<<<<<<<<<<<< @@ -5833,7 +5658,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * break; } - /* "sklearn/linear_model/sgd_fast.pyx":359 + /* "sklearn/linear_model/sgd_fast.pyx":364 * eta = eta0 / pow(t, power_t) * p = (dot(w_data_ptr, X_data_ptr, offset, n_features) * wscale * ) + intercept # <<<<<<<<<<<<<< @@ -5842,7 +5667,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ __pyx_v_p = ((__pyx_f_7sklearn_12linear_model_8sgd_fast_dot(__pyx_v_w_data_ptr, __pyx_v_X_data_ptr, __pyx_v_offset, __pyx_v_n_features) * __pyx_v_wscale) + __pyx_v_intercept); - /* "sklearn/linear_model/sgd_fast.pyx":360 + /* "sklearn/linear_model/sgd_fast.pyx":365 * p = (dot(w_data_ptr, X_data_ptr, offset, n_features) * wscale * ) + intercept * sumloss += loss.loss(p, y) # <<<<<<<<<<<<<< @@ -5851,7 +5676,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ __pyx_v_sumloss = (__pyx_v_sumloss + ((struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction *)__pyx_v_loss->__pyx_vtab)->loss(__pyx_v_loss, __pyx_v_p, __pyx_v_y, 0)); - /* "sklearn/linear_model/sgd_fast.pyx":361 + /* "sklearn/linear_model/sgd_fast.pyx":366 * ) + intercept * sumloss += loss.loss(p, y) * if y > 0: # <<<<<<<<<<<<<< @@ -5861,7 +5686,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_8 = (__pyx_v_y > 0.0); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast.pyx":362 + /* "sklearn/linear_model/sgd_fast.pyx":367 * sumloss += loss.loss(p, y) * if y > 0: * class_weight = weight_pos # <<<<<<<<<<<<<< @@ -5873,7 +5698,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * } /*else*/ { - /* "sklearn/linear_model/sgd_fast.pyx":364 + /* "sklearn/linear_model/sgd_fast.pyx":369 * class_weight = weight_pos * else: * class_weight = weight_neg # <<<<<<<<<<<<<< @@ -5884,7 +5709,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * } __pyx_L15:; - /* "sklearn/linear_model/sgd_fast.pyx":366 + /* "sklearn/linear_model/sgd_fast.pyx":371 * class_weight = weight_neg * update = eta * loss.dloss(p, y) * class_weight * \ * sample_weight_data[sample_idx] # <<<<<<<<<<<<<< @@ -5893,7 +5718,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ __pyx_v_update = (((__pyx_v_eta * ((struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction *)__pyx_v_loss->__pyx_vtab)->dloss(__pyx_v_loss, __pyx_v_p, __pyx_v_y, 0)) * __pyx_v_class_weight) * (__pyx_v_sample_weight_data[__pyx_v_sample_idx])); - /* "sklearn/linear_model/sgd_fast.pyx":367 + /* "sklearn/linear_model/sgd_fast.pyx":372 * update = eta * loss.dloss(p, y) * class_weight * \ * sample_weight_data[sample_idx] * if update != 0.0: # <<<<<<<<<<<<<< @@ -5903,7 +5728,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_8 = (__pyx_v_update != 0.0); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast.pyx":368 + /* "sklearn/linear_model/sgd_fast.pyx":373 * sample_weight_data[sample_idx] * if update != 0.0: * add(w_data_ptr, wscale, X_data_ptr, offset, n_features, -update) # <<<<<<<<<<<<<< @@ -5912,7 +5737,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ __pyx_f_7sklearn_12linear_model_8sgd_fast_add(__pyx_v_w_data_ptr, __pyx_v_wscale, __pyx_v_X_data_ptr, __pyx_v_offset, __pyx_v_n_features, (-__pyx_v_update)); - /* "sklearn/linear_model/sgd_fast.pyx":369 + /* "sklearn/linear_model/sgd_fast.pyx":374 * if update != 0.0: * add(w_data_ptr, wscale, X_data_ptr, offset, n_features, -update) * if fit_intercept == 1: # <<<<<<<<<<<<<< @@ -5922,7 +5747,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_8 = (__pyx_v_fit_intercept == 1); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast.pyx":370 + /* "sklearn/linear_model/sgd_fast.pyx":375 * add(w_data_ptr, wscale, X_data_ptr, offset, n_features, -update) * if fit_intercept == 1: * intercept -= update # <<<<<<<<<<<<<< @@ -5937,7 +5762,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * } __pyx_L16:; - /* "sklearn/linear_model/sgd_fast.pyx":371 + /* "sklearn/linear_model/sgd_fast.pyx":376 * if fit_intercept == 1: * intercept -= update * if penalty_type != L1: # <<<<<<<<<<<<<< @@ -5947,7 +5772,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_8 = (__pyx_v_penalty_type != 1); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast.pyx":372 + /* "sklearn/linear_model/sgd_fast.pyx":377 * intercept -= update * if penalty_type != L1: * wscale *= (1.0 - (rho * eta * alpha)) # <<<<<<<<<<<<<< @@ -5956,7 +5781,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ __pyx_v_wscale = (__pyx_v_wscale * (1.0 - ((__pyx_v_rho * __pyx_v_eta) * __pyx_v_alpha))); - /* "sklearn/linear_model/sgd_fast.pyx":373 + /* "sklearn/linear_model/sgd_fast.pyx":378 * if penalty_type != L1: * wscale *= (1.0 - (rho * eta * alpha)) * if wscale < 1e-9: # <<<<<<<<<<<<<< @@ -5966,42 +5791,43 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_8 = (__pyx_v_wscale < 1e-9); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast.pyx":374 + /* "sklearn/linear_model/sgd_fast.pyx":379 * wscale *= (1.0 - (rho * eta * alpha)) * if wscale < 1e-9: * w *= wscale # <<<<<<<<<<<<<< * wscale = 1.0 * if penalty_type == L1 or penalty_type == ELASTICNET: */ - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyNumber_InPlaceMultiply(((PyObject *)__pyx_v_w), __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyNumber_InPlaceMultiply(((PyObject *)__pyx_v_w), __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_16 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_w.rcbuffer->pybuffer); - __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_w.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_w); + __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_w, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_w.rcbuffer->pybuffer, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_w, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10); } } - __pyx_pybuffernd_w.diminfo[0].strides = __pyx_pybuffernd_w.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_w.diminfo[0].shape = __pyx_pybuffernd_w.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_bstride_0_w = __pyx_bstruct_w.strides[0]; + __pyx_bshape_0_w = __pyx_bstruct_w.shape[0]; + if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_16 = 0; __Pyx_DECREF(((PyObject *)__pyx_v_w)); __pyx_v_w = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; - /* "sklearn/linear_model/sgd_fast.pyx":375 + /* "sklearn/linear_model/sgd_fast.pyx":380 * if wscale < 1e-9: * w *= wscale * wscale = 1.0 # <<<<<<<<<<<<<< @@ -6016,7 +5842,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * } __pyx_L18:; - /* "sklearn/linear_model/sgd_fast.pyx":376 + /* "sklearn/linear_model/sgd_fast.pyx":381 * w *= wscale * wscale = 1.0 * if penalty_type == L1 or penalty_type == ELASTICNET: # <<<<<<<<<<<<<< @@ -6027,7 +5853,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * case 1: case 3: - /* "sklearn/linear_model/sgd_fast.pyx":377 + /* "sklearn/linear_model/sgd_fast.pyx":382 * wscale = 1.0 * if penalty_type == L1 or penalty_type == ELASTICNET: * u += ((1.0 - rho) * eta * alpha) # <<<<<<<<<<<<<< @@ -6036,7 +5862,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ __pyx_v_u = (__pyx_v_u + (((1.0 - __pyx_v_rho) * __pyx_v_eta) * __pyx_v_alpha)); - /* "sklearn/linear_model/sgd_fast.pyx":378 + /* "sklearn/linear_model/sgd_fast.pyx":383 * if penalty_type == L1 or penalty_type == ELASTICNET: * u += ((1.0 - rho) * eta * alpha) * l1penalty(w_data_ptr, wscale, q_data_ptr, n_features, u) # <<<<<<<<<<<<<< @@ -6047,7 +5873,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * break; } - /* "sklearn/linear_model/sgd_fast.pyx":379 + /* "sklearn/linear_model/sgd_fast.pyx":384 * u += ((1.0 - rho) * eta * alpha) * l1penalty(w_data_ptr, wscale, q_data_ptr, n_features, u) * t += 1 # <<<<<<<<<<<<<< @@ -6056,7 +5882,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * */ __pyx_v_t = (__pyx_v_t + 1.0); - /* "sklearn/linear_model/sgd_fast.pyx":380 + /* "sklearn/linear_model/sgd_fast.pyx":385 * l1penalty(w_data_ptr, wscale, q_data_ptr, n_features, u) * t += 1 * count += 1 # <<<<<<<<<<<<<< @@ -6066,7 +5892,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_v_count = (__pyx_v_count + 1); } - /* "sklearn/linear_model/sgd_fast.pyx":383 + /* "sklearn/linear_model/sgd_fast.pyx":388 * * # report epoch information * if verbose > 0: # <<<<<<<<<<<<<< @@ -6076,101 +5902,101 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_8 = (__pyx_v_verbose > 0); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast.pyx":384 + /* "sklearn/linear_model/sgd_fast.pyx":389 * # report epoch information * if verbose > 0: * wnorm = sqrt(np.dot(w, w) * wscale * wscale) # <<<<<<<<<<<<<< * print("Norm: %.2f, NNZs: %d, "\ * "Bias: %.6f, T: %d, Avg. loss: %.6f" % (wnorm, */ - __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__dot); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__dot); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_v_w)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_w)); __Pyx_GIVEREF(((PyObject *)__pyx_v_w)); __Pyx_INCREF(((PyObject *)__pyx_v_w)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_w)); __Pyx_GIVEREF(((PyObject *)__pyx_v_w)); - __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_18 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_18 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_18 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_18 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_wnorm = sqrt(__pyx_t_18); - /* "sklearn/linear_model/sgd_fast.pyx":386 + /* "sklearn/linear_model/sgd_fast.pyx":391 * wnorm = sqrt(np.dot(w, w) * wscale * wscale) * print("Norm: %.2f, NNZs: %d, "\ * "Bias: %.6f, T: %d, Avg. loss: %.6f" % (wnorm, # <<<<<<<<<<<<<< * w.nonzero()[0].shape[0], * intercept, count, */ - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_wnorm); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_wnorm); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); - /* "sklearn/linear_model/sgd_fast.pyx":387 + /* "sklearn/linear_model/sgd_fast.pyx":392 * print("Norm: %.2f, NNZs: %d, "\ * "Bias: %.6f, T: %d, Avg. loss: %.6f" % (wnorm, * w.nonzero()[0].shape[0], # <<<<<<<<<<<<<< * intercept, count, * sumloss / count)) */ - __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_w), __pyx_n_s__nonzero); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_w), __pyx_n_s__nonzero); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__shape); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__shape); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "sklearn/linear_model/sgd_fast.pyx":388 + /* "sklearn/linear_model/sgd_fast.pyx":393 * "Bias: %.6f, T: %d, Avg. loss: %.6f" % (wnorm, * w.nonzero()[0].shape[0], * intercept, count, # <<<<<<<<<<<<<< * sumloss / count)) * print("Total training time: %.2f seconds." % (time() - t_start)) */ - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyLong_FromUnsignedLong(__pyx_v_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyLong_FromUnsignedLong(__pyx_v_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - /* "sklearn/linear_model/sgd_fast.pyx":389 + /* "sklearn/linear_model/sgd_fast.pyx":394 * w.nonzero()[0].shape[0], * intercept, count, * sumloss / count)) # <<<<<<<<<<<<<< * print("Total training time: %.2f seconds." % (time() - t_start)) * */ - __pyx_t_2 = PyFloat_FromDouble((__pyx_v_sumloss / __pyx_v_count)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyFloat_FromDouble((__pyx_v_sumloss / __pyx_v_count)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_19 = PyTuple_New(5); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_19 = PyTuple_New(5); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_19)); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_3); @@ -6186,165 +6012,165 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_2), ((PyObject *)__pyx_t_19)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_2), ((PyObject *)__pyx_t_19)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; - if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; - /* "sklearn/linear_model/sgd_fast.pyx":390 + /* "sklearn/linear_model/sgd_fast.pyx":395 * intercept, count, * sumloss / count)) * print("Total training time: %.2f seconds." % (time() - t_start)) # <<<<<<<<<<<<<< * * # floating-point under-/overflow check. */ - __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__time); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__time); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_19 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Subtract(__pyx_t_19, __pyx_v_t_start); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyNumber_Subtract(__pyx_t_19, __pyx_v_t_start); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_3), __pyx_t_2); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_3), __pyx_t_2); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_19)); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_19)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_19)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; goto __pyx_L20; } __pyx_L20:; - /* "sklearn/linear_model/sgd_fast.pyx":393 + /* "sklearn/linear_model/sgd_fast.pyx":398 * * # floating-point under-/overflow check. * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ # <<<<<<<<<<<<<< * or np.isnan(intercept) or np.isinf(intercept): * raise ValueError("floating-point under-/overflow occured.") */ - __pyx_t_19 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_19, __pyx_n_s__any); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyObject_GetAttr(__pyx_t_19, __pyx_n_s__any); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); - __pyx_t_1 = PyObject_GetAttr(__pyx_t_19, __pyx_n_s__isinf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetAttr(__pyx_t_19, __pyx_n_s__isinf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_19)); __Pyx_INCREF(((PyObject *)__pyx_v_w)); PyTuple_SET_ITEM(__pyx_t_19, 0, ((PyObject *)__pyx_v_w)); __Pyx_GIVEREF(((PyObject *)__pyx_v_w)); - __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_19)); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast.pyx":394 + /* "sklearn/linear_model/sgd_fast.pyx":399 * # floating-point under-/overflow check. * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ * or np.isnan(intercept) or np.isinf(intercept): # <<<<<<<<<<<<<< * raise ValueError("floating-point under-/overflow occured.") * */ - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_19 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__any); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__any); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "sklearn/linear_model/sgd_fast.pyx":393 + /* "sklearn/linear_model/sgd_fast.pyx":398 * * # floating-point under-/overflow check. * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ # <<<<<<<<<<<<<< * or np.isnan(intercept) or np.isinf(intercept): * raise ValueError("floating-point under-/overflow occured.") */ - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__isnan); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__isnan); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_INCREF(((PyObject *)__pyx_v_w)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_w)); __Pyx_GIVEREF(((PyObject *)__pyx_v_w)); - __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_Call(__pyx_t_19, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_t_19, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_20 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_20 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_20) { - /* "sklearn/linear_model/sgd_fast.pyx":394 + /* "sklearn/linear_model/sgd_fast.pyx":399 * # floating-point under-/overflow check. * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ * or np.isnan(intercept) or np.isinf(intercept): # <<<<<<<<<<<<<< * raise ValueError("floating-point under-/overflow occured.") * */ - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__isnan); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__isnan); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_19)); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; - __pyx_t_21 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_21 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_21 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_21 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_21) { - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_19 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__isinf); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__isinf); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_Call(__pyx_t_19, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_t_19, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; - __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_22 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_22 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_23 = __pyx_t_22; } else { @@ -6360,59 +6186,60 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * } if (__pyx_t_20) { - /* "sklearn/linear_model/sgd_fast.pyx":395 + /* "sklearn/linear_model/sgd_fast.pyx":400 * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ * or np.isnan(intercept) or np.isinf(intercept): * raise ValueError("floating-point under-/overflow occured.") # <<<<<<<<<<<<<< * * w *= wscale */ - __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L21; } __pyx_L21:; } - /* "sklearn/linear_model/sgd_fast.pyx":397 + /* "sklearn/linear_model/sgd_fast.pyx":402 * raise ValueError("floating-point under-/overflow occured.") * * w *= wscale # <<<<<<<<<<<<<< * return w, intercept * */ - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyNumber_InPlaceMultiply(((PyObject *)__pyx_v_w), __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyNumber_InPlaceMultiply(((PyObject *)__pyx_v_w), __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_16 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_w.rcbuffer->pybuffer); - __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_w.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_w); + __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_w, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack); if (unlikely(__pyx_t_9 < 0)) { PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_w.rcbuffer->pybuffer, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_w, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12); } } - __pyx_pybuffernd_w.diminfo[0].strides = __pyx_pybuffernd_w.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_w.diminfo[0].shape = __pyx_pybuffernd_w.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_bstride_0_w = __pyx_bstruct_w.strides[0]; + __pyx_bshape_0_w = __pyx_bstruct_w.shape[0]; + if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_16 = 0; __Pyx_DECREF(((PyObject *)__pyx_v_w)); __pyx_v_w = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; - /* "sklearn/linear_model/sgd_fast.pyx":398 + /* "sklearn/linear_model/sgd_fast.pyx":403 * * w *= wscale * return w, intercept # <<<<<<<<<<<<<< @@ -6420,10 +6247,10 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_v_w)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_w)); __Pyx_GIVEREF(((PyObject *)__pyx_v_w)); @@ -6445,23 +6272,23 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * __Pyx_XDECREF(__pyx_t_19); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_index.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sample_weight.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_q.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_w.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_X); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_index); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_sample_weight); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_Y); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_q); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_w); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("sklearn.linear_model.sgd_fast.plain_sgd", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_index.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sample_weight.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_q.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_w.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_X); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_index); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_sample_weight); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_Y); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_q); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_w); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_index); __Pyx_XDECREF((PyObject *)__pyx_v_q); @@ -6472,7 +6299,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(PyObject * return __pyx_r; } -/* "sklearn/linear_model/sgd_fast.pyx":401 +/* "sklearn/linear_model/sgd_fast.pyx":406 * * * cdef inline double max(double a, double b): # <<<<<<<<<<<<<< @@ -6486,7 +6313,7 @@ static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_8sgd_fast_max(double double __pyx_t_1; __Pyx_RefNannySetupContext("max"); - /* "sklearn/linear_model/sgd_fast.pyx":402 + /* "sklearn/linear_model/sgd_fast.pyx":407 * * cdef inline double max(double a, double b): * return a if a >= b else b # <<<<<<<<<<<<<< @@ -6507,7 +6334,7 @@ static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_8sgd_fast_max(double return __pyx_r; } -/* "sklearn/linear_model/sgd_fast.pyx":405 +/* "sklearn/linear_model/sgd_fast.pyx":410 * * * cdef inline double min(double a, double b): # <<<<<<<<<<<<<< @@ -6521,7 +6348,7 @@ static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_8sgd_fast_min(double double __pyx_t_1; __Pyx_RefNannySetupContext("min"); - /* "sklearn/linear_model/sgd_fast.pyx":406 + /* "sklearn/linear_model/sgd_fast.pyx":411 * * cdef inline double min(double a, double b): * return a if a <= b else b # <<<<<<<<<<<<<< @@ -6542,7 +6369,7 @@ static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_8sgd_fast_min(double return __pyx_r; } -/* "sklearn/linear_model/sgd_fast.pyx":409 +/* "sklearn/linear_model/sgd_fast.pyx":414 * * * cdef double dot(double *w_data_ptr, double *X_data_ptr, # <<<<<<<<<<<<<< @@ -6559,7 +6386,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_dot(double *__pyx_v_w_da int __pyx_t_2; __Pyx_RefNannySetupContext("dot"); - /* "sklearn/linear_model/sgd_fast.pyx":411 + /* "sklearn/linear_model/sgd_fast.pyx":416 * cdef double dot(double *w_data_ptr, double *X_data_ptr, * unsigned int offset, unsigned int n_features): * cdef double sum = 0.0 # <<<<<<<<<<<<<< @@ -6568,7 +6395,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_dot(double *__pyx_v_w_da */ __pyx_v_sum = 0.0; - /* "sklearn/linear_model/sgd_fast.pyx":413 + /* "sklearn/linear_model/sgd_fast.pyx":418 * cdef double sum = 0.0 * cdef int j * for j in xrange(n_features): # <<<<<<<<<<<<<< @@ -6579,7 +6406,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_dot(double *__pyx_v_w_da for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { __pyx_v_j = __pyx_t_2; - /* "sklearn/linear_model/sgd_fast.pyx":414 + /* "sklearn/linear_model/sgd_fast.pyx":419 * cdef int j * for j in xrange(n_features): * sum += w_data_ptr[j] * X_data_ptr[offset + j] # <<<<<<<<<<<<<< @@ -6589,7 +6416,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_dot(double *__pyx_v_w_da __pyx_v_sum = (__pyx_v_sum + ((__pyx_v_w_data_ptr[__pyx_v_j]) * (__pyx_v_X_data_ptr[(__pyx_v_offset + __pyx_v_j)]))); } - /* "sklearn/linear_model/sgd_fast.pyx":415 + /* "sklearn/linear_model/sgd_fast.pyx":420 * for j in xrange(n_features): * sum += w_data_ptr[j] * X_data_ptr[offset + j] * return sum # <<<<<<<<<<<<<< @@ -6605,7 +6432,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_dot(double *__pyx_v_w_da return __pyx_r; } -/* "sklearn/linear_model/sgd_fast.pyx":418 +/* "sklearn/linear_model/sgd_fast.pyx":423 * * * cdef double add(double *w_data_ptr, double wscale, double *X_data_ptr, # <<<<<<<<<<<<<< @@ -6625,7 +6452,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_add(double *__pyx_v_w_da unsigned int __pyx_t_3; __Pyx_RefNannySetupContext("add"); - /* "sklearn/linear_model/sgd_fast.pyx":423 + /* "sklearn/linear_model/sgd_fast.pyx":428 * cdef unsigned j * cdef double val * cdef double innerprod = 0.0 # <<<<<<<<<<<<<< @@ -6634,7 +6461,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_add(double *__pyx_v_w_da */ __pyx_v_innerprod = 0.0; - /* "sklearn/linear_model/sgd_fast.pyx":424 + /* "sklearn/linear_model/sgd_fast.pyx":429 * cdef double val * cdef double innerprod = 0.0 * cdef double xsqnorm = 0.0 # <<<<<<<<<<<<<< @@ -6643,7 +6470,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_add(double *__pyx_v_w_da */ __pyx_v_xsqnorm = 0.0; - /* "sklearn/linear_model/sgd_fast.pyx":425 + /* "sklearn/linear_model/sgd_fast.pyx":430 * cdef double innerprod = 0.0 * cdef double xsqnorm = 0.0 * for j in xrange(n_features): # <<<<<<<<<<<<<< @@ -6654,7 +6481,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_add(double *__pyx_v_w_da for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { __pyx_v_j = __pyx_t_2; - /* "sklearn/linear_model/sgd_fast.pyx":426 + /* "sklearn/linear_model/sgd_fast.pyx":431 * cdef double xsqnorm = 0.0 * for j in xrange(n_features): * val = X_data_ptr[offset + j] # <<<<<<<<<<<<<< @@ -6663,7 +6490,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_add(double *__pyx_v_w_da */ __pyx_v_val = (__pyx_v_X_data_ptr[(__pyx_v_offset + __pyx_v_j)]); - /* "sklearn/linear_model/sgd_fast.pyx":427 + /* "sklearn/linear_model/sgd_fast.pyx":432 * for j in xrange(n_features): * val = X_data_ptr[offset + j] * innerprod += (w_data_ptr[j] * val) # <<<<<<<<<<<<<< @@ -6672,7 +6499,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_add(double *__pyx_v_w_da */ __pyx_v_innerprod = (__pyx_v_innerprod + ((__pyx_v_w_data_ptr[__pyx_v_j]) * __pyx_v_val)); - /* "sklearn/linear_model/sgd_fast.pyx":428 + /* "sklearn/linear_model/sgd_fast.pyx":433 * val = X_data_ptr[offset + j] * innerprod += (w_data_ptr[j] * val) * xsqnorm += (val * val) # <<<<<<<<<<<<<< @@ -6681,7 +6508,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_add(double *__pyx_v_w_da */ __pyx_v_xsqnorm = (__pyx_v_xsqnorm + (__pyx_v_val * __pyx_v_val)); - /* "sklearn/linear_model/sgd_fast.pyx":429 + /* "sklearn/linear_model/sgd_fast.pyx":434 * innerprod += (w_data_ptr[j] * val) * xsqnorm += (val * val) * w_data_ptr[j] += val * (c / wscale) # <<<<<<<<<<<<<< @@ -6692,7 +6519,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_add(double *__pyx_v_w_da (__pyx_v_w_data_ptr[__pyx_t_3]) = ((__pyx_v_w_data_ptr[__pyx_t_3]) + (__pyx_v_val * (__pyx_v_c / __pyx_v_wscale))); } - /* "sklearn/linear_model/sgd_fast.pyx":432 + /* "sklearn/linear_model/sgd_fast.pyx":437 * * # TODO this is needed for PEGASOS only * return (xsqnorm * c * c) + (2.0 * innerprod * wscale * c) # <<<<<<<<<<<<<< @@ -6708,7 +6535,7 @@ static double __pyx_f_7sklearn_12linear_model_8sgd_fast_add(double *__pyx_v_w_da return __pyx_r; } -/* "sklearn/linear_model/sgd_fast.pyx":435 +/* "sklearn/linear_model/sgd_fast.pyx":440 * * * cdef void l1penalty(double *w_data_ptr, double wscale, double *q_data_ptr, # <<<<<<<<<<<<<< @@ -6726,7 +6553,7 @@ static void __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty(double *__pyx_v_ unsigned int __pyx_t_4; __Pyx_RefNannySetupContext("l1penalty"); - /* "sklearn/linear_model/sgd_fast.pyx":445 + /* "sklearn/linear_model/sgd_fast.pyx":450 * Empirical results look better this way... * """ * cdef double z = 0.0 # <<<<<<<<<<<<<< @@ -6735,7 +6562,7 @@ static void __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty(double *__pyx_v_ */ __pyx_v_z = 0.0; - /* "sklearn/linear_model/sgd_fast.pyx":446 + /* "sklearn/linear_model/sgd_fast.pyx":451 * """ * cdef double z = 0.0 * cdef unsigned j = 0 # <<<<<<<<<<<<<< @@ -6744,7 +6571,7 @@ static void __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty(double *__pyx_v_ */ __pyx_v_j = 0; - /* "sklearn/linear_model/sgd_fast.pyx":447 + /* "sklearn/linear_model/sgd_fast.pyx":452 * cdef double z = 0.0 * cdef unsigned j = 0 * for j in xrange(n_features): # <<<<<<<<<<<<<< @@ -6755,7 +6582,7 @@ static void __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty(double *__pyx_v_ for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { __pyx_v_j = __pyx_t_2; - /* "sklearn/linear_model/sgd_fast.pyx":448 + /* "sklearn/linear_model/sgd_fast.pyx":453 * cdef unsigned j = 0 * for j in xrange(n_features): * z = w_data_ptr[j] # <<<<<<<<<<<<<< @@ -6764,7 +6591,7 @@ static void __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty(double *__pyx_v_ */ __pyx_v_z = (__pyx_v_w_data_ptr[__pyx_v_j]); - /* "sklearn/linear_model/sgd_fast.pyx":449 + /* "sklearn/linear_model/sgd_fast.pyx":454 * for j in xrange(n_features): * z = w_data_ptr[j] * if (wscale * w_data_ptr[j]) > 0.0: # <<<<<<<<<<<<<< @@ -6774,7 +6601,7 @@ static void __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty(double *__pyx_v_ __pyx_t_3 = ((__pyx_v_wscale * (__pyx_v_w_data_ptr[__pyx_v_j])) > 0.0); if (__pyx_t_3) { - /* "sklearn/linear_model/sgd_fast.pyx":450 + /* "sklearn/linear_model/sgd_fast.pyx":455 * z = w_data_ptr[j] * if (wscale * w_data_ptr[j]) > 0.0: * w_data_ptr[j] = max(0.0, w_data_ptr[j] - ((u + q_data_ptr[j]) # <<<<<<<<<<<<<< @@ -6785,7 +6612,7 @@ static void __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty(double *__pyx_v_ goto __pyx_L5; } - /* "sklearn/linear_model/sgd_fast.pyx":452 + /* "sklearn/linear_model/sgd_fast.pyx":457 * w_data_ptr[j] = max(0.0, w_data_ptr[j] - ((u + q_data_ptr[j]) * / wscale)) * elif (wscale * w_data_ptr[j]) < 0.0: # <<<<<<<<<<<<<< @@ -6795,7 +6622,7 @@ static void __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty(double *__pyx_v_ __pyx_t_3 = ((__pyx_v_wscale * (__pyx_v_w_data_ptr[__pyx_v_j])) < 0.0); if (__pyx_t_3) { - /* "sklearn/linear_model/sgd_fast.pyx":453 + /* "sklearn/linear_model/sgd_fast.pyx":458 * / wscale)) * elif (wscale * w_data_ptr[j]) < 0.0: * w_data_ptr[j] = min(0.0, w_data_ptr[j] + ((u - q_data_ptr[j]) # <<<<<<<<<<<<<< @@ -6807,7 +6634,7 @@ static void __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty(double *__pyx_v_ } __pyx_L5:; - /* "sklearn/linear_model/sgd_fast.pyx":455 + /* "sklearn/linear_model/sgd_fast.pyx":460 * w_data_ptr[j] = min(0.0, w_data_ptr[j] + ((u - q_data_ptr[j]) * / wscale)) * q_data_ptr[j] += (wscale * (w_data_ptr[j] - z)) # <<<<<<<<<<<<<< @@ -7519,7 +7346,7 @@ static CYTHON_UNUSED int __pyx_pf_5numpy_7ndarray___getbuffer__(PyObject *__pyx_ __Pyx_GOTREF(((PyObject *)__pyx_t_8)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_8)); __Pyx_GIVEREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; @@ -8552,7 +8379,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_12), __pyx_v_t); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_5)); __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; @@ -10148,9 +9975,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_kp_u_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 1, 0, 0}, {&__pyx_kp_u_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 1, 0, 0}, {&__pyx_kp_u_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 1, 0, 0}, + {&__pyx_n_s_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 0, 1, 1}, {&__pyx_kp_s_2, __pyx_k_2, sizeof(__pyx_k_2), 0, 0, 1, 0}, - {&__pyx_kp_s_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 0, 1, 0}, - {&__pyx_n_s_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 0, 1, 1}, {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0}, {&__pyx_kp_s_4, __pyx_k_4, sizeof(__pyx_k_4), 0, 0, 1, 0}, {&__pyx_kp_u_6, __pyx_k_6, sizeof(__pyx_k_6), 0, 1, 0, 0}, @@ -10160,73 +9986,47 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s__RuntimeError, __pyx_k__RuntimeError, sizeof(__pyx_k__RuntimeError), 0, 0, 1, 1}, {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1}, {&__pyx_n_s__X, __pyx_k__X, sizeof(__pyx_k__X), 0, 0, 1, 1}, - {&__pyx_n_s__X_data_ptr, __pyx_k__X_data_ptr, sizeof(__pyx_k__X_data_ptr), 0, 0, 1, 1}, {&__pyx_n_s__Y, __pyx_k__Y, sizeof(__pyx_k__Y), 0, 0, 1, 1}, - {&__pyx_n_s__Y_data_ptr, __pyx_k__Y_data_ptr, sizeof(__pyx_k__Y_data_ptr), 0, 0, 1, 1}, {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1}, {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1}, {&__pyx_n_s__alpha, __pyx_k__alpha, sizeof(__pyx_k__alpha), 0, 0, 1, 1}, {&__pyx_n_s__any, __pyx_k__any, sizeof(__pyx_k__any), 0, 0, 1, 1}, {&__pyx_n_s__arange, __pyx_k__arange, sizeof(__pyx_k__arange), 0, 0, 1, 1}, {&__pyx_n_s__c, __pyx_k__c, sizeof(__pyx_k__c), 0, 0, 1, 1}, - {&__pyx_n_s__class_weight, __pyx_k__class_weight, sizeof(__pyx_k__class_weight), 0, 0, 1, 1}, - {&__pyx_n_s__count, __pyx_k__count, sizeof(__pyx_k__count), 0, 0, 1, 1}, {&__pyx_n_s__dloss, __pyx_k__dloss, sizeof(__pyx_k__dloss), 0, 0, 1, 1}, {&__pyx_n_s__dot, __pyx_k__dot, sizeof(__pyx_k__dot), 0, 0, 1, 1}, {&__pyx_n_s__dtype, __pyx_k__dtype, sizeof(__pyx_k__dtype), 0, 0, 1, 1}, - {&__pyx_n_s__epoch, __pyx_k__epoch, sizeof(__pyx_k__epoch), 0, 0, 1, 1}, - {&__pyx_n_s__eta, __pyx_k__eta, sizeof(__pyx_k__eta), 0, 0, 1, 1}, {&__pyx_n_s__eta0, __pyx_k__eta0, sizeof(__pyx_k__eta0), 0, 0, 1, 1}, {&__pyx_n_s__fit_intercept, __pyx_k__fit_intercept, sizeof(__pyx_k__fit_intercept), 0, 0, 1, 1}, {&__pyx_n_s__float64, __pyx_k__float64, sizeof(__pyx_k__float64), 0, 0, 1, 1}, - {&__pyx_n_s__i, __pyx_k__i, sizeof(__pyx_k__i), 0, 0, 1, 1}, - {&__pyx_n_s__index, __pyx_k__index, sizeof(__pyx_k__index), 0, 0, 1, 1}, - {&__pyx_n_s__index_data_ptr, __pyx_k__index_data_ptr, sizeof(__pyx_k__index_data_ptr), 0, 0, 1, 1}, {&__pyx_n_s__int32, __pyx_k__int32, sizeof(__pyx_k__int32), 0, 0, 1, 1}, {&__pyx_n_s__intercept, __pyx_k__intercept, sizeof(__pyx_k__intercept), 0, 0, 1, 1}, {&__pyx_n_s__isinf, __pyx_k__isinf, sizeof(__pyx_k__isinf), 0, 0, 1, 1}, {&__pyx_n_s__isnan, __pyx_k__isnan, sizeof(__pyx_k__isnan), 0, 0, 1, 1}, {&__pyx_n_s__learning_rate, __pyx_k__learning_rate, sizeof(__pyx_k__learning_rate), 0, 0, 1, 1}, {&__pyx_n_s__loss, __pyx_k__loss, sizeof(__pyx_k__loss), 0, 0, 1, 1}, - {&__pyx_n_s__n_features, __pyx_k__n_features, sizeof(__pyx_k__n_features), 0, 0, 1, 1}, {&__pyx_n_s__n_iter, __pyx_k__n_iter, sizeof(__pyx_k__n_iter), 0, 0, 1, 1}, - {&__pyx_n_s__n_samples, __pyx_k__n_samples, sizeof(__pyx_k__n_samples), 0, 0, 1, 1}, {&__pyx_n_s__nonzero, __pyx_k__nonzero, sizeof(__pyx_k__nonzero), 0, 0, 1, 1}, {&__pyx_n_s__np, __pyx_k__np, sizeof(__pyx_k__np), 0, 0, 1, 1}, {&__pyx_n_s__numpy, __pyx_k__numpy, sizeof(__pyx_k__numpy), 0, 0, 1, 1}, - {&__pyx_n_s__offset, __pyx_k__offset, sizeof(__pyx_k__offset), 0, 0, 1, 1}, {&__pyx_n_s__order, __pyx_k__order, sizeof(__pyx_k__order), 0, 0, 1, 1}, {&__pyx_n_s__p, __pyx_k__p, sizeof(__pyx_k__p), 0, 0, 1, 1}, {&__pyx_n_s__penalty_type, __pyx_k__penalty_type, sizeof(__pyx_k__penalty_type), 0, 0, 1, 1}, {&__pyx_n_s__plain_sgd, __pyx_k__plain_sgd, sizeof(__pyx_k__plain_sgd), 0, 0, 1, 1}, {&__pyx_n_s__power_t, __pyx_k__power_t, sizeof(__pyx_k__power_t), 0, 0, 1, 1}, - {&__pyx_n_s__q, __pyx_k__q, sizeof(__pyx_k__q), 0, 0, 1, 1}, - {&__pyx_n_s__q_data_ptr, __pyx_k__q_data_ptr, sizeof(__pyx_k__q_data_ptr), 0, 0, 1, 1}, {&__pyx_n_s__random, __pyx_k__random, sizeof(__pyx_k__random), 0, 0, 1, 1}, {&__pyx_n_s__range, __pyx_k__range, sizeof(__pyx_k__range), 0, 0, 1, 1}, {&__pyx_n_s__rho, __pyx_k__rho, sizeof(__pyx_k__rho), 0, 0, 1, 1}, - {&__pyx_n_s__sample_idx, __pyx_k__sample_idx, sizeof(__pyx_k__sample_idx), 0, 0, 1, 1}, {&__pyx_n_s__sample_weight, __pyx_k__sample_weight, sizeof(__pyx_k__sample_weight), 0, 0, 1, 1}, - {&__pyx_n_s__sample_weight_data, __pyx_k__sample_weight_data, sizeof(__pyx_k__sample_weight_data), 0, 0, 1, 1}, {&__pyx_n_s__seed, __pyx_k__seed, sizeof(__pyx_k__seed), 0, 0, 1, 1}, {&__pyx_n_s__shape, __pyx_k__shape, sizeof(__pyx_k__shape), 0, 0, 1, 1}, {&__pyx_n_s__shuffle, __pyx_k__shuffle, sizeof(__pyx_k__shuffle), 0, 0, 1, 1}, - {&__pyx_n_s__stride, __pyx_k__stride, sizeof(__pyx_k__stride), 0, 0, 1, 1}, - {&__pyx_n_s__sumloss, __pyx_k__sumloss, sizeof(__pyx_k__sumloss), 0, 0, 1, 1}, {&__pyx_n_s__sys, __pyx_k__sys, sizeof(__pyx_k__sys), 0, 0, 1, 1}, - {&__pyx_n_s__t, __pyx_k__t, sizeof(__pyx_k__t), 0, 0, 1, 1}, - {&__pyx_n_s__t_start, __pyx_k__t_start, sizeof(__pyx_k__t_start), 0, 0, 1, 1}, {&__pyx_n_s__time, __pyx_k__time, sizeof(__pyx_k__time), 0, 0, 1, 1}, - {&__pyx_n_s__typw, __pyx_k__typw, sizeof(__pyx_k__typw), 0, 0, 1, 1}, - {&__pyx_n_s__u, __pyx_k__u, sizeof(__pyx_k__u), 0, 0, 1, 1}, - {&__pyx_n_s__update, __pyx_k__update, sizeof(__pyx_k__update), 0, 0, 1, 1}, {&__pyx_n_s__verbose, __pyx_k__verbose, sizeof(__pyx_k__verbose), 0, 0, 1, 1}, {&__pyx_n_s__w, __pyx_k__w, sizeof(__pyx_k__w), 0, 0, 1, 1}, - {&__pyx_n_s__w_data_ptr, __pyx_k__w_data_ptr, sizeof(__pyx_k__w_data_ptr), 0, 0, 1, 1}, {&__pyx_n_s__weight_neg, __pyx_k__weight_neg, sizeof(__pyx_k__weight_neg), 0, 0, 1, 1}, {&__pyx_n_s__weight_pos, __pyx_k__weight_pos, sizeof(__pyx_k__weight_pos), 0, 0, 1, 1}, - {&__pyx_n_s__wnorm, __pyx_k__wnorm, sizeof(__pyx_k__wnorm), 0, 0, 1, 1}, - {&__pyx_n_s__wscale, __pyx_k__wscale, sizeof(__pyx_k__wscale), 0, 0, 1, 1}, {&__pyx_n_s__xrange, __pyx_k__xrange, sizeof(__pyx_k__xrange), 0, 0, 1, 1}, {&__pyx_n_s__y, __pyx_k__y, sizeof(__pyx_k__y), 0, 0, 1, 1}, {&__pyx_n_s__zeros, __pyx_k__zeros, sizeof(__pyx_k__zeros), 0, 0, 1, 1}, @@ -10235,11 +10035,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { static int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_NotImplementedError = __Pyx_GetName(__pyx_b, __pyx_n_s__NotImplementedError); if (!__pyx_builtin_NotImplementedError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #if PY_MAJOR_VERSION >= 3 - __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #else - __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif - __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_RuntimeError = __Pyx_GetName(__pyx_b, __pyx_n_s__RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} return 0; @@ -10251,15 +10051,15 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants"); - /* "sklearn/linear_model/sgd_fast.pyx":395 + /* "sklearn/linear_model/sgd_fast.pyx":400 * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ * or np.isnan(intercept) or np.isinf(intercept): * raise ValueError("floating-point under-/overflow occured.") # <<<<<<<<<<<<<< * * w *= wscale */ - __pyx_k_tuple_5 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_5); + __pyx_k_tuple_5 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_5)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_4)); PyTuple_SET_ITEM(__pyx_k_tuple_5, 0, ((PyObject *)__pyx_kp_s_4)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4)); @@ -10273,7 +10073,7 @@ static int __Pyx_InitCachedConstants(void) { * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_k_tuple_7 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_7); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_7)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_6)); PyTuple_SET_ITEM(__pyx_k_tuple_7, 0, ((PyObject *)__pyx_kp_u_6)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_6)); @@ -10287,7 +10087,7 @@ static int __Pyx_InitCachedConstants(void) { * info.buf = PyArray_DATA(self) */ __pyx_k_tuple_9 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_9)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_9); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_9)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_8)); PyTuple_SET_ITEM(__pyx_k_tuple_9, 0, ((PyObject *)__pyx_kp_u_8)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_8)); @@ -10301,7 +10101,7 @@ static int __Pyx_InitCachedConstants(void) { * elif t == NPY_UBYTE: f = "B" */ __pyx_k_tuple_11 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_11)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_11); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_11)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_10)); PyTuple_SET_ITEM(__pyx_k_tuple_11, 0, ((PyObject *)__pyx_kp_u_10)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_10)); @@ -10315,7 +10115,7 @@ static int __Pyx_InitCachedConstants(void) { * if ((child.byteorder == '>' and little_endian) or */ __pyx_k_tuple_14 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_14)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_14); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_14)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_13)); PyTuple_SET_ITEM(__pyx_k_tuple_14, 0, ((PyObject *)__pyx_kp_u_13)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_13)); @@ -10329,7 +10129,7 @@ static int __Pyx_InitCachedConstants(void) { * # complain instead, BUT: < and > in format strings also imply */ __pyx_k_tuple_15 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_15); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_15)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_10)); PyTuple_SET_ITEM(__pyx_k_tuple_15, 0, ((PyObject *)__pyx_kp_u_10)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_10)); @@ -10343,164 +10143,11 @@ static int __Pyx_InitCachedConstants(void) { * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_k_tuple_17 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_17)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_17); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_17)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_16)); PyTuple_SET_ITEM(__pyx_k_tuple_17, 0, ((PyObject *)__pyx_kp_u_16)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_16)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_17)); - - /* "sklearn/linear_model/sgd_fast.pyx":214 - * @cython.wraparound(False) - * @cython.cdivision(True) - * def plain_sgd(np.ndarray[np.float64_t, ndim=1, mode='c'] w, # <<<<<<<<<<<<<< - * double intercept, - * LossFunction loss, - */ - __pyx_k_tuple_18 = PyTuple_New(47); if (unlikely(!__pyx_k_tuple_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_18); - __Pyx_INCREF(((PyObject *)__pyx_n_s__w)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 0, ((PyObject *)__pyx_n_s__w)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__w)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__intercept)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 1, ((PyObject *)__pyx_n_s__intercept)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__intercept)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__loss)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 2, ((PyObject *)__pyx_n_s__loss)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__loss)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__penalty_type)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 3, ((PyObject *)__pyx_n_s__penalty_type)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__penalty_type)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__alpha)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 4, ((PyObject *)__pyx_n_s__alpha)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__alpha)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__rho)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 5, ((PyObject *)__pyx_n_s__rho)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__rho)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__X)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 6, ((PyObject *)__pyx_n_s__X)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__X)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__Y)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 7, ((PyObject *)__pyx_n_s__Y)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__Y)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__n_iter)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 8, ((PyObject *)__pyx_n_s__n_iter)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__n_iter)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__fit_intercept)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 9, ((PyObject *)__pyx_n_s__fit_intercept)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__fit_intercept)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__verbose)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 10, ((PyObject *)__pyx_n_s__verbose)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__verbose)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__shuffle)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 11, ((PyObject *)__pyx_n_s__shuffle)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__shuffle)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__seed)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 12, ((PyObject *)__pyx_n_s__seed)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__seed)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__weight_pos)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 13, ((PyObject *)__pyx_n_s__weight_pos)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__weight_pos)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__weight_neg)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 14, ((PyObject *)__pyx_n_s__weight_neg)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__weight_neg)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__sample_weight)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 15, ((PyObject *)__pyx_n_s__sample_weight)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__sample_weight)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__learning_rate)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 16, ((PyObject *)__pyx_n_s__learning_rate)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__learning_rate)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__eta0)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 17, ((PyObject *)__pyx_n_s__eta0)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__eta0)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__power_t)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 18, ((PyObject *)__pyx_n_s__power_t)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__power_t)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__n_samples)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 19, ((PyObject *)__pyx_n_s__n_samples)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__n_samples)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__n_features)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 20, ((PyObject *)__pyx_n_s__n_features)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__n_features)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__stride)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 21, ((PyObject *)__pyx_n_s__stride)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__stride)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__w_data_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 22, ((PyObject *)__pyx_n_s__w_data_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__w_data_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__X_data_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 23, ((PyObject *)__pyx_n_s__X_data_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__X_data_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__Y_data_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 24, ((PyObject *)__pyx_n_s__Y_data_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__Y_data_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__sample_weight_data)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 25, ((PyObject *)__pyx_n_s__sample_weight_data)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__sample_weight_data)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__index)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 26, ((PyObject *)__pyx_n_s__index)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__index)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__index_data_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 27, ((PyObject *)__pyx_n_s__index_data_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__index_data_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__offset)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 28, ((PyObject *)__pyx_n_s__offset)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__offset)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__wscale)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 29, ((PyObject *)__pyx_n_s__wscale)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__wscale)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__eta)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 30, ((PyObject *)__pyx_n_s__eta)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__eta)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__p)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 31, ((PyObject *)__pyx_n_s__p)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__p)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__update)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 32, ((PyObject *)__pyx_n_s__update)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__update)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__sumloss)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 33, ((PyObject *)__pyx_n_s__sumloss)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__sumloss)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__wnorm)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 34, ((PyObject *)__pyx_n_s__wnorm)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__wnorm)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__t)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 35, ((PyObject *)__pyx_n_s__t)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__t)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__y)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 36, ((PyObject *)__pyx_n_s__y)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__y)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__class_weight)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 37, ((PyObject *)__pyx_n_s__class_weight)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__class_weight)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__count)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 38, ((PyObject *)__pyx_n_s__count)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__count)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__epoch)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 39, ((PyObject *)__pyx_n_s__epoch)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__epoch)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__i)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 40, ((PyObject *)__pyx_n_s__i)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__sample_idx)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 41, ((PyObject *)__pyx_n_s__sample_idx)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__sample_idx)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__q)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 42, ((PyObject *)__pyx_n_s__q)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__q)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__q_data_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 43, ((PyObject *)__pyx_n_s__q_data_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__q_data_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__u)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 44, ((PyObject *)__pyx_n_s__u)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__u)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__typw)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 45, ((PyObject *)__pyx_n_s__typw)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__typw)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__t_start)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 46, ((PyObject *)__pyx_n_s__t_start)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__t_start)); - __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_18)); - __pyx_k_codeobj_19 = (PyObject*)__Pyx_PyCode_New(19, 0, 47, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_18, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_20, __pyx_n_s__plain_sgd, 214, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -10540,8 +10187,8 @@ PyMODINIT_FUNC PyInit_sgd_fast(void) if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #ifdef __Pyx_CyFunction_USED - if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + #ifdef __pyx_binding_PyCFunctionType_USED + if (__pyx_binding_PyCFunctionType_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ @@ -10688,18 +10335,14 @@ PyMODINIT_FUNC PyInit_sgd_fast(void) * cimport numpy as np */ __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__time)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__time)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__time)); __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__time), ((PyObject *)__pyx_t_1), -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__time); - if (__pyx_t_1 == NULL) { - if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__time); - if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } + __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__time); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__time, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -10712,7 +10355,7 @@ PyMODINIT_FUNC PyInit_sgd_fast(void) * double intercept, * LossFunction loss, */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7sklearn_12linear_model_8sgd_fast_plain_sgd, NULL, __pyx_n_s_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7sklearn_12linear_model_8sgd_fast_plain_sgd, NULL, __pyx_n_s_18); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__plain_sgd, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -11084,11 +10727,22 @@ static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed name, type->tp_name, Py_TYPE(obj)->tp_name); return 0; } + static CYTHON_INLINE int __Pyx_IsLittleEndian(void) { unsigned int n = 1; return *(unsigned char*)(&n) != 0; } +typedef struct { + __Pyx_StructField root; + __Pyx_BufFmt_StackElem* head; + size_t fmt_offset; + size_t new_count, enc_count; + int is_complex; + char enc_type; + char new_packmode; + char enc_packmode; +} __Pyx_BufFmt_Context; static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, @@ -11243,7 +10897,6 @@ static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { } } - static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { if (ctx->head == NULL || ctx->head->field == &ctx->root) { const char* expected; @@ -11463,7 +11116,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha "Does not understand character buffer dtype format string ('%c')", *ts); return NULL; } - ctx->new_count = (size_t)number; + ctx->new_count = (size_t)number; } } } @@ -11477,10 +11130,7 @@ static CYTHON_INLINE void __Pyx_ZeroBuffer(Py_buffer* buf) { buf->suboffsets = __Pyx_minusones; } -static CYTHON_INLINE int __Pyx_GetBufferAndValidate( - Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, - int nd, int cast, __Pyx_BufFmt_StackElem* stack) -{ +static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack) { if (obj == Py_None || obj == NULL) { __Pyx_ZeroBuffer(buf); return 0; @@ -11518,8 +11168,6 @@ static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { __Pyx_ReleaseBuffer(info); } - - static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_Format(PyExc_SystemError, "Missing type object"); @@ -11531,6 +11179,7 @@ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { Py_TYPE(obj)->tp_name, type->tp_name); return 0; } + static void __Pyx_RaiseBufferFallbackError(void) { PyErr_Format(PyExc_ValueError, "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!"); @@ -11569,11 +11218,11 @@ static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); #endif if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pf_5numpy_7ndarray___getbuffer__(obj, view, flags); - else { - PyErr_Format(PyExc_TypeError, "'%100s' does not have the buffer interface", Py_TYPE(obj)->tp_name); + else { + PyErr_Format(PyExc_TypeError, "'%100s' does not have the buffer interface", Py_TYPE(obj)->tp_name); return -1; } - } +} static void __Pyx_ReleaseBuffer(Py_buffer *view) { PyObject* obj = view->obj; @@ -11581,8 +11230,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #if PY_VERSION_HEX >= 0x02060000 if (PyObject_CheckBuffer(obj)) {PyBuffer_Release(view); return;} #endif -if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pf_5numpy_7ndarray_1__releasebuffer__(obj, view); - + if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pf_5numpy_7ndarray_1__releasebuffer__(obj, view); Py_DECREF(obj); view->obj = NULL; } @@ -11638,15 +11286,6 @@ bad: return module; } -static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name) { -#if PY_MAJOR_VERSION < 3 - PyErr_Format(PyExc_ImportError, "cannot import name %.230s", - PyString_AsString(name)); -#else - PyErr_Format(PyExc_ImportError, "cannot import name %S", name); -#endif -} - #if PY_MAJOR_VERSION < 3 static PyObject *__Pyx_GetStdout(void) { PyObject *f = PySys_GetObject((char *)"stdout"); @@ -12492,7 +12131,11 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class py_module = __Pyx_ImportModule(module_name); if (!py_module) goto bad; - py_name = __Pyx_PyIdentifier_FromString(class_name); + #if PY_MAJOR_VERSION < 3 + py_name = PyString_FromString(class_name); + #else + py_name = PyUnicode_FromString(class_name); + #endif if (!py_name) goto bad; result = PyObject_GetAttr(py_module, py_name); @@ -12538,7 +12181,11 @@ static PyObject *__Pyx_ImportModule(const char *name) { PyObject *py_name = 0; PyObject *py_module = 0; - py_name = __Pyx_PyIdentifier_FromString(name); + #if PY_MAJOR_VERSION < 3 + py_name = PyString_FromString(name); + #else + py_name = PyUnicode_FromString(name); + #endif if (!py_name) goto bad; py_module = PyImport_Import(py_name); @@ -12585,9 +12232,11 @@ static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno, if (!py_funcname) goto bad; py_globals = PyModule_GetDict(__pyx_m); if (!py_globals) goto bad; - py_code = __Pyx_PyCode_New( + py_code = PyCode_New( 0, /*int argcount,*/ + #if PY_MAJOR_VERSION >= 3 0, /*int kwonlyargcount,*/ + #endif 0, /*int nlocals,*/ 0, /*int stacksize,*/ 0, /*int flags,*/ diff --git a/sklearn/linear_model/sgd_fast.pyx b/sklearn/linear_model/sgd_fast.pyx index 1c023948e34cc8b94cab6009fba7720ded13d88d..15cc40b0c6133f4efc5d91e2d9323aff16ced1e1 100644 --- a/sklearn/linear_model/sgd_fast.pyx +++ b/sklearn/linear_model/sgd_fast.pyx @@ -325,6 +325,11 @@ def plain_sgd(np.ndarray[np.float64_t, ndim=1, mode='c'] w, q_data_ptr = <double *> q.data cdef double u = 0.0 + if penalty_type == L2: + rho = 1.0 + elif penalty_type == L1: + rho = 0.0 + cdef double typw = sqrt(1.0 / sqrt(alpha)) if learning_rate == OPTIMAL: diff --git a/sklearn/linear_model/sgd_fast_sparse.c b/sklearn/linear_model/sgd_fast_sparse.c index e8c8942806c7fb738b309e8aaf3349445c99deda..5aa0950e3d6b78b012747e8c60de7802b45e6c2f 100644 --- a/sklearn/linear_model/sgd_fast_sparse.c +++ b/sklearn/linear_model/sgd_fast_sparse.c @@ -1,11 +1,9 @@ -/* Generated by Cython 0.15.1+ on Fri Nov 4 21:50:24 2011 */ +/* Generated by Cython 0.15 on Tue Nov 15 20:42:25 2011 */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. -#elif PY_VERSION_HEX < 0x02040000 - #error Cython requires Python 2.4+. #else #include <stddef.h> /* For offsetof */ @@ -36,6 +34,12 @@ #define PY_LONG_LONG LONG_LONG #endif +#if PY_VERSION_HEX < 0x02040000 + #define METH_COEXIST 0 + #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type) + #define PyDict_Contains(d,o) PySequence_Contains(d,o) +#endif + #if PY_VERSION_HEX < 0x02050000 typedef int Py_ssize_t; #define PY_SSIZE_T_MAX INT_MAX @@ -84,14 +88,8 @@ #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" - #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ - PyCode_New(a, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" - #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ - PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #if PY_MAJOR_VERSION >= 3 @@ -103,16 +101,6 @@ #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif -/* new Py3.3 unicode representation (PEP 393) */ -#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_GET_LENGTH) - #define CYTHON_PEP393_ENABLED - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) -#else - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) -#endif - #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject @@ -279,7 +267,7 @@ # else # define CYTHON_UNUSED # endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +# elif defined(__ICC) || defined(__INTEL_COMPILER) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED @@ -816,6 +804,7 @@ struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Log { static struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Log *__pyx_vtabptr_7sklearn_12linear_model_8sgd_fast_Log; + /* "sgd_fast.pxd":48 * cpdef double dloss(self, double p, double y) * @@ -883,9 +872,6 @@ static struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Hinge *__pyx_vt #define __Pyx_XGIVEREF(r) #endif /* CYTHON_REFNANNY */ -#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) -#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) - static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, @@ -898,20 +884,15 @@ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact); /*proto*/ -#define IS_UNSIGNED(type) (((type) -1) > 0) /* Run-time type information about structs used with buffers */ struct __Pyx_StructField_; -#define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) - typedef struct { const char* name; /* for error messages only */ struct __Pyx_StructField_* fields; size_t size; /* sizeof(type) */ char typegroup; /* _R_eal, _C_omplex, Signed _I_nt, _U_nsigned int, _S_truct, _P_ointer, _O_bject */ - char is_unsigned; - int flags; } __Pyx_TypeInfo; typedef struct __Pyx_StructField_ { @@ -925,26 +906,13 @@ typedef struct { size_t parent_offset; } __Pyx_BufFmt_StackElem; -typedef struct { - __Pyx_StructField root; - __Pyx_BufFmt_StackElem* head; - size_t fmt_offset; - size_t new_count, enc_count; - int is_complex; - char enc_type; - char new_packmode; - char enc_packmode; -} __Pyx_BufFmt_Context; - -static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, - __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); +static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); - static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/ -static void __Pyx_RaiseBufferFallbackError(void); /*proto*/ +static void __Pyx_RaiseBufferFallbackError(void); /*proto*/ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { @@ -1002,29 +970,22 @@ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize __Pyx_GetItemInt_Generic(o, to_py_func(i))) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) { - if (PyList_CheckExact(o)) { - Py_ssize_t n = (likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); - if (likely((n >= 0) & (n < PyList_GET_SIZE(o)))) { - PyObject *r = PyList_GET_ITEM(o, n); - Py_INCREF(r); - return r; - } + PyObject *r; + if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) { + r = PyList_GET_ITEM(o, i); + Py_INCREF(r); } - else if (PyTuple_CheckExact(o)) { - Py_ssize_t n = (likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); - if (likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) { - PyObject *r = PyTuple_GET_ITEM(o, n); - Py_INCREF(r); - return r; - } + else if (PyTuple_CheckExact(o) && ((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { + r = PyTuple_GET_ITEM(o, i); + Py_INCREF(r); } - else if (likely(i >= 0)) { - PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; - if (likely(m && m->sq_item)) { - return m->sq_item(o, i); - } + else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0))) { + r = PySequence_GetItem(o, i); } - return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); + else { + r = __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); + } + return r; } static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ @@ -1039,23 +1000,6 @@ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /*proto*/ -/* structs for buffer access */ - -typedef struct { - Py_ssize_t shape, strides, suboffsets; -} __Pyx_Buf_DimInfo; - -typedef struct { - size_t refcount; - Py_buffer pybuffer; -} __Pyx_Buffer; - -typedef struct { - __Pyx_Buffer *rcbuffer; - char *data; - __Pyx_Buf_DimInfo diminfo[32]; -} __Pyx_LocalBuf_ND; - #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); static void __Pyx_ReleaseBuffer(Py_buffer *view); @@ -1064,13 +1008,11 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view); #define __Pyx_ReleaseBuffer PyBuffer_Release #endif -Py_ssize_t __Pyx_zeros[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -Py_ssize_t __Pyx_minusones[] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; +Py_ssize_t __Pyx_zeros[] = {0}; +Py_ssize_t __Pyx_minusones[] = {-1}; static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level); /*proto*/ -static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name); - static int __Pyx_Print(PyObject*, PyObject *, int); /*proto*/ #if PY_MAJOR_VERSION >= 3 static PyObject* __pyx_print = 0; @@ -1250,6 +1192,8 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, cha static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *, PyObject *); /*proto*/ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *); /*proto*/ +/* Module declarations from 'cython.cython.view' */ + /* Module declarations from 'cython' */ /* Module declarations from 'sklearn.linear_model.sgd_fast' */ @@ -1268,8 +1212,8 @@ static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_mi static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_dot(double *, double *, int *, int, int); /*proto*/ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(double *, double, double *, int *, int, int, double); /*proto*/ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double *, double, double *, int *, int, int, double); /*proto*/ -static __Pyx_TypeInfo __Pyx_TypeInfo_double = { "double", NULL, sizeof(double), 'R', 0, 0 }; -static __Pyx_TypeInfo __Pyx_TypeInfo_int = { "int", NULL, sizeof(int), 'I', IS_UNSIGNED(int), 0 }; +static __Pyx_TypeInfo __Pyx_TypeInfo_double = { "double", NULL, sizeof(double), 'R' }; +static __Pyx_TypeInfo __Pyx_TypeInfo_int = { "int", NULL, sizeof(int), 'I' }; #define __Pyx_MODULE_NAME "sklearn.linear_model.sgd_fast_sparse" int __pyx_module_is_main_sklearn__linear_model__sgd_fast_sparse = 0; @@ -1288,8 +1232,7 @@ static char __pyx_k_10[] = "Non-native byte order not supported"; static char __pyx_k_12[] = "unknown dtype code in numpy.pxd (%d)"; static char __pyx_k_13[] = "Format string allocated too short, see comment in numpy.pxd"; static char __pyx_k_16[] = "Format string allocated too short."; -static char __pyx_k_20[] = "/home/lars/src/scikit-learn/sklearn/linear_model/sgd_fast_sparse.pyx"; -static char __pyx_k_21[] = "sklearn.linear_model.sgd_fast_sparse"; +static char __pyx_k_18[] = "sklearn.linear_model.sgd_fast_sparse"; static char __pyx_k__B[] = "B"; static char __pyx_k__H[] = "H"; static char __pyx_k__I[] = "I"; @@ -1305,32 +1248,22 @@ static char __pyx_k__g[] = "g"; static char __pyx_k__h[] = "h"; static char __pyx_k__i[] = "i"; static char __pyx_k__l[] = "l"; -static char __pyx_k__p[] = "p"; static char __pyx_k__q[] = "q"; -static char __pyx_k__t[] = "t"; -static char __pyx_k__u[] = "u"; static char __pyx_k__w[] = "w"; -static char __pyx_k__y[] = "y"; static char __pyx_k__Zd[] = "Zd"; static char __pyx_k__Zf[] = "Zf"; static char __pyx_k__Zg[] = "Zg"; static char __pyx_k__np[] = "np"; static char __pyx_k__any[] = "any"; static char __pyx_k__dot[] = "dot"; -static char __pyx_k__eta[] = "eta"; static char __pyx_k__rho[] = "rho"; static char __pyx_k__sys[] = "sys"; static char __pyx_k__eta0[] = "eta0"; static char __pyx_k__loss[] = "loss"; static char __pyx_k__seed[] = "seed"; static char __pyx_k__time[] = "time"; -static char __pyx_k__typw[] = "typw"; -static char __pyx_k__xnnz[] = "xnnz"; static char __pyx_k__alpha[] = "alpha"; -static char __pyx_k__count[] = "count"; static char __pyx_k__dtype[] = "dtype"; -static char __pyx_k__epoch[] = "epoch"; -static char __pyx_k__index[] = "index"; static char __pyx_k__int32[] = "int32"; static char __pyx_k__isinf[] = "isinf"; static char __pyx_k__isnan[] = "isnan"; @@ -1338,58 +1271,39 @@ static char __pyx_k__numpy[] = "numpy"; static char __pyx_k__order[] = "order"; static char __pyx_k__range[] = "range"; static char __pyx_k__shape[] = "shape"; -static char __pyx_k__wnorm[] = "wnorm"; static char __pyx_k__zeros[] = "zeros"; static char __pyx_k__X_data[] = "X_data"; static char __pyx_k__arange[] = "arange"; static char __pyx_k__n_iter[] = "n_iter"; -static char __pyx_k__offset[] = "offset"; static char __pyx_k__random[] = "random"; -static char __pyx_k__update[] = "update"; -static char __pyx_k__wscale[] = "wscale"; static char __pyx_k__xrange[] = "xrange"; static char __pyx_k__float64[] = "float64"; static char __pyx_k__nonzero[] = "nonzero"; static char __pyx_k__power_t[] = "power_t"; static char __pyx_k__shuffle[] = "shuffle"; -static char __pyx_k__sumloss[] = "sumloss"; -static char __pyx_k__t_start[] = "t_start"; static char __pyx_k__verbose[] = "verbose"; static char __pyx_k__X_indptr[] = "X_indptr"; static char __pyx_k____main__[] = "__main__"; static char __pyx_k____test__[] = "__test__"; static char __pyx_k__X_indices[] = "X_indices"; static char __pyx_k__intercept[] = "intercept"; -static char __pyx_k__n_samples[] = "n_samples"; static char __pyx_k__plain_sgd[] = "plain_sgd"; static char __pyx_k__ValueError[] = "ValueError"; -static char __pyx_k__X_data_ptr[] = "X_data_ptr"; -static char __pyx_k__Y_data_ptr[] = "Y_data_ptr"; -static char __pyx_k__n_features[] = "n_features"; -static char __pyx_k__q_data_ptr[] = "q_data_ptr"; -static char __pyx_k__sample_idx[] = "sample_idx"; -static char __pyx_k__w_data_ptr[] = "w_data_ptr"; static char __pyx_k__weight_neg[] = "weight_neg"; static char __pyx_k__weight_pos[] = "weight_pos"; static char __pyx_k__RandomState[] = "RandomState"; static char __pyx_k__RuntimeError[] = "RuntimeError"; -static char __pyx_k__X_indptr_ptr[] = "X_indptr_ptr"; -static char __pyx_k__class_weight[] = "class_weight"; static char __pyx_k__penalty_type[] = "penalty_type"; -static char __pyx_k__X_indices_ptr[] = "X_indices_ptr"; static char __pyx_k__fit_intercept[] = "fit_intercept"; static char __pyx_k__learning_rate[] = "learning_rate"; static char __pyx_k__sample_weight[] = "sample_weight"; -static char __pyx_k__index_data_ptr[] = "index_data_ptr"; -static char __pyx_k__sample_weight_data[] = "sample_weight_data"; static PyObject *__pyx_kp_s_1; static PyObject *__pyx_kp_u_10; static PyObject *__pyx_kp_u_12; static PyObject *__pyx_kp_u_13; static PyObject *__pyx_kp_u_16; +static PyObject *__pyx_n_s_18; static PyObject *__pyx_kp_s_2; -static PyObject *__pyx_kp_s_20; -static PyObject *__pyx_n_s_21; static PyObject *__pyx_kp_s_3; static PyObject *__pyx_kp_s_4; static PyObject *__pyx_kp_u_6; @@ -1398,78 +1312,48 @@ static PyObject *__pyx_n_s__RandomState; static PyObject *__pyx_n_s__RuntimeError; static PyObject *__pyx_n_s__ValueError; static PyObject *__pyx_n_s__X_data; -static PyObject *__pyx_n_s__X_data_ptr; static PyObject *__pyx_n_s__X_indices; -static PyObject *__pyx_n_s__X_indices_ptr; static PyObject *__pyx_n_s__X_indptr; -static PyObject *__pyx_n_s__X_indptr_ptr; static PyObject *__pyx_n_s__Y; -static PyObject *__pyx_n_s__Y_data_ptr; static PyObject *__pyx_n_s____main__; static PyObject *__pyx_n_s____test__; static PyObject *__pyx_n_s__alpha; static PyObject *__pyx_n_s__any; static PyObject *__pyx_n_s__arange; static PyObject *__pyx_n_s__c; -static PyObject *__pyx_n_s__class_weight; -static PyObject *__pyx_n_s__count; static PyObject *__pyx_n_s__dot; static PyObject *__pyx_n_s__dtype; -static PyObject *__pyx_n_s__epoch; -static PyObject *__pyx_n_s__eta; static PyObject *__pyx_n_s__eta0; static PyObject *__pyx_n_s__fit_intercept; static PyObject *__pyx_n_s__float64; -static PyObject *__pyx_n_s__i; -static PyObject *__pyx_n_s__index; -static PyObject *__pyx_n_s__index_data_ptr; static PyObject *__pyx_n_s__int32; static PyObject *__pyx_n_s__intercept; static PyObject *__pyx_n_s__isinf; static PyObject *__pyx_n_s__isnan; static PyObject *__pyx_n_s__learning_rate; static PyObject *__pyx_n_s__loss; -static PyObject *__pyx_n_s__n_features; static PyObject *__pyx_n_s__n_iter; -static PyObject *__pyx_n_s__n_samples; static PyObject *__pyx_n_s__nonzero; static PyObject *__pyx_n_s__np; static PyObject *__pyx_n_s__numpy; -static PyObject *__pyx_n_s__offset; static PyObject *__pyx_n_s__order; -static PyObject *__pyx_n_s__p; static PyObject *__pyx_n_s__penalty_type; static PyObject *__pyx_n_s__plain_sgd; static PyObject *__pyx_n_s__power_t; -static PyObject *__pyx_n_s__q; -static PyObject *__pyx_n_s__q_data_ptr; static PyObject *__pyx_n_s__random; static PyObject *__pyx_n_s__range; static PyObject *__pyx_n_s__rho; -static PyObject *__pyx_n_s__sample_idx; static PyObject *__pyx_n_s__sample_weight; -static PyObject *__pyx_n_s__sample_weight_data; static PyObject *__pyx_n_s__seed; static PyObject *__pyx_n_s__shape; static PyObject *__pyx_n_s__shuffle; -static PyObject *__pyx_n_s__sumloss; static PyObject *__pyx_n_s__sys; -static PyObject *__pyx_n_s__t; -static PyObject *__pyx_n_s__t_start; static PyObject *__pyx_n_s__time; -static PyObject *__pyx_n_s__typw; -static PyObject *__pyx_n_s__u; -static PyObject *__pyx_n_s__update; static PyObject *__pyx_n_s__verbose; static PyObject *__pyx_n_s__w; -static PyObject *__pyx_n_s__w_data_ptr; static PyObject *__pyx_n_s__weight_neg; static PyObject *__pyx_n_s__weight_pos; -static PyObject *__pyx_n_s__wnorm; -static PyObject *__pyx_n_s__wscale; -static PyObject *__pyx_n_s__xnnz; static PyObject *__pyx_n_s__xrange; -static PyObject *__pyx_n_s__y; static PyObject *__pyx_n_s__zeros; static PyObject *__pyx_int_15; static PyObject *__pyx_k_tuple_5; @@ -1479,8 +1363,6 @@ static PyObject *__pyx_k_tuple_11; static PyObject *__pyx_k_tuple_14; static PyObject *__pyx_k_tuple_15; static PyObject *__pyx_k_tuple_17; -static PyObject *__pyx_k_tuple_18; -static PyObject *__pyx_k_codeobj_19; /* "sklearn/linear_model/sgd_fast_sparse.pyx":34 * @cython.wraparound(False) @@ -1545,22 +1427,30 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py double __pyx_v_u; double __pyx_v_typw; PyObject *__pyx_v_t_start = NULL; - __Pyx_LocalBuf_ND __pyx_pybuffernd_index; - __Pyx_Buffer __pyx_pybuffer_index; - __Pyx_LocalBuf_ND __pyx_pybuffernd_X_data; - __Pyx_Buffer __pyx_pybuffer_X_data; - __Pyx_LocalBuf_ND __pyx_pybuffernd_sample_weight; - __Pyx_Buffer __pyx_pybuffer_sample_weight; - __Pyx_LocalBuf_ND __pyx_pybuffernd_X_indices; - __Pyx_Buffer __pyx_pybuffer_X_indices; - __Pyx_LocalBuf_ND __pyx_pybuffernd_X_indptr; - __Pyx_Buffer __pyx_pybuffer_X_indptr; - __Pyx_LocalBuf_ND __pyx_pybuffernd_Y; - __Pyx_Buffer __pyx_pybuffer_Y; - __Pyx_LocalBuf_ND __pyx_pybuffernd_q; - __Pyx_Buffer __pyx_pybuffer_q; - __Pyx_LocalBuf_ND __pyx_pybuffernd_w; - __Pyx_Buffer __pyx_pybuffer_w; + Py_buffer __pyx_bstruct_index; + Py_ssize_t __pyx_bstride_0_index = 0; + Py_ssize_t __pyx_bshape_0_index = 0; + Py_buffer __pyx_bstruct_X_data; + Py_ssize_t __pyx_bstride_0_X_data = 0; + Py_ssize_t __pyx_bshape_0_X_data = 0; + Py_buffer __pyx_bstruct_sample_weight; + Py_ssize_t __pyx_bstride_0_sample_weight = 0; + Py_ssize_t __pyx_bshape_0_sample_weight = 0; + Py_buffer __pyx_bstruct_X_indices; + Py_ssize_t __pyx_bstride_0_X_indices = 0; + Py_ssize_t __pyx_bshape_0_X_indices = 0; + Py_buffer __pyx_bstruct_X_indptr; + Py_ssize_t __pyx_bstride_0_X_indptr = 0; + Py_ssize_t __pyx_bshape_0_X_indptr = 0; + Py_buffer __pyx_bstruct_Y; + Py_ssize_t __pyx_bstride_0_Y = 0; + Py_ssize_t __pyx_bshape_0_Y = 0; + Py_buffer __pyx_bstruct_q; + Py_ssize_t __pyx_bstride_0_q = 0; + Py_ssize_t __pyx_bshape_0_q = 0; + Py_buffer __pyx_bstruct_w; + Py_ssize_t __pyx_bstride_0_w = 0; + Py_ssize_t __pyx_bshape_0_w = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -1592,211 +1482,162 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__w,&__pyx_n_s__intercept,&__pyx_n_s__loss,&__pyx_n_s__penalty_type,&__pyx_n_s__alpha,&__pyx_n_s__rho,&__pyx_n_s__X_data,&__pyx_n_s__X_indices,&__pyx_n_s__X_indptr,&__pyx_n_s__Y,&__pyx_n_s__n_iter,&__pyx_n_s__fit_intercept,&__pyx_n_s__verbose,&__pyx_n_s__shuffle,&__pyx_n_s__seed,&__pyx_n_s__weight_pos,&__pyx_n_s__weight_neg,&__pyx_n_s__sample_weight,&__pyx_n_s__learning_rate,&__pyx_n_s__eta0,&__pyx_n_s__power_t,0}; __Pyx_RefNannySetupContext("plain_sgd"); __pyx_self = __pyx_self; - { + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[21] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20); - case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19); - case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18); - case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17); - case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16); - case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15); - case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14); - case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13); - case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12); - case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11); - case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); - case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); - case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); - case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20); + case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19); + case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18); + case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17); + case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16); + case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15); + case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14); + case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13); + case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12); + case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11); + case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); + case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); + case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__w); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__intercept); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__w); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__intercept); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 2: - values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__loss); - if (likely(values[2])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 3: - values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__penalty_type); - if (likely(values[3])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 4: - values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__alpha); - if (likely(values[4])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 5: - values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rho); - if (likely(values[5])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 6: - values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__X_data); - if (likely(values[6])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 6); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 7: - values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__X_indices); - if (likely(values[7])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 7); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 8: - values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__X_indptr); - if (likely(values[8])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 8); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 9: - values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__Y); - if (likely(values[9])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 9); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 10: - values[10] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__n_iter); - if (likely(values[10])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 10); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 11: - values[11] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fit_intercept); - if (likely(values[11])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 11); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 12: - values[12] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__verbose); - if (likely(values[12])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 12); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 13: - values[13] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__shuffle); - if (likely(values[13])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 14: - values[14] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__seed); - if (likely(values[14])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 14); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 15: - values[15] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weight_pos); - if (likely(values[15])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 15); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 16: - values[16] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weight_neg); - if (likely(values[16])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 16); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 17: - values[17] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sample_weight); - if (likely(values[17])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 17); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 18: - values[18] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__learning_rate); - if (likely(values[18])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 18); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 19: - values[19] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__eta0); - if (likely(values[19])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 19); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 20: - values[20] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__power_t); - if (likely(values[20])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 20); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } + case 2: + values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__loss); + if (likely(values[2])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "plain_sgd") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + case 3: + values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__penalty_type); + if (likely(values[3])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 4: + values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__alpha); + if (likely(values[4])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 5: + values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rho); + if (likely(values[5])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 6: + values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__X_data); + if (likely(values[6])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 6); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 7: + values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__X_indices); + if (likely(values[7])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 7); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 8: + values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__X_indptr); + if (likely(values[8])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 8); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 9: + values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__Y); + if (likely(values[9])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 9); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 10: + values[10] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__n_iter); + if (likely(values[10])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 10); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 11: + values[11] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fit_intercept); + if (likely(values[11])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 11); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 12: + values[12] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__verbose); + if (likely(values[12])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 12); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 13: + values[13] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__shuffle); + if (likely(values[13])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 13); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 14: + values[14] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__seed); + if (likely(values[14])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 14); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 15: + values[15] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weight_pos); + if (likely(values[15])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 15); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 16: + values[16] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weight_neg); + if (likely(values[16])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 16); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 17: + values[17] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sample_weight); + if (likely(values[17])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 17); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 18: + values[18] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__learning_rate); + if (likely(values[18])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 18); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 19: + values[19] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__eta0); + if (likely(values[19])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 19); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 20: + values[20] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__power_t); + if (likely(values[20])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("plain_sgd", 1, 21, 21, 20); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } - __pyx_v_w = ((PyArrayObject *)values[0]); - __pyx_v_intercept = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_intercept == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_loss = ((struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction *)values[2]); - __pyx_v_penalty_type = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_penalty_type == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_alpha = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_alpha == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_rho = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_rho == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_X_data = ((PyArrayObject *)values[6]); - __pyx_v_X_indices = ((PyArrayObject *)values[7]); - __pyx_v_X_indptr = ((PyArrayObject *)values[8]); - __pyx_v_Y = ((PyArrayObject *)values[9]); - __pyx_v_n_iter = __Pyx_PyInt_AsInt(values[10]); if (unlikely((__pyx_v_n_iter == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_fit_intercept = __Pyx_PyInt_AsInt(values[11]); if (unlikely((__pyx_v_fit_intercept == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_verbose = __Pyx_PyInt_AsInt(values[12]); if (unlikely((__pyx_v_verbose == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_shuffle = __Pyx_PyInt_AsInt(values[13]); if (unlikely((__pyx_v_shuffle == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_seed = __Pyx_PyInt_AsInt(values[14]); if (unlikely((__pyx_v_seed == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_weight_pos = __pyx_PyFloat_AsDouble(values[15]); if (unlikely((__pyx_v_weight_pos == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_weight_neg = __pyx_PyFloat_AsDouble(values[16]); if (unlikely((__pyx_v_weight_neg == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_sample_weight = ((PyArrayObject *)values[17]); - __pyx_v_learning_rate = __Pyx_PyInt_AsInt(values[18]); if (unlikely((__pyx_v_learning_rate == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_eta0 = __pyx_PyFloat_AsDouble(values[19]); if (unlikely((__pyx_v_eta0 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_power_t = __pyx_PyFloat_AsDouble(values[20]); if (unlikely((__pyx_v_power_t == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 21) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - values[7] = PyTuple_GET_ITEM(__pyx_args, 7); - values[8] = PyTuple_GET_ITEM(__pyx_args, 8); - values[9] = PyTuple_GET_ITEM(__pyx_args, 9); - values[10] = PyTuple_GET_ITEM(__pyx_args, 10); - values[11] = PyTuple_GET_ITEM(__pyx_args, 11); - values[12] = PyTuple_GET_ITEM(__pyx_args, 12); - values[13] = PyTuple_GET_ITEM(__pyx_args, 13); - values[14] = PyTuple_GET_ITEM(__pyx_args, 14); - values[15] = PyTuple_GET_ITEM(__pyx_args, 15); - values[16] = PyTuple_GET_ITEM(__pyx_args, 16); - values[17] = PyTuple_GET_ITEM(__pyx_args, 17); - values[18] = PyTuple_GET_ITEM(__pyx_args, 18); - values[19] = PyTuple_GET_ITEM(__pyx_args, 19); - values[20] = PyTuple_GET_ITEM(__pyx_args, 20); + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "plain_sgd") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_w = ((PyArrayObject *)values[0]); __pyx_v_intercept = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_intercept == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;} @@ -1819,6 +1660,30 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_v_learning_rate = __Pyx_PyInt_AsInt(values[18]); if (unlikely((__pyx_v_learning_rate == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_eta0 = __pyx_PyFloat_AsDouble(values[19]); if (unlikely((__pyx_v_eta0 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_power_t = __pyx_PyFloat_AsDouble(values[20]); if (unlikely((__pyx_v_power_t == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else if (PyTuple_GET_SIZE(__pyx_args) != 21) { + goto __pyx_L5_argtuple_error; + } else { + __pyx_v_w = ((PyArrayObject *)PyTuple_GET_ITEM(__pyx_args, 0)); + __pyx_v_intercept = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_intercept == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_loss = ((struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction *)PyTuple_GET_ITEM(__pyx_args, 2)); + __pyx_v_penalty_type = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 3)); if (unlikely((__pyx_v_penalty_type == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_alpha = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 4)); if (unlikely((__pyx_v_alpha == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_rho = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 5)); if (unlikely((__pyx_v_rho == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_X_data = ((PyArrayObject *)PyTuple_GET_ITEM(__pyx_args, 6)); + __pyx_v_X_indices = ((PyArrayObject *)PyTuple_GET_ITEM(__pyx_args, 7)); + __pyx_v_X_indptr = ((PyArrayObject *)PyTuple_GET_ITEM(__pyx_args, 8)); + __pyx_v_Y = ((PyArrayObject *)PyTuple_GET_ITEM(__pyx_args, 9)); + __pyx_v_n_iter = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 10)); if (unlikely((__pyx_v_n_iter == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_fit_intercept = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 11)); if (unlikely((__pyx_v_fit_intercept == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_verbose = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 12)); if (unlikely((__pyx_v_verbose == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_shuffle = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 13)); if (unlikely((__pyx_v_shuffle == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_seed = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 14)); if (unlikely((__pyx_v_seed == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_weight_pos = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 15)); if (unlikely((__pyx_v_weight_pos == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_weight_neg = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 16)); if (unlikely((__pyx_v_weight_neg == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_sample_weight = ((PyArrayObject *)PyTuple_GET_ITEM(__pyx_args, 17)); + __pyx_v_learning_rate = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 18)); if (unlikely((__pyx_v_learning_rate == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_eta0 = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 19)); if (unlikely((__pyx_v_eta0 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_power_t = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 20)); if (unlikely((__pyx_v_power_t == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; @@ -1829,38 +1694,14 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py return NULL; __pyx_L4_argument_unpacking_done:; __Pyx_INCREF((PyObject *)__pyx_v_w); - __pyx_pybuffer_index.pybuffer.buf = NULL; - __pyx_pybuffer_index.refcount = 0; - __pyx_pybuffernd_index.data = NULL; - __pyx_pybuffernd_index.rcbuffer = &__pyx_pybuffer_index; - __pyx_pybuffer_q.pybuffer.buf = NULL; - __pyx_pybuffer_q.refcount = 0; - __pyx_pybuffernd_q.data = NULL; - __pyx_pybuffernd_q.rcbuffer = &__pyx_pybuffer_q; - __pyx_pybuffer_w.pybuffer.buf = NULL; - __pyx_pybuffer_w.refcount = 0; - __pyx_pybuffernd_w.data = NULL; - __pyx_pybuffernd_w.rcbuffer = &__pyx_pybuffer_w; - __pyx_pybuffer_X_data.pybuffer.buf = NULL; - __pyx_pybuffer_X_data.refcount = 0; - __pyx_pybuffernd_X_data.data = NULL; - __pyx_pybuffernd_X_data.rcbuffer = &__pyx_pybuffer_X_data; - __pyx_pybuffer_X_indices.pybuffer.buf = NULL; - __pyx_pybuffer_X_indices.refcount = 0; - __pyx_pybuffernd_X_indices.data = NULL; - __pyx_pybuffernd_X_indices.rcbuffer = &__pyx_pybuffer_X_indices; - __pyx_pybuffer_X_indptr.pybuffer.buf = NULL; - __pyx_pybuffer_X_indptr.refcount = 0; - __pyx_pybuffernd_X_indptr.data = NULL; - __pyx_pybuffernd_X_indptr.rcbuffer = &__pyx_pybuffer_X_indptr; - __pyx_pybuffer_Y.pybuffer.buf = NULL; - __pyx_pybuffer_Y.refcount = 0; - __pyx_pybuffernd_Y.data = NULL; - __pyx_pybuffernd_Y.rcbuffer = &__pyx_pybuffer_Y; - __pyx_pybuffer_sample_weight.pybuffer.buf = NULL; - __pyx_pybuffer_sample_weight.refcount = 0; - __pyx_pybuffernd_sample_weight.data = NULL; - __pyx_pybuffernd_sample_weight.rcbuffer = &__pyx_pybuffer_sample_weight; + __pyx_bstruct_index.buf = NULL; + __pyx_bstruct_q.buf = NULL; + __pyx_bstruct_w.buf = NULL; + __pyx_bstruct_X_data.buf = NULL; + __pyx_bstruct_X_indices.buf = NULL; + __pyx_bstruct_X_indptr.buf = NULL; + __pyx_bstruct_Y.buf = NULL; + __pyx_bstruct_sample_weight.buf = NULL; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w), __pyx_ptype_5numpy_ndarray, 1, "w", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), __pyx_ptype_7sklearn_12linear_model_8sgd_fast_LossFunction, 1, "loss", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X_data), __pyx_ptype_5numpy_ndarray, 1, "X_data", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -1870,34 +1711,40 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sample_weight), __pyx_ptype_5numpy_ndarray, 1, "sample_weight", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;} { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_w.rcbuffer->pybuffer, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_w, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } - __pyx_pybuffernd_w.diminfo[0].strides = __pyx_pybuffernd_w.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_w.diminfo[0].shape = __pyx_pybuffernd_w.rcbuffer->pybuffer.shape[0]; + __pyx_bstride_0_w = __pyx_bstruct_w.strides[0]; + __pyx_bshape_0_w = __pyx_bstruct_w.shape[0]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X_data.rcbuffer->pybuffer, (PyObject*)__pyx_v_X_data, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_X_data, (PyObject*)__pyx_v_X_data, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } - __pyx_pybuffernd_X_data.diminfo[0].strides = __pyx_pybuffernd_X_data.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X_data.diminfo[0].shape = __pyx_pybuffernd_X_data.rcbuffer->pybuffer.shape[0]; + __pyx_bstride_0_X_data = __pyx_bstruct_X_data.strides[0]; + __pyx_bshape_0_X_data = __pyx_bstruct_X_data.shape[0]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X_indices.rcbuffer->pybuffer, (PyObject*)__pyx_v_X_indices, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_X_indices, (PyObject*)__pyx_v_X_indices, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } - __pyx_pybuffernd_X_indices.diminfo[0].strides = __pyx_pybuffernd_X_indices.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X_indices.diminfo[0].shape = __pyx_pybuffernd_X_indices.rcbuffer->pybuffer.shape[0]; + __pyx_bstride_0_X_indices = __pyx_bstruct_X_indices.strides[0]; + __pyx_bshape_0_X_indices = __pyx_bstruct_X_indices.shape[0]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X_indptr.rcbuffer->pybuffer, (PyObject*)__pyx_v_X_indptr, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_X_indptr, (PyObject*)__pyx_v_X_indptr, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } - __pyx_pybuffernd_X_indptr.diminfo[0].strides = __pyx_pybuffernd_X_indptr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X_indptr.diminfo[0].shape = __pyx_pybuffernd_X_indptr.rcbuffer->pybuffer.shape[0]; + __pyx_bstride_0_X_indptr = __pyx_bstruct_X_indptr.strides[0]; + __pyx_bshape_0_X_indptr = __pyx_bstruct_X_indptr.shape[0]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Y.rcbuffer->pybuffer, (PyObject*)__pyx_v_Y, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_Y, (PyObject*)__pyx_v_Y, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } - __pyx_pybuffernd_Y.diminfo[0].strides = __pyx_pybuffernd_Y.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Y.diminfo[0].shape = __pyx_pybuffernd_Y.rcbuffer->pybuffer.shape[0]; + __pyx_bstride_0_Y = __pyx_bstruct_Y.strides[0]; + __pyx_bshape_0_Y = __pyx_bstruct_Y.shape[0]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sample_weight.rcbuffer->pybuffer, (PyObject*)__pyx_v_sample_weight, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_sample_weight, (PyObject*)__pyx_v_sample_weight, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } - __pyx_pybuffernd_sample_weight.diminfo[0].strides = __pyx_pybuffernd_sample_weight.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sample_weight.diminfo[0].shape = __pyx_pybuffernd_sample_weight.rcbuffer->pybuffer.shape[0]; + __pyx_bstride_0_sample_weight = __pyx_bstruct_sample_weight.strides[0]; + __pyx_bshape_0_sample_weight = __pyx_bstruct_sample_weight.shape[0]; /* "sklearn/linear_model/sgd_fast_sparse.pyx":108 * """ @@ -1986,7 +1833,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_1 = PyLong_FromUnsignedLong(__pyx_v_n_samples); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; @@ -2007,7 +1854,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; @@ -2016,10 +1863,11 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_6 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_index.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { - __pyx_v_index = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_index.rcbuffer->pybuffer.buf = NULL; + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_index, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { + __pyx_v_index = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_index.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_pybuffernd_index.diminfo[0].strides = __pyx_pybuffernd_index.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_index.diminfo[0].shape = __pyx_pybuffernd_index.rcbuffer->pybuffer.shape[0]; + } else {__pyx_bstride_0_index = __pyx_bstruct_index.strides[0]; + __pyx_bshape_0_index = __pyx_bstruct_index.shape[0]; } } __pyx_t_6 = 0; @@ -2157,7 +2005,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py * cdef unsigned int epoch = 0 * cdef unsigned int i = 0 # <<<<<<<<<<<<<< * cdef int sample_idx = 0 - * cdef np.ndarray[double, ndim=1, mode="c"] q = None + * */ __pyx_v_i = 0; @@ -2165,14 +2013,14 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py * cdef unsigned int epoch = 0 * cdef unsigned int i = 0 * cdef int sample_idx = 0 # <<<<<<<<<<<<<< - * cdef np.ndarray[double, ndim=1, mode="c"] q = None - * cdef double *q_data_ptr = NULL + * + * # q vector is only used for L1 regularization */ __pyx_v_sample_idx = 0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":137 - * cdef unsigned int i = 0 - * cdef int sample_idx = 0 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":139 + * + * # q vector is only used for L1 regularization * cdef np.ndarray[double, ndim=1, mode="c"] q = None # <<<<<<<<<<<<<< * cdef double *q_data_ptr = NULL * if penalty_type != L2: @@ -2180,18 +2028,19 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_7 = ((PyArrayObject *)Py_None); { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_q.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { - __pyx_v_q = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_q.rcbuffer->pybuffer.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } else {__pyx_pybuffernd_q.diminfo[0].strides = __pyx_pybuffernd_q.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_q.diminfo[0].shape = __pyx_pybuffernd_q.rcbuffer->pybuffer.shape[0]; + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_q, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { + __pyx_v_q = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_q.buf = NULL; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } else {__pyx_bstride_0_q = __pyx_bstruct_q.strides[0]; + __pyx_bshape_0_q = __pyx_bstruct_q.shape[0]; } } __pyx_t_7 = 0; __Pyx_INCREF(Py_None); __pyx_v_q = ((PyArrayObject *)Py_None); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":138 - * cdef int sample_idx = 0 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":140 + * # q vector is only used for L1 regularization * cdef np.ndarray[double, ndim=1, mode="c"] q = None * cdef double *q_data_ptr = NULL # <<<<<<<<<<<<<< * if penalty_type != L2: @@ -2199,7 +2048,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_v_q_data_ptr = NULL; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":139 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":141 * cdef np.ndarray[double, ndim=1, mode="c"] q = None * cdef double *q_data_ptr = NULL * if penalty_type != L2: # <<<<<<<<<<<<<< @@ -2209,99 +2058,148 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_8 = (__pyx_v_penalty_type != 2); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":140 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":142 * cdef double *q_data_ptr = NULL * if penalty_type != L2: * q = np.zeros((n_features,), dtype=np.float64, order="c") # <<<<<<<<<<<<<< * q_data_ptr = <double *> q.data * cdef double u = 0.0 */ - __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); - __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__zeros); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__zeros); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyLong_FromUnsignedLong(__pyx_v_n_features); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyLong_FromUnsignedLong(__pyx_v_n_features); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_3)); __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__float64); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__float64); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__order), ((PyObject *)__pyx_n_s__c)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__order), ((PyObject *)__pyx_n_s__c)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_7 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_q.rcbuffer->pybuffer); - __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_q.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_q); + __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_q, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack); if (unlikely(__pyx_t_9 < 0)) { PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_q.rcbuffer->pybuffer, (PyObject*)__pyx_v_q, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_q, (PyObject*)__pyx_v_q, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12); } } - __pyx_pybuffernd_q.diminfo[0].strides = __pyx_pybuffernd_q.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_q.diminfo[0].shape = __pyx_pybuffernd_q.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_bstride_0_q = __pyx_bstruct_q.strides[0]; + __pyx_bshape_0_q = __pyx_bstruct_q.shape[0]; + if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_7 = 0; __Pyx_DECREF(((PyObject *)__pyx_v_q)); __pyx_v_q = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":141 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":143 * if penalty_type != L2: * q = np.zeros((n_features,), dtype=np.float64, order="c") * q_data_ptr = <double *> q.data # <<<<<<<<<<<<<< * cdef double u = 0.0 - * cdef double typw = sqrt(1.0 / sqrt(alpha)) + * */ __pyx_v_q_data_ptr = ((double *)__pyx_v_q->data); goto __pyx_L6; } __pyx_L6:; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":142 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":144 * q = np.zeros((n_features,), dtype=np.float64, order="c") * q_data_ptr = <double *> q.data * cdef double u = 0.0 # <<<<<<<<<<<<<< - * cdef double typw = sqrt(1.0 / sqrt(alpha)) * + * if penalty_type == L2: */ __pyx_v_u = 0.0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":143 - * q_data_ptr = <double *> q.data + /* "sklearn/linear_model/sgd_fast_sparse.pyx":148 + * if penalty_type == L2: + * rho = 1.0 + * elif penalty_type == L1: # <<<<<<<<<<<<<< + * rho = 0.0 + * + */ + switch (__pyx_v_penalty_type) { + + /* "sklearn/linear_model/sgd_fast_sparse.pyx":146 * cdef double u = 0.0 + * + * if penalty_type == L2: # <<<<<<<<<<<<<< + * rho = 1.0 + * elif penalty_type == L1: + */ + case 2: + + /* "sklearn/linear_model/sgd_fast_sparse.pyx":147 + * + * if penalty_type == L2: + * rho = 1.0 # <<<<<<<<<<<<<< + * elif penalty_type == L1: + * rho = 0.0 + */ + __pyx_v_rho = 1.0; + break; + + /* "sklearn/linear_model/sgd_fast_sparse.pyx":148 + * if penalty_type == L2: + * rho = 1.0 + * elif penalty_type == L1: # <<<<<<<<<<<<<< + * rho = 0.0 + * + */ + case 1: + + /* "sklearn/linear_model/sgd_fast_sparse.pyx":149 + * rho = 1.0 + * elif penalty_type == L1: + * rho = 0.0 # <<<<<<<<<<<<<< + * + * cdef double typw = sqrt(1.0 / sqrt(alpha)) + */ + __pyx_v_rho = 0.0; + break; + } + + /* "sklearn/linear_model/sgd_fast_sparse.pyx":151 + * rho = 0.0 + * * cdef double typw = sqrt(1.0 / sqrt(alpha)) # <<<<<<<<<<<<<< * * if learning_rate == OPTIMAL: */ __pyx_v_typw = sqrt((1.0 / sqrt(__pyx_v_alpha))); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":145 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":153 * cdef double typw = sqrt(1.0 / sqrt(alpha)) * * if learning_rate == OPTIMAL: # <<<<<<<<<<<<<< @@ -2311,7 +2209,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_8 = (__pyx_v_learning_rate == 2); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":147 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":155 * if learning_rate == OPTIMAL: * # computing eta0, the initial learning rate * eta0 = typw / max(1.0, loss.dloss(-typw, 1.0)) # <<<<<<<<<<<<<< @@ -2323,7 +2221,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py } /*else*/ { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":149 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":157 * eta0 = typw / max(1.0, loss.dloss(-typw, 1.0)) * else: * eta = eta0 # <<<<<<<<<<<<<< @@ -2334,7 +2232,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py } __pyx_L7:; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":151 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":159 * eta = eta0 * * if learning_rate == OPTIMAL: # <<<<<<<<<<<<<< @@ -2344,7 +2242,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_8 = (__pyx_v_learning_rate == 2); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":153 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":161 * if learning_rate == OPTIMAL: * # initialize t such that eta at first example equals eta0 * t = 1.0 / (eta0 * alpha) # <<<<<<<<<<<<<< @@ -2356,7 +2254,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py } /*else*/ { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":155 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":163 * t = 1.0 / (eta0 * alpha) * else: * t = 1.0 # <<<<<<<<<<<<<< @@ -2367,22 +2265,22 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py } __pyx_L8:; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":157 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":165 * t = 1.0 * * t_start = time() # <<<<<<<<<<<<<< * for epoch in xrange(n_iter): * if verbose > 0: */ - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__time); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__time); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_t_start = __pyx_t_3; __pyx_t_3 = 0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":158 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":166 * * t_start = time() * for epoch in xrange(n_iter): # <<<<<<<<<<<<<< @@ -2393,7 +2291,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_9; __pyx_t_13+=1) { __pyx_v_epoch = __pyx_t_13; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":159 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":167 * t_start = time() * for epoch in xrange(n_iter): * if verbose > 0: # <<<<<<<<<<<<<< @@ -2403,25 +2301,25 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_8 = (__pyx_v_verbose > 0); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":160 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":168 * for epoch in xrange(n_iter): * if verbose > 0: * print("-- Epoch %d" % (epoch + 1)) # <<<<<<<<<<<<<< * if shuffle: * np.random.RandomState(seed).shuffle(index) */ - __pyx_t_3 = PyInt_FromLong((__pyx_v_epoch + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyInt_FromLong((__pyx_v_epoch + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_1), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_1), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; goto __pyx_L11; } __pyx_L11:; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":161 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":169 * if verbose > 0: * print("-- Epoch %d" % (epoch + 1)) * if shuffle: # <<<<<<<<<<<<<< @@ -2430,41 +2328,41 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ if (__pyx_v_shuffle) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":162 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":170 * print("-- Epoch %d" % (epoch + 1)) * if shuffle: * np.random.RandomState(seed).shuffle(index) # <<<<<<<<<<<<<< * for i in xrange(n_samples): * sample_idx = index_data_ptr[i] */ - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__random); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__random); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__RandomState); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__RandomState); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyInt_FromLong(__pyx_v_seed); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyInt_FromLong(__pyx_v_seed); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; - __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__shuffle); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__shuffle); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_v_index)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_index)); __Pyx_GIVEREF(((PyObject *)__pyx_v_index)); - __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; @@ -2473,7 +2371,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py } __pyx_L12:; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":163 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":171 * if shuffle: * np.random.RandomState(seed).shuffle(index) * for i in xrange(n_samples): # <<<<<<<<<<<<<< @@ -2484,7 +2382,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) { __pyx_v_i = __pyx_t_15; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":164 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":172 * np.random.RandomState(seed).shuffle(index) * for i in xrange(n_samples): * sample_idx = index_data_ptr[i] # <<<<<<<<<<<<<< @@ -2493,7 +2391,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_v_sample_idx = (__pyx_v_index_data_ptr[__pyx_v_i]); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":165 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":173 * for i in xrange(n_samples): * sample_idx = index_data_ptr[i] * offset = X_indptr_ptr[sample_idx] # <<<<<<<<<<<<<< @@ -2502,7 +2400,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_v_offset = (__pyx_v_X_indptr_ptr[__pyx_v_sample_idx]); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":166 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":174 * sample_idx = index_data_ptr[i] * offset = X_indptr_ptr[sample_idx] * xnnz = X_indptr_ptr[sample_idx + 1] - offset # <<<<<<<<<<<<<< @@ -2511,7 +2409,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_v_xnnz = ((__pyx_v_X_indptr_ptr[(__pyx_v_sample_idx + 1)]) - __pyx_v_offset); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":167 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":175 * offset = X_indptr_ptr[sample_idx] * xnnz = X_indptr_ptr[sample_idx + 1] - offset * y = Y_data_ptr[sample_idx] # <<<<<<<<<<<<<< @@ -2520,7 +2418,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_v_y = (__pyx_v_Y_data_ptr[__pyx_v_sample_idx]); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":170 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":178 * if learning_rate == OPTIMAL: * eta = 1.0 / (alpha * t) * elif learning_rate == INVSCALING: # <<<<<<<<<<<<<< @@ -2529,7 +2427,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ switch (__pyx_v_learning_rate) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":168 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":176 * xnnz = X_indptr_ptr[sample_idx + 1] - offset * y = Y_data_ptr[sample_idx] * if learning_rate == OPTIMAL: # <<<<<<<<<<<<<< @@ -2538,7 +2436,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ case 2: - /* "sklearn/linear_model/sgd_fast_sparse.pyx":169 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":177 * y = Y_data_ptr[sample_idx] * if learning_rate == OPTIMAL: * eta = 1.0 / (alpha * t) # <<<<<<<<<<<<<< @@ -2548,7 +2446,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_v_eta = (1.0 / (__pyx_v_alpha * __pyx_v_t)); break; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":170 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":178 * if learning_rate == OPTIMAL: * eta = 1.0 / (alpha * t) * elif learning_rate == INVSCALING: # <<<<<<<<<<<<<< @@ -2557,7 +2455,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ case 3: - /* "sklearn/linear_model/sgd_fast_sparse.pyx":171 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":179 * eta = 1.0 / (alpha * t) * elif learning_rate == INVSCALING: * eta = eta0 / pow(t, power_t) # <<<<<<<<<<<<<< @@ -2568,7 +2466,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py break; } - /* "sklearn/linear_model/sgd_fast_sparse.pyx":173 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":181 * eta = eta0 / pow(t, power_t) * p = (dot(w_data_ptr, X_data_ptr, X_indices_ptr, * offset, xnnz) * wscale) + intercept # <<<<<<<<<<<<<< @@ -2577,7 +2475,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_v_p = ((__pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_dot(__pyx_v_w_data_ptr, __pyx_v_X_data_ptr, __pyx_v_X_indices_ptr, __pyx_v_offset, __pyx_v_xnnz) * __pyx_v_wscale) + __pyx_v_intercept); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":174 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":182 * p = (dot(w_data_ptr, X_data_ptr, X_indices_ptr, * offset, xnnz) * wscale) + intercept * sumloss += loss.loss(p, y) # <<<<<<<<<<<<<< @@ -2586,7 +2484,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_v_sumloss = (__pyx_v_sumloss + ((struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction *)__pyx_v_loss->__pyx_vtab)->loss(__pyx_v_loss, __pyx_v_p, __pyx_v_y, 0)); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":175 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":183 * offset, xnnz) * wscale) + intercept * sumloss += loss.loss(p, y) * if y > 0: # <<<<<<<<<<<<<< @@ -2596,7 +2494,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_8 = (__pyx_v_y > 0.0); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":176 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":184 * sumloss += loss.loss(p, y) * if y > 0: * class_weight = weight_pos # <<<<<<<<<<<<<< @@ -2608,7 +2506,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py } /*else*/ { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":178 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":186 * class_weight = weight_pos * else: * class_weight = weight_neg # <<<<<<<<<<<<<< @@ -2619,7 +2517,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py } __pyx_L15:; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":180 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":188 * class_weight = weight_neg * update = eta * loss.dloss(p, y) * class_weight * \ * sample_weight_data[sample_idx] # <<<<<<<<<<<<<< @@ -2628,7 +2526,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_v_update = (((__pyx_v_eta * ((struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction *)__pyx_v_loss->__pyx_vtab)->dloss(__pyx_v_loss, __pyx_v_p, __pyx_v_y, 0)) * __pyx_v_class_weight) * (__pyx_v_sample_weight_data[__pyx_v_sample_idx])); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":181 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":189 * update = eta * loss.dloss(p, y) * class_weight * \ * sample_weight_data[sample_idx] * if update != 0.0: # <<<<<<<<<<<<<< @@ -2638,7 +2536,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_8 = (__pyx_v_update != 0.0); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":183 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":191 * if update != 0.0: * add(w_data_ptr, wscale, X_data_ptr, X_indices_ptr, * offset, xnnz, -update) # <<<<<<<<<<<<<< @@ -2647,7 +2545,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(__pyx_v_w_data_ptr, __pyx_v_wscale, __pyx_v_X_data_ptr, __pyx_v_X_indices_ptr, __pyx_v_offset, __pyx_v_xnnz, (-__pyx_v_update)); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":184 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":192 * add(w_data_ptr, wscale, X_data_ptr, X_indices_ptr, * offset, xnnz, -update) * if fit_intercept == 1: # <<<<<<<<<<<<<< @@ -2657,7 +2555,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_8 = (__pyx_v_fit_intercept == 1); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":185 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":193 * offset, xnnz, -update) * if fit_intercept == 1: * intercept -= update * 0.01 # <<<<<<<<<<<<<< @@ -2672,7 +2570,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py } __pyx_L16:; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":186 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":194 * if fit_intercept == 1: * intercept -= update * 0.01 * if penalty_type != L1: # <<<<<<<<<<<<<< @@ -2682,7 +2580,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_8 = (__pyx_v_penalty_type != 1); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":187 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":195 * intercept -= update * 0.01 * if penalty_type != L1: * wscale *= (1.0 - (rho * eta * alpha)) # <<<<<<<<<<<<<< @@ -2691,7 +2589,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_v_wscale = (__pyx_v_wscale * (1.0 - ((__pyx_v_rho * __pyx_v_eta) * __pyx_v_alpha))); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":188 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":196 * if penalty_type != L1: * wscale *= (1.0 - (rho * eta * alpha)) * if wscale < 1e-9: # <<<<<<<<<<<<<< @@ -2701,42 +2599,43 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_8 = (__pyx_v_wscale < 1e-9); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":189 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":197 * wscale *= (1.0 - (rho * eta * alpha)) * if wscale < 1e-9: * w *= wscale # <<<<<<<<<<<<<< * wscale = 1.0 * if penalty_type == L1 or penalty_type == ELASTICNET: */ - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyNumber_InPlaceMultiply(((PyObject *)__pyx_v_w), __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyNumber_InPlaceMultiply(((PyObject *)__pyx_v_w), __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_16 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_w.rcbuffer->pybuffer); - __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_w.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_w); + __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_w, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_w.rcbuffer->pybuffer, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_w, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10); } } - __pyx_pybuffernd_w.diminfo[0].strides = __pyx_pybuffernd_w.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_w.diminfo[0].shape = __pyx_pybuffernd_w.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_bstride_0_w = __pyx_bstruct_w.strides[0]; + __pyx_bshape_0_w = __pyx_bstruct_w.shape[0]; + if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_16 = 0; __Pyx_DECREF(((PyObject *)__pyx_v_w)); __pyx_v_w = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":190 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":198 * if wscale < 1e-9: * w *= wscale * wscale = 1.0 # <<<<<<<<<<<<<< @@ -2751,7 +2650,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py } __pyx_L18:; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":191 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":199 * w *= wscale * wscale = 1.0 * if penalty_type == L1 or penalty_type == ELASTICNET: # <<<<<<<<<<<<<< @@ -2762,7 +2661,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py case 1: case 3: - /* "sklearn/linear_model/sgd_fast_sparse.pyx":192 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":200 * wscale = 1.0 * if penalty_type == L1 or penalty_type == ELASTICNET: * u += ((1.0 - rho) * eta * alpha) # <<<<<<<<<<<<<< @@ -2771,7 +2670,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_v_u = (__pyx_v_u + (((1.0 - __pyx_v_rho) * __pyx_v_eta) * __pyx_v_alpha)); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":194 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":202 * u += ((1.0 - rho) * eta * alpha) * l1penalty(w_data_ptr, wscale, q_data_ptr, * X_indices_ptr, offset, xnnz, u) # <<<<<<<<<<<<<< @@ -2782,7 +2681,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py break; } - /* "sklearn/linear_model/sgd_fast_sparse.pyx":195 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":203 * l1penalty(w_data_ptr, wscale, q_data_ptr, * X_indices_ptr, offset, xnnz, u) * t += 1 # <<<<<<<<<<<<<< @@ -2791,7 +2690,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py */ __pyx_v_t = (__pyx_v_t + 1.0); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":196 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":204 * X_indices_ptr, offset, xnnz, u) * t += 1 * count += 1 # <<<<<<<<<<<<<< @@ -2801,7 +2700,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_v_count = (__pyx_v_count + 1); } - /* "sklearn/linear_model/sgd_fast_sparse.pyx":199 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":207 * * # report epoche information * if verbose > 0: # <<<<<<<<<<<<<< @@ -2811,101 +2710,101 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_8 = (__pyx_v_verbose > 0); if (__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":200 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":208 * # report epoche information * if verbose > 0: * wnorm = sqrt(np.dot(w, w) * wscale * wscale) # <<<<<<<<<<<<<< * print("Norm: %.2f, NNZs: %d, "\ * "Bias: %.6f, T: %d, Avg. loss: %.6f" % (wnorm, */ - __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__dot); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__dot); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __Pyx_INCREF(((PyObject *)__pyx_v_w)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_w)); __Pyx_GIVEREF(((PyObject *)__pyx_v_w)); __Pyx_INCREF(((PyObject *)__pyx_v_w)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_w)); __Pyx_GIVEREF(((PyObject *)__pyx_v_w)); - __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_18 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_18 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_18 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_18 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_wnorm = sqrt(__pyx_t_18); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":202 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":210 * wnorm = sqrt(np.dot(w, w) * wscale * wscale) * print("Norm: %.2f, NNZs: %d, "\ * "Bias: %.6f, T: %d, Avg. loss: %.6f" % (wnorm, # <<<<<<<<<<<<<< * w.nonzero()[0].shape[0], * intercept, count, */ - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_wnorm); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_wnorm); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":203 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":211 * print("Norm: %.2f, NNZs: %d, "\ * "Bias: %.6f, T: %d, Avg. loss: %.6f" % (wnorm, * w.nonzero()[0].shape[0], # <<<<<<<<<<<<<< * intercept, count, * sumloss / count)) */ - __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_w), __pyx_n_s__nonzero); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_w), __pyx_n_s__nonzero); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__shape); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__shape); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":204 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":212 * "Bias: %.6f, T: %d, Avg. loss: %.6f" % (wnorm, * w.nonzero()[0].shape[0], * intercept, count, # <<<<<<<<<<<<<< * sumloss / count)) * print("Total training time: %.2f seconds." % (time() - t_start)) */ - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyLong_FromUnsignedLong(__pyx_v_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyLong_FromUnsignedLong(__pyx_v_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":205 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":213 * w.nonzero()[0].shape[0], * intercept, count, * sumloss / count)) # <<<<<<<<<<<<<< * print("Total training time: %.2f seconds." % (time() - t_start)) * */ - __pyx_t_2 = PyFloat_FromDouble((__pyx_v_sumloss / __pyx_v_count)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyFloat_FromDouble((__pyx_v_sumloss / __pyx_v_count)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_19 = PyTuple_New(5); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_19 = PyTuple_New(5); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_19)); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_3); @@ -2921,165 +2820,165 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_2), ((PyObject *)__pyx_t_19)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_2), ((PyObject *)__pyx_t_19)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; - if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":206 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":214 * intercept, count, * sumloss / count)) * print("Total training time: %.2f seconds." % (time() - t_start)) # <<<<<<<<<<<<<< * * # floating-point under-/overflow check. */ - __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__time); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__time); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_19 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Subtract(__pyx_t_19, __pyx_v_t_start); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyNumber_Subtract(__pyx_t_19, __pyx_v_t_start); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_3), __pyx_t_2); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_3), __pyx_t_2); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_19)); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_19)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_19)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; goto __pyx_L20; } __pyx_L20:; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":209 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":217 * * # floating-point under-/overflow check. * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ # <<<<<<<<<<<<<< * or np.isnan(intercept) or np.isinf(intercept): * raise ValueError("floating-point under-/overflow occured.") */ - __pyx_t_19 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_19, __pyx_n_s__any); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyObject_GetAttr(__pyx_t_19, __pyx_n_s__any); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); - __pyx_t_1 = PyObject_GetAttr(__pyx_t_19, __pyx_n_s__isinf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetAttr(__pyx_t_19, __pyx_n_s__isinf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_19)); __Pyx_INCREF(((PyObject *)__pyx_v_w)); PyTuple_SET_ITEM(__pyx_t_19, 0, ((PyObject *)__pyx_v_w)); __Pyx_GIVEREF(((PyObject *)__pyx_v_w)); - __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_19)); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_8) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":210 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":218 * # floating-point under-/overflow check. * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ * or np.isnan(intercept) or np.isinf(intercept): # <<<<<<<<<<<<<< * raise ValueError("floating-point under-/overflow occured.") * */ - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_19 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__any); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__any); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":209 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":217 * * # floating-point under-/overflow check. * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ # <<<<<<<<<<<<<< * or np.isnan(intercept) or np.isinf(intercept): * raise ValueError("floating-point under-/overflow occured.") */ - __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__isnan); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__isnan); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_INCREF(((PyObject *)__pyx_v_w)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_w)); __Pyx_GIVEREF(((PyObject *)__pyx_v_w)); - __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_Call(__pyx_t_19, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_t_19, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_20 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_20 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_20) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":210 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":218 * # floating-point under-/overflow check. * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ * or np.isnan(intercept) or np.isinf(intercept): # <<<<<<<<<<<<<< * raise ValueError("floating-point under-/overflow occured.") * */ - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__isnan); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__isnan); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_19)); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; - __pyx_t_21 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_21 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_21 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_21 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_21) { - __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_19 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__isinf); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_19 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__isinf); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_Call(__pyx_t_19, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_t_19, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; - __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_22 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_22 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_23 = __pyx_t_22; } else { @@ -3095,59 +2994,60 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py } if (__pyx_t_20) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":211 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":219 * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ * or np.isnan(intercept) or np.isinf(intercept): * raise ValueError("floating-point under-/overflow occured.") # <<<<<<<<<<<<<< * * w *= wscale */ - __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L21; } __pyx_L21:; } - /* "sklearn/linear_model/sgd_fast_sparse.pyx":213 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":221 * raise ValueError("floating-point under-/overflow occured.") * * w *= wscale # <<<<<<<<<<<<<< * return w, intercept * */ - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_wscale); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyNumber_InPlaceMultiply(((PyObject *)__pyx_v_w), __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyNumber_InPlaceMultiply(((PyObject *)__pyx_v_w), __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_16 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_w.rcbuffer->pybuffer); - __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_w.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_w); + __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_w, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_9 < 0)) { PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_w.rcbuffer->pybuffer, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_w, (PyObject*)__pyx_v_w, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12); } } - __pyx_pybuffernd_w.diminfo[0].strides = __pyx_pybuffernd_w.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_w.diminfo[0].shape = __pyx_pybuffernd_w.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_bstride_0_w = __pyx_bstruct_w.strides[0]; + __pyx_bshape_0_w = __pyx_bstruct_w.shape[0]; + if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_16 = 0; __Pyx_DECREF(((PyObject *)__pyx_v_w)); __pyx_v_w = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":214 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":222 * * w *= wscale * return w, intercept # <<<<<<<<<<<<<< @@ -3155,10 +3055,10 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_intercept); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_v_w)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_w)); __Pyx_GIVEREF(((PyObject *)__pyx_v_w)); @@ -3180,27 +3080,27 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py __Pyx_XDECREF(__pyx_t_19); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_index.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X_data.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sample_weight.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X_indices.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X_indptr.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_q.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_w.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_index); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_X_data); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_sample_weight); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_X_indices); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_X_indptr); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_Y); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_q); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_w); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("sklearn.linear_model.sgd_fast_sparse.plain_sgd", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_index.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X_data.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sample_weight.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X_indices.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X_indptr.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_q.rcbuffer->pybuffer); - __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_w.rcbuffer->pybuffer); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_index); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_X_data); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_sample_weight); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_X_indices); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_X_indptr); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_Y); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_q); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_w); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_index); __Pyx_XDECREF((PyObject *)__pyx_v_q); @@ -3211,7 +3111,7 @@ static PyObject *__pyx_pf_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd(Py return __pyx_r; } -/* "sklearn/linear_model/sgd_fast_sparse.pyx":217 +/* "sklearn/linear_model/sgd_fast_sparse.pyx":225 * * * cdef inline double max(double a, double b): # <<<<<<<<<<<<<< @@ -3225,7 +3125,7 @@ static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_ma double __pyx_t_1; __Pyx_RefNannySetupContext("max"); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":218 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":226 * * cdef inline double max(double a, double b): * return a if a >= b else b # <<<<<<<<<<<<<< @@ -3246,7 +3146,7 @@ static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_ma return __pyx_r; } -/* "sklearn/linear_model/sgd_fast_sparse.pyx":221 +/* "sklearn/linear_model/sgd_fast_sparse.pyx":229 * * * cdef inline double min(double a, double b): # <<<<<<<<<<<<<< @@ -3260,7 +3160,7 @@ static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_mi double __pyx_t_1; __Pyx_RefNannySetupContext("min"); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":222 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":230 * * cdef inline double min(double a, double b): * return a if a <= b else b # <<<<<<<<<<<<<< @@ -3281,7 +3181,7 @@ static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_mi return __pyx_r; } -/* "sklearn/linear_model/sgd_fast_sparse.pyx":225 +/* "sklearn/linear_model/sgd_fast_sparse.pyx":233 * * * cdef double dot(double *w_data_ptr, double *X_data_ptr, int *X_indices_ptr, # <<<<<<<<<<<<<< @@ -3298,7 +3198,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_dot(double *__py int __pyx_t_2; __Pyx_RefNannySetupContext("dot"); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":227 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":235 * cdef double dot(double *w_data_ptr, double *X_data_ptr, int *X_indices_ptr, * int offset, int xnnz): * cdef double sum = 0.0 # <<<<<<<<<<<<<< @@ -3307,7 +3207,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_dot(double *__py */ __pyx_v_sum = 0.0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":229 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":237 * cdef double sum = 0.0 * cdef int j * for j in xrange(xnnz): # <<<<<<<<<<<<<< @@ -3318,7 +3218,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_dot(double *__py for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { __pyx_v_j = __pyx_t_2; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":230 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":238 * cdef int j * for j in xrange(xnnz): * sum += w_data_ptr[X_indices_ptr[offset + j]] * X_data_ptr[offset + j] # <<<<<<<<<<<<<< @@ -3328,7 +3228,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_dot(double *__py __pyx_v_sum = (__pyx_v_sum + ((__pyx_v_w_data_ptr[(__pyx_v_X_indices_ptr[(__pyx_v_offset + __pyx_v_j)])]) * (__pyx_v_X_data_ptr[(__pyx_v_offset + __pyx_v_j)]))); } - /* "sklearn/linear_model/sgd_fast_sparse.pyx":231 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":239 * for j in xrange(xnnz): * sum += w_data_ptr[X_indices_ptr[offset + j]] * X_data_ptr[offset + j] * return sum # <<<<<<<<<<<<<< @@ -3344,7 +3244,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_dot(double *__py return __pyx_r; } -/* "sklearn/linear_model/sgd_fast_sparse.pyx":234 +/* "sklearn/linear_model/sgd_fast_sparse.pyx":242 * * * cdef double add(double *w_data_ptr, double wscale, double *X_data_ptr, # <<<<<<<<<<<<<< @@ -3365,7 +3265,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(double *__py int __pyx_t_3; __Pyx_RefNannySetupContext("add"); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":240 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":248 * cdef int idx * cdef double val * cdef double innerprod = 0.0 # <<<<<<<<<<<<<< @@ -3374,7 +3274,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(double *__py */ __pyx_v_innerprod = 0.0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":241 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":249 * cdef double val * cdef double innerprod = 0.0 * cdef double xsqnorm = 0.0 # <<<<<<<<<<<<<< @@ -3383,7 +3283,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(double *__py */ __pyx_v_xsqnorm = 0.0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":242 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":250 * cdef double innerprod = 0.0 * cdef double xsqnorm = 0.0 * for j in xrange(xnnz): # <<<<<<<<<<<<<< @@ -3394,7 +3294,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(double *__py for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { __pyx_v_j = __pyx_t_2; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":243 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":251 * cdef double xsqnorm = 0.0 * for j in xrange(xnnz): * idx = X_indices_ptr[offset + j] # <<<<<<<<<<<<<< @@ -3403,7 +3303,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(double *__py */ __pyx_v_idx = (__pyx_v_X_indices_ptr[(__pyx_v_offset + __pyx_v_j)]); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":244 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":252 * for j in xrange(xnnz): * idx = X_indices_ptr[offset + j] * val = X_data_ptr[offset + j] # <<<<<<<<<<<<<< @@ -3412,7 +3312,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(double *__py */ __pyx_v_val = (__pyx_v_X_data_ptr[(__pyx_v_offset + __pyx_v_j)]); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":245 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":253 * idx = X_indices_ptr[offset + j] * val = X_data_ptr[offset + j] * innerprod += (w_data_ptr[idx] * val) # <<<<<<<<<<<<<< @@ -3421,7 +3321,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(double *__py */ __pyx_v_innerprod = (__pyx_v_innerprod + ((__pyx_v_w_data_ptr[__pyx_v_idx]) * __pyx_v_val)); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":246 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":254 * val = X_data_ptr[offset + j] * innerprod += (w_data_ptr[idx] * val) * xsqnorm += (val * val) # <<<<<<<<<<<<<< @@ -3430,7 +3330,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(double *__py */ __pyx_v_xsqnorm = (__pyx_v_xsqnorm + (__pyx_v_val * __pyx_v_val)); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":247 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":255 * innerprod += (w_data_ptr[idx] * val) * xsqnorm += (val * val) * w_data_ptr[idx] += val * (c / wscale) # <<<<<<<<<<<<<< @@ -3441,7 +3341,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(double *__py (__pyx_v_w_data_ptr[__pyx_t_3]) = ((__pyx_v_w_data_ptr[__pyx_t_3]) + (__pyx_v_val * (__pyx_v_c / __pyx_v_wscale))); } - /* "sklearn/linear_model/sgd_fast_sparse.pyx":248 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":256 * xsqnorm += (val * val) * w_data_ptr[idx] += val * (c / wscale) * return (xsqnorm * c * c) + (2.0 * innerprod * wscale * c) # <<<<<<<<<<<<<< @@ -3457,7 +3357,7 @@ static double __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_add(double *__py return __pyx_r; } -/* "sklearn/linear_model/sgd_fast_sparse.pyx":251 +/* "sklearn/linear_model/sgd_fast_sparse.pyx":259 * * * cdef void l1penalty(double *w_data_ptr, double wscale, double *q_data_ptr, # <<<<<<<<<<<<<< @@ -3476,7 +3376,7 @@ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double * int __pyx_t_4; __Pyx_RefNannySetupContext("l1penalty"); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":258 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":266 * [Tsuruoka, Y., Tsujii, J., and Ananiadou, S., 2009]. * """ * cdef double z = 0.0 # <<<<<<<<<<<<<< @@ -3485,7 +3385,7 @@ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double * */ __pyx_v_z = 0.0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":259 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":267 * """ * cdef double z = 0.0 * cdef int j = 0 # <<<<<<<<<<<<<< @@ -3494,7 +3394,7 @@ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double * */ __pyx_v_j = 0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":260 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":268 * cdef double z = 0.0 * cdef int j = 0 * cdef int idx = 0 # <<<<<<<<<<<<<< @@ -3503,7 +3403,7 @@ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double * */ __pyx_v_idx = 0; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":261 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":269 * cdef int j = 0 * cdef int idx = 0 * for j in xrange(xnnz): # <<<<<<<<<<<<<< @@ -3514,7 +3414,7 @@ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double * for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { __pyx_v_j = __pyx_t_2; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":262 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":270 * cdef int idx = 0 * for j in xrange(xnnz): * idx = X_indices_ptr[offset + j] # <<<<<<<<<<<<<< @@ -3523,7 +3423,7 @@ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double * */ __pyx_v_idx = (__pyx_v_X_indices_ptr[(__pyx_v_offset + __pyx_v_j)]); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":263 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":271 * for j in xrange(xnnz): * idx = X_indices_ptr[offset + j] * z = w_data_ptr[idx] # <<<<<<<<<<<<<< @@ -3532,7 +3432,7 @@ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double * */ __pyx_v_z = (__pyx_v_w_data_ptr[__pyx_v_idx]); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":264 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":272 * idx = X_indices_ptr[offset + j] * z = w_data_ptr[idx] * if (wscale * w_data_ptr[idx]) > 0.0: # <<<<<<<<<<<<<< @@ -3542,7 +3442,7 @@ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double * __pyx_t_3 = ((__pyx_v_wscale * (__pyx_v_w_data_ptr[__pyx_v_idx])) > 0.0); if (__pyx_t_3) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":265 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":273 * z = w_data_ptr[idx] * if (wscale * w_data_ptr[idx]) > 0.0: * w_data_ptr[idx] = max( # <<<<<<<<<<<<<< @@ -3553,7 +3453,7 @@ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double * goto __pyx_L5; } - /* "sklearn/linear_model/sgd_fast_sparse.pyx":268 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":276 * 0.0, w_data_ptr[idx] - ((u + q_data_ptr[idx]) / wscale)) * * elif (wscale * w_data_ptr[idx]) < 0.0: # <<<<<<<<<<<<<< @@ -3563,7 +3463,7 @@ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double * __pyx_t_3 = ((__pyx_v_wscale * (__pyx_v_w_data_ptr[__pyx_v_idx])) < 0.0); if (__pyx_t_3) { - /* "sklearn/linear_model/sgd_fast_sparse.pyx":269 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":277 * * elif (wscale * w_data_ptr[idx]) < 0.0: * w_data_ptr[idx] = min( # <<<<<<<<<<<<<< @@ -3575,7 +3475,7 @@ static void __pyx_f_7sklearn_12linear_model_15sgd_fast_sparse_l1penalty(double * } __pyx_L5:; - /* "sklearn/linear_model/sgd_fast_sparse.pyx":272 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":280 * 0.0, w_data_ptr[idx] + ((u - q_data_ptr[idx]) / wscale)) * * q_data_ptr[idx] += (wscale * (w_data_ptr[idx] - z)) # <<<<<<<<<<<<<< @@ -4287,7 +4187,7 @@ static CYTHON_UNUSED int __pyx_pf_5numpy_7ndarray___getbuffer__(PyObject *__pyx_ __Pyx_GOTREF(((PyObject *)__pyx_t_8)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_8)); __Pyx_GIVEREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; @@ -5320,7 +5220,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_12), __pyx_v_t); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_5)); __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; @@ -5547,9 +5447,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_kp_u_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 1, 0, 0}, {&__pyx_kp_u_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 1, 0, 0}, {&__pyx_kp_u_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 1, 0, 0}, + {&__pyx_n_s_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 0, 1, 1}, {&__pyx_kp_s_2, __pyx_k_2, sizeof(__pyx_k_2), 0, 0, 1, 0}, - {&__pyx_kp_s_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 0, 1, 0}, - {&__pyx_n_s_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 0, 1, 1}, {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0}, {&__pyx_kp_s_4, __pyx_k_4, sizeof(__pyx_k_4), 0, 0, 1, 0}, {&__pyx_kp_u_6, __pyx_k_6, sizeof(__pyx_k_6), 0, 1, 0, 0}, @@ -5558,88 +5457,58 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s__RuntimeError, __pyx_k__RuntimeError, sizeof(__pyx_k__RuntimeError), 0, 0, 1, 1}, {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1}, {&__pyx_n_s__X_data, __pyx_k__X_data, sizeof(__pyx_k__X_data), 0, 0, 1, 1}, - {&__pyx_n_s__X_data_ptr, __pyx_k__X_data_ptr, sizeof(__pyx_k__X_data_ptr), 0, 0, 1, 1}, {&__pyx_n_s__X_indices, __pyx_k__X_indices, sizeof(__pyx_k__X_indices), 0, 0, 1, 1}, - {&__pyx_n_s__X_indices_ptr, __pyx_k__X_indices_ptr, sizeof(__pyx_k__X_indices_ptr), 0, 0, 1, 1}, {&__pyx_n_s__X_indptr, __pyx_k__X_indptr, sizeof(__pyx_k__X_indptr), 0, 0, 1, 1}, - {&__pyx_n_s__X_indptr_ptr, __pyx_k__X_indptr_ptr, sizeof(__pyx_k__X_indptr_ptr), 0, 0, 1, 1}, {&__pyx_n_s__Y, __pyx_k__Y, sizeof(__pyx_k__Y), 0, 0, 1, 1}, - {&__pyx_n_s__Y_data_ptr, __pyx_k__Y_data_ptr, sizeof(__pyx_k__Y_data_ptr), 0, 0, 1, 1}, {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1}, {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1}, {&__pyx_n_s__alpha, __pyx_k__alpha, sizeof(__pyx_k__alpha), 0, 0, 1, 1}, {&__pyx_n_s__any, __pyx_k__any, sizeof(__pyx_k__any), 0, 0, 1, 1}, {&__pyx_n_s__arange, __pyx_k__arange, sizeof(__pyx_k__arange), 0, 0, 1, 1}, {&__pyx_n_s__c, __pyx_k__c, sizeof(__pyx_k__c), 0, 0, 1, 1}, - {&__pyx_n_s__class_weight, __pyx_k__class_weight, sizeof(__pyx_k__class_weight), 0, 0, 1, 1}, - {&__pyx_n_s__count, __pyx_k__count, sizeof(__pyx_k__count), 0, 0, 1, 1}, {&__pyx_n_s__dot, __pyx_k__dot, sizeof(__pyx_k__dot), 0, 0, 1, 1}, {&__pyx_n_s__dtype, __pyx_k__dtype, sizeof(__pyx_k__dtype), 0, 0, 1, 1}, - {&__pyx_n_s__epoch, __pyx_k__epoch, sizeof(__pyx_k__epoch), 0, 0, 1, 1}, - {&__pyx_n_s__eta, __pyx_k__eta, sizeof(__pyx_k__eta), 0, 0, 1, 1}, {&__pyx_n_s__eta0, __pyx_k__eta0, sizeof(__pyx_k__eta0), 0, 0, 1, 1}, {&__pyx_n_s__fit_intercept, __pyx_k__fit_intercept, sizeof(__pyx_k__fit_intercept), 0, 0, 1, 1}, {&__pyx_n_s__float64, __pyx_k__float64, sizeof(__pyx_k__float64), 0, 0, 1, 1}, - {&__pyx_n_s__i, __pyx_k__i, sizeof(__pyx_k__i), 0, 0, 1, 1}, - {&__pyx_n_s__index, __pyx_k__index, sizeof(__pyx_k__index), 0, 0, 1, 1}, - {&__pyx_n_s__index_data_ptr, __pyx_k__index_data_ptr, sizeof(__pyx_k__index_data_ptr), 0, 0, 1, 1}, {&__pyx_n_s__int32, __pyx_k__int32, sizeof(__pyx_k__int32), 0, 0, 1, 1}, {&__pyx_n_s__intercept, __pyx_k__intercept, sizeof(__pyx_k__intercept), 0, 0, 1, 1}, {&__pyx_n_s__isinf, __pyx_k__isinf, sizeof(__pyx_k__isinf), 0, 0, 1, 1}, {&__pyx_n_s__isnan, __pyx_k__isnan, sizeof(__pyx_k__isnan), 0, 0, 1, 1}, {&__pyx_n_s__learning_rate, __pyx_k__learning_rate, sizeof(__pyx_k__learning_rate), 0, 0, 1, 1}, {&__pyx_n_s__loss, __pyx_k__loss, sizeof(__pyx_k__loss), 0, 0, 1, 1}, - {&__pyx_n_s__n_features, __pyx_k__n_features, sizeof(__pyx_k__n_features), 0, 0, 1, 1}, {&__pyx_n_s__n_iter, __pyx_k__n_iter, sizeof(__pyx_k__n_iter), 0, 0, 1, 1}, - {&__pyx_n_s__n_samples, __pyx_k__n_samples, sizeof(__pyx_k__n_samples), 0, 0, 1, 1}, {&__pyx_n_s__nonzero, __pyx_k__nonzero, sizeof(__pyx_k__nonzero), 0, 0, 1, 1}, {&__pyx_n_s__np, __pyx_k__np, sizeof(__pyx_k__np), 0, 0, 1, 1}, {&__pyx_n_s__numpy, __pyx_k__numpy, sizeof(__pyx_k__numpy), 0, 0, 1, 1}, - {&__pyx_n_s__offset, __pyx_k__offset, sizeof(__pyx_k__offset), 0, 0, 1, 1}, {&__pyx_n_s__order, __pyx_k__order, sizeof(__pyx_k__order), 0, 0, 1, 1}, - {&__pyx_n_s__p, __pyx_k__p, sizeof(__pyx_k__p), 0, 0, 1, 1}, {&__pyx_n_s__penalty_type, __pyx_k__penalty_type, sizeof(__pyx_k__penalty_type), 0, 0, 1, 1}, {&__pyx_n_s__plain_sgd, __pyx_k__plain_sgd, sizeof(__pyx_k__plain_sgd), 0, 0, 1, 1}, {&__pyx_n_s__power_t, __pyx_k__power_t, sizeof(__pyx_k__power_t), 0, 0, 1, 1}, - {&__pyx_n_s__q, __pyx_k__q, sizeof(__pyx_k__q), 0, 0, 1, 1}, - {&__pyx_n_s__q_data_ptr, __pyx_k__q_data_ptr, sizeof(__pyx_k__q_data_ptr), 0, 0, 1, 1}, {&__pyx_n_s__random, __pyx_k__random, sizeof(__pyx_k__random), 0, 0, 1, 1}, {&__pyx_n_s__range, __pyx_k__range, sizeof(__pyx_k__range), 0, 0, 1, 1}, {&__pyx_n_s__rho, __pyx_k__rho, sizeof(__pyx_k__rho), 0, 0, 1, 1}, - {&__pyx_n_s__sample_idx, __pyx_k__sample_idx, sizeof(__pyx_k__sample_idx), 0, 0, 1, 1}, {&__pyx_n_s__sample_weight, __pyx_k__sample_weight, sizeof(__pyx_k__sample_weight), 0, 0, 1, 1}, - {&__pyx_n_s__sample_weight_data, __pyx_k__sample_weight_data, sizeof(__pyx_k__sample_weight_data), 0, 0, 1, 1}, {&__pyx_n_s__seed, __pyx_k__seed, sizeof(__pyx_k__seed), 0, 0, 1, 1}, {&__pyx_n_s__shape, __pyx_k__shape, sizeof(__pyx_k__shape), 0, 0, 1, 1}, {&__pyx_n_s__shuffle, __pyx_k__shuffle, sizeof(__pyx_k__shuffle), 0, 0, 1, 1}, - {&__pyx_n_s__sumloss, __pyx_k__sumloss, sizeof(__pyx_k__sumloss), 0, 0, 1, 1}, {&__pyx_n_s__sys, __pyx_k__sys, sizeof(__pyx_k__sys), 0, 0, 1, 1}, - {&__pyx_n_s__t, __pyx_k__t, sizeof(__pyx_k__t), 0, 0, 1, 1}, - {&__pyx_n_s__t_start, __pyx_k__t_start, sizeof(__pyx_k__t_start), 0, 0, 1, 1}, {&__pyx_n_s__time, __pyx_k__time, sizeof(__pyx_k__time), 0, 0, 1, 1}, - {&__pyx_n_s__typw, __pyx_k__typw, sizeof(__pyx_k__typw), 0, 0, 1, 1}, - {&__pyx_n_s__u, __pyx_k__u, sizeof(__pyx_k__u), 0, 0, 1, 1}, - {&__pyx_n_s__update, __pyx_k__update, sizeof(__pyx_k__update), 0, 0, 1, 1}, {&__pyx_n_s__verbose, __pyx_k__verbose, sizeof(__pyx_k__verbose), 0, 0, 1, 1}, {&__pyx_n_s__w, __pyx_k__w, sizeof(__pyx_k__w), 0, 0, 1, 1}, - {&__pyx_n_s__w_data_ptr, __pyx_k__w_data_ptr, sizeof(__pyx_k__w_data_ptr), 0, 0, 1, 1}, {&__pyx_n_s__weight_neg, __pyx_k__weight_neg, sizeof(__pyx_k__weight_neg), 0, 0, 1, 1}, {&__pyx_n_s__weight_pos, __pyx_k__weight_pos, sizeof(__pyx_k__weight_pos), 0, 0, 1, 1}, - {&__pyx_n_s__wnorm, __pyx_k__wnorm, sizeof(__pyx_k__wnorm), 0, 0, 1, 1}, - {&__pyx_n_s__wscale, __pyx_k__wscale, sizeof(__pyx_k__wscale), 0, 0, 1, 1}, - {&__pyx_n_s__xnnz, __pyx_k__xnnz, sizeof(__pyx_k__xnnz), 0, 0, 1, 1}, {&__pyx_n_s__xrange, __pyx_k__xrange, sizeof(__pyx_k__xrange), 0, 0, 1, 1}, - {&__pyx_n_s__y, __pyx_k__y, sizeof(__pyx_k__y), 0, 0, 1, 1}, {&__pyx_n_s__zeros, __pyx_k__zeros, sizeof(__pyx_k__zeros), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; static int __Pyx_InitCachedBuiltins(void) { #if PY_MAJOR_VERSION >= 3 - __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #else - __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif - __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_RuntimeError = __Pyx_GetName(__pyx_b, __pyx_n_s__RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} return 0; @@ -5651,21 +5520,29 @@ static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants"); - /* "sklearn/linear_model/sgd_fast_sparse.pyx":211 + /* "sklearn/linear_model/sgd_fast_sparse.pyx":219 * if np.any(np.isinf(w)) or np.any(np.isnan(w)) \ * or np.isnan(intercept) or np.isinf(intercept): * raise ValueError("floating-point under-/overflow occured.") # <<<<<<<<<<<<<< * * w *= wscale */ - __pyx_k_tuple_5 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_5); + __pyx_k_tuple_5 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_5)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_4)); PyTuple_SET_ITEM(__pyx_k_tuple_5, 0, ((PyObject *)__pyx_kp_s_4)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_5)); + + /* "numpy.pxd":211 + * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) + * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): + * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< + * + * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) + */ __pyx_k_tuple_7 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_7); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_7)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_6)); PyTuple_SET_ITEM(__pyx_k_tuple_7, 0, ((PyObject *)__pyx_kp_u_6)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_6)); @@ -5679,7 +5556,7 @@ static int __Pyx_InitCachedConstants(void) { * info.buf = PyArray_DATA(self) */ __pyx_k_tuple_9 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_9)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_9); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_9)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_8)); PyTuple_SET_ITEM(__pyx_k_tuple_9, 0, ((PyObject *)__pyx_kp_u_8)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_8)); @@ -5693,7 +5570,7 @@ static int __Pyx_InitCachedConstants(void) { * elif t == NPY_UBYTE: f = "B" */ __pyx_k_tuple_11 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_11)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_11); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_11)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_10)); PyTuple_SET_ITEM(__pyx_k_tuple_11, 0, ((PyObject *)__pyx_kp_u_10)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_10)); @@ -5707,7 +5584,7 @@ static int __Pyx_InitCachedConstants(void) { * if ((child.byteorder == '>' and little_endian) or */ __pyx_k_tuple_14 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_14)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_14); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_14)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_13)); PyTuple_SET_ITEM(__pyx_k_tuple_14, 0, ((PyObject *)__pyx_kp_u_13)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_13)); @@ -5721,7 +5598,7 @@ static int __Pyx_InitCachedConstants(void) { * # complain instead, BUT: < and > in format strings also imply */ __pyx_k_tuple_15 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_15); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_15)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_10)); PyTuple_SET_ITEM(__pyx_k_tuple_15, 0, ((PyObject *)__pyx_kp_u_10)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_10)); @@ -5735,176 +5612,11 @@ static int __Pyx_InitCachedConstants(void) { * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_k_tuple_17 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_17)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_17); + __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_17)); __Pyx_INCREF(((PyObject *)__pyx_kp_u_16)); PyTuple_SET_ITEM(__pyx_k_tuple_17, 0, ((PyObject *)__pyx_kp_u_16)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_16)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_17)); - - /* "sklearn/linear_model/sgd_fast_sparse.pyx":34 - * @cython.wraparound(False) - * @cython.cdivision(True) - * def plain_sgd(np.ndarray[double, ndim=1] w, # <<<<<<<<<<<<<< - * double intercept, - * LossFunction loss, - */ - __pyx_k_tuple_18 = PyTuple_New(51); if (unlikely(!__pyx_k_tuple_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_k_tuple_18); - __Pyx_INCREF(((PyObject *)__pyx_n_s__w)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 0, ((PyObject *)__pyx_n_s__w)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__w)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__intercept)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 1, ((PyObject *)__pyx_n_s__intercept)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__intercept)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__loss)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 2, ((PyObject *)__pyx_n_s__loss)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__loss)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__penalty_type)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 3, ((PyObject *)__pyx_n_s__penalty_type)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__penalty_type)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__alpha)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 4, ((PyObject *)__pyx_n_s__alpha)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__alpha)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__rho)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 5, ((PyObject *)__pyx_n_s__rho)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__rho)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__X_data)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 6, ((PyObject *)__pyx_n_s__X_data)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__X_data)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__X_indices)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 7, ((PyObject *)__pyx_n_s__X_indices)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__X_indices)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__X_indptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 8, ((PyObject *)__pyx_n_s__X_indptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__X_indptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__Y)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 9, ((PyObject *)__pyx_n_s__Y)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__Y)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__n_iter)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 10, ((PyObject *)__pyx_n_s__n_iter)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__n_iter)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__fit_intercept)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 11, ((PyObject *)__pyx_n_s__fit_intercept)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__fit_intercept)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__verbose)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 12, ((PyObject *)__pyx_n_s__verbose)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__verbose)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__shuffle)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 13, ((PyObject *)__pyx_n_s__shuffle)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__shuffle)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__seed)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 14, ((PyObject *)__pyx_n_s__seed)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__seed)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__weight_pos)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 15, ((PyObject *)__pyx_n_s__weight_pos)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__weight_pos)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__weight_neg)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 16, ((PyObject *)__pyx_n_s__weight_neg)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__weight_neg)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__sample_weight)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 17, ((PyObject *)__pyx_n_s__sample_weight)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__sample_weight)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__learning_rate)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 18, ((PyObject *)__pyx_n_s__learning_rate)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__learning_rate)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__eta0)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 19, ((PyObject *)__pyx_n_s__eta0)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__eta0)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__power_t)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 20, ((PyObject *)__pyx_n_s__power_t)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__power_t)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__n_samples)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 21, ((PyObject *)__pyx_n_s__n_samples)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__n_samples)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__n_features)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 22, ((PyObject *)__pyx_n_s__n_features)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__n_features)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__w_data_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 23, ((PyObject *)__pyx_n_s__w_data_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__w_data_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__X_data_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 24, ((PyObject *)__pyx_n_s__X_data_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__X_data_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__X_indptr_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 25, ((PyObject *)__pyx_n_s__X_indptr_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__X_indptr_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__X_indices_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 26, ((PyObject *)__pyx_n_s__X_indices_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__X_indices_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__Y_data_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 27, ((PyObject *)__pyx_n_s__Y_data_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__Y_data_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__sample_weight_data)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 28, ((PyObject *)__pyx_n_s__sample_weight_data)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__sample_weight_data)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__index)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 29, ((PyObject *)__pyx_n_s__index)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__index)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__index_data_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 30, ((PyObject *)__pyx_n_s__index_data_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__index_data_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__offset)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 31, ((PyObject *)__pyx_n_s__offset)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__offset)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__xnnz)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 32, ((PyObject *)__pyx_n_s__xnnz)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__xnnz)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__wscale)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 33, ((PyObject *)__pyx_n_s__wscale)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__wscale)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__eta)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 34, ((PyObject *)__pyx_n_s__eta)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__eta)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__p)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 35, ((PyObject *)__pyx_n_s__p)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__p)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__update)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 36, ((PyObject *)__pyx_n_s__update)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__update)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__sumloss)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 37, ((PyObject *)__pyx_n_s__sumloss)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__sumloss)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__wnorm)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 38, ((PyObject *)__pyx_n_s__wnorm)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__wnorm)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__t)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 39, ((PyObject *)__pyx_n_s__t)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__t)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__y)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 40, ((PyObject *)__pyx_n_s__y)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__y)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__class_weight)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 41, ((PyObject *)__pyx_n_s__class_weight)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__class_weight)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__count)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 42, ((PyObject *)__pyx_n_s__count)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__count)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__epoch)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 43, ((PyObject *)__pyx_n_s__epoch)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__epoch)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__i)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 44, ((PyObject *)__pyx_n_s__i)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__sample_idx)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 45, ((PyObject *)__pyx_n_s__sample_idx)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__sample_idx)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__q)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 46, ((PyObject *)__pyx_n_s__q)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__q)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__q_data_ptr)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 47, ((PyObject *)__pyx_n_s__q_data_ptr)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__q_data_ptr)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__u)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 48, ((PyObject *)__pyx_n_s__u)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__u)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__typw)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 49, ((PyObject *)__pyx_n_s__typw)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__typw)); - __Pyx_INCREF(((PyObject *)__pyx_n_s__t_start)); - PyTuple_SET_ITEM(__pyx_k_tuple_18, 50, ((PyObject *)__pyx_n_s__t_start)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__t_start)); - __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_18)); - __pyx_k_codeobj_19 = (PyObject*)__Pyx_PyCode_New(21, 0, 51, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_18, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_20, __pyx_n_s__plain_sgd, 34, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -5944,8 +5656,8 @@ PyMODINIT_FUNC PyInit_sgd_fast_sparse(void) if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #ifdef __Pyx_CyFunction_USED - if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + #ifdef __pyx_binding_PyCFunctionType_USED + if (__pyx_binding_PyCFunctionType_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ @@ -6038,18 +5750,14 @@ PyMODINIT_FUNC PyInit_sgd_fast_sparse(void) * cimport numpy as np */ __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__time)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__time)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__time)); __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__time), ((PyObject *)__pyx_t_1), -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__time); - if (__pyx_t_1 == NULL) { - if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__time); - if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } + __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__time); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__time, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -6062,7 +5770,7 @@ PyMODINIT_FUNC PyInit_sgd_fast_sparse(void) * double intercept, * LossFunction loss, */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd, NULL, __pyx_n_s_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7sklearn_12linear_model_15sgd_fast_sparse_plain_sgd, NULL, __pyx_n_s_18); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__plain_sgd, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -6273,11 +5981,22 @@ static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed name, type->tp_name, Py_TYPE(obj)->tp_name); return 0; } + static CYTHON_INLINE int __Pyx_IsLittleEndian(void) { unsigned int n = 1; return *(unsigned char*)(&n) != 0; } +typedef struct { + __Pyx_StructField root; + __Pyx_BufFmt_StackElem* head; + size_t fmt_offset; + size_t new_count, enc_count; + int is_complex; + char enc_type; + char new_packmode; + char enc_packmode; +} __Pyx_BufFmt_Context; static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, @@ -6432,7 +6151,6 @@ static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { } } - static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { if (ctx->head == NULL || ctx->head->field == &ctx->root) { const char* expected; @@ -6652,7 +6370,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha "Does not understand character buffer dtype format string ('%c')", *ts); return NULL; } - ctx->new_count = (size_t)number; + ctx->new_count = (size_t)number; } } } @@ -6666,10 +6384,7 @@ static CYTHON_INLINE void __Pyx_ZeroBuffer(Py_buffer* buf) { buf->suboffsets = __Pyx_minusones; } -static CYTHON_INLINE int __Pyx_GetBufferAndValidate( - Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, - int nd, int cast, __Pyx_BufFmt_StackElem* stack) -{ +static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack) { if (obj == Py_None || obj == NULL) { __Pyx_ZeroBuffer(buf); return 0; @@ -6707,8 +6422,6 @@ static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { __Pyx_ReleaseBuffer(info); } - - static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_Format(PyExc_SystemError, "Missing type object"); @@ -6720,6 +6433,7 @@ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { Py_TYPE(obj)->tp_name, type->tp_name); return 0; } + static void __Pyx_RaiseBufferFallbackError(void) { PyErr_Format(PyExc_ValueError, "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!"); @@ -6919,11 +6633,11 @@ static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); #endif if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pf_5numpy_7ndarray___getbuffer__(obj, view, flags); - else { - PyErr_Format(PyExc_TypeError, "'%100s' does not have the buffer interface", Py_TYPE(obj)->tp_name); + else { + PyErr_Format(PyExc_TypeError, "'%100s' does not have the buffer interface", Py_TYPE(obj)->tp_name); return -1; } - } +} static void __Pyx_ReleaseBuffer(Py_buffer *view) { PyObject* obj = view->obj; @@ -6931,8 +6645,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { #if PY_VERSION_HEX >= 0x02060000 if (PyObject_CheckBuffer(obj)) {PyBuffer_Release(view); return;} #endif -if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pf_5numpy_7ndarray_1__releasebuffer__(obj, view); - + if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pf_5numpy_7ndarray_1__releasebuffer__(obj, view); Py_DECREF(obj); view->obj = NULL; } @@ -6988,15 +6701,6 @@ bad: return module; } -static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name) { -#if PY_MAJOR_VERSION < 3 - PyErr_Format(PyExc_ImportError, "cannot import name %.230s", - PyString_AsString(name)); -#else - PyErr_Format(PyExc_ImportError, "cannot import name %S", name); -#endif -} - #if PY_MAJOR_VERSION < 3 static PyObject *__Pyx_GetStdout(void) { PyObject *f = PySys_GetObject((char *)"stdout"); @@ -7806,7 +7510,11 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class py_module = __Pyx_ImportModule(module_name); if (!py_module) goto bad; - py_name = __Pyx_PyIdentifier_FromString(class_name); + #if PY_MAJOR_VERSION < 3 + py_name = PyString_FromString(class_name); + #else + py_name = PyUnicode_FromString(class_name); + #endif if (!py_name) goto bad; result = PyObject_GetAttr(py_module, py_name); @@ -7852,7 +7560,11 @@ static PyObject *__Pyx_ImportModule(const char *name) { PyObject *py_name = 0; PyObject *py_module = 0; - py_name = __Pyx_PyIdentifier_FromString(name); + #if PY_MAJOR_VERSION < 3 + py_name = PyString_FromString(name); + #else + py_name = PyUnicode_FromString(name); + #endif if (!py_name) goto bad; py_module = PyImport_Import(py_name); @@ -7918,9 +7630,11 @@ static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno, if (!py_funcname) goto bad; py_globals = PyModule_GetDict(__pyx_m); if (!py_globals) goto bad; - py_code = __Pyx_PyCode_New( + py_code = PyCode_New( 0, /*int argcount,*/ + #if PY_MAJOR_VERSION >= 3 0, /*int kwonlyargcount,*/ + #endif 0, /*int nlocals,*/ 0, /*int stacksize,*/ 0, /*int flags,*/ diff --git a/sklearn/linear_model/sgd_fast_sparse.pyx b/sklearn/linear_model/sgd_fast_sparse.pyx index 2e9b2e18fadb41d5883f5577ca2384b90016ec0d..5f25777df3d2f9fc7712fa624c4ce8c67783d6af 100644 --- a/sklearn/linear_model/sgd_fast_sparse.pyx +++ b/sklearn/linear_model/sgd_fast_sparse.pyx @@ -134,12 +134,20 @@ def plain_sgd(np.ndarray[double, ndim=1] w, cdef unsigned int epoch = 0 cdef unsigned int i = 0 cdef int sample_idx = 0 + + # q vector is only used for L1 regularization cdef np.ndarray[double, ndim=1, mode="c"] q = None cdef double *q_data_ptr = NULL if penalty_type != L2: q = np.zeros((n_features,), dtype=np.float64, order="c") q_data_ptr = <double *> q.data cdef double u = 0.0 + + if penalty_type == L2: + rho = 1.0 + elif penalty_type == L1: + rho = 0.0 + cdef double typw = sqrt(1.0 / sqrt(alpha)) if learning_rate == OPTIMAL: diff --git a/sklearn/linear_model/sparse/stochastic_gradient.py b/sklearn/linear_model/sparse/stochastic_gradient.py index d320d32b00b61af01691686721f40444dc6613cb..7883e61857f7da095efd697fe83cf64bd14453cc 100644 --- a/sklearn/linear_model/sparse/stochastic_gradient.py +++ b/sklearn/linear_model/sparse/stochastic_gradient.py @@ -125,7 +125,7 @@ class SGDClassifier(BaseSGDClassifier): >>> clf.fit(X, y) SGDClassifier(alpha=0.0001, class_weight=None, eta0=0.0, fit_intercept=True, learning_rate='optimal', loss='hinge', n_iter=5, n_jobs=1, - penalty='l2', power_t=0.5, rho=1.0, seed=0, shuffle=False, + penalty='l2', power_t=0.5, rho=0.85, seed=0, shuffle=False, verbose=0) >>> print clf.predict([[-0.8, -1]]) [1] @@ -320,7 +320,7 @@ class SGDRegressor(BaseSGDRegressor): >>> clf.fit(X, y) SGDRegressor(alpha=0.0001, eta0=0.01, fit_intercept=True, learning_rate='invscaling', loss='squared_loss', n_iter=5, p=0.1, - penalty='l2', power_t=0.25, rho=1.0, seed=0, shuffle=False, + penalty='l2', power_t=0.25, rho=0.85, seed=0, shuffle=False, verbose=0) See also diff --git a/sklearn/linear_model/stochastic_gradient.py b/sklearn/linear_model/stochastic_gradient.py index 82d924fa5efef2aa0a97e8075e4df93f52c0fab0..7b1581fb9f103ecd3426dcc68911c0ed559fdca5 100644 --- a/sklearn/linear_model/stochastic_gradient.py +++ b/sklearn/linear_model/stochastic_gradient.py @@ -113,7 +113,7 @@ class SGDClassifier(BaseSGDClassifier): >>> clf.fit(X, Y) SGDClassifier(alpha=0.0001, class_weight=None, eta0=0.0, fit_intercept=True, learning_rate='optimal', loss='hinge', n_iter=5, n_jobs=1, - penalty='l2', power_t=0.5, rho=1.0, seed=0, shuffle=False, + penalty='l2', power_t=0.5, rho=0.85, seed=0, shuffle=False, verbose=0) >>> print clf.predict([[-0.8, -1]]) [1] @@ -291,7 +291,7 @@ class SGDRegressor(BaseSGDRegressor): >>> clf.fit(X, y) SGDRegressor(alpha=0.0001, eta0=0.01, fit_intercept=True, learning_rate='invscaling', loss='squared_loss', n_iter=5, p=0.1, - penalty='l2', power_t=0.25, rho=1.0, seed=0, shuffle=False, + penalty='l2', power_t=0.25, rho=0.85, seed=0, shuffle=False, verbose=0) See also diff --git a/sklearn/linear_model/tests/test_sgd.py b/sklearn/linear_model/tests/test_sgd.py index ffcccdd98012498932ce79986dae3f1d1a75a8d8..5657f9542d162df7c8f26ad03dc4e01b746a81f3 100644 --- a/sklearn/linear_model/tests/test_sgd.py +++ b/sklearn/linear_model/tests/test_sgd.py @@ -69,15 +69,6 @@ class DenseSGDClassifierTestCase(unittest.TestCase): #assert_almost_equal(clf.coef_[0], clf.coef_[1], decimal=7) assert_array_equal(clf.predict(T), true_result) - def test_sgd_penalties(self): - """Check whether penalties and hyperparameters are set properly""" - clf = self.factory(penalty='l2') - assert clf.rho == 1.0 - clf = self.factory(penalty='l1') - assert clf.rho == 0.0 - clf = self.factory(penalty='elasticnet', rho=0.85) - assert clf.rho == 0.85 - @raises(ValueError) def test_sgd_bad_penalty(self): """Check whether expected ValueError on bad penalty""" @@ -365,15 +356,6 @@ class DenseSGDRegressorTestCase(unittest.TestCase): clf.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2]) assert clf.coef_[0] == clf.coef_[1] - def test_sgd_penalties(self): - """Check whether penalties and hyperparameters are set properly""" - clf = self.factory(penalty='l2') - assert clf.rho == 1.0 - clf = self.factory(penalty='l1') - assert clf.rho == 0.0 - clf = self.factory(penalty='elasticnet', rho=0.85) - assert clf.rho == 0.85 - @raises(ValueError) def test_sgd_bad_penalty(self): """Check whether expected ValueError on bad penalty"""