Estamos trabalhando em um modelo bayesiano para um processo de espaço-tempo e usando um amostrador No-U-Turn (NUTS) que requer um modelo para a probabilidade logarítmica e seu gradiente em relação aos parâmetros do modelo. Mais sucintamente, temos a função de probabilidade logarítmica bastante complicada , envolvendo distribuições estatísticas, produtos kronecker, exponenciais, proporções, declarações if-else etc., e precisamos fornecê-la e seu gradiente para NUTS. Vários pacotes ( MCMC de Stan e Julia ) usam sobrecarga de operador (tanto quanto sei) para obter o gradiente automaticamente.
Se pudéssemos criar nossa própria função de gradiente, talvez usando uma ferramenta de diferença automática de transformação de código-fonte, obteríamos melhor desempenho ou o OO é tão bom ou melhor?