Prev Next general.cpp

@(@\newcommand{\W}[1]{ \; #1 \; } \newcommand{\R}[1]{ {\rm #1} } \newcommand{\B}[1]{ {\bf #1} } \newcommand{\D}[2]{ \frac{\partial #1}{\partial #2} } \newcommand{\DD}[3]{ \frac{\partial^2 #1}{\partial #2 \partial #3} } \newcommand{\Dpow}[2]{ \frac{\partial^{#1}}{\partial {#2}^{#1}} } \newcommand{\dpow}[2]{ \frac{ {\rm d}^{#1}}{{\rm d}\, {#2}^{#1}} }@)@This is cppad-20221105 documentation. Here is a link to its current documentation .
CppAD Examples and Tests

Running Tests
To build this program and run its correctness tests see cmake_check .

// CPPAD_HAS_* defines
# include <cppad/configure.hpp>

// system include files used for I/O
# include <iostream>

// C style asserts
# include <cassert>

// standard string
# include <string>

// memory utility
# include <cppad/utility/thread_alloc.hpp>

// test runner
# include <cppad/utility/test_boolofvoid.hpp>

// BEGIN_SORT_THIS_LINE_PLUS_1
extern bool Add(void);
extern bool AddEq(void);
extern bool BenderQuad(void);
extern bool BoolFun(void);
extern bool Compare(void);
extern bool CondExp(void);
extern bool Cos(void);
extern bool Cosh(void);
extern bool Div(void);
extern bool DivEq(void);
extern bool EqualOpSeq(void);
extern bool ForOne(void);
extern bool ForTwo(void);
extern bool Forward(void);
extern bool FunCheck(void);
extern bool HesLagrangian(void);
extern bool HesLuDet(void);
extern bool HesMinorDet(void);
extern bool HesTimesDir(void);
extern bool Hessian(void);
extern bool Independent(void);
extern bool Integer(void);
extern bool Interface2C(void);
extern bool JacLuDet(void);
extern bool JacMinorDet(void);
extern bool Jacobian(void);
extern bool LuRatio(void);
extern bool Mul(void);
extern bool MulEq(void);
extern bool NearEqualExt(void);
extern bool NumericType(void);
extern bool OdeStiff(void);
extern bool RevOne(void);
extern bool RevTwo(void);
extern bool Sin(void);
extern bool Sinh(void);
extern bool Sqrt(void);
extern bool StackMachine(void);
extern bool Sub(void);
extern bool SubEq(void);
extern bool Tan(void);
extern bool Tanh(void);
extern bool TapeIndex(void);
extern bool UnaryMinus(void);
extern bool UnaryPlus(void);
extern bool Value(void);
extern bool Var2Par(void);
extern bool abort_recording(void);
extern bool acos(void);
extern bool acosh(void);
extern bool ad_assign(void);
extern bool ad_ctor(void);
extern bool ad_fun(void);
extern bool ad_in_c(void);
extern bool ad_input(void);
extern bool ad_output(void);
extern bool asin(void);
extern bool asinh(void);
extern bool atan(void);
extern bool atan2(void);
extern bool atanh(void);
extern bool azmul(void);
extern bool base2ad(void);
extern bool base2vec_ad(void);
extern bool base_require(void);
extern bool capacity_order(void);
extern bool change_param(void);
extern bool check_for_nan(void);
extern bool compare_change(void);
extern bool complex_poly(void);
extern bool con_dyn_var(void);
extern bool eigen_array(void);
extern bool eigen_det(void);
extern bool erf(void);
extern bool erfc(void);
extern bool exp(void);
extern bool expm1(void);
extern bool fabs(void);
extern bool forward_dir(void);
extern bool forward_order(void);
extern bool fun_assign(void);
extern bool fun_property(void);
extern bool function_name(void);
extern bool interp_onetape(void);
extern bool interp_retape(void);
extern bool log(void);
extern bool log10(void);
extern bool log1p(void);
extern bool lu_vec_ad_ok(void);
extern bool mul_level(void);
extern bool mul_level_adolc(void);
extern bool mul_level_adolc_ode(void);
extern bool mul_level_ode(void);
extern bool new_dynamic(void);
extern bool num_limits(void);
extern bool number_skip(void);
extern bool opt_val_hes(void);
extern bool pow(void);
extern bool pow_nan(void);
extern bool print_for(void);
extern bool rev_checkpoint(void);
extern bool reverse_one(void);
extern bool reverse_three(void);
extern bool reverse_two(void);
extern bool sign(void);
extern bool taylor_ode(void);
extern bool vec_ad(void);
// END_SORT_THIS_LINE_MINUS_1

// main program that runs all the tests
int main(void)
{   std::string group = "example/general";
    size_t      width = 20;
    CppAD::test_boolofvoid Run(group, width);

    // This line is used by test_one.sh

    // BEGIN_SORT_THIS_LINE_PLUS_1
    Run( Add,               "Add"              );
    Run( AddEq,             "AddEq"            );
    Run( BenderQuad,        "BenderQuad"       );
    Run( BoolFun,           "BoolFun"          );
    Run( Compare,           "Compare"          );
    Run( CondExp,           "CondExp"          );
    Run( Cos,               "Cos"              );
    Run( Cosh,              "Cosh"             );
    Run( Div,               "Div"              );
    Run( DivEq,             "DivEq"            );
    Run( EqualOpSeq,        "EqualOpSeq"       );
    Run( ForOne,            "ForOne"           );
    Run( ForTwo,            "ForTwo"           );
    Run( Forward,           "Forward"          );
    Run( FunCheck,          "FunCheck"         );
    Run( HesLagrangian,     "HesLagrangian"    );
    Run( HesLuDet,          "HesLuDet"         );
    Run( HesMinorDet,       "HesMinorDet"      );
    Run( HesTimesDir,       "HesTimesDir"      );
    Run( Hessian,           "Hessian"          );
    Run( Independent,       "Independent"      );
    Run( Integer,           "Integer"          );
    Run( Interface2C,       "Interface2C"      );
    Run( JacLuDet,          "JacLuDet"         );
    Run( JacMinorDet,       "JacMinorDet"      );
    Run( Jacobian,          "Jacobian"         );
    Run( LuRatio,           "LuRatio"          );
    Run( Mul,               "Mul"              );
    Run( MulEq,             "MulEq"            );
    Run( NearEqualExt,      "NearEqualExt"     );
    Run( NumericType,       "NumericType"      );
    Run( OdeStiff,          "OdeStiff"         );
    Run( RevOne,            "RevOne"           );
    Run( RevTwo,            "RevTwo"           );
    Run( Sin,               "Sin"              );
    Run( Sinh,              "Sinh"             );
    Run( Sqrt,              "Sqrt"             );
    Run( StackMachine,      "StackMachine"     );
    Run( Sub,               "Sub"              );
    Run( SubEq,             "SubEq"            );
    Run( Tan,               "Tan"              );
    Run( Tanh,              "Tanh"             );
    Run( TapeIndex,         "TapeIndex"        );
    Run( UnaryMinus,        "UnaryMinus"       );
    Run( UnaryPlus,         "UnaryPlus"        );
    Run( Value,             "Value"            );
    Run( Var2Par,           "Var2Par"          );
    Run( abort_recording,   "abort_recording"  );
    Run( acos,              "acos"             );
    Run( acosh,             "acosh"            );
    Run( ad_assign,         "ad_assign"        );
    Run( ad_ctor,           "ad_ctor"          );
    Run( ad_fun,            "ad_fun"           );
    Run( ad_in_c,           "ad_in_c"          );
    Run( ad_input,          "ad_input"         );
    Run( ad_output,         "ad_output"        );
    Run( asin,              "asin"             );
    Run( asinh,             "asinh"            );
    Run( atan,              "atan"             );
    Run( atan2,             "atan2"            );
    Run( atanh,             "atanh"            );
    Run( azmul,             "azmul"            );
    Run( base2ad,           "base2ad"          );
    Run( base2vec_ad,       "base2vec_ad"      );
    Run( base_require,      "base_require"     );
    Run( capacity_order,    "capacity_order"   );
    Run( change_param,      "change_param"     );
    Run( compare_change,    "compare_change"   );
    Run( complex_poly,      "complex_poly"     );
    Run( con_dyn_var,       "con_dyn_var"      );
    Run( erf,               "erf"              );
    Run( erfc,              "erfc"             );
    Run( exp,               "exp"              );
    Run( expm1,             "expm1"            );
    Run( fabs,              "fabs"             );
    Run( forward_dir,       "forward_dir"      );
    Run( forward_order,     "forward_order"    );
    Run( fun_assign,        "fun_assign"       );
    Run( fun_property,      "fun_property"     );
    Run( function_name,     "function_name"    );
    Run( interp_onetape,    "interp_onetape"   );
    Run( interp_retape,     "interp_retape"    );
    Run( log,               "log"              );
    Run( log10,             "log10"            );
    Run( log1p,             "log1p"            );
    Run( lu_vec_ad_ok,      "lu_vec_ad_ok"     );
    Run( mul_level,         "mul_level"        );
    Run( mul_level_ode,     "mul_level_ode"    );
    Run( new_dynamic,       "new_dynamic"      );
    Run( num_limits,        "num_limits"       );
    Run( number_skip,       "number_skip"      );
    Run( opt_val_hes,       "opt_val_hes"      );
    Run( pow,               "pow"              );
    Run( pow_nan,           "pow_nan"          );
    Run( rev_checkpoint,    "rev_checkpoint"   );
    Run( reverse_one,       "reverse_one"      );
    Run( reverse_three,     "reverse_three"    );
    Run( reverse_two,       "reverse_two"      );
    Run( sign,              "sign"             );
    Run( taylor_ode,        "ode_taylor"       );
    Run( vec_ad,            "vec_ad"           );
    // END_SORT_THIS_LINE_MINUS_1
# ifndef CPPAD_DEBUG_AND_RELEASE
    Run( check_for_nan,     "check_for_nan"    );
# endif
# if CPPAD_HAS_ADOLC
    Run( mul_level_adolc,      "mul_level_adolc"     );
    Run( mul_level_adolc_ode,  "mul_level_adolc_ode" );
# endif
# if CPPAD_HAS_EIGEN
    Run( eigen_array,       "eigen_array"      );
    Run( eigen_det,         "eigen_det"        );
# endif
    //
    // check for memory leak
    bool memory_ok = CppAD::thread_alloc::free_all();
    // print summary at end
    bool ok = Run.summary(memory_ok);
    //
    return static_cast<int>( ! ok );
}

Input File: example/general/general.cpp