tengo una función c que devuelve long double
. Me gustaría llamar a esta función desde python usando ctypes, y funciona principalmente. configuración so.func.restype = c_longdouble
hace el truco - excepto que el tipo flotante de Python es un c_double
así que si el valor devuelto es más grande que un doble, pero dentro de los límites de un doble largo, python aún obtiene inf como el valor de retorno. estoy en un procesador de 64 bits y sizeof(long double)
es 16.long double returns y ctypes
ideas para evitar esto (por ejemplo, usando la clase decimal o numpy) sin modificar el código c?
Quiero hacer algo similar y escribí una pregunta [aquí] (http://stackoverflow.com/questions/25380004/how-do-i-force-usage-of-long-doubles-with-cython), y ahora me di cuenta de que esencialmente tengo el mismo problema que tú. @Autoplectic, ¿puedo saber lo que finalmente hizo? – Abhinav