summaryrefslogtreecommitdiffstats
path: root/experiments/ml.c
diff options
context:
space:
mode:
authorBen Green <ben@SEASITs-MacBook-Pro.local>2015-06-18 22:57:20 -0400
committerBen Green <ben@SEASITs-MacBook-Pro.local>2015-06-18 22:57:20 -0400
commit5aef644d674b73d6ba34c55b6147954b1a2a2535 (patch)
tree6eb34aa98871dc1d1caac2ec2685551ecc33e2ab /experiments/ml.c
parent4ff5e31b715a62a2cc62a1a8f8beab6c4c2234d6 (diff)
downloadcriminal_cascades-5aef644d674b73d6ba34c55b6147954b1a2a2535.tar.gz
testing new model, realizing we may be getting optimal beta wrong
Diffstat (limited to 'experiments/ml.c')
-rw-r--r--experiments/ml.c378
1 files changed, 275 insertions, 103 deletions
diff --git a/experiments/ml.c b/experiments/ml.c
index 3c6c463..976accb 100644
--- a/experiments/ml.c
+++ b/experiments/ml.c
@@ -1287,7 +1287,7 @@ static char __pyx_k_d[] = "d";
static char __pyx_k_f[] = "f";
static char __pyx_k_g[] = "g";
static char __pyx_k_h[] = "h";
-static char __pyx_k_i[] = "i";
+static char __pyx_k_i[] = "i:";
static char __pyx_k_l[] = "l";
static char __pyx_k_q[] = "q";
static char __pyx_k_t[] = "t";
@@ -1298,11 +1298,14 @@ static char __pyx_k_dt[] = "dt";
static char __pyx_k_ll[] = "ll";
static char __pyx_k_ml[] = "ml";
static char __pyx_k_np[] = "np";
+static char __pyx_k_st[] = "st";
static char __pyx_k_w1[] = "w1";
static char __pyx_k_w2[] = "w2";
static char __pyx_k_w3[] = "w3";
+static char __pyx_k_add[] = "add:";
static char __pyx_k_age[] = "age";
static char __pyx_k_end[] = "end";
+static char __pyx_k_i_2[] = "i";
static char __pyx_k_inf[] = "-inf";
static char __pyx_k_max[] = "max";
static char __pyx_k_sum[] = "sum";
@@ -1312,6 +1315,7 @@ static char __pyx_k_dist[] = "dist";
static char __pyx_k_file[] = "file";
static char __pyx_k_main[] = "__main__";
static char __pyx_k_send[] = "send";
+static char __pyx_k_stnv[] = "stnv";
static char __pyx_k_test[] = "__test__";
static char __pyx_k_DTYPE[] = "DTYPE";
static char __pyx_k_alpha[] = "alpha";
@@ -1324,21 +1328,23 @@ static char __pyx_k_numpy[] = "numpy";
static char __pyx_k_print[] = "print";
static char __pyx_k_probs[] = "probs";
static char __pyx_k_range[] = "range";
-static char __pyx_k_roots[] = "roots";
+static char __pyx_k_roots[] = "roots:";
static char __pyx_k_throw[] = "throw";
static char __pyx_k_zeros[] = "zeros";
static char __pyx_k_import[] = "__import__";
-static char __pyx_k_thresh[] = "thresh";
+static char __pyx_k_thresh[] = "thresh:";
static char __pyx_k_xrange[] = "xrange";
static char __pyx_k_float64[] = "float64";
static char __pyx_k_genexpr[] = "genexpr";
static char __pyx_k_n_nodes[] = "n_nodes";
static char __pyx_k_n_roots[] = "n_roots";
static char __pyx_k_parents[] = "parents";
+static char __pyx_k_roots_2[] = "roots";
static char __pyx_k_victims[] = "victims";
static char __pyx_k_beta_add[] = "beta_add";
static char __pyx_k_failures[] = "failures";
static char __pyx_k_probs_nv[] = "probs_nv";
+static char __pyx_k_thresh_2[] = "thresh";
static char __pyx_k_enumerate[] = "enumerate";
static char __pyx_k_n_victims[] = "n_victims";
static char __pyx_k_successes[] = "successes";
@@ -1351,6 +1357,7 @@ static char __pyx_k_max_beta_add[] = "max_beta_add";
static char __pyx_k_root_victims[] = "root_victims";
static char __pyx_k_UNDERFLOW_ERROR[] = "UNDERFLOW ERROR";
static char __pyx_k_ml_locals_genexpr[] = "ml.<locals>.genexpr";
+static char __pyx_k_len_probs_probs_thresh[] = "len(probs[probs>=thresh]):";
static char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous";
static char __pyx_k_Users_ben_Documents_Cascade_Pro[] = "/Users/ben/Documents/Cascade Project/criminal_cascades/experiments/ml.pyx";
static char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)";
@@ -1366,6 +1373,7 @@ static PyObject *__pyx_n_s_RuntimeError;
static PyObject *__pyx_kp_s_UNDERFLOW_ERROR;
static PyObject *__pyx_kp_s_Users_ben_Documents_Cascade_Pro;
static PyObject *__pyx_n_s_ValueError;
+static PyObject *__pyx_kp_s_add;
static PyObject *__pyx_n_s_age;
static PyObject *__pyx_n_s_alpha;
static PyObject *__pyx_n_s_args;
@@ -1383,11 +1391,13 @@ static PyObject *__pyx_n_s_failures;
static PyObject *__pyx_n_s_file;
static PyObject *__pyx_n_s_float64;
static PyObject *__pyx_n_s_genexpr;
-static PyObject *__pyx_n_s_i;
+static PyObject *__pyx_kp_s_i;
+static PyObject *__pyx_n_s_i_2;
static PyObject *__pyx_n_s_import;
static PyObject *__pyx_kp_s_inf;
static PyObject *__pyx_n_s_itervalues;
static PyObject *__pyx_n_s_l;
+static PyObject *__pyx_kp_s_len_probs_probs_thresh;
static PyObject *__pyx_n_s_ll;
static PyObject *__pyx_n_s_main;
static PyObject *__pyx_n_s_max;
@@ -1410,13 +1420,17 @@ static PyObject *__pyx_n_s_probs_fail;
static PyObject *__pyx_n_s_probs_nv;
static PyObject *__pyx_n_s_range;
static PyObject *__pyx_n_s_root_victims;
-static PyObject *__pyx_n_s_roots;
+static PyObject *__pyx_kp_s_roots;
+static PyObject *__pyx_n_s_roots_2;
static PyObject *__pyx_n_s_send;
+static PyObject *__pyx_n_s_st;
+static PyObject *__pyx_n_s_stnv;
static PyObject *__pyx_n_s_successes;
static PyObject *__pyx_n_s_sum;
static PyObject *__pyx_n_s_t;
static PyObject *__pyx_n_s_test;
-static PyObject *__pyx_n_s_thresh;
+static PyObject *__pyx_kp_s_thresh;
+static PyObject *__pyx_n_s_thresh_2;
static PyObject *__pyx_n_s_throw;
static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd;
static PyObject *__pyx_n_s_victims;
@@ -1487,6 +1501,9 @@ static __pyx_t_2ml_DTYPE_t __pyx_f_2ml_weight_success(int __pyx_v_dist, int __py
__pyx_t_2ml_DTYPE_t __pyx_r;
__Pyx_RefNannyDeclarations
int __pyx_t_1;
+ PyObject *__pyx_t_2 = NULL;
+ PyObject *__pyx_t_3 = NULL;
+ PyObject *__pyx_t_4 = NULL;
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
@@ -1528,14 +1545,39 @@ static __pyx_t_2ml_DTYPE_t __pyx_f_2ml_weight_success(int __pyx_v_dist, int __py
* if exp(-alpha*dt)==0.: print 'UNDERFLOW ERROR'
* # temporal = 1. / (1. + (dt - 1.)/alpha)**0.01 - 1. / (1. + dt/alpha)**0.01
* result = log(structural * temporal) # <<<<<<<<<<<<<<
- * # print 'st', structural, temporal
+ * print 'st', structural, temporal
* return result
*/
__pyx_v_result = log((__pyx_v_structural * __pyx_v_temporal));
+ /* "ml.pyx":22
+ * # temporal = 1. / (1. + (dt - 1.)/alpha)**0.01 - 1. / (1. + dt/alpha)**0.01
+ * result = log(structural * temporal)
+ * print 'st', structural, temporal # <<<<<<<<<<<<<<
+ * return result
+ *
+ */
+ __pyx_t_2 = PyFloat_FromDouble(__pyx_v_structural); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __pyx_t_3 = PyFloat_FromDouble(__pyx_v_temporal); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_INCREF(__pyx_n_s_st);
+ PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_st);
+ __Pyx_GIVEREF(__pyx_n_s_st);
+ PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
+ __Pyx_GIVEREF(__pyx_t_2);
+ PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
+ __Pyx_GIVEREF(__pyx_t_3);
+ __pyx_t_2 = 0;
+ __pyx_t_3 = 0;
+ if (__Pyx_Print(0, __pyx_t_4, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+
/* "ml.pyx":23
* result = log(structural * temporal)
- * # print 'st', structural, temporal
+ * print 'st', structural, temporal
* return result # <<<<<<<<<<<<<<
*
* cdef DTYPE_t weight_failure(int dist, int dt, DTYPE_t alpha, DTYPE_t delta,
@@ -1553,6 +1595,9 @@ static __pyx_t_2ml_DTYPE_t __pyx_f_2ml_weight_success(int __pyx_v_dist, int __py
/* function exit code */
__pyx_L1_error:;
+ __Pyx_XDECREF(__pyx_t_2);
+ __Pyx_XDECREF(__pyx_t_3);
+ __Pyx_XDECREF(__pyx_t_4);
__Pyx_WriteUnraisable("ml.weight_success", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
__pyx_r = 0;
__pyx_L0:;
@@ -1574,6 +1619,12 @@ static __pyx_t_2ml_DTYPE_t __pyx_f_2ml_weight_failure(int __pyx_v_dist, int __py
__pyx_t_2ml_DTYPE_t __pyx_v_result;
__pyx_t_2ml_DTYPE_t __pyx_r;
__Pyx_RefNannyDeclarations
+ PyObject *__pyx_t_1 = NULL;
+ PyObject *__pyx_t_2 = NULL;
+ PyObject *__pyx_t_3 = NULL;
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("weight_failure", 0);
/* "ml.pyx":29
@@ -1598,14 +1649,39 @@ static __pyx_t_2ml_DTYPE_t __pyx_f_2ml_weight_failure(int __pyx_v_dist, int __py
* temporal = exp(-alpha * dt)
* # temporal = 1. - 1. / (1. + dt/alpha)**0.01
* result = log(1. - structural + structural * temporal) # <<<<<<<<<<<<<<
- * # print 'stnv', structural, temporal
+ * print 'stnv', structural, temporal
* return result
*/
__pyx_v_result = log(((1. - __pyx_v_structural) + (__pyx_v_structural * __pyx_v_temporal)));
+ /* "ml.pyx":34
+ * # temporal = 1. - 1. / (1. + dt/alpha)**0.01
+ * result = log(1. - structural + structural * temporal)
+ * print 'stnv', structural, temporal # <<<<<<<<<<<<<<
+ * return result
+ *
+ */
+ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_structural); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __pyx_t_2 = PyFloat_FromDouble(__pyx_v_temporal); 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);
+ __pyx_t_3 = PyTuple_New(3); 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_INCREF(__pyx_n_s_stnv);
+ PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_stnv);
+ __Pyx_GIVEREF(__pyx_n_s_stnv);
+ PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
+ __Pyx_GIVEREF(__pyx_t_1);
+ PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
+ __Pyx_GIVEREF(__pyx_t_2);
+ __pyx_t_1 = 0;
+ __pyx_t_2 = 0;
+ if (__Pyx_Print(0, __pyx_t_3, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+
/* "ml.pyx":35
* result = log(1. - structural + structural * temporal)
- * # print 'stnv', structural, temporal
+ * print 'stnv', structural, temporal
* return result # <<<<<<<<<<<<<<
*
* def ml(dict root_victims, dict victims, dict non_victims, DTYPE_t age,
@@ -1622,6 +1698,12 @@ static __pyx_t_2ml_DTYPE_t __pyx_f_2ml_weight_failure(int __pyx_v_dist, int __py
*/
/* function exit code */
+ __pyx_L1_error:;
+ __Pyx_XDECREF(__pyx_t_1);
+ __Pyx_XDECREF(__pyx_t_2);
+ __Pyx_XDECREF(__pyx_t_3);
+ __Pyx_WriteUnraisable("ml.weight_failure", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
+ __pyx_r = 0;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
@@ -1963,7 +2045,7 @@ static PyObject *__pyx_pf_2ml_ml(CYTHON_UNUSED PyObject *__pyx_self, PyObject *_
* DTYPE_t beta, ll, beta2
* list parents, failures, successes
* n_roots, n_victims = len(root_victims), len(victims) # <<<<<<<<<<<<<<
- * n_nodes = 148152
+ * n_nodes = 4#148152
* cdef:
*/
if (unlikely(__pyx_v_root_victims == Py_None)) {
@@ -1982,14 +2064,14 @@ static PyObject *__pyx_pf_2ml_ml(CYTHON_UNUSED PyObject *__pyx_self, PyObject *_
/* "ml.pyx":44
* list parents, failures, successes
* n_roots, n_victims = len(root_victims), len(victims)
- * n_nodes = 148152 # <<<<<<<<<<<<<<
+ * n_nodes = 4#148152 # <<<<<<<<<<<<<<
* cdef:
* np.ndarray[DTYPE_t] probs = np.zeros(n_victims, dtype=DTYPE)
*/
- __pyx_v_n_nodes = 148152;
+ __pyx_v_n_nodes = 4;
/* "ml.pyx":46
- * n_nodes = 148152
+ * n_nodes = 4#148152
* cdef:
* np.ndarray[DTYPE_t] probs = np.zeros(n_victims, dtype=DTYPE) # <<<<<<<<<<<<<<
* np.ndarray[DTYPE_t] probs_fail = np.zeros(n_victims, dtype=DTYPE)
@@ -2776,8 +2858,8 @@ static PyObject *__pyx_pf_2ml_ml(CYTHON_UNUSED PyObject *__pyx_self, PyObject *_
* max_beta_add = float('-inf')
* # iterate over all victim nodes to find the optimal threshold
* for i in xrange(0, n_victims+1, 1): # <<<<<<<<<<<<<<
+ * print
* roots = n_roots + n_victims - i
- * beta = float(roots)/float(n_nodes)
*/
__pyx_t_28 = (__pyx_v_n_victims + 1);
for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_28; __pyx_t_10+=1) {
@@ -2786,208 +2868,291 @@ static PyObject *__pyx_pf_2ml_ml(CYTHON_UNUSED PyObject *__pyx_self, PyObject *_
/* "ml.pyx":83
* # iterate over all victim nodes to find the optimal threshold
* for i in xrange(0, n_victims+1, 1):
+ * print # <<<<<<<<<<<<<<
+ * roots = n_roots + n_victims - i
+ * beta = 1. / (1. + exp(-probs[i]))
+ */
+ if (__Pyx_Print(0, __pyx_empty_tuple, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "ml.pyx":84
+ * for i in xrange(0, n_victims+1, 1):
+ * print
* roots = n_roots + n_victims - i # <<<<<<<<<<<<<<
- * beta = float(roots)/float(n_nodes)
+ * beta = 1. / (1. + exp(-probs[i]))
* thresh = log(beta/(1.-beta))
*/
__pyx_v_roots = ((__pyx_v_n_roots + __pyx_v_n_victims) - __pyx_v_i);
- /* "ml.pyx":84
- * for i in xrange(0, n_victims+1, 1):
+ /* "ml.pyx":85
+ * print
* roots = n_roots + n_victims - i
- * beta = float(roots)/float(n_nodes) # <<<<<<<<<<<<<<
+ * beta = 1. / (1. + exp(-probs[i])) # <<<<<<<<<<<<<<
* thresh = log(beta/(1.-beta))
- * # print 'thresh:', thresh
+ * print 'thresh:', thresh
*/
- __pyx_v_beta = (((double)__pyx_v_roots) / ((double)__pyx_v_n_nodes));
+ __pyx_t_11 = __pyx_v_i;
+ if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_pybuffernd_probs.diminfo[0].shape;
+ __pyx_v_beta = (1. / (1. + exp((-(*__Pyx_BufPtrStrided1d(__pyx_t_2ml_DTYPE_t *, __pyx_pybuffernd_probs.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_probs.diminfo[0].strides))))));
- /* "ml.pyx":85
+ /* "ml.pyx":86
* roots = n_roots + n_victims - i
- * beta = float(roots)/float(n_nodes)
+ * beta = 1. / (1. + exp(-probs[i]))
* thresh = log(beta/(1.-beta)) # <<<<<<<<<<<<<<
- * # print 'thresh:', thresh
+ * print 'thresh:', thresh
*
*/
__pyx_v_thresh = log((__pyx_v_beta / (1. - __pyx_v_beta)));
- /* "ml.pyx":89
+ /* "ml.pyx":87
+ * beta = 1. / (1. + exp(-probs[i]))
+ * thresh = log(beta/(1.-beta))
+ * print 'thresh:', thresh # <<<<<<<<<<<<<<
*
* # add probability for realized edges and subtract probability these edges fail
- * beta_add = (probs[probs>thresh]).sum() # <<<<<<<<<<<<<<
- * # print 'len(probs[probs>thresh]):', len(probs[probs>thresh])
- * # add probability for the seeds and non-seeds
*/
- __pyx_t_4 = PyFloat_FromDouble(__pyx_v_thresh); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyFloat_FromDouble(__pyx_v_thresh); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_5);
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_probs), __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_INCREF(__pyx_kp_s_thresh);
+ PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_s_thresh);
+ __Pyx_GIVEREF(__pyx_kp_s_thresh);
+ PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
+ __Pyx_GIVEREF(__pyx_t_5);
+ __pyx_t_5 = 0;
+ if (__Pyx_Print(0, __pyx_t_4, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_GetItem(((PyObject *)__pyx_v_probs), __pyx_t_3); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
- __Pyx_GOTREF(__pyx_t_4);
+
+ /* "ml.pyx":90
+ *
+ * # add probability for realized edges and subtract probability these edges fail
+ * beta_add = (probs[probs>=thresh]).sum() # <<<<<<<<<<<<<<
+ * print 'len(probs[probs>=thresh]):', len(probs[probs>=thresh])
+ * # add probability for the seeds and non-seeds
+ */
+ __pyx_t_5 = PyFloat_FromDouble(__pyx_v_thresh); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_5);
+ __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_probs), __pyx_t_5, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+ __pyx_t_5 = PyObject_GetItem(((PyObject *)__pyx_v_probs), __pyx_t_3); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sum); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_sum); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = NULL;
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+ __pyx_t_5 = NULL;
if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_4)) {
+ __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_4);
+ __Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
- if (__pyx_t_4) {
- __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ if (__pyx_t_5) {
+ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else {
- __pyx_t_5 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
- __Pyx_GOTREF(__pyx_t_5);
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __Pyx_XDECREF_SET(__pyx_v_beta_add, __pyx_t_4);
+ __pyx_t_4 = 0;
+
+ /* "ml.pyx":91
+ * # add probability for realized edges and subtract probability these edges fail
+ * beta_add = (probs[probs>=thresh]).sum()
+ * print 'len(probs[probs>=thresh]):', len(probs[probs>=thresh]) # <<<<<<<<<<<<<<
+ * # add probability for the seeds and non-seeds
+ * beta_add += roots * log(beta) + (n_nodes-roots) * log(1 - beta)
+ */
+ __pyx_t_4 = PyFloat_FromDouble(__pyx_v_thresh); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_probs), __pyx_t_4, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __pyx_t_4 = PyObject_GetItem(((PyObject *)__pyx_v_probs), __pyx_t_3); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __pyx_t_2 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __Pyx_INCREF(__pyx_kp_s_len_probs_probs_thresh);
+ PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_s_len_probs_probs_thresh);
+ __Pyx_GIVEREF(__pyx_kp_s_len_probs_probs_thresh);
+ PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
+ __Pyx_GIVEREF(__pyx_t_4);
+ __pyx_t_4 = 0;
+ if (__Pyx_Print(0, __pyx_t_3, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __Pyx_XDECREF_SET(__pyx_v_beta_add, __pyx_t_5);
- __pyx_t_5 = 0;
- /* "ml.pyx":92
- * # print 'len(probs[probs>thresh]):', len(probs[probs>thresh])
+ /* "ml.pyx":93
+ * print 'len(probs[probs>=thresh]):', len(probs[probs>=thresh])
* # add probability for the seeds and non-seeds
* beta_add += roots * log(beta) + (n_nodes-roots) * log(1 - beta) # <<<<<<<<<<<<<<
*
* if beta_add > max_beta_add:
*/
- __pyx_t_5 = PyFloat_FromDouble(((__pyx_v_roots * log(__pyx_v_beta)) + ((__pyx_v_n_nodes - __pyx_v_roots) * log((1.0 - __pyx_v_beta))))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
- __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_beta_add, __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_roots * log(__pyx_v_beta)) + ((__pyx_v_n_nodes - __pyx_v_roots) * log((1.0 - __pyx_v_beta))))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __Pyx_DECREF_SET(__pyx_v_beta_add, __pyx_t_3);
- __pyx_t_3 = 0;
+ __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_beta_add, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __Pyx_DECREF_SET(__pyx_v_beta_add, __pyx_t_4);
+ __pyx_t_4 = 0;
- /* "ml.pyx":94
+ /* "ml.pyx":95
* beta_add += roots * log(beta) + (n_nodes-roots) * log(1 - beta)
*
* if beta_add > max_beta_add: # <<<<<<<<<<<<<<
* max_i = i
* max_beta_add = beta_add
*/
- __pyx_t_3 = PyObject_RichCompare(__pyx_v_beta_add, __pyx_v_max_beta_add, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_29 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_29 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __pyx_t_4 = PyObject_RichCompare(__pyx_v_beta_add, __pyx_v_max_beta_add, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_29 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_29 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_29) {
- /* "ml.pyx":95
+ /* "ml.pyx":96
*
* if beta_add > max_beta_add:
* max_i = i # <<<<<<<<<<<<<<
* max_beta_add = beta_add
- * print max_i, max_beta_add
+ * print 'i:', max_i, 'add:', max_beta_add, 'roots:', roots
*/
- __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_3);
- __Pyx_DECREF_SET(__pyx_v_max_i, __pyx_t_3);
- __pyx_t_3 = 0;
+ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF_SET(__pyx_v_max_i, __pyx_t_4);
+ __pyx_t_4 = 0;
- /* "ml.pyx":96
+ /* "ml.pyx":97
* if beta_add > max_beta_add:
* max_i = i
* max_beta_add = beta_add # <<<<<<<<<<<<<<
- * print max_i, max_beta_add
+ * print 'i:', max_i, 'add:', max_beta_add, 'roots:', roots
* else:
*/
__Pyx_INCREF(__pyx_v_beta_add);
__Pyx_DECREF_SET(__pyx_v_max_beta_add, __pyx_v_beta_add);
- /* "ml.pyx":97
+ /* "ml.pyx":98
* max_i = i
* max_beta_add = beta_add
- * print max_i, max_beta_add # <<<<<<<<<<<<<<
+ * print 'i:', max_i, 'add:', max_beta_add, 'roots:', roots # <<<<<<<<<<<<<<
* else:
* print i
*/
- __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_roots); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
+ __Pyx_INCREF(__pyx_kp_s_i);
+ PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_s_i);
+ __Pyx_GIVEREF(__pyx_kp_s_i);
__Pyx_INCREF(__pyx_v_max_i);
- PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_max_i);
+ PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_max_i);
__Pyx_GIVEREF(__pyx_v_max_i);
+ __Pyx_INCREF(__pyx_kp_s_add);
+ PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_s_add);
+ __Pyx_GIVEREF(__pyx_kp_s_add);
__Pyx_INCREF(__pyx_v_max_beta_add);
- PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_max_beta_add);
+ PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_max_beta_add);
__Pyx_GIVEREF(__pyx_v_max_beta_add);
- if (__Pyx_Print(0, __pyx_t_3, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_INCREF(__pyx_kp_s_roots);
+ PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_kp_s_roots);
+ __Pyx_GIVEREF(__pyx_kp_s_roots);
+ PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_4);
+ __Pyx_GIVEREF(__pyx_t_4);
+ __pyx_t_4 = 0;
+ if (__Pyx_Print(0, __pyx_t_3, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L21;
}
/*else*/ {
- /* "ml.pyx":99
- * print max_i, max_beta_add
+ /* "ml.pyx":100
+ * print 'i:', max_i, 'add:', max_beta_add, 'roots:', roots
* else:
* print i # <<<<<<<<<<<<<<
*
* ll += max_beta_add
*/
- __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- if (__Pyx_PrintOne(0, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__Pyx_PrintOne(0, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_L21:;
}
- /* "ml.pyx":101
+ /* "ml.pyx":102
* print i
*
* ll += max_beta_add # <<<<<<<<<<<<<<
* roots = n_roots + n_victims - max_i
- * # print n_nodes, n_roots, n_victims, max_i, roots
+ * beta = float(roots)/float(n_nodes)
*/
- __pyx_t_3 = PyFloat_FromDouble(__pyx_v_ll); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyFloat_FromDouble(__pyx_v_ll); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_v_max_beta_add); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
+ __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_v_max_beta_add); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_24 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+ __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_24 == (npy_double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_ll = __pyx_t_24;
- /* "ml.pyx":102
+ /* "ml.pyx":103
*
* ll += max_beta_add
* roots = n_roots + n_victims - max_i # <<<<<<<<<<<<<<
+ * beta = float(roots)/float(n_nodes)
* # print n_nodes, n_roots, n_victims, max_i, roots
- * return (beta, roots, ll)
*/
- __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_n_roots + __pyx_v_n_victims)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
- __pyx_t_3 = PyNumber_Subtract(__pyx_t_5, __pyx_v_max_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_n_roots + __pyx_v_n_victims)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_3 = PyNumber_Subtract(__pyx_t_4, __pyx_v_max_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_roots = __pyx_t_10;
/* "ml.pyx":104
+ * ll += max_beta_add
* roots = n_roots + n_victims - max_i
+ * beta = float(roots)/float(n_nodes) # <<<<<<<<<<<<<<
+ * # print n_nodes, n_roots, n_victims, max_i, roots
+ * return (beta, roots, ll)
+ */
+ __pyx_v_beta = (((double)__pyx_v_roots) / ((double)__pyx_v_n_nodes));
+
+ /* "ml.pyx":106
+ * beta = float(roots)/float(n_nodes)
* # print n_nodes, n_roots, n_victims, max_i, roots
* return (beta, roots, ll) # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = PyFloat_FromDouble(__pyx_v_beta); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyFloat_FromDouble(__pyx_v_beta); 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_5 = __Pyx_PyInt_From_int(__pyx_v_roots); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_5);
- __pyx_t_4 = PyFloat_FromDouble(__pyx_v_ll); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_roots); 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_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyFloat_FromDouble(__pyx_v_ll); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_5);
+ __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
- PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
- __Pyx_GIVEREF(__pyx_t_5);
- PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4);
+ PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
+ PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5);
+ __Pyx_GIVEREF(__pyx_t_5);
__pyx_t_3 = 0;
- __pyx_t_5 = 0;
__pyx_t_4 = 0;
+ __pyx_t_5 = 0;
__pyx_r = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L0;
@@ -3583,7 +3748,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
* elif t == NPY_LONG: f = "l"
*/
case NPY_INT:
- __pyx_v_f = __pyx_k_i;
+ __pyx_v_f = __pyx_k_i_2;
break;
/* "../../../../Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":266
@@ -5302,6 +5467,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_kp_s_UNDERFLOW_ERROR, __pyx_k_UNDERFLOW_ERROR, sizeof(__pyx_k_UNDERFLOW_ERROR), 0, 0, 1, 0},
{&__pyx_kp_s_Users_ben_Documents_Cascade_Pro, __pyx_k_Users_ben_Documents_Cascade_Pro, sizeof(__pyx_k_Users_ben_Documents_Cascade_Pro), 0, 0, 1, 0},
{&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
+ {&__pyx_kp_s_add, __pyx_k_add, sizeof(__pyx_k_add), 0, 0, 1, 0},
{&__pyx_n_s_age, __pyx_k_age, sizeof(__pyx_k_age), 0, 0, 1, 1},
{&__pyx_n_s_alpha, __pyx_k_alpha, sizeof(__pyx_k_alpha), 0, 0, 1, 1},
{&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
@@ -5319,11 +5485,13 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 0, 1, 1},
{&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1},
{&__pyx_n_s_genexpr, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1},
- {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1},
+ {&__pyx_kp_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 0},
+ {&__pyx_n_s_i_2, __pyx_k_i_2, sizeof(__pyx_k_i_2), 0, 0, 1, 1},
{&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
{&__pyx_kp_s_inf, __pyx_k_inf, sizeof(__pyx_k_inf), 0, 0, 1, 0},
{&__pyx_n_s_itervalues, __pyx_k_itervalues, sizeof(__pyx_k_itervalues), 0, 0, 1, 1},
{&__pyx_n_s_l, __pyx_k_l, sizeof(__pyx_k_l), 0, 0, 1, 1},
+ {&__pyx_kp_s_len_probs_probs_thresh, __pyx_k_len_probs_probs_thresh, sizeof(__pyx_k_len_probs_probs_thresh), 0, 0, 1, 0},
{&__pyx_n_s_ll, __pyx_k_ll, sizeof(__pyx_k_ll), 0, 0, 1, 1},
{&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
{&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1},
@@ -5346,13 +5514,17 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_probs_nv, __pyx_k_probs_nv, sizeof(__pyx_k_probs_nv), 0, 0, 1, 1},
{&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
{&__pyx_n_s_root_victims, __pyx_k_root_victims, sizeof(__pyx_k_root_victims), 0, 0, 1, 1},
- {&__pyx_n_s_roots, __pyx_k_roots, sizeof(__pyx_k_roots), 0, 0, 1, 1},
+ {&__pyx_kp_s_roots, __pyx_k_roots, sizeof(__pyx_k_roots), 0, 0, 1, 0},
+ {&__pyx_n_s_roots_2, __pyx_k_roots_2, sizeof(__pyx_k_roots_2), 0, 0, 1, 1},
{&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1},
+ {&__pyx_n_s_st, __pyx_k_st, sizeof(__pyx_k_st), 0, 0, 1, 1},
+ {&__pyx_n_s_stnv, __pyx_k_stnv, sizeof(__pyx_k_stnv), 0, 0, 1, 1},
{&__pyx_n_s_successes, __pyx_k_successes, sizeof(__pyx_k_successes), 0, 0, 1, 1},
{&__pyx_n_s_sum, __pyx_k_sum, sizeof(__pyx_k_sum), 0, 0, 1, 1},
{&__pyx_n_s_t, __pyx_k_t, sizeof(__pyx_k_t), 0, 0, 1, 1},
{&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
- {&__pyx_n_s_thresh, __pyx_k_thresh, sizeof(__pyx_k_thresh), 0, 0, 1, 1},
+ {&__pyx_kp_s_thresh, __pyx_k_thresh, sizeof(__pyx_k_thresh), 0, 0, 1, 0},
+ {&__pyx_n_s_thresh_2, __pyx_k_thresh_2, sizeof(__pyx_k_thresh_2), 0, 0, 1, 1},
{&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1},
{&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0},
{&__pyx_n_s_victims, __pyx_k_victims, sizeof(__pyx_k_victims), 0, 0, 1, 1},
@@ -5457,7 +5629,7 @@ static int __Pyx_InitCachedConstants(void) {
* DTYPE_t alpha, DTYPE_t delta):
* cdef:
*/
- __pyx_tuple__7 = PyTuple_Pack(33, __pyx_n_s_root_victims, __pyx_n_s_victims, __pyx_n_s_non_victims, __pyx_n_s_age, __pyx_n_s_alpha, __pyx_n_s_delta, __pyx_n_s_n_roots, __pyx_n_s_n_victims, __pyx_n_s_n_nodes, __pyx_n_s_roots, __pyx_n_s_i, __pyx_n_s_dist, __pyx_n_s_dt, __pyx_n_s_t, __pyx_n_s_l, __pyx_n_s_beta, __pyx_n_s_ll, __pyx_n_s_beta2, __pyx_n_s_parents, __pyx_n_s_failures, __pyx_n_s_successes, __pyx_n_s_probs, __pyx_n_s_probs_fail, __pyx_n_s_probs_nv, __pyx_n_s_max_i, __pyx_n_s_max_beta_add, __pyx_n_s_thresh, __pyx_n_s_beta_add, __pyx_n_s_w1, __pyx_n_s_w2, __pyx_n_s_w3, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_tuple__7 = PyTuple_Pack(33, __pyx_n_s_root_victims, __pyx_n_s_victims, __pyx_n_s_non_victims, __pyx_n_s_age, __pyx_n_s_alpha, __pyx_n_s_delta, __pyx_n_s_n_roots, __pyx_n_s_n_victims, __pyx_n_s_n_nodes, __pyx_n_s_roots_2, __pyx_n_s_i_2, __pyx_n_s_dist, __pyx_n_s_dt, __pyx_n_s_t, __pyx_n_s_l, __pyx_n_s_beta, __pyx_n_s_ll, __pyx_n_s_beta2, __pyx_n_s_parents, __pyx_n_s_failures, __pyx_n_s_successes, __pyx_n_s_probs, __pyx_n_s_probs_fail, __pyx_n_s_probs_nv, __pyx_n_s_max_i, __pyx_n_s_max_beta_add, __pyx_n_s_thresh_2, __pyx_n_s_beta_add, __pyx_n_s_w1, __pyx_n_s_w2, __pyx_n_s_w3, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_tuple__7);
__Pyx_GIVEREF(__pyx_tuple__7);
__pyx_codeobj__8 = (PyObject*)__Pyx_PyCode_New(6, 0, 33, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__7, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_ben_Documents_Cascade_Pro, __pyx_n_s_ml, 37, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}