503 typedef decltype(this->a_fad_)
FadType;
505 auto a_fad = this->a_fad_;
506 auto b_fad = this->b_fad_;
507 auto c_fad = this->c_fad_;
510 c_fad = std::pow(a_fad, b_fad);
511 FadType t1(n, std::pow(a_fad.val(),b_fad.val()));
512 for (
int i=0;
i<n;
i++)
514 std::pow(a_fad.val(),b_fad.val())*(b_fad.val()*a_fad.dx(
i)/a_fad.val() +
515 std::log(a_fad.val())*b_fad.dx(
i));
518 ScalarType
val = this->urand.number();
519 c_fad = std::pow(a_fad,
val);
521 for (
int i=0;
i<n;
i++)
523 std::pow(a_fad.val(),
val)*(
val*a_fad.dx(
i)/a_fad.val());
526 c_fad = std::pow(
val, b_fad);
528 for (
int i=0;
i<n;
i++)
530 std::pow(
val, b_fad.val())*std::log(
val)*b_fad.dx(
i);
534 c_fad = std::pow(a_fad,
val);
536 for (
int i=0;
i<n;
i++)
537 t4.fastAccessDx(
i) = 0.0;
540 c_fad = std::pow(
val, b_fad);
542 for (
int i=0;
i<n;
i++)
543 t5.fastAccessDx(
i) = 0.0;
548 c_fad = std::pow(aa_fad, b_fad);
549 FadType t6(n, std::pow(aa_fad.val(),b_fad.val()));
550 for (
int i=0;
i<n;
i++)
551 t6.fastAccessDx(
i) = 0.0;
556 c_fad = std::pow(a_fad, bb_fad);
557 FadType t7(n, std::pow(a_fad.val(),bb_fad.val()));
558 for (
int i=0;
i<n;
i++)
560 std::pow(a_fad.val(),bb_fad.val())*(bb_fad.val()*a_fad.dx(
i)/a_fad.val()
561 + std::log(a_fad.val())*b_fad.dx(
i));
901 typedef decltype(this->a_fad_)
FadType;
903 auto a_fad = this->a_fad_;
904 auto b_fad = this->b_fad_;
905 auto c_fad = this->c_fad_;
908 c_fad = std::atan2(a_fad, b_fad);
909 FadType t1(n, std::atan2(a_fad.val(),b_fad.val()));
910 ScalarType t = a_fad.val()*a_fad.val() +
911 b_fad.val()*b_fad.val();
912 for (
int i=0;
i<n;
i++)
913 t1.fastAccessDx(
i) = (b_fad.val()*a_fad.dx(
i) -
914 a_fad.val()*b_fad.dx(
i))/t;
917 ScalarType
val = this->urand.number();
918 c_fad = std::atan2(a_fad,
val);
920 t = a_fad.val()*a_fad.val() +
val*
val;
921 for (
int i=0;
i<n;
i++)
922 t2.fastAccessDx(
i) =
val*a_fad.dx(
i)/t;
925 c_fad = std::atan2(
val, b_fad);
927 t =
val*
val + b_fad.val()*b_fad.val();
928 for (
int i=0;
i<n;
i++)
929 t3.fastAccessDx(
i) = -
val*b_fad.dx(
i)/t;
REGISTER_TYPED_TEST_SUITE_P(FadOpsUnitTest2, testAddition, testSubtraction, testMultiplication, testDivision, testEquals, testNotEquals, testUnaryPlus, testUnaryMinus, testExp, testLog, testLog10, testSqrt, testCos, testSin, testTan, testCosh, testSinh, testTanh, testPlusEquals, testMinusEquals, testTimesEquals, testDivideEquals, testPow, testEqualsLR, testPlusEqualsLR, testMinusEqualsLR, testTimesEqualsLR, testDivideEqualsLR, testResizeBug6135, testEquality, testEqualityConstL, testEqualityConstR)