L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "kt.pyx":169
 * 
 *     @property
 *     def dN(self): return fAnddN(self.Up, self.sd, self.sp, self.N_0)[1]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_5 = __Pyx_CyFunction_NewEx(&__pyx_mdef_2kt_6second_3dN, 0, __pyx_n_s_second_dN, NULL, __pyx_n_s_kt, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "kt.pyx":168
 *         return fAnddN(self.Up, self.sd, self.sp, self.N_0)[0]*self.Ud
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def dN(self): return fAnddN(self.Up, self.sd, self.sp, self.N_0)[1]
 * 
 */
  __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_dN, __pyx_t_4) < 0) __PYX_ERR(0, 169, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "kt.pyx":172
 * 
 *     @property
 *     def vp(self):             # <<<<<<<<<<<<<<
 *         print('New vp')
 *         return self.sp*Vp(self.Up, self.sp, self.N_0)
 */
  __pyx_t_4 = __Pyx_CyFunction_NewEx(&__pyx_mdef_2kt_6second_5vp, 0, __pyx_n_s_second_vp, NULL, __pyx_n_s_kt, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "kt.pyx":171
 *     def dN(self): return fAnddN(self.Up, self.sd, self.sp, self.N_0)[1]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def vp(self):
 *         print('New vp')
 */
  __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_vp, __pyx_t_5) < 0) __PYX_ERR(0, 172, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "kt.pyx":162
 *     return moran(Up, sp, N) if sp*N_0 > 1 else (1-L)*moran(Up, sp, N) + L*wave(Up, sp, N)
 * 
 * class second(first):             # <<<<<<<<<<<<<<
 *     @property
 *     def f(self):
 */
  __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_second, __pyx_t_1, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_second, __pyx_t_5) < 0) __PYX_ERR(0, 162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kt.pyx":176
 *         return self.sp*Vp(self.Up, self.sp, self.N_0)
 * 
 * @functools.lru_cache(maxsize=None)             # <<<<<<<<<<<<<<
 * def simplified_fanddN(double sd, double sp, double Up, double N_0):
 *     from scipy.stats import poisson
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_functools); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_lru_cache); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_maxsize, Py_None) < 0) __PYX_ERR(0, 176, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kt.pyx":177
 * 
 * @functools.lru_cache(maxsize=None)
 * def simplified_fanddN(double sd, double sp, double Up, double N_0):             # <<<<<<<<<<<<<<
 *     from scipy.stats import poisson
 *     cdef:
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_2kt