Estamos trabajando en un modelo bayesiano para un proceso de espacio-tiempo, y estamos utilizando un muestreador sin giro en U (NUTS) que requiere un modelo para la probabilidad logarítmica y su gradiente con respecto a los parámetros del modelo. Más sucintamente, tenemos una función de probabilidad logarítmica bastante complicada , que involucra distribuciones estadísticas, productos kronecker, exponenciales, proporciones, declaraciones if-else, etc., y necesitamos proporcionarla y su gradiente a NUTS. Varios paquetes ( MCMC de Stan y Julia ) utilizan la sobrecarga del operador (que yo sepa) para obtener el gradiente automáticamente.
Si pudiéramos crear nuestra propia función de degradado, tal vez utilizando una herramienta de auto-diferencia de transformación de código fuente, ¿obtendríamos un mejor rendimiento, o es OO tan bueno o mejor?