Компиляторы производного кода

Я хотел бы спросить, может ли кто-нибудь объяснить мне, каковы различия синтаксически ориентированного касательно-линейного кода и сопряженного кода.

Это связано с выводом кода с помощью компилятора.

Я понимаю, что это разные способы вывода математических уравнений в программе, но я не знаю точно, как их интерпретировать.

Заранее спасибо.

С уважением.


person marine.fran    schedule 23.08.2010    source источник


Ответы (1)


Насколько я понимаю, есть только два метода автоматического создания производного кода:

  • прямая дифференциация
  • обратная дифференциация

Из того, что я понимаю, обратная дифференциация носит только академический характер, поскольку требует запоминания операций, выполняемых в массиве, и, в конце, возврата к этому массиву и интерпретации содержимого этого массива. В результате (из-за интерпретации) такой код очень медленный.

Насколько я помню, обратный метод как-то связан с цепным правилом.

Также можно смешивать оба метода: Если у вас есть кусок кода:

    a=f(b);

и функция f() нетривиальна, а b имеет много производных, то полезно вычислить

    a=f(b);
    da_db=df(b);
    da_dc=da_db*db_dc;
    da_dd=da_db*db_dd;
person Community    schedule 07.11.2013