Stiamo lavorando su un modello bayesiano per un processo spazio-temporale e stiamo utilizzando un campionatore No-U-Turn (NUTS) che richiede un modello per la probabilità di log e il suo gradiente rispetto ai parametri del modello. Più sinteticamente, abbiamo una funzione di probabilità logaritmica piuttosto complicata , che coinvolge distribuzioni statistiche, prodotti di kronecker, esponenziali, rapporti, istruzioni if-else ecc. Diversi pacchetti ( MCMC di Stan e Julia ) usano l'operatore di sovraccarico (per quanto ne so) per ottenere automaticamente il gradiente.
Se fossimo in grado di creare la nostra funzione di gradiente, magari utilizzando uno strumento di auto-diff di trasformazione del codice sorgente, otterremmo prestazioni migliori o OO è altrettanto buono o migliore?