1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| void MaFonction (double argument1, double argument2, ..., double argument20, double *sortie1, double *sortie2, double *sortie3, double *sortie4)
{
// Définition de tableaux utiles
double tableau1[]={300, 200, 50, 20, 20}
double tableau2[]={30, 10, 10, 5, 3}
*sortie1=truc_compliqué1(argument1, ..., argument20, tableau1, tableau2)
*sortie2=truc_compliqué2(argument1, ..., argument20, tableau1, tableau2)
*sortie3=truc_compliqué3(argument1, ..., argument20, tableau1, tableau2)
*sortie4=truc_compliqué4(argument1, ..., argument20, tableau1, tableau2)
}
// Lien avec le langage Python:
static PyObject *MaFonction_python(PyObject *self, PyObject *args)
{
double argument1, ..., argument20;
double sortie1, ..., sortie4
if (!PyArg_ParseTuple(args, "dddddddddddddddddddd", &argument1, ..., &argument20)
return NULL;
MaFonction(argument1, ..., argument20, &sortie1, ..., &sortie4);
return Py_BuildValue("dddd", sorte1, ..., sortie4);
}
static PyMethodDef mymodMethods[] = {
{"MonModule", MaFonction_python, METH_VARARGS,"Calcul quelque chose"},
{NULL, NULL, 0, NULL}
};
PyMODINIT_FUNC initMaFonction(void)
{
(void) Py_InitModule("MaFonction", mymodMethods);
}
int main(int argc, char *argv[])
{
Py_SetProgramName(argv[0]);
Py_Initialize();
initMaFonction();
Py_Exit(0);
return 0;
} |
Partager