Nous travaillons sur un modèle bayésien pour un processus spatio-temporel, et utilisons un échantillonneur No-U-Turn (NUTS) qui nécessite un modèle pour la probabilité logarithmique et son gradient par rapport aux paramètres du modèle. Plus succinctement, nous avons une fonction de probabilité de log assez compliquée , impliquant des distributions statistiques, des produits kronecker, des exponentielles, des ratios, des instructions if-else, etc., et nous devons la fournir et son gradient vers NUTS. Plusieurs packages ( MCMC de Stan et Julia ) utilisent la surcharge d'opérateur (au meilleur de ma connaissance) pour obtenir automatiquement le gradient.
Si nous pouvions créer notre propre fonction de gradient, peut-être en utilisant un outil d'auto-diff de transformation de code source, obtiendrions-nous de meilleures performances, ou l'OO est-il tout aussi bon ou meilleur?