Generated by Cython 0.29.5

Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.

Raw output: cost.c

 001: # -*- coding: iso-8859-1 -*-
 002: # pyrexc.bat MediteAppli\cost.pyx
 003: # compiltation sous cygwin
 004: # gcc -c -fPIC -I/usr/include/python2.4 MediteAppli.cost.c
 005: #  gcc -shared MediteAppli.cost.o  -lm -lpython24 -o MediteAppli.cost.dll
 006: 
 007: # ou
 008: # gcc  -mno-cygwin -mdll -O -Wall -I/usr/local/mingw/include  -I/usr/include/python2.4 -c  cost.c
+009: import sys, logging
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_1) < 0) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_logging, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_logging, __pyx_t_1) < 0) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+010: import numpy
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_numpy, __pyx_t_1) < 0) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 011: 
+012: def fct_cout(int k, int l,int i, int j,diffSym,coutFixeRepeteT1, coutFixeNonRepeteT1,
/* Python wrapper */
static PyObject *__pyx_pw_8medite40_11MediteAppli_4cost_1fct_cout(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8medite40_11MediteAppli_4cost_fct_cout[] = " calcul du cout d'un noeud ";
static PyMethodDef __pyx_mdef_8medite40_11MediteAppli_4cost_1fct_cout = {"fct_cout", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8medite40_11MediteAppli_4cost_1fct_cout, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8medite40_11MediteAppli_4cost_fct_cout};
static PyObject *__pyx_pw_8medite40_11MediteAppli_4cost_1fct_cout(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_k;
  int __pyx_v_l;
  int __pyx_v_i;
  int __pyx_v_j;
  PyObject *__pyx_v_diffSym = 0;
  PyObject *__pyx_v_coutFixeRepeteT1 = 0;
  PyObject *__pyx_v_coutFixeNonRepeteT1 = 0;
  PyObject *__pyx_v_coutFixeRepeteT2 = 0;
  PyObject *__pyx_v_coutFixeNonRepeteT2 = 0;
  PyObject *__pyx_v_bestValue = 0;
  PyObject *__pyx_v_dicoMinMax1 = 0;
  PyObject *__pyx_v_dicoMinMax2 = 0;
  CYTHON_UNUSED PyObject *__pyx_v_lSuppression = 0;
  CYTHON_UNUSED PyObject *__pyx_v_lInsertion = 0;
  PyObject *__pyx_v_arrayRepetT1 = 0;
  PyObject *__pyx_v_arrayRepetT2 = 0;
  float __pyx_v_coeffX;
  float __pyx_v_coeffY;
  float __pyx_v_coeffZ;
  int __pyx_v_l_texte1;
  int __pyx_v_l_texte2;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fct_cout (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_k,&__pyx_n_s_l,&__pyx_n_s_i,&__pyx_n_s_j,&__pyx_n_s_diffSym,&__pyx_n_s_coutFixeRepeteT1,&__pyx_n_s_coutFixeNonRepeteT1,&__pyx_n_s_coutFixeRepeteT2,&__pyx_n_s_coutFixeNonRepeteT2,&__pyx_n_s_bestValue,&__pyx_n_s_dicoMinMax1,&__pyx_n_s_dicoMinMax2,&__pyx_n_s_lSuppression,&__pyx_n_s_lInsertion,&__pyx_n_s_arrayRepetT1,&__pyx_n_s_arrayRepetT2,&__pyx_n_s_coeffX,&__pyx_n_s_coeffY,&__pyx_n_s_coeffZ,&__pyx_n_s_l_texte1,&__pyx_n_s_l_texte2,0};
    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);
        CYTHON_FALLTHROUGH;
        case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
        CYTHON_FALLTHROUGH;
        case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
        CYTHON_FALLTHROUGH;
        case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
        CYTHON_FALLTHROUGH;
        case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
        CYTHON_FALLTHROUGH;
        case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
        CYTHON_FALLTHROUGH;
        case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
        CYTHON_FALLTHROUGH;
        case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
        CYTHON_FALLTHROUGH;
        case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
        CYTHON_FALLTHROUGH;
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        CYTHON_FALLTHROUGH;
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        CYTHON_FALLTHROUGH;
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_k)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 1); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_i)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 2); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_j)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 3); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffSym)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 4); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coutFixeRepeteT1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 5); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coutFixeNonRepeteT1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 6); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coutFixeRepeteT2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 7); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coutFixeNonRepeteT2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 8); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bestValue)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 9); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 10:
        if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dicoMinMax1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 10); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 11:
        if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dicoMinMax2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 11); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 12:
        if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lSuppression)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 12); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 13:
        if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lInsertion)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 13); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 14:
        if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arrayRepetT1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 14); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 15:
        if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arrayRepetT2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 15); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 16:
        if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coeffX)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 16); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 17:
        if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coeffY)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 17); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 18:
        if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coeffZ)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 18); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 19:
        if (likely((values[19] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l_texte1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 19); __PYX_ERR(0, 12, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 20:
        if (likely((values[20] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l_texte2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, 20); __PYX_ERR(0, 12, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fct_cout") < 0)) __PYX_ERR(0, 12, __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);
    }
    __pyx_v_k = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_k == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L3_error)
    __pyx_v_l = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_l == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L3_error)
    __pyx_v_i = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_i == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L3_error)
    __pyx_v_j = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_j == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L3_error)
    __pyx_v_diffSym = values[4];
    __pyx_v_coutFixeRepeteT1 = values[5];
    __pyx_v_coutFixeNonRepeteT1 = values[6];
    __pyx_v_coutFixeRepeteT2 = values[7];
    __pyx_v_coutFixeNonRepeteT2 = values[8];
    __pyx_v_bestValue = values[9];
    __pyx_v_dicoMinMax1 = values[10];
    __pyx_v_dicoMinMax2 = values[11];
    __pyx_v_lSuppression = values[12];
    __pyx_v_lInsertion = values[13];
    __pyx_v_arrayRepetT1 = values[14];
    __pyx_v_arrayRepetT2 = values[15];
    __pyx_v_coeffX = __pyx_PyFloat_AsFloat(values[16]); if (unlikely((__pyx_v_coeffX == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 15, __pyx_L3_error)
    __pyx_v_coeffY = __pyx_PyFloat_AsFloat(values[17]); if (unlikely((__pyx_v_coeffY == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 15, __pyx_L3_error)
    __pyx_v_coeffZ = __pyx_PyFloat_AsFloat(values[18]); if (unlikely((__pyx_v_coeffZ == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 15, __pyx_L3_error)
    __pyx_v_l_texte1 = __Pyx_PyInt_As_int(values[19]); if (unlikely((__pyx_v_l_texte1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 15, __pyx_L3_error)
    __pyx_v_l_texte2 = __Pyx_PyInt_As_int(values[20]); if (unlikely((__pyx_v_l_texte2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 15, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fct_cout", 1, 21, 21, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 12, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("medite40.MediteAppli.cost.fct_cout", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8medite40_11MediteAppli_4cost_fct_cout(__pyx_self, __pyx_v_k, __pyx_v_l, __pyx_v_i, __pyx_v_j, __pyx_v_diffSym, __pyx_v_coutFixeRepeteT1, __pyx_v_coutFixeNonRepeteT1, __pyx_v_coutFixeRepeteT2, __pyx_v_coutFixeNonRepeteT2, __pyx_v_bestValue, __pyx_v_dicoMinMax1, __pyx_v_dicoMinMax2, __pyx_v_lSuppression, __pyx_v_lInsertion, __pyx_v_arrayRepetT1, __pyx_v_arrayRepetT2, __pyx_v_coeffX, __pyx_v_coeffY, __pyx_v_coeffZ, __pyx_v_l_texte1, __pyx_v_l_texte2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8medite40_11MediteAppli_4cost_fct_cout(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_k, int __pyx_v_l, int __pyx_v_i, int __pyx_v_j, PyObject *__pyx_v_diffSym, PyObject *__pyx_v_coutFixeRepeteT1, PyObject *__pyx_v_coutFixeNonRepeteT1, PyObject *__pyx_v_coutFixeRepeteT2, PyObject *__pyx_v_coutFixeNonRepeteT2, PyObject *__pyx_v_bestValue, PyObject *__pyx_v_dicoMinMax1, PyObject *__pyx_v_dicoMinMax2, CYTHON_UNUSED PyObject *__pyx_v_lSuppression, CYTHON_UNUSED PyObject *__pyx_v_lInsertion, PyObject *__pyx_v_arrayRepetT1, PyObject *__pyx_v_arrayRepetT2, float __pyx_v_coeffX, float __pyx_v_coeffY, float __pyx_v_coeffZ, int __pyx_v_l_texte1, int __pyx_v_l_texte2) {
  int __pyx_v_tot_remp1;
  int __pyx_v_tot_remp2;
  int __pyx_v_nb_remp1;
  int __pyx_v_nb_remp2;
  int __pyx_v_best_cumulINV;
  int __pyx_v_best_cumulMOV;
  int __pyx_v_best_cumulINS;
  int __pyx_v_best_cumulSUP;
  int __pyx_v_best_cumulREP;
  int __pyx_v_best_nbINV;
  int __pyx_v_best_nbMOV;
  int __pyx_v_best_nbINS;
  int __pyx_v_best_nbSUP;
  int __pyx_v_best_nbREP;
  int __pyx_v_best_inv_max;
  int __pyx_v_best_mov_max;
  int __pyx_v_cumulINV;
  int __pyx_v_cumulMOV;
  int __pyx_v_cumulINS;
  int __pyx_v_cumulSUP;
  int __pyx_v_cumulREP;
  int __pyx_v_difference_sym;
  CYTHON_UNUSED int __pyx_v_nb_blocs_diff_sym;
  int __pyx_v_inv_min_after;
  CYTHON_UNUSED int __pyx_v_inv_max_after;
  int __pyx_v_mov_min_after;
  CYTHON_UNUSED int __pyx_v_mov_max_after;
  float __pyx_v_g_x;
  int __pyx_v_h_x;
  float __pyx_v_f_x;
  int __pyx_v_current_inv_max;
  int __pyx_v_nb_mov_added1;
  int __pyx_v_nb_mov_added2;
  int __pyx_v_max_mov_added1;
  int __pyx_v_max_mov_added2;
  int __pyx_v_current_mov_max;
  int __pyx_v_nbINV;
  int __pyx_v_nbMOV;
  int __pyx_v_nbINS;
  int __pyx_v_nbSUP;
  int __pyx_v_nbREP;
  int __pyx_v_deno;
  float __pyx_v_f_yINV;
  float __pyx_v_f_yMOV;
  int __pyx_v_deno2;
  float __pyx_v_f_yINS;
  int __pyx_v_deno1;
  float __pyx_v_f_ySUP;
  float __pyx_v_f_yREP;
  float __pyx_v_f_y;
  int __pyx_v_denominateur_z1;
  int __pyx_v_denominateur_z2;
  float __pyx_v_f_z1;
  float __pyx_v_f_z2;
  float __pyx_v_f_z;
  float __pyx_v_f_temp;
  float __pyx_v_f;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fct_cout", 0);
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_33);
  __Pyx_AddTraceback("medite40.MediteAppli.cost.fct_cout", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__3 = PyTuple_Pack(78, __pyx_n_s_k, __pyx_n_s_l, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_diffSym, __pyx_n_s_coutFixeRepeteT1, __pyx_n_s_coutFixeNonRepeteT1, __pyx_n_s_coutFixeRepeteT2, __pyx_n_s_coutFixeNonRepeteT2, __pyx_n_s_bestValue, __pyx_n_s_dicoMinMax1, __pyx_n_s_dicoMinMax2, __pyx_n_s_lSuppression, __pyx_n_s_lInsertion, __pyx_n_s_arrayRepetT1, __pyx_n_s_arrayRepetT2, __pyx_n_s_coeffX, __pyx_n_s_coeffY, __pyx_n_s_coeffZ, __pyx_n_s_l_texte1, __pyx_n_s_l_texte2, __pyx_n_s_tot_remp1, __pyx_n_s_tot_remp2, __pyx_n_s_nb_remp1, __pyx_n_s_nb_remp2, __pyx_n_s_best_cumulINV, __pyx_n_s_best_cumulMOV, __pyx_n_s_best_cumulINS, __pyx_n_s_best_cumulSUP, __pyx_n_s_best_cumulREP, __pyx_n_s_best_nbINV, __pyx_n_s_best_nbMOV, __pyx_n_s_best_nbINS, __pyx_n_s_best_nbSUP, __pyx_n_s_best_nbREP, __pyx_n_s_best_inv_max, __pyx_n_s_best_mov_max, __pyx_n_s_cumulINV, __pyx_n_s_cumulMOV, __pyx_n_s_cumulINS, __pyx_n_s_cumulSUP, __pyx_n_s_cumulREP, __pyx_n_s_difference_sym, __pyx_n_s_nb_blocs_diff_sym, __pyx_n_s_inv_min_after, __pyx_n_s_inv_max_after, __pyx_n_s_mov_min_after, __pyx_n_s_mov_max_after, __pyx_n_s_g_x, __pyx_n_s_h_x, __pyx_n_s_f_x, __pyx_n_s_current_inv_max, __pyx_n_s_nb_mov_added1, __pyx_n_s_nb_mov_added2, __pyx_n_s_max_mov_added1, __pyx_n_s_max_mov_added2, __pyx_n_s_current_mov_max, __pyx_n_s_nbINV, __pyx_n_s_nbMOV, __pyx_n_s_nbINS, __pyx_n_s_nbSUP, __pyx_n_s_nbREP, __pyx_n_s_deno, __pyx_n_s_f_yINV, __pyx_n_s_f_yMOV, __pyx_n_s_deno2, __pyx_n_s_f_yINS, __pyx_n_s_deno1, __pyx_n_s_f_ySUP, __pyx_n_s_f_yREP, __pyx_n_s_f_y, __pyx_n_s_denominateur_z1, __pyx_n_s_denominateur_z2, __pyx_n_s_f_z1, __pyx_n_s_f_z2, __pyx_n_s_f_z, __pyx_n_s_f_temp, __pyx_n_s_f); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__3);
  __Pyx_GIVEREF(__pyx_tuple__3);
/* … */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_8medite40_11MediteAppli_4cost_1fct_cout, NULL, __pyx_n_s_medite40_MediteAppli_cost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_fct_cout, __pyx_t_1) < 0) __PYX_ERR(0, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(21, 0, 78, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__3, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_C_meditework_medite40_MediteAppl, __pyx_n_s_fct_cout, 12, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 12, __pyx_L1_error)
 013:          coutFixeRepeteT2, coutFixeNonRepeteT2,bestValue, dicoMinMax1, dicoMinMax2,
 014:          lSuppression, lInsertion,arrayRepetT1, arrayRepetT2,
 015:          float coeffX, float coeffY, float coeffZ, int l_texte1, int l_texte2):
 016:         """ calcul du cout d'un noeud """
 017: 
 018:         #return (0.5, (k,l), (0,0,0,0,0,0,0,0,0,0,0,0))
 019: 
 020:         #coeffX, coeffY, coeffZ = coeff
 021:         #calcRemp = False
 022:         #if calcRemp:
 023:         #    liste_remp1 = lSuppression[k+1:i] ; liste_remp2 = lInsertion[l+1:j]
 024:         #    if len(liste_remp1) > 0 and len(liste_remp2) > 0:
 025:         #        remp1, remp2 = self.extractRemplacements(liste_remp1, liste_remp2)
 026:                 #tot_remp1 = numarray.sum(remp1) ; tot_remp2 = numarray.sum(remp2)
 027:                 #numarray.where(remp1 > 0, 1, 0, remp1)
 028:                 #numarray.where(remp2 > 0, 1, 0, remp2)
 029:                 #nb_remp1 = numarray.sum(remp1) ; nb_remp2 = numarray.sum(remp2)
 030:                 #tot_remp1 = Numeric.sum(remp1) ; tot_remp2 = Numeric.sum(remp2)
 031:                 #remp1 = Numeric.where(remp1 > 0, 1, 0)
 032:                 #remp2 = Numeric.where(remp2 > 0, 1, 0)
 033:                 #nb_remp1 = Numeric.sum(remp1) ; nb_remp2 = Numeric.sum(remp2)
 034:                 #print remp1, remp2
 035:         #        tot_remp1 = numpy.sum(remp1) ; tot_remp2 = numpy.sum(remp2)
 036:         #        remp1 = numpy.where(remp1 > 0, 1, 0)
 037:         #        remp2 = numpy.where(remp2 > 0, 1, 0)
 038:         #        nb_remp1 = numpy.sum(remp1) ; nb_remp2 = numpy.sum(remp2)
 039:         #        assert nb_remp1 == nb_remp2
 040:                 #print remp1, remp2,tot_remp1, tot_remp2, nb_remp1, nb_remp2
 041:         #    else:
 042:         #        tot_remp1 = tot_remp2 = nb_remp1 = nb_remp2 = 0
 043:         #else:
 044:         #        tot_remp1 = tot_remp2 = nb_remp1 = nb_remp2 = 0
 045:         #tot_remp1 = tot_remp2 = nb_remp1 = nb_remp2 = 0
 046:         cdef int tot_remp1, tot_remp2, nb_remp1, nb_remp2
+047:         tot_remp1 = tot_remp2 = nb_remp1 = nb_remp2 = 0
  __pyx_v_tot_remp1 = 0;
  __pyx_v_tot_remp2 = 0;
  __pyx_v_nb_remp1 = 0;
  __pyx_v_nb_remp2 = 0;
 048:         #assert nb_remp1 == nb_remp2
 049: 
 050:         cdef int best_cumulINV, best_cumulMOV, best_cumulINS, best_cumulSUP, best_cumulREP, best_nbINV, best_nbMOV, best_nbINS, best_nbSUP,  best_nbREP, best_inv_max, best_mov_max
+051:         (best_cumulINV, best_cumulMOV, best_cumulINS, best_cumulSUP, best_cumulREP,
  __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_17 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_18 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_19 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_19 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_20 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_20 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_22 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_22 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_23 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_23 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_10); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_25 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_26 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_26 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_27 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_27 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_v_best_cumulINV = __pyx_t_16;
  __pyx_v_best_cumulMOV = __pyx_t_17;
  __pyx_v_best_cumulINS = __pyx_t_18;
  __pyx_v_best_cumulSUP = __pyx_t_19;
  __pyx_v_best_cumulREP = __pyx_t_20;
  __pyx_v_best_nbINV = __pyx_t_21;
  __pyx_v_best_nbMOV = __pyx_t_22;
  __pyx_v_best_nbINS = __pyx_t_23;
  __pyx_v_best_nbSUP = __pyx_t_24;
  __pyx_v_best_nbREP = __pyx_t_25;
  __pyx_v_best_inv_max = __pyx_t_26;
  __pyx_v_best_mov_max = __pyx_t_27;
 052:         best_nbINV, best_nbMOV, best_nbINS, best_nbSUP,  best_nbREP, best_inv_max,
+053:         best_mov_max) = bestValue[2]
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_bestValue, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 12)) {
      if (size > 12) __Pyx_RaiseTooManyValuesError(12);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 51, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); 
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); 
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 5); 
      __pyx_t_8 = PyTuple_GET_ITEM(sequence, 6); 
      __pyx_t_9 = PyTuple_GET_ITEM(sequence, 7); 
      __pyx_t_10 = PyTuple_GET_ITEM(sequence, 8); 
      __pyx_t_11 = PyTuple_GET_ITEM(sequence, 9); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 10); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 11); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 2); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 3); 
      __pyx_t_6 = PyList_GET_ITEM(sequence, 4); 
      __pyx_t_7 = PyList_GET_ITEM(sequence, 5); 
      __pyx_t_8 = PyList_GET_ITEM(sequence, 6); 
      __pyx_t_9 = PyList_GET_ITEM(sequence, 7); 
      __pyx_t_10 = PyList_GET_ITEM(sequence, 8); 
      __pyx_t_11 = PyList_GET_ITEM(sequence, 9); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 10); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 11); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_t_12);
    __Pyx_INCREF(__pyx_t_13);
    #else
    {
      Py_ssize_t i;
      PyObject** temps[12] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13};
      for (i=0; i < 12; i++) {
        PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 51, __pyx_L1_error)
        __Pyx_GOTREF(item);
        *(temps[i]) = item;
      }
    }
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    PyObject** temps[12] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13};
    __pyx_t_14 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_14)->tp_iternext;
    for (index=0; index < 12; index++) {
      PyObject* item = __pyx_t_15(__pyx_t_14); if (unlikely(!item)) goto __pyx_L3_unpacking_failed;
      __Pyx_GOTREF(item);
      *(temps[index]) = item;
    }
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_14), 12) < 0) __PYX_ERR(0, 51, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 51, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
 054: 
 055:         #assert arrayRepetT1[i] == coutFixeRepeteT1[i] - coutFixeRepeteT1[i-1]
 056:         #assert arrayRepetT2[j] == coutFixeRepeteT2[j] - coutFixeRepeteT2[j-1]
 057:         cdef int cumulINV
+058:         cumulINV = best_cumulINV + ( coutFixeRepeteT1[i] - coutFixeRepeteT1[i-1] +
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_best_cumulINV); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_coutFixeRepeteT1, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_28 = (__pyx_v_i - 1);
  __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_coutFixeRepeteT1, __pyx_t_28, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyNumber_Subtract(__pyx_t_13, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
/* … */
  __pyx_t_13 = PyNumber_Add(__pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
/* … */
  __pyx_t_12 = PyNumber_Add(__pyx_t_1, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_27 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_27 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_v_cumulINV = __pyx_t_27;
+059:                                      coutFixeRepeteT2[j] - coutFixeRepeteT2[j-1] )
  __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_coutFixeRepeteT2, __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_28 = (__pyx_v_j - 1);
  __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_coutFixeRepeteT2, __pyx_t_28, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyNumber_Subtract(__pyx_t_13, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 060:         #cumulINV = ( coutFixeRepeteT1[i] - coutFixeRepeteT1[i-1] +
 061:         #                             coutFixeRepeteT2[j] - coutFixeRepeteT2[j-1] )
 062:         #assert sum(arrayRepetT1[k+1:i]) == coutFixeRepeteT1[i-1] - coutFixeRepeteT1[k]
 063:         #assert sum(arrayRepetT2[l+1:j]) == coutFixeRepeteT2[j-1] - coutFixeRepeteT2[l]
 064:         cdef int cumulMOV
+065:         cumulMOV = best_cumulMOV + ( coutFixeRepeteT1[i-1] - coutFixeRepeteT1[k] +
  __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_best_cumulMOV); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_28 = (__pyx_v_i - 1);
  __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_coutFixeRepeteT1, __pyx_t_28, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_coutFixeRepeteT1, __pyx_v_k, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_13 = PyNumber_Subtract(__pyx_t_11, __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
  __pyx_t_11 = PyNumber_Add(__pyx_t_13, __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
  __pyx_t_1 = PyNumber_Add(__pyx_t_12, __pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_27 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_27 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cumulMOV = __pyx_t_27;
+066:                                      coutFixeRepeteT2[j-1] - coutFixeRepeteT2[l] )
  __pyx_t_28 = (__pyx_v_j - 1);
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_coutFixeRepeteT2, __pyx_t_28, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
/* … */
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_coutFixeRepeteT2, __pyx_v_l, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_13 = PyNumber_Subtract(__pyx_t_11, __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 067:         #cumulMOV =  ( coutFixeRepeteT1[i-1] - coutFixeRepeteT1[k] +
 068:         #                             coutFixeRepeteT2[j-1] - coutFixeRepeteT2[l] )
 069:         #assert coutFixeNonRepeteT2[j] - coutFixeNonRepeteT2[l] - tot_remp2 >= 0,(coutFixeNonRepeteT2[j],coutFixeNonRepeteT2[l],tot_remp2)
 070:         cdef int cumulINS
+071:         cumulINS = best_cumulINS + ( coutFixeNonRepeteT2[j] -
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_best_cumulINS); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_coutFixeNonRepeteT2, __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_11 = PyNumber_Subtract(__pyx_t_13, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyNumber_Add(__pyx_t_1, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_27 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_27 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_v_cumulINS = __pyx_t_27;
+072:                                            coutFixeNonRepeteT2[l] )#- tot_remp2)
  __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_coutFixeNonRepeteT2, __pyx_v_l, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
 073:         #cumulINS = (coutFixeNonRepeteT2[j] -
 074:         #                                   coutFixeNonRepeteT2[l] )#- tot_remp2)
 075:         #assert coutFixeNonRepeteT1[i] - coutFixeNonRepeteT1[k] - tot_remp1 >= 0, (coutFixeNonRepeteT1[i], coutFixeNonRepeteT1[k],tot_remp1)
 076:         cdef int cumulSUP
+077:         cumulSUP = best_cumulSUP + ( coutFixeNonRepeteT1[i] -
  __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_best_cumulSUP); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_coutFixeNonRepeteT1, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
/* … */
  __pyx_t_13 = PyNumber_Subtract(__pyx_t_11, __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_t_12, __pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_27 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_27 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cumulSUP = __pyx_t_27;
+078:                                            coutFixeNonRepeteT1[k])# - tot_remp1)
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_coutFixeNonRepeteT1, __pyx_v_k, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
 079:         #cumulSUP =  ( coutFixeNonRepeteT1[i] -
 080:         #                                   coutFixeNonRepeteT1[k] )#- tot_remp1)
 081:         #print cumulSUP, best_cumulSUP,coutFixeNonRepeteT1[i], coutFixeNonRepeteT1[k], tot_remp1
 082:         #assert tot_remp1 + tot_remp2 >= 0, (tot_remp1, tot_remp2)
 083:         cdef int cumulREP
+084:         cumulREP =  best_cumulREP + ( tot_remp1 + tot_remp2 )
  __pyx_v_cumulREP = (__pyx_v_best_cumulREP + (__pyx_v_tot_remp1 + __pyx_v_tot_remp2));
 085:         #cumulREP = 0.0 +  ( tot_remp1 + tot_remp2 )
 086:         #assert best_cumulINV < cumulINV <= self.l_texte1 + self.l_texte2 - cumulMOV, (best_cumulINV, cumulINV, self.l_texte1, self.l_texte2, cumulMOV)
 087:         #assert best_cumulMOV <= cumulMOV <= self.l_texte1 + self.l_texte2 - cumulINV
 088:         #assert best_cumulINS <= cumulINS <= self.l_texte2, (best_cumulINS, cumulINS,coutFixeNonRepeteT2[j], coutFixeNonRepeteT2[l],tot_remp2, self.l_texte2)
 089:         #assert best_cumulSUP <= cumulSUP <= self.l_texte1
 090:         #a=""assert best_cumulREP <= cumulREP <= self.l_texte1 + self.l_texte2, (best_cumulREP, cumulREP)
 091:         #""
 092:         # on calcule les couts totaux f en sommant les couts fixes g et les
 093:         # couts heuristiques h, tels que f = g + h pour tous les paramètres
 094:         cdef int difference_sym,  nb_blocs_diff_sym,  inv_min_after,  inv_max_after, mov_min_after,  mov_max_after
+095:         (difference_sym, nb_blocs_diff_sym, inv_min_after, inv_max_after,
  __pyx_t_27 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_27 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_26 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_26 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_25 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_10); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_23 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_23 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_22 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_22 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_difference_sym = __pyx_t_27;
  __pyx_v_nb_blocs_diff_sym = __pyx_t_26;
  __pyx_v_inv_min_after = __pyx_t_25;
  __pyx_v_inv_max_after = __pyx_t_24;
  __pyx_v_mov_min_after = __pyx_t_23;
  __pyx_v_mov_max_after = __pyx_t_22;
+096:             mov_min_after, mov_max_after) = diffSym[(i,j)]
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_13);
  __pyx_t_1 = 0;
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_v_diffSym, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_13))) || (PyList_CheckExact(__pyx_t_13))) {
    PyObject* sequence = __pyx_t_13;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 6)) {
      if (size > 6) __Pyx_RaiseTooManyValuesError(6);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 95, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_11 = PyTuple_GET_ITEM(sequence, 2); 
      __pyx_t_10 = PyTuple_GET_ITEM(sequence, 3); 
      __pyx_t_9 = PyTuple_GET_ITEM(sequence, 4); 
      __pyx_t_8 = PyTuple_GET_ITEM(sequence, 5); 
    } else {
      __pyx_t_12 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_11 = PyList_GET_ITEM(sequence, 2); 
      __pyx_t_10 = PyList_GET_ITEM(sequence, 3); 
      __pyx_t_9 = PyList_GET_ITEM(sequence, 4); 
      __pyx_t_8 = PyList_GET_ITEM(sequence, 5); 
    }
    __Pyx_INCREF(__pyx_t_12);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_t_8);
    #else
    {
      Py_ssize_t i;
      PyObject** temps[6] = {&__pyx_t_12,&__pyx_t_1,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8};
      for (i=0; i < 6; i++) {
        PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 95, __pyx_L1_error)
        __Pyx_GOTREF(item);
        *(temps[i]) = item;
      }
    }
    #endif
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else {
    Py_ssize_t index = -1;
    PyObject** temps[6] = {&__pyx_t_12,&__pyx_t_1,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8};
    __pyx_t_7 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_7)->tp_iternext;
    for (index=0; index < 6; index++) {
      PyObject* item = __pyx_t_15(__pyx_t_7); if (unlikely(!item)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(item);
      *(temps[index]) = item;
    }
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_7), 6) < 0) __PYX_ERR(0, 95, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 95, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
 097:         #h_INV = (coutFixeRepeteT1[-1] - coutFixeRepeteT1[i] +
 098:         #         coutFixeRepeteT2[-1] - coutFixeRepeteT2[j] - difference_sym)
 099:         # cout fixe, paramètre X
 100:         cdef float g_x
+101:         g_x = 0.0 - cumulMOV #+ cumulINV  - cumulINS - cumulSUP #- cumulREP
  __pyx_v_g_x = (0.0 - __pyx_v_cumulMOV);
 102:         # cout heuristique, paramètre X
 103:         cdef int h_x
+104:         h_x = + difference_sym #- h_INV  #diffSym[(i,j)][0]
  __pyx_v_h_x = __pyx_v_difference_sym;
 105:         # cout total normalisé, paramètre X
 106:         cdef float f_x
+107:         f_x = (1 + (g_x - h_x) / (l_texte1 + l_texte2)) / 2
  __pyx_t_29 = (__pyx_v_g_x - __pyx_v_h_x);
  __pyx_t_22 = (__pyx_v_l_texte1 + __pyx_v_l_texte2);
  if (unlikely(__pyx_t_22 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 107, __pyx_L1_error)
  }
  __pyx_v_f_x = ((1.0 + (__pyx_t_29 / ((float)__pyx_t_22))) / 2.0);
 108:         #print f_x
 109:         #assert 0 <= f_x <= 1, f_x
 110:         # pb indices entre arrayRepetT1 et cumulRepet probably
 111:         # bloc invariant de taille max entre les précédents et le courant (i,j)
 112:         cdef int current_inv_max
+113:         current_inv_max = max(best_inv_max, arrayRepetT1[i])
  __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_arrayRepetT1, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_22 = __pyx_v_best_inv_max;
  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_t_22); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyObject_RichCompare(__pyx_t_13, __pyx_t_9, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (__pyx_t_30) {
    __Pyx_INCREF(__pyx_t_13);
    __pyx_t_8 = __pyx_t_13;
  } else {
    __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_t_22); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_8 = __pyx_t_10;
    __pyx_t_10 = 0;
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_22 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_22 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_current_inv_max = __pyx_t_22;
 114:         #current_inv_max = best_inv_max
 115:         #if current_inv_max < arrayRepetT1[i]: current_inv_max = arrayRepetT1[i]
 116:         # bloc move de taille max entre les précédents et les courants situés entre (k,l) et (i,j)
 117:         cdef int nb_mov_added1, nb_mov_added2, max_mov_added1, max_mov_added2
+118:         nb_mov_added1 = nb_mov_added2 = max_mov_added1 = max_mov_added2 = 0
  __pyx_v_nb_mov_added1 = 0;
  __pyx_v_nb_mov_added2 = 0;
  __pyx_v_max_mov_added1 = 0;
  __pyx_v_max_mov_added2 = 0;
+119:         if i - (k+1) > 0:
  __pyx_t_30 = (((__pyx_v_i - (__pyx_v_k + 1)) > 0) != 0);
  if (__pyx_t_30) {
/* … */
  }
 120:             #a1 = arrayRepetT1[k+1:i]
 121:             #max_mov_added1 = numpy.max(a1)
+122:             max_mov_added1 = numpy.max(arrayRepetT1[k+1:i])
    __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_numpy); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_max); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetSlice(__pyx_v_arrayRepetT1, (__pyx_v_k + 1), __pyx_v_i, NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_10, function);
      }
    }
    __pyx_t_8 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_9, __pyx_t_13) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_13);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_22 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_22 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_v_max_mov_added1 = __pyx_t_22;
 123:             #max_mov_added1 = max(arrayRepetT1[k+1:i])
 124:             #max_mov_added1 = 0
 125:             #for x in xrange(k+1,i):
 126:             #    if arrayRepetT1[x] > max_mov_added1: max_mov_added1 = arrayRepetT1[x]
+127:             nb_mov_added1 = i - (k + 1)
    __pyx_v_nb_mov_added1 = (__pyx_v_i - (__pyx_v_k + 1));
 128:             #nb_mov_added1 = len(a1)
+129:         if j - (l+1) > 0:
  __pyx_t_30 = (((__pyx_v_j - (__pyx_v_l + 1)) > 0) != 0);
  if (__pyx_t_30) {
/* … */
  }
 130:             #a2 = arrayRepetT2[l+1:j]
 131:             #max_mov_added2 = numpy.max(a2)
+132:             max_mov_added2 = numpy.max(arrayRepetT2[l+1:j])
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_max); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __Pyx_PyObject_GetSlice(__pyx_v_arrayRepetT2, (__pyx_v_l + 1), __pyx_v_j, NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_8 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_9, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_10);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_22 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_22 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 132, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_v_max_mov_added2 = __pyx_t_22;
 133:             #max_mov_added2 = max(arrayRepetT2[l+1:j])
 134:             #max_mov_added2 = 0
 135:             #for x in xrange(l+1,j):
 136:             #    if arrayRepetT2[x] > max_mov_added2: max_mov_added2 = arrayRepetT2[x]
+137:             nb_mov_added2 = j - (l + 1)
    __pyx_v_nb_mov_added2 = (__pyx_v_j - (__pyx_v_l + 1));
 138:             #nb_mov_added2 = len(a2)
 139: 
 140:         cdef int current_mov_max
+141:         current_mov_max = max(best_mov_max, max_mov_added1, max_mov_added2)
  __pyx_t_22 = __pyx_v_max_mov_added1;
  __pyx_t_23 = __pyx_v_max_mov_added2;
  __pyx_t_24 = __pyx_v_best_mov_max;
  if (((__pyx_t_22 > __pyx_t_24) != 0)) {
    __pyx_t_25 = __pyx_t_22;
  } else {
    __pyx_t_25 = __pyx_t_24;
  }
  __pyx_t_24 = __pyx_t_25;
  if (((__pyx_t_23 > __pyx_t_24) != 0)) {
    __pyx_t_25 = __pyx_t_23;
  } else {
    __pyx_t_25 = __pyx_t_24;
  }
  __pyx_v_current_mov_max = __pyx_t_25;
 142:         #current_mov_max = best_mov_max
 143:         #if current_mov_max < max_mov_added1: current_mov_max = max_mov_added1
 144:         #if current_mov_max < max_mov_added2: current_mov_max = max_mov_added2
 145:         #if current_mov_max == 0:
 146:         #    print (k,l),(i,j),best_mov_max, max_mov_added1, max_mov_added2
 147:         cdef int nbINV, nbMOV, nbINS, nbSUP, nbREP
+148:         nbINV = best_nbINV + 2
  __pyx_v_nbINV = (__pyx_v_best_nbINV + 2);
 149:         #nbMOV = best_nbMOV + (i - k - 1) + (j - l -1)
+150:         nbMOV = best_nbMOV + nb_mov_added1 + nb_mov_added2
  __pyx_v_nbMOV = ((__pyx_v_best_nbMOV + __pyx_v_nb_mov_added1) + __pyx_v_nb_mov_added2);
+151:         nbINS = best_nbINS + (j - l) - nb_remp2
  __pyx_v_nbINS = ((__pyx_v_best_nbINS + (__pyx_v_j - __pyx_v_l)) - __pyx_v_nb_remp2);
+152:         nbSUP = best_nbSUP + (i - k) - nb_remp1
  __pyx_v_nbSUP = ((__pyx_v_best_nbSUP + (__pyx_v_i - __pyx_v_k)) - __pyx_v_nb_remp1);
+153:         nbREP = best_nbREP + nb_remp1 + nb_remp2
  __pyx_v_nbREP = ((__pyx_v_best_nbREP + __pyx_v_nb_remp1) + __pyx_v_nb_remp2);
 154:         # couts totaux, paramètres Yi
 155:         #if current_inv_max == 0:
 156:         #    print (k,l),(i,j),arrayRepetT1[i]
 157:         cdef int deno
+158:         deno = max(current_inv_max, inv_min_after)
  __pyx_t_25 = __pyx_v_inv_min_after;
  __pyx_t_22 = __pyx_v_current_inv_max;
  if (((__pyx_t_25 > __pyx_t_22) != 0)) {
    __pyx_t_23 = __pyx_t_25;
  } else {
    __pyx_t_23 = __pyx_t_22;
  }
  __pyx_v_deno = __pyx_t_23;
 159:         #deno = current_inv_max
 160:         #if deno < inv_min_after: deno = inv_min_after
 161:         cdef float f_yINV
+162:         f_yINV = ((0.0 + cumulINV + inv_min_after) / (nbINV +2)) / deno
  __pyx_t_31 = ((0.0 + __pyx_v_cumulINV) + __pyx_v_inv_min_after);
  __pyx_t_28 = (__pyx_v_nbINV + 2);
  if (unlikely(__pyx_t_28 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 162, __pyx_L1_error)
  }
  __pyx_t_32 = (__pyx_t_31 / ((double)__pyx_t_28));
  if (unlikely(__pyx_v_deno == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 162, __pyx_L1_error)
  }
  __pyx_v_f_yINV = (__pyx_t_32 / ((double)__pyx_v_deno));
 163:         #assert 0 < f_yINV <= 1, ((k,l),(i,j),f_yINV, cumulINV, inv_min_after, nbINV,current_inv_max,arrayRepetT1[:i+1],arrayRepetT2[:j+1])
 164: 
 165:         #print  (cumulMOV, mov_min_after, (nbMOV + 2),current_mov_max)
 166:         cdef float f_yMOV
+167:         if current_mov_max == 0: f_yMOV = 0
  __pyx_t_30 = ((__pyx_v_current_mov_max == 0) != 0);
  if (__pyx_t_30) {
    __pyx_v_f_yMOV = 0.0;
    goto __pyx_L9;
  }
+168:         else: f_yMOV = ((cumulMOV + mov_min_after) / (nbMOV + 2)) / (current_mov_max)
  /*else*/ {
    __pyx_t_23 = (__pyx_v_cumulMOV + __pyx_v_mov_min_after);
    __pyx_t_28 = (__pyx_v_nbMOV + 2);
    if (unlikely(__pyx_t_28 == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 168, __pyx_L1_error)
    }
    __pyx_t_32 = (((double)__pyx_t_23) / ((double)__pyx_t_28));
    if (unlikely(__pyx_v_current_mov_max == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 168, __pyx_L1_error)
    }
    __pyx_v_f_yMOV = (__pyx_t_32 / ((double)__pyx_v_current_mov_max));
  }
  __pyx_L9:;
 169:         #else: f_yMOV = ((cumulMOV + diff_sym) / (nbMOV + nb_blocs_diff_sym)) / (current_mov_max)
 170: 
 171:         #logging.debug(dicoMinMax2)
 172:         cdef int deno2
 173:         cdef float f_yINS
+174:         deno2 = max(dicoMinMax2[1][j], dicoMinMax2[2][j])
  __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_dicoMinMax2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_dicoMinMax2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_9 = PyObject_RichCompare(__pyx_t_13, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 174, __pyx_L1_error)
  __pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__pyx_t_30) {
    __Pyx_INCREF(__pyx_t_13);
    __pyx_t_8 = __pyx_t_13;
  } else {
    __Pyx_INCREF(__pyx_t_10);
    __pyx_t_8 = __pyx_t_10;
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_23 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_23 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_deno2 = __pyx_t_23;
 175:         #deno2 = dicoMinMax2[1][j]
 176:         #if deno2 < dicoMinMax2[2][j]: deno2 = dicoMinMax2[2][j]
+177:         if deno2 == 0: f_yINS = 0
  __pyx_t_30 = ((__pyx_v_deno2 == 0) != 0);
  if (__pyx_t_30) {
    __pyx_v_f_yINS = 0.0;
    goto __pyx_L10;
  }
+178:         else: f_yINS = ((cumulINS + dicoMinMax2[2][j]) / (nbINS + 1)) / (deno2)
  /*else*/ {
    __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_cumulINS); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_dicoMinMax2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_13, __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = PyNumber_Add(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __Pyx_PyInt_From_long((__pyx_v_nbINS + 1)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_13, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_deno2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_13 = __Pyx_PyNumber_Divide(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_29 = __pyx_PyFloat_AsFloat(__pyx_t_13); if (unlikely((__pyx_t_29 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 178, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_v_f_yINS = __pyx_t_29;
  }
  __pyx_L10:;
 179:         #print (k,l),(i,j),f_yINS,(cumulINS, dicoMinMax2[2][j],(nbINS + 1),(dicoMinMax2[1][j],dicoMinMax2[2][j]))
 180: 
 181:         #print (cumulSUP, dicoMinMax1[2][i],(nbSUP + 1)),(dicoMinMax1[1][i],dicoMinMax1[2][i])
 182:         cdef int deno1
 183:         cdef float f_ySUP
+184:         deno1 = max(dicoMinMax1[1][i], dicoMinMax1[2][i])
  __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_dicoMinMax1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_13, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_dicoMinMax1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_13, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_9 = PyObject_RichCompare(__pyx_t_10, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 184, __pyx_L1_error)
  __pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__pyx_t_30) {
    __Pyx_INCREF(__pyx_t_10);
    __pyx_t_13 = __pyx_t_10;
  } else {
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_13 = __pyx_t_8;
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_23 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_23 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_v_deno1 = __pyx_t_23;
 185:         #deno1 = dicoMinMax1[1][i]
 186:         #if deno1 < dicoMinMax1[2][i]: deno1 = dicoMinMax1[2][i]
+187:         if deno1 == 0: f_ySUP = 0
  __pyx_t_30 = ((__pyx_v_deno1 == 0) != 0);
  if (__pyx_t_30) {
    __pyx_v_f_ySUP = 0.0;
    goto __pyx_L11;
  }
+188:         else: f_ySUP = ((cumulSUP + dicoMinMax1[2][i]) / (nbSUP + 1)) / (deno1)
  /*else*/ {
    __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_cumulSUP); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_dicoMinMax1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = PyNumber_Add(__pyx_t_13, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyInt_From_long((__pyx_v_nbSUP + 1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_13 = __Pyx_PyNumber_Divide(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_deno1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = __Pyx_PyNumber_Divide(__pyx_t_13, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_29 = __pyx_PyFloat_AsFloat(__pyx_t_10); if (unlikely((__pyx_t_29 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 188, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_v_f_ySUP = __pyx_t_29;
  }
  __pyx_L11:;
 189: 
 190:         #if max(dicoMinMax2[1][j],dicoMinMax1[1][i],dicoMinMax2[2][j],dicoMinMax1[2][i]) == 0: f_yREP = 0
 191:         cdef float f_yREP
+192:         if deno1+deno2 == 0: f_yREP = 0
  __pyx_t_30 = (((__pyx_v_deno1 + __pyx_v_deno2) == 0) != 0);
  if (__pyx_t_30) {
    __pyx_v_f_yREP = 0.0;
    goto __pyx_L12;
  }
+193:         else: f_yREP = (((cumulREP + dicoMinMax2[2][j] + dicoMinMax1[2][i]) / (nbREP + 2)) /
  /*else*/ {
    __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_cumulREP); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_dicoMinMax2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyNumber_Add(__pyx_t_10, __pyx_t_13); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_dicoMinMax1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_13, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = PyNumber_Add(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __Pyx_PyInt_From_long((__pyx_v_nbREP + 2)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_13, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
/* … */
    __pyx_t_13 = __Pyx_PyNumber_Divide(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_29 = __pyx_PyFloat_AsFloat(__pyx_t_13); if (unlikely((__pyx_t_29 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 193, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_v_f_yREP = __pyx_t_29;
  }
  __pyx_L12:;
+194:                             (deno1+deno2))
    __pyx_t_10 = __Pyx_PyInt_From_int((__pyx_v_deno1 + __pyx_v_deno2)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 194, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
 195:         # cout total normalis�, param�tre Y
 196:         cdef float f_y
+197:         f_y = (f_yINV + f_yMOV + f_yINS + f_ySUP + f_yREP) / 5
  __pyx_v_f_y = (((((__pyx_v_f_yINV + __pyx_v_f_yMOV) + __pyx_v_f_yINS) + __pyx_v_f_ySUP) + __pyx_v_f_yREP) / 5.0);
 198:         #print (k,l),(i,j),(f_y, (f_yINV, f_yMOV, f_yINS, f_ySUP, f_yREP))
 199:         #assert 0 <= f_y <= 1, (f_y, (f_yINV, f_yMOV, f_yINS, f_ySUP, f_yREP))
 200: 
 201:         # cout total normalisé, paramètre Z1
 202:         cdef int denominateur_z1, denominateur_z2 #, dd
 203:         cdef float f_z1, f_z2, f_z, f_temp, f
+204:         denominateur_z1 = ((cumulINS+ dicoMinMax2[2][j]) +
  __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_cumulINS); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_dicoMinMax2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyNumber_Add(__pyx_t_13, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
  __pyx_t_9 = PyNumber_Add(__pyx_t_10, __pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+205:                 (cumulSUP + dicoMinMax1[2][i]) +
  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_cumulSUP); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_dicoMinMax1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_13, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyNumber_Add(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
  __pyx_t_13 = PyNumber_Add(__pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+206:                 (cumulREP + dicoMinMax2[2][j] + dicoMinMax1[2][i]) +
  __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_cumulREP); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_dicoMinMax2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyNumber_Add(__pyx_t_13, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_dicoMinMax1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyNumber_Add(__pyx_t_10, __pyx_t_13); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
/* … */
  __pyx_t_9 = PyNumber_Add(__pyx_t_13, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_23 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_23 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 206, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_v_denominateur_z1 = __pyx_t_23;
+207:                 (cumulMOV + mov_min_after))
  __pyx_t_8 = __Pyx_PyInt_From_int((__pyx_v_cumulMOV + __pyx_v_mov_min_after)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
 208:         #dd = dicoMinMax2[2][j] + dicoMinMax1[2][i] + dicoMinMax2[2][j] + dicoMinMax1[2][i] + mov_min_after
 209:         #denominateur_z1 = denominateur_z1 + dd
+210:         if denominateur_z1 == 0: f_z1 = 0
  __pyx_t_30 = ((__pyx_v_denominateur_z1 == 0) != 0);
  if (__pyx_t_30) {
    __pyx_v_f_z1 = 0.0;
    goto __pyx_L13;
  }
+211:         else: f_z1 = (1.0 + cumulMOV + mov_min_after) /  denominateur_z1
  /*else*/ {
    __pyx_t_32 = ((1.0 + __pyx_v_cumulMOV) + __pyx_v_mov_min_after);
    if (unlikely(__pyx_v_denominateur_z1 == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 211, __pyx_L1_error)
    }
    __pyx_v_f_z1 = (__pyx_t_32 / ((double)__pyx_v_denominateur_z1));
  }
  __pyx_L13:;
 212:         # cout total normalisé, paramètre Z2
+213:         denominateur_z2 = ((cumulINS + dicoMinMax2[2][j]) +
  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_cumulINS); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_dicoMinMax2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyNumber_Add(__pyx_t_9, __pyx_t_13); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
/* … */
  __pyx_t_10 = PyNumber_Add(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+214:             (cumulSUP + dicoMinMax1[2][i]) + (cumulREP + dicoMinMax2[2][j] + dicoMinMax1[2][i]))
  __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_cumulSUP); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_dicoMinMax1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyNumber_Add(__pyx_t_13, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
/* … */
  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_cumulREP); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_dicoMinMax2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyNumber_Add(__pyx_t_9, __pyx_t_13); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_dicoMinMax1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_13, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyNumber_Add(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyNumber_Add(__pyx_t_10, __pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_23 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_23 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_v_denominateur_z2 = __pyx_t_23;
 215:         #dd = dicoMinMax2[2][j] + dicoMinMax1[2][i] + dicoMinMax2[2][j] + dicoMinMax1[2][i]
 216:         #denominateur_z2 = cumulINS + cumulSUP + dd
+217:         if denominateur_z2 == 0: f_z2 = 0
  __pyx_t_30 = ((__pyx_v_denominateur_z2 == 0) != 0);
  if (__pyx_t_30) {
    __pyx_v_f_z2 = 0.0;
    goto __pyx_L14;
  }
+218:         else: f_z2 = (1.0 + cumulREP + dicoMinMax2[2][j] + dicoMinMax1[2][i]) / (denominateur_z2)
  /*else*/ {
    __pyx_t_9 = PyFloat_FromDouble((1.0 + __pyx_v_cumulREP)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_dicoMinMax2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_13, __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = PyNumber_Add(__pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_dicoMinMax1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = PyNumber_Add(__pyx_t_13, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_denominateur_z2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_13 = __Pyx_PyNumber_Divide(__pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_29 = __pyx_PyFloat_AsFloat(__pyx_t_13); if (unlikely((__pyx_t_29 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_v_f_z2 = __pyx_t_29;
  }
  __pyx_L14:;
 219:         # cout total normalis�, param�tre Z
+220:         f_z = (f_z1 + f_z2) / 2
  __pyx_v_f_z = ((__pyx_v_f_z1 + __pyx_v_f_z2) / 2.0);
 221: 
+222:         f_temp = (coeffX * f_x + coeffY * f_y + coeffZ * f_z)
  __pyx_v_f_temp = (((__pyx_v_coeffX * __pyx_v_f_x) + (__pyx_v_coeffY * __pyx_v_f_y)) + (__pyx_v_coeffZ * __pyx_v_f_z));
 223:         #assert 0 <= f_temp <= 1
+224:         if f_temp == 0: f_temp = 1.0 / sys.maxint
  __pyx_t_30 = ((__pyx_v_f_temp == 0.0) != 0);
  if (__pyx_t_30) {
    __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_sys); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 224, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_maxint); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 224, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_1_0, __pyx_t_9, 1.0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 224, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_29 = __pyx_PyFloat_AsFloat(__pyx_t_13); if (unlikely((__pyx_t_29 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 224, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_v_f_temp = __pyx_t_29;
  }
+225:         f = 1.0 / f_temp # f_temp #
  if (unlikely(__pyx_v_f_temp == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 225, __pyx_L1_error)
  }
  __pyx_v_f = (1.0 / ((double)__pyx_v_f_temp));
 226:         #logging.debug((f_temp,f_x,  f_y  , f_z))
+227:         return (f, (k,l), (cumulINV, cumulMOV, cumulINS, cumulSUP, cumulREP,
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_13 = PyFloat_FromDouble(__pyx_v_f); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_k); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_l); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_10);
  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_10);
  __pyx_t_9 = 0;
  __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_cumulINV); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_cumulMOV); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_cumulINS); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_cumulSUP); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_cumulREP); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_33 = PyTuple_New(12); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_33);
  __Pyx_GIVEREF(__pyx_t_10);
  PyTuple_SET_ITEM(__pyx_t_33, 0, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_33, 1, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_11);
  PyTuple_SET_ITEM(__pyx_t_33, 2, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_33, 3, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_33, 4, __pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_33, 5, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_33, 6, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_33, 7, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_33, 8, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_33, 9, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_33, 10, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_14);
  PyTuple_SET_ITEM(__pyx_t_33, 11, __pyx_t_14);
  __pyx_t_10 = 0;
  __pyx_t_9 = 0;
  __pyx_t_11 = 0;
  __pyx_t_1 = 0;
  __pyx_t_12 = 0;
  __pyx_t_7 = 0;
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_4 = 0;
  __pyx_t_3 = 0;
  __pyx_t_2 = 0;
  __pyx_t_14 = 0;
  __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_33);
  PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_33);
  __pyx_t_13 = 0;
  __pyx_t_8 = 0;
  __pyx_t_33 = 0;
  __pyx_r = __pyx_t_14;
  __pyx_t_14 = 0;
  goto __pyx_L0;
+228:                 nbINV, nbMOV, nbINS, nbSUP, nbREP, current_inv_max, current_mov_max))
  __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_nbINV); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_nbMOV); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_nbINS); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_nbSUP); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nbREP); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_current_inv_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_current_mov_max); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
 229: 
 230: 
 231: 
+232: def deplacements_pond_Astar( L1Static, L2Static, diffSym, dicoPos,
/* Python wrapper */
static PyObject *__pyx_pw_8medite40_11MediteAppli_4cost_3deplacements_pond_Astar(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8medite40_11MediteAppli_4cost_2deplacements_pond_Astar[] = " impl\303\251mentation de A* pour rechercher le meilleur chemin dans l'arbre des appariement entre blocs \n        Renvoie le noeud du dernier appariement ";
static PyMethodDef __pyx_mdef_8medite40_11MediteAppli_4cost_3deplacements_pond_Astar = {"deplacements_pond_Astar", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8medite40_11MediteAppli_4cost_3deplacements_pond_Astar, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8medite40_11MediteAppli_4cost_2deplacements_pond_Astar};
static PyObject *__pyx_pw_8medite40_11MediteAppli_4cost_3deplacements_pond_Astar(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_L1Static = 0;
  PyObject *__pyx_v_L2Static = 0;
  PyObject *__pyx_v_diffSym = 0;
  PyObject *__pyx_v_dicoPos = 0;
  PyObject *__pyx_v_coutFixe = 0;
  PyObject *__pyx_v_dicoMinMax1 = 0;
  PyObject *__pyx_v_dicoMinMax2 = 0;
  PyObject *__pyx_v_lSuppression = 0;
  PyObject *__pyx_v_lInsertion = 0;
  PyObject *__pyx_v_arrayRepetT1 = 0;
  PyObject *__pyx_v_arrayRepetT2 = 0;
  PyObject *__pyx_v_MO = 0;
  PyObject *__pyx_v_l_texte1 = 0;
  PyObject *__pyx_v_l_texte2 = 0;
  PyObject *__pyx_v_coeff = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("deplacements_pond_Astar (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_L1Static,&__pyx_n_s_L2Static,&__pyx_n_s_diffSym,&__pyx_n_s_dicoPos,&__pyx_n_s_coutFixe,&__pyx_n_s_dicoMinMax1,&__pyx_n_s_dicoMinMax2,&__pyx_n_s_lSuppression,&__pyx_n_s_lInsertion,&__pyx_n_s_arrayRepetT1,&__pyx_n_s_arrayRepetT2,&__pyx_n_s_MO,&__pyx_n_s_l_texte1,&__pyx_n_s_l_texte2,&__pyx_n_s_coeff,0};
    PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
/* … */
  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8medite40_11MediteAppli_4cost_2deplacements_pond_Astar(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_L1Static, PyObject *__pyx_v_L2Static, PyObject *__pyx_v_diffSym, PyObject *__pyx_v_dicoPos, PyObject *__pyx_v_coutFixe, PyObject *__pyx_v_dicoMinMax1, PyObject *__pyx_v_dicoMinMax2, PyObject *__pyx_v_lSuppression, PyObject *__pyx_v_lInsertion, PyObject *__pyx_v_arrayRepetT1, PyObject *__pyx_v_arrayRepetT2, PyObject *__pyx_v_MO, PyObject *__pyx_v_l_texte1, PyObject *__pyx_v_l_texte2, PyObject *__pyx_v_coeff) {
  PyObject *__pyx_v_openSet = NULL;
  PyObject *__pyx_v_closedSet = NULL;
  PyObject *__pyx_v_goalNodes = NULL;
  PyObject *__pyx_v_L1 = NULL;
  PyObject *__pyx_v_L2 = NULL;
  PyObject *__pyx_v_best = NULL;
  PyObject *__pyx_v_bestValue = NULL;
  PyObject *__pyx_v_cptEval = NULL;
  PyObject *__pyx_v_posB1 = NULL;
  PyObject *__pyx_v_posB2 = NULL;
  PyObject *__pyx_v_node = NULL;
  PyObject *__pyx_v_nodeValue = NULL;
  PyObject *__pyx_v_cout = NULL;
  PyObject *__pyx_v_cF = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("deplacements_pond_Astar", 0);
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_AddTraceback("medite40.MediteAppli.cost.deplacements_pond_Astar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_openSet);
  __Pyx_XDECREF(__pyx_v_closedSet);
  __Pyx_XDECREF(__pyx_v_goalNodes);
  __Pyx_XDECREF(__pyx_v_L1);
  __Pyx_XDECREF(__pyx_v_L2);
  __Pyx_XDECREF(__pyx_v_best);
  __Pyx_XDECREF(__pyx_v_bestValue);
  __Pyx_XDECREF(__pyx_v_cptEval);
  __Pyx_XDECREF(__pyx_v_posB1);
  __Pyx_XDECREF(__pyx_v_posB2);
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XDECREF(__pyx_v_nodeValue);
  __Pyx_XDECREF(__pyx_v_cout);
  __Pyx_XDECREF(__pyx_v_cF);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__5 = PyTuple_Pack(29, __pyx_n_s_L1Static, __pyx_n_s_L2Static, __pyx_n_s_diffSym, __pyx_n_s_dicoPos, __pyx_n_s_coutFixe, __pyx_n_s_dicoMinMax1, __pyx_n_s_dicoMinMax2, __pyx_n_s_lSuppression, __pyx_n_s_lInsertion, __pyx_n_s_arrayRepetT1, __pyx_n_s_arrayRepetT2, __pyx_n_s_MO, __pyx_n_s_l_texte1, __pyx_n_s_l_texte2, __pyx_n_s_coeff, __pyx_n_s_openSet_2, __pyx_n_s_closedSet_2, __pyx_n_s_goalNodes, __pyx_n_s_L1, __pyx_n_s_L2, __pyx_n_s_best, __pyx_n_s_bestValue, __pyx_n_s_cptEval, __pyx_n_s_posB1, __pyx_n_s_posB2, __pyx_n_s_node, __pyx_n_s_nodeValue, __pyx_n_s_cout_2, __pyx_n_s_cF); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__5);
  __Pyx_GIVEREF(__pyx_tuple__5);
/* … */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_8medite40_11MediteAppli_4cost_3deplacements_pond_Astar, NULL, __pyx_n_s_medite40_MediteAppli_cost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_deplacements_pond_Astar, __pyx_t_1) < 0) __PYX_ERR(0, 232, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+233:             coutFixe, dicoMinMax1=None, dicoMinMax2=None,lSuppression=None, lInsertion=None,
    values[5] = ((PyObject *)Py_None);
    values[6] = ((PyObject *)Py_None);
    values[7] = ((PyObject *)Py_None);
    values[8] = ((PyObject *)Py_None);
+234:             arrayRepetT1=None, arrayRepetT2=None, MO=False, l_texte1=None, l_texte2=None, coeff=None):
    values[9] = ((PyObject *)Py_None);
    values[10] = ((PyObject *)Py_None);
    values[11] = ((PyObject *)Py_False);
    values[12] = ((PyObject *)Py_None);
    values[13] = ((PyObject *)Py_None);
    values[14] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
        CYTHON_FALLTHROUGH;
        case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
        CYTHON_FALLTHROUGH;
        case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
        CYTHON_FALLTHROUGH;
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        CYTHON_FALLTHROUGH;
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        CYTHON_FALLTHROUGH;
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_L1Static)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_L2Static)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("deplacements_pond_Astar", 0, 5, 15, 1); __PYX_ERR(0, 232, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diffSym)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("deplacements_pond_Astar", 0, 5, 15, 2); __PYX_ERR(0, 232, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dicoPos)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("deplacements_pond_Astar", 0, 5, 15, 3); __PYX_ERR(0, 232, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coutFixe)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("deplacements_pond_Astar", 0, 5, 15, 4); __PYX_ERR(0, 232, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dicoMinMax1);
          if (value) { values[5] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dicoMinMax2);
          if (value) { values[6] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lSuppression);
          if (value) { values[7] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lInsertion);
          if (value) { values[8] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arrayRepetT1);
          if (value) { values[9] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case 10:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arrayRepetT2);
          if (value) { values[10] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case 11:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_MO);
          if (value) { values[11] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case 12:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l_texte1);
          if (value) { values[12] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case 13:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l_texte2);
          if (value) { values[13] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case 14:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coeff);
          if (value) { values[14] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "deplacements_pond_Astar") < 0)) __PYX_ERR(0, 232, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
        CYTHON_FALLTHROUGH;
        case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
        CYTHON_FALLTHROUGH;
        case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
        CYTHON_FALLTHROUGH;
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        CYTHON_FALLTHROUGH;
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        CYTHON_FALLTHROUGH;
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_L1Static = values[0];
    __pyx_v_L2Static = values[1];
    __pyx_v_diffSym = values[2];
    __pyx_v_dicoPos = values[3];
    __pyx_v_coutFixe = values[4];
    __pyx_v_dicoMinMax1 = values[5];
    __pyx_v_dicoMinMax2 = values[6];
    __pyx_v_lSuppression = values[7];
    __pyx_v_lInsertion = values[8];
    __pyx_v_arrayRepetT1 = values[9];
    __pyx_v_arrayRepetT2 = values[10];
    __pyx_v_MO = values[11];
    __pyx_v_l_texte1 = values[12];
    __pyx_v_l_texte2 = values[13];
    __pyx_v_coeff = values[14];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("deplacements_pond_Astar", 0, 5, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 232, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("medite40.MediteAppli.cost.deplacements_pond_Astar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8medite40_11MediteAppli_4cost_2deplacements_pond_Astar(__pyx_self, __pyx_v_L1Static, __pyx_v_L2Static, __pyx_v_diffSym, __pyx_v_dicoPos, __pyx_v_coutFixe, __pyx_v_dicoMinMax1, __pyx_v_dicoMinMax2, __pyx_v_lSuppression, __pyx_v_lInsertion, __pyx_v_arrayRepetT1, __pyx_v_arrayRepetT2, __pyx_v_MO, __pyx_v_l_texte1, __pyx_v_l_texte2, __pyx_v_coeff);
 235:         """ implémentation de A* pour rechercher le meilleur chemin dans l'arbre des appariement entre blocs
 236:         Renvoie le noeud du dernier appariement """
 237:         global fct_cout
+238:         openSet = {} # ensemble des sommets ouverts pour A*
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_openSet = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+239:         closedSet = {} # ensemble des sommets fermés pour A*
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_closedSet = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+240:         goalNodes = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_goalNodes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+241:         L1 = L1Static # liste L1 courante
  __Pyx_INCREF(__pyx_v_L1Static);
  __pyx_v_L1 = __pyx_v_L1Static;
+242:         L2 = L2Static
  __Pyx_INCREF(__pyx_v_L2Static);
  __pyx_v_L2 = __pyx_v_L2Static;
+243:         logging.debug('len(L1)='+str(len(L1))+' / len(L2)='+str(len(L2)))
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logging); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_v_L1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 243, __pyx_L1_error)
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_len_L1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_kp_u_len_L2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_v_L2); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 243, __pyx_L1_error)
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+244:         logging.debug('openSet = '+str(openSet))
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_logging); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_openSet); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_openSet, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+245:         logging.debug('closedSet = '+str(closedSet))
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logging); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_closedSet); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_closedSet, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+246:         best = (-1,-1)
  __Pyx_INCREF(__pyx_tuple_);
  __pyx_v_best = __pyx_tuple_;
/* … */
  __pyx_tuple_ = PyTuple_Pack(2, __pyx_int_neg_1, __pyx_int_neg_1); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple_);
  __Pyx_GIVEREF(__pyx_tuple_);
+247:         if MO: bestValue = (0.0+sys.maxint, best, (0,0,0,0,0,0,0,0,0,0,0,0))
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_MO); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 247, __pyx_L1_error)
  if (__pyx_t_7) {
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_maxint); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 247, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyFloat_AddCObj(__pyx_float_0_0, __pyx_t_6, 0.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 247, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_INCREF(__pyx_v_best);
    __Pyx_GIVEREF(__pyx_v_best);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_best);
    __Pyx_INCREF(__pyx_tuple__2);
    __Pyx_GIVEREF(__pyx_tuple__2);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_tuple__2);
    __pyx_t_1 = 0;
    __pyx_v_bestValue = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L3;
  }
/* … */
  __pyx_tuple__2 = PyTuple_Pack(12, __pyx_int_0, __pyx_int_0, __pyx_int_0, __pyx_int_0, __pyx_int_0, __pyx_int_0, __pyx_int_0, __pyx_int_0, __pyx_int_0, __pyx_int_0, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__2);
  __Pyx_GIVEREF(__pyx_tuple__2);
+248:         else: bestValue = (0.0+sys.maxint, best, 0)
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_sys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_maxint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyFloat_AddCObj(__pyx_float_0_0, __pyx_t_1, 0.0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_INCREF(__pyx_v_best);
    __Pyx_GIVEREF(__pyx_v_best);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_best);
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_int_0);
    __pyx_t_6 = 0;
    __pyx_v_bestValue = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;
 249:         #iteration = 0
+250:         while True:
  while (1) {
+251:             cptEval = 0
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_XDECREF_SET(__pyx_v_cptEval, __pyx_int_0);
+252:             for posB1 in xrange(len(L1)):
    __pyx_t_4 = PyObject_Length(__pyx_v_L1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 252, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 252, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_1 = __pyx_t_6; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 252, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 252, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 252, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 252, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 252, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        }
      } else {
        __pyx_t_6 = __pyx_t_8(__pyx_t_1);
        if (unlikely(!__pyx_t_6)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 252, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF_SET(__pyx_v_posB1, __pyx_t_6);
      __pyx_t_6 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 253:                 #for posB2 in dicoPos[2][texte[L1[posB1][0]:L1[posB1][1]]]:
+254:                 for posB2 in dicoPos[2][L1[posB1]]:
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_dicoPos, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 254, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_L1, __pyx_v_posB1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 254, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 254, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 254, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 254, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_3))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 254, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 254, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 254, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 254, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_10(__pyx_t_3);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 254, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_posB2, __pyx_t_2);
        __pyx_t_2 = 0;
/* … */
        __pyx_L8_continue:;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+255:                     if posB2 < best[1]+1: continue # cette position est hors de la liste courante
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_best, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyObject_RichCompare(__pyx_v_posB2, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 255, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 255, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (__pyx_t_7) {
          goto __pyx_L8_continue;
        }
+256:                     cptEval = cptEval + 1
        __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_cptEval, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 256, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF_SET(__pyx_v_cptEval, __pyx_t_2);
        __pyx_t_2 = 0;
+257:                     node = (posB1+best[0]+1,posB2) #,iteration) # position absolue par rapport à self.L1 et self.L2
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_best, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 257, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_6 = PyNumber_Add(__pyx_v_posB1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 257, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_6, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 257, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 257, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
        __Pyx_INCREF(__pyx_v_posB2);
        __Pyx_GIVEREF(__pyx_v_posB2);
        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_posB2);
        __pyx_t_2 = 0;
        __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_6);
        __pyx_t_6 = 0;
 258:                     #cout=self.cout(best[0]+1,best[1]+1,posB1+best[0]+1,posB2,diffSym,coutFixe)
+259:                     if MO:
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_MO); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 259, __pyx_L1_error)
        if (__pyx_t_7) {
/* … */
          goto __pyx_L11;
        }
+260:                         logging.debug('cout='+str(cout))
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logging); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 260, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 260, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_v_cout)) { __Pyx_RaiseUnboundLocalError("cout"); __PYX_ERR(0, 260, __pyx_L1_error) }
          __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_cout); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 260, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_11 = __Pyx_PyUnicode_Concat(__pyx_kp_u_cout, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 260, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_11);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 260, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+261:                         nodeValue = fct_cout(best[0], best[1], node[0], node[1],
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_fct_cout); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 261, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_best, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 261, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_best, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 261, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_node, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 261, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_node, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 261, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
+262:                             diffSym, coutFixe[0][0], coutFixe[0][1],
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_v_coutFixe, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_14, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_v_coutFixe, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_14, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+263:                             coutFixe[1][0], coutFixe[1][1],
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_v_coutFixe, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_14, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_v_coutFixe, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_14, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
 264:                             bestValue, dicoMinMax1, dicoMinMax2, lSuppression, lInsertion,
 265:                             arrayRepetT1, arrayRepetT2,
+266:                             coeff[0], coeff[1], coeff[2],
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_v_coeff, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 266, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_19 = __Pyx_GetItemInt(__pyx_v_coeff, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 266, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_20 = __Pyx_GetItemInt(__pyx_v_coeff, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 266, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
+267:                             l_texte1, l_texte2)
          __pyx_t_21 = NULL;
          __pyx_t_22 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_21)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_21);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_22 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[22] = {__pyx_t_21, __pyx_t_11, __pyx_t_2, __pyx_t_12, __pyx_t_13, __pyx_v_diffSym, __pyx_t_15, __pyx_t_16, __pyx_t_17, __pyx_t_18, __pyx_v_bestValue, __pyx_v_dicoMinMax1, __pyx_v_dicoMinMax2, __pyx_v_lSuppression, __pyx_v_lInsertion, __pyx_v_arrayRepetT1, __pyx_v_arrayRepetT2, __pyx_t_14, __pyx_t_19, __pyx_t_20, __pyx_v_l_texte1, __pyx_v_l_texte2};
            __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_22, 21+__pyx_t_22); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 261, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[22] = {__pyx_t_21, __pyx_t_11, __pyx_t_2, __pyx_t_12, __pyx_t_13, __pyx_v_diffSym, __pyx_t_15, __pyx_t_16, __pyx_t_17, __pyx_t_18, __pyx_v_bestValue, __pyx_v_dicoMinMax1, __pyx_v_dicoMinMax2, __pyx_v_lSuppression, __pyx_v_lInsertion, __pyx_v_arrayRepetT1, __pyx_v_arrayRepetT2, __pyx_t_14, __pyx_t_19, __pyx_t_20, __pyx_v_l_texte1, __pyx_v_l_texte2};
            __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_22, 21+__pyx_t_22); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 261, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          } else
          #endif
          {
            __pyx_t_23 = PyTuple_New(21+__pyx_t_22); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 261, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            if (__pyx_t_21) {
              __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_21); __pyx_t_21 = NULL;
            }
            __Pyx_GIVEREF(__pyx_t_11);
            PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_22, __pyx_t_11);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_22, __pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_12);
            PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_22, __pyx_t_12);
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_22, __pyx_t_13);
            __Pyx_INCREF(__pyx_v_diffSym);
            __Pyx_GIVEREF(__pyx_v_diffSym);
            PyTuple_SET_ITEM(__pyx_t_23, 4+__pyx_t_22, __pyx_v_diffSym);
            __Pyx_GIVEREF(__pyx_t_15);
            PyTuple_SET_ITEM(__pyx_t_23, 5+__pyx_t_22, __pyx_t_15);
            __Pyx_GIVEREF(__pyx_t_16);
            PyTuple_SET_ITEM(__pyx_t_23, 6+__pyx_t_22, __pyx_t_16);
            __Pyx_GIVEREF(__pyx_t_17);
            PyTuple_SET_ITEM(__pyx_t_23, 7+__pyx_t_22, __pyx_t_17);
            __Pyx_GIVEREF(__pyx_t_18);
            PyTuple_SET_ITEM(__pyx_t_23, 8+__pyx_t_22, __pyx_t_18);
            __Pyx_INCREF(__pyx_v_bestValue);
            __Pyx_GIVEREF(__pyx_v_bestValue);
            PyTuple_SET_ITEM(__pyx_t_23, 9+__pyx_t_22, __pyx_v_bestValue);
            __Pyx_INCREF(__pyx_v_dicoMinMax1);
            __Pyx_GIVEREF(__pyx_v_dicoMinMax1);
            PyTuple_SET_ITEM(__pyx_t_23, 10+__pyx_t_22, __pyx_v_dicoMinMax1);
            __Pyx_INCREF(__pyx_v_dicoMinMax2);
            __Pyx_GIVEREF(__pyx_v_dicoMinMax2);
            PyTuple_SET_ITEM(__pyx_t_23, 11+__pyx_t_22, __pyx_v_dicoMinMax2);
            __Pyx_INCREF(__pyx_v_lSuppression);
            __Pyx_GIVEREF(__pyx_v_lSuppression);
            PyTuple_SET_ITEM(__pyx_t_23, 12+__pyx_t_22, __pyx_v_lSuppression);
            __Pyx_INCREF(__pyx_v_lInsertion);
            __Pyx_GIVEREF(__pyx_v_lInsertion);
            PyTuple_SET_ITEM(__pyx_t_23, 13+__pyx_t_22, __pyx_v_lInsertion);
            __Pyx_INCREF(__pyx_v_arrayRepetT1);
            __Pyx_GIVEREF(__pyx_v_arrayRepetT1);
            PyTuple_SET_ITEM(__pyx_t_23, 14+__pyx_t_22, __pyx_v_arrayRepetT1);
            __Pyx_INCREF(__pyx_v_arrayRepetT2);
            __Pyx_GIVEREF(__pyx_v_arrayRepetT2);
            PyTuple_SET_ITEM(__pyx_t_23, 15+__pyx_t_22, __pyx_v_arrayRepetT2);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_23, 16+__pyx_t_22, __pyx_t_14);
            __Pyx_GIVEREF(__pyx_t_19);
            PyTuple_SET_ITEM(__pyx_t_23, 17+__pyx_t_22, __pyx_t_19);
            __Pyx_GIVEREF(__pyx_t_20);
            PyTuple_SET_ITEM(__pyx_t_23, 18+__pyx_t_22, __pyx_t_20);
            __Pyx_INCREF(__pyx_v_l_texte1);
            __Pyx_GIVEREF(__pyx_v_l_texte1);
            PyTuple_SET_ITEM(__pyx_t_23, 19+__pyx_t_22, __pyx_v_l_texte1);
            __Pyx_INCREF(__pyx_v_l_texte2);
            __Pyx_GIVEREF(__pyx_v_l_texte2);
            PyTuple_SET_ITEM(__pyx_t_23, 20+__pyx_t_22, __pyx_v_l_texte2);
            __pyx_t_11 = 0;
            __pyx_t_2 = 0;
            __pyx_t_12 = 0;
            __pyx_t_13 = 0;
            __pyx_t_15 = 0;
            __pyx_t_16 = 0;
            __pyx_t_17 = 0;
            __pyx_t_18 = 0;
            __pyx_t_14 = 0;
            __pyx_t_19 = 0;
            __pyx_t_20 = 0;
            __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_23, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 261, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF_SET(__pyx_v_nodeValue, __pyx_t_6);
          __pyx_t_6 = 0;
 268:                         #logging.debug((node,nodeValue))
+269:                         cout = nodeValue[0]
          __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_nodeValue, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 269, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_XDECREF_SET(__pyx_v_cout, __pyx_t_6);
          __pyx_t_6 = 0;
 270:                     else:
+271:                         cout, cF = cout(best, node, diffSym, coutFixe, bestValue)
        /*else*/ {
          if (unlikely(!__pyx_v_cout)) { __Pyx_RaiseUnboundLocalError("cout"); __PYX_ERR(0, 271, __pyx_L1_error) }
          __Pyx_INCREF(__pyx_v_cout);
          __pyx_t_5 = __pyx_v_cout; __pyx_t_23 = NULL;
          __pyx_t_22 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_23)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_23);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_22 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[6] = {__pyx_t_23, __pyx_v_best, __pyx_v_node, __pyx_v_diffSym, __pyx_v_coutFixe, __pyx_v_bestValue};
            __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_22, 5+__pyx_t_22); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 271, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_GOTREF(__pyx_t_6);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[6] = {__pyx_t_23, __pyx_v_best, __pyx_v_node, __pyx_v_diffSym, __pyx_v_coutFixe, __pyx_v_bestValue};
            __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_22, 5+__pyx_t_22); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 271, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_GOTREF(__pyx_t_6);
          } else
          #endif
          {
            __pyx_t_20 = PyTuple_New(5+__pyx_t_22); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 271, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_20);
            if (__pyx_t_23) {
              __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_23); __pyx_t_23 = NULL;
            }
            __Pyx_INCREF(__pyx_v_best);
            __Pyx_GIVEREF(__pyx_v_best);
            PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_22, __pyx_v_best);
            __Pyx_INCREF(__pyx_v_node);
            __Pyx_GIVEREF(__pyx_v_node);
            PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_22, __pyx_v_node);
            __Pyx_INCREF(__pyx_v_diffSym);
            __Pyx_GIVEREF(__pyx_v_diffSym);
            PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_22, __pyx_v_diffSym);
            __Pyx_INCREF(__pyx_v_coutFixe);
            __Pyx_GIVEREF(__pyx_v_coutFixe);
            PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_22, __pyx_v_coutFixe);
            __Pyx_INCREF(__pyx_v_bestValue);
            __Pyx_GIVEREF(__pyx_v_bestValue);
            PyTuple_SET_ITEM(__pyx_t_20, 4+__pyx_t_22, __pyx_v_bestValue);
            __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_20, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 271, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
            PyObject* sequence = __pyx_t_6;
            Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
            if (unlikely(size != 2)) {
              if (size > 2) __Pyx_RaiseTooManyValuesError(2);
              else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
              __PYX_ERR(0, 271, __pyx_L1_error)
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            if (likely(PyTuple_CheckExact(sequence))) {
              __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
              __pyx_t_20 = PyTuple_GET_ITEM(sequence, 1); 
            } else {
              __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
              __pyx_t_20 = PyList_GET_ITEM(sequence, 1); 
            }
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_20);
            #else
            __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 271, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_20 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 271, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_20);
            #endif
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          } else {
            Py_ssize_t index = -1;
            __pyx_t_23 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 271, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_24 = Py_TYPE(__pyx_t_23)->tp_iternext;
            index = 0; __pyx_t_5 = __pyx_t_24(__pyx_t_23); if (unlikely(!__pyx_t_5)) goto __pyx_L12_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_5);
            index = 1; __pyx_t_20 = __pyx_t_24(__pyx_t_23); if (unlikely(!__pyx_t_20)) goto __pyx_L12_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_20);
            if (__Pyx_IternextUnpackEndCheck(__pyx_t_24(__pyx_t_23), 2) < 0) __PYX_ERR(0, 271, __pyx_L1_error)
            __pyx_t_24 = NULL;
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            goto __pyx_L13_unpacking_done;
            __pyx_L12_unpacking_failed:;
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __pyx_t_24 = NULL;
            if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
            __PYX_ERR(0, 271, __pyx_L1_error)
            __pyx_L13_unpacking_done:;
          }
          __Pyx_XDECREF_SET(__pyx_v_cout, __pyx_t_5);
          __pyx_t_5 = 0;
          __Pyx_XDECREF_SET(__pyx_v_cF, __pyx_t_20);
          __pyx_t_20 = 0;
+272:                         nodeValue = (cout,best,cF)
          __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 272, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_INCREF(__pyx_v_cout);
          __Pyx_GIVEREF(__pyx_v_cout);
          PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_cout);
          __Pyx_INCREF(__pyx_v_best);
          __Pyx_GIVEREF(__pyx_v_best);
          PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_best);
          __Pyx_INCREF(__pyx_v_cF);
          __Pyx_GIVEREF(__pyx_v_cF);
          PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_cF);
          __Pyx_XDECREF_SET(__pyx_v_nodeValue, __pyx_t_6);
          __pyx_t_6 = 0;
        }
        __pyx_L11:;
+273:                     if node in closedSet:                             # Modifiee 15.04.2019, ancienne ligne:  if closedSet.has_key(node):
        __pyx_t_7 = (__Pyx_PyDict_ContainsTF(__pyx_v_node, __pyx_v_closedSet, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 273, __pyx_L1_error)
        __pyx_t_25 = (__pyx_t_7 != 0);
        if (__pyx_t_25) {
/* … */
          goto __pyx_L14;
        }
+274:                         if closedSet[node][0] > cout:
          __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_closedSet, __pyx_v_node); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 274, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_20 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 274, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyObject_RichCompare(__pyx_t_20, __pyx_v_cout, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 274, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_25 < 0)) __PYX_ERR(0, 274, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (__pyx_t_25) {
/* … */
          }
+275:                             openSet[node] = nodeValue
            if (unlikely(PyDict_SetItem(__pyx_v_openSet, __pyx_v_node, __pyx_v_nodeValue) < 0)) __PYX_ERR(0, 275, __pyx_L1_error)
+276:                             del closedSet[node]
            if (unlikely(PyDict_DelItem(__pyx_v_closedSet, __pyx_v_node) < 0)) __PYX_ERR(0, 276, __pyx_L1_error)
+277:                     elif node in openSet:                      # Modifiee 15.04.2019, ancienne ligne:  elif openSet.has_key(node):
        __pyx_t_25 = (__Pyx_PyDict_ContainsTF(__pyx_v_node, __pyx_v_openSet, Py_EQ)); if (unlikely(__pyx_t_25 < 0)) __PYX_ERR(0, 277, __pyx_L1_error)
        __pyx_t_7 = (__pyx_t_25 != 0);
        if (__pyx_t_7) {
/* … */
          goto __pyx_L14;
        }
+278:                         if openSet[node][0] > cout:
          __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_openSet, __pyx_v_node); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 278, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_20 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 278, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyObject_RichCompare(__pyx_t_20, __pyx_v_cout, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 278, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 278, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (__pyx_t_7) {
/* … */
          }
+279:                             openSet[node] = nodeValue
            if (unlikely(PyDict_SetItem(__pyx_v_openSet, __pyx_v_node, __pyx_v_nodeValue) < 0)) __PYX_ERR(0, 279, __pyx_L1_error)
+280:                     else: openSet[node] = nodeValue
        /*else*/ {
          if (unlikely(PyDict_SetItem(__pyx_v_openSet, __pyx_v_node, __pyx_v_nodeValue) < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
        }
        __pyx_L14:;
 281:                     # + rapide en théorie mais pas en pratique
 282:                     #try:
 283:                     #    if closedSet[node][0] > cout:
 284:                     #        openSet[node] = nodeValue
 285:                     #        del closedSet[node]
 286:                     #except KeyError:
 287:                     #    try:
 288:                     #        if openSet[node][0] > cout:
 289:                     #            openSet[node] = nodeValue
 290:                     #    except KeyError:
 291:                     #        openSet[node] = nodeValue
+292:             best = None # noeud (posL1, posL2)
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_best, Py_None);
+293:             bestValue = None # valeur (cout,pere)
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_bestValue, Py_None);
+294:             if len(openSet) > 0:
    __pyx_t_4 = PyDict_Size(__pyx_v_openSet); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 294, __pyx_L1_error)
    __pyx_t_7 = ((__pyx_t_4 > 0) != 0);
    if (__pyx_t_7) {
/* … */
    }
+295:                 for node in openSet: # recherche du noeud de moindre cout
      __pyx_t_4 = 0;
      __pyx_t_3 = __Pyx_dict_iterator(__pyx_v_openSet, 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_22)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_1);
      __pyx_t_1 = __pyx_t_3;
      __pyx_t_3 = 0;
      while (1) {
        __pyx_t_26 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_4, &__pyx_t_3, NULL, NULL, __pyx_t_22);
        if (unlikely(__pyx_t_26 == 0)) break;
        if (unlikely(__pyx_t_26 == -1)) __PYX_ERR(0, 295, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_3);
        __pyx_t_3 = 0;
+296:                     if (best == None or openSet[node][0] < bestValue[0]):
        __pyx_t_3 = PyObject_RichCompare(__pyx_v_best, Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error)
        __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_25 < 0)) __PYX_ERR(0, 296, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!__pyx_t_25) {
        } else {
          __pyx_t_7 = __pyx_t_25;
          goto __pyx_L21_bool_binop_done;
        }
        __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_openSet, __pyx_v_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 296, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_bestValue, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_20 = PyObject_RichCompare(__pyx_t_6, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 296, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_25 < 0)) __PYX_ERR(0, 296, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        __pyx_t_7 = __pyx_t_25;
        __pyx_L21_bool_binop_done:;
        if (__pyx_t_7) {
/* … */
        }
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+297:                         best = node
          __Pyx_INCREF(__pyx_v_node);
          __Pyx_DECREF_SET(__pyx_v_best, __pyx_v_node);
+298:                         bestValue = openSet[node]
          __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_openSet, __pyx_v_node); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 298, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF_SET(__pyx_v_bestValue, __pyx_t_20);
          __pyx_t_20 = 0;
+299:                 logging.debug( best)
      __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_n_s_logging); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 299, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 299, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
      __pyx_t_20 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_20)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_20);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __pyx_t_1 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_20, __pyx_v_best) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_best);
      __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 299, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+300:                 L1 = L1Static[best[0]+1:] # listes correspondant à ce noeud
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_best, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 300, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_L1Static, 0, 0, &__pyx_t_3, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF_SET(__pyx_v_L1, __pyx_t_1);
      __pyx_t_1 = 0;
+301:                 L2 = L2Static[best[1]+1:]
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_best, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_L2Static, 0, 0, &__pyx_t_3, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF_SET(__pyx_v_L2, __pyx_t_1);
      __pyx_t_1 = 0;
+302:                 del openSet[best]
      if (unlikely(PyDict_DelItem(__pyx_v_openSet, __pyx_v_best) < 0)) __PYX_ERR(0, 302, __pyx_L1_error)
+303:                 closedSet[best] = bestValue
      if (unlikely(PyDict_SetItem(__pyx_v_closedSet, __pyx_v_best, __pyx_v_bestValue) < 0)) __PYX_ERR(0, 303, __pyx_L1_error)
 304:             #logging.debug('best='+str(best)+' / bestValue='+str(bestValue))
+305:             if (L1==[] or L2==[] or len(L1)+len(L2)==diffSym[(best[0],best[1])][1] or
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_L1, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_25 < 0)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (!__pyx_t_25) {
    } else {
      __pyx_t_7 = __pyx_t_25;
      goto __pyx_L24_bool_binop_done;
    }
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_L2, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_25 < 0)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_25) {
    } else {
      __pyx_t_7 = __pyx_t_25;
      goto __pyx_L24_bool_binop_done;
    }
    __pyx_t_9 = PyObject_Length(__pyx_v_L1); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 305, __pyx_L1_error)
    __pyx_t_4 = PyObject_Length(__pyx_v_L2); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 305, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t((__pyx_t_9 + __pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_best, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_20 = __Pyx_GetItemInt(__pyx_v_best, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_20);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_20);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_20);
    __pyx_t_3 = 0;
    __pyx_t_20 = 0;
    __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_v_diffSym, __pyx_t_6); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_20);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_20, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
    __pyx_t_20 = PyObject_RichCompare(__pyx_t_1, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_25 < 0)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
    if (!__pyx_t_25) {
    } else {
      __pyx_t_7 = __pyx_t_25;
      goto __pyx_L24_bool_binop_done;
    }
/* … */
    if (__pyx_t_7) {
/* … */
    }
  }
+306:                 len(openSet) == 0): # plus d'appariement possible, sortie
    __pyx_t_4 = PyDict_Size(__pyx_v_openSet); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
    __pyx_t_25 = ((__pyx_t_4 == 0) != 0);
    __pyx_t_7 = __pyx_t_25;
    __pyx_L24_bool_binop_done:;
+307:                 goalNodes[best] = bestValue
      if (unlikely(PyDict_SetItem(__pyx_v_goalNodes, __pyx_v_best, __pyx_v_bestValue) < 0)) __PYX_ERR(0, 307, __pyx_L1_error)
+308:                 if len(openSet) == 0 or len(goalNodes) == 5:
      __pyx_t_4 = PyDict_Size(__pyx_v_openSet); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 308, __pyx_L1_error)
      __pyx_t_25 = ((__pyx_t_4 == 0) != 0);
      if (!__pyx_t_25) {
      } else {
        __pyx_t_7 = __pyx_t_25;
        goto __pyx_L29_bool_binop_done;
      }
      __pyx_t_4 = PyDict_Size(__pyx_v_goalNodes); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 308, __pyx_L1_error)
      __pyx_t_25 = ((__pyx_t_4 == 5) != 0);
      __pyx_t_7 = __pyx_t_25;
      __pyx_L29_bool_binop_done:;
      if (__pyx_t_7) {
/* … */
      }
+309:                     best = None ; bestValue = None
        __Pyx_INCREF(Py_None);
        __Pyx_DECREF_SET(__pyx_v_best, Py_None);
        __Pyx_INCREF(Py_None);
        __Pyx_DECREF_SET(__pyx_v_bestValue, Py_None);
+310:                     for node in goalNodes:
        __pyx_t_4 = 0;
        __pyx_t_6 = __Pyx_dict_iterator(__pyx_v_goalNodes, 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_22)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 310, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_XDECREF(__pyx_t_20);
        __pyx_t_20 = __pyx_t_6;
        __pyx_t_6 = 0;
        while (1) {
          __pyx_t_26 = __Pyx_dict_iter_next(__pyx_t_20, __pyx_t_9, &__pyx_t_4, &__pyx_t_6, NULL, NULL, __pyx_t_22);
          if (unlikely(__pyx_t_26 == 0)) break;
          if (unlikely(__pyx_t_26 == -1)) __PYX_ERR(0, 310, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_6);
          __pyx_t_6 = 0;
+311:                         if (best == None or goalNodes[node][0] < bestValue[0]):
          __pyx_t_6 = PyObject_RichCompare(__pyx_v_best, Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 311, __pyx_L1_error)
          __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_25 < 0)) __PYX_ERR(0, 311, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (!__pyx_t_25) {
          } else {
            __pyx_t_7 = __pyx_t_25;
            goto __pyx_L34_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_goalNodes, __pyx_v_node); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 311, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 311, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_bestValue, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 311, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 311, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_25 < 0)) __PYX_ERR(0, 311, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_7 = __pyx_t_25;
          __pyx_L34_bool_binop_done:;
          if (__pyx_t_7) {
/* … */
          }
        }
        __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+312:                             best = node
            __Pyx_INCREF(__pyx_v_node);
            __Pyx_DECREF_SET(__pyx_v_best, __pyx_v_node);
+313:                             bestValue = goalNodes[node]
            __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_goalNodes, __pyx_v_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF_SET(__pyx_v_bestValue, __pyx_t_3);
            __pyx_t_3 = 0;
+314:                     return best,closedSet
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_20 = PyTuple_New(2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 314, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __Pyx_INCREF(__pyx_v_best);
        __Pyx_GIVEREF(__pyx_v_best);
        PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_v_best);
        __Pyx_INCREF(__pyx_v_closedSet);
        __Pyx_GIVEREF(__pyx_v_closedSet);
        PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_v_closedSet);
        __pyx_r = __pyx_t_20;
        __pyx_t_20 = 0;
        goto __pyx_L0;
 315:             #iteration = best[2] + 1 # arbre ou graphe
 316:             #logging.debug('len(L1)='+str(len(L1))+' / len(L2)='+str(len(L2)))
 317:             #logging.debug('len(openSet)='+str(len(openSet)))
 318:             #logging.debug('len(closedSet)='+str(len(closedSet)))
 319:             #logging.debug('cptEval='+str(cptEval))
 320:             #logging.debug('openSet = '+str(openSet))
 321:             #logging.debug('closedSet = '+str(closedSet))
 322:             #logging.debug('rang(best) = '+str(best[2]))
 323:             #logging.debug('---------------------------')
 324: