48template <
typename ScalarT>
49ScalarT
func(
const ScalarT&
a,
const ScalarT& b,
const ScalarT&
c) {
50 ScalarT r = std::log(b+1.)/std::sin(
a);
57int main(
int argc,
char **argv)
59 double pi = std::atan(1.0)*4.0;
79 rfad =
func(afad, bfad, cfad);
81 std::cout << rfad << std::endl;
84 double r_ad = rfad.val();
85 bool drda_ad = rfad.dx(0);
86 bool drdb_ad = rfad.dx(1);
87 bool drdc_ad = rfad.dx(2);
90 if (std::fabs(r - r_ad) <
tol && drda_ad && drdb_ad && !drdc_ad) {
91 std::cout <<
"\nExample passed!" << std::endl;
95 std::cout <<
"\nSomething is wrong, example failed!" << std::endl;
expr expr1 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 c *expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr2 expr1 expr2 expr1 expr1 expr1 c
User inteface class for computing the logical sparsity pattern of a derivative via forward-mode AD.
Sacado::LFad::LogicalSparse< double, bool > FadType
ScalarT func(const ScalarT &a, const ScalarT &b, const ScalarT &c)