Расширение AutoDiffScalar - PullRequest
       83

Расширение AutoDiffScalar

0 голосов
/ 03 августа 2020

Какое-то время я пытался придумать способ расширения класса AutoDiffScalar. Я понимаю, что для дополнительных функций достаточно наследовать от AutoDiffScalar, а затем использовать их МАКРОС для регистрации новых функций.

Назначение выглядит сложнее. Пока можно присвоить матрицу скаляра AD числовой матрице, но не наоборот:

using ADScalar =  AutoDiffScalar<Matrix<double, 5, 1>>;
Matrix<ADSalar, 5, 1> ad_vec;
Matrix<double, 5, 1> vec;
ad_vec = vec;  // works
vec = ad_vec;  // not allowed - assignment is not defined

На данный момент мне нужно перебрать все ad_vec коэффициенты, чтобы заполнить vec, теряя преимущества векторизации. Есть ли у кого-нибудь идеи, как реализовать более эффективное задание?

Спасибо, Питер

...