Cómo definir tipos de letra de tipo flotante personalizados (C-API)

Tengo un tipo de datos flotante personalizado que emula flotadores de 128 bits usando dos flotadores de 64 bits (la clase doble-dobledd_real desde elBiblioteca de QD). Desde C ++ quiero exportar un ndarray a python. Ya sé cómo hacer esto para los flotadores de 64 bits, pero para los dobles-dobles de alguna manera necesito especificar mi propio tipo de letra personalizado. ¿Como hacer eso?

Nota: numpy tiene su propio flotador de 128 bits (np.float128) desafortunadamente esto se asigna along double en C / C ++, que es simplemente un flotador de 80 bits almacenado en 128 bits (en todas mis plataformas).

De hecho, uno debería poder hacer esto exactamente de la misma manera que numpy exporta np.float128 (no sé cómo se hace), con la única diferencia que usadd_real en el lado de C ++ en lugar delong double.

Si esto ayuda, ya exporté el tipo C ++dd_real a python usandoboost::python Tal vez esto puede ser reutilizado de alguna manera.

Hasta ahora he podido investigar lo siguiente

La documentación numpy paradtypes se refiere aC-API sobre cómo exportar dtypes personalizados, pero ese documento de alguna manera solo explica los dtypes existentes, no cómo crear nuevos.

Cuandohojeada que encontréesta ejemplo, pero me pregunto si paradd_real Esto podría ser más simple. Tampoco veo dónde se genera realmente el dtype. Tal vez solo en python__ en eso__ víanp.typeDict['quaternion'] = np.dtype(quaternion). ¿Cómo usar ese dtype en C ++ cuando quiero generar un ndarray?

Respuestas a la pregunta(1)

Su respuesta a la pregunta