source: trunk/test_more/test_more.cpp @ 3680

Last change on this file since 3680 was 3680, checked in by bradbell, 5 years ago

merge to branch: trunk
from repository: https://github.com/coin-or/CppAD
start hash code: 071875a4beba3363e5fa9752426aec4762cd1caa
end hash code: 0bef506513a519e1073c6279d5c4cba9e5c3b180

commit 0bef506513a519e1073c6279d5c4cba9e5c3b180
Author: Brad Bell <bradbell@…>
Date: Thu May 7 12:14:32 2015 -0700

Add the acosh function (as an atomic operation when defined by compiler).

commit b3264fa17b2f65b65800423a0e243c9c3ccfe06a
Author: Brad Bell <bradbell@…>
Date: Wed May 6 20:25:38 2015 -0700

CMakeLists.txt: Change so test only check for compliation.

commit dcbac4d4f20cc383f2bd9edb02036659df40b791
Author: Brad Bell <bradbell@…>
Date: Wed May 6 15:06:28 2015 -0700

asinh.cpp: check higher orders, relax accuracy on test.

commit 5f8881993fedd18cccc3c74831133a8f8a9d17b0
Author: Brad Bell <bradbell@…>
Date: Wed May 6 14:36:18 2015 -0700

Change Acos to acos.
acos.cpp: remove trailing white space.

commit e828fa1f7c4c3848c727f14b1b7a8030071ee705
Author: Brad Bell <bradbell@…>
Date: Wed May 6 12:07:35 2015 -0700

Change Acos to acos.
acos.cpp: remove redundant index commands, remove trailing with space.

commit 3d16e5b9fe1bdafa4ad01d1d466bb72b792650fa
Author: Brad Bell <bradbell@…>
Date: Wed May 6 11:30:49 2015 -0700

op_code.hpp: Minor edits to AcosOp? commnets.

commit 58beaaad149b4ac29fae44589d7f8900bf8f4c40
Author: Brad Bell <bradbell@…>
Date: Wed May 6 10:51:43 2015 -0700

for_jac_sweep.hpp: Add missing AsinhOp? case.

commit 623c134870c522ae5e80bcf0f89d230902594c80
Author: Brad Bell <bradbell@…>
Date: Wed May 6 10:27:39 2015 -0700

Fix comment about AsinhOp? operator.

commit 226b14f6f4810f5abf1ca247aae541963efaf4d6
Author: Brad Bell <bradbell@…>
Date: Wed May 6 10:14:08 2015 -0700

Add derivative of F to make order zero case clearer.
acos_reverse.omh: Fix some sign errors.
asin_reverse.omh: Fix typo.
acos_forward.omh: Simplify by distributing minus sign.

commit 4682f4ee73e33b600b180086576e986f636a24dc
Author: Brad Bell <bradbell@…>
Date: Wed May 6 08:15:50 2015 -0700

acos_forward.omh: fix sign that depends on acos versus acosh.

commit 906ae10adf019ddda7f57dd165aab08fc55289c4
Author: Brad Bell <bradbell@…>
Date: Wed May 6 07:09:47 2015 -0700

  1. Fix inclusion of some temporary files in package (e.g., git_commit.sh).
  2. Simplify and improve using git ls-files and ls bin/check_*.
  3. Remove trailing white space.

commit 5096f4706a547bd76caa3766aa2c62802ef7f0bf
Author: Brad Bell <bradbell@…>
Date: Wed May 6 06:41:20 2015 -0700

Combine base type documentation for erf, asinh
(will add more functions to this list list).

commit b3535db5ad95bee90672abcaa686032d23bce2fc
Author: Brad Bell <bradbell@…>
Date: Tue May 5 18:01:11 2015 -0700

  1. Change Arc Cosine/Sine? to Inverse Cosine/Sine?.
  2. Change arcsin-> asin and arccos->acos.
  3. Remove index commands that are duplicates of words in titles.


acos_reverse.omh: Add acosh case to this page.

  • Property svn:keywords set to Id
File size: 8.5 KB
Line 
1/* $Id: test_more.cpp 3680 2015-05-07 19:17:37Z bradbell $ */
2/* --------------------------------------------------------------------------
3CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-15 Bradley M. Bell
4
5CppAD is distributed under multiple licenses. This distribution is under
6the terms of the
7                    Eclipse Public License Version 1.0.
8
9A copy of this license is included in the COPYING file of this distribution.
10Please visit http://www.coin-or.org/CppAD/ for information on other licenses.
11-------------------------------------------------------------------------- */
12
13// system include files used for I/O
14# include <iostream>
15
16// memory leak checker
17# include <cppad/thread_alloc.hpp>
18
19// prototype external compiled tests (this line expected by bin/new_test.sh)
20extern bool abs(void);
21extern bool acos(void);
22extern bool acosh(void);
23extern bool adfun_copy(void);
24extern bool Add(void);
25extern bool AddEq(void);
26extern bool AddZero(void);
27extern bool alloc_openmp(void);
28extern bool asin(void);
29extern bool asinh(void);
30extern bool assign(void);
31extern bool Atan(void);
32extern bool atan2(void);
33extern bool base_adolc(void);
34extern bool base_alloc_test(void);
35extern bool check_simple_vector(void);
36extern bool checkpoint(void);
37extern bool Compare(void);
38extern bool compare_change(void);
39extern bool CondExp(void);
40extern bool CondExpAD(void);
41extern bool cond_exp_rev(void);
42extern bool copy(void);
43extern bool Cos(void);
44extern bool Cosh(void);
45extern bool cppad_eigen(void);
46extern bool dbl_epsilon(void);
47extern bool Div(void);
48extern bool DivEq(void);
49extern bool DivZeroOne(void);
50extern bool erf(void);
51extern bool Exp(void);
52extern bool ForHess(void);
53extern bool for_sparse_jac(void);
54extern bool Forward(void);
55extern bool forward_dir(void);
56extern bool forward_order(void);
57extern bool FromBase(void);
58extern bool FunCheck(void);
59extern bool ipopt_solve(void);
60extern bool jacobian(void);
61extern bool limits(void);
62extern bool Log(void);
63extern bool Log10(void);
64extern bool Mul(void);
65extern bool mul_level(void);
66extern bool MulEq(void);
67extern bool MulZeroOne(void);
68extern bool NearEqualExt(void);
69extern bool Neg(void);
70extern bool ode_err_control(void);
71extern bool optimize(void);
72extern bool parameter(void);
73extern bool Poly(void);
74extern bool Pow(void);
75extern bool PowInt(void);
76extern bool print_for(void);
77extern bool reverse(void);
78extern bool rev_sparse_hes(void);
79extern bool rev_sparse_jac(void);
80extern bool RevTwo(void);
81extern bool RombergOne(void);
82extern bool Rosen34(void);
83extern bool Runge45(void);
84extern bool SimpleVector(void);
85extern bool Sin(void);
86extern bool SinCos(void);
87extern bool Sinh(void);
88extern bool sparse_hessian(void);
89extern bool sparse_jacobian(void);
90extern bool sparse_vec_ad(void);
91extern bool Sqrt(void);
92extern bool std_math(void);
93extern bool Sub(void);
94extern bool SubEq(void);
95extern bool SubZero(void);
96extern bool tan(void);
97extern bool test_vector(void);
98extern bool track_new_del(void);
99extern bool Value(void);
100extern bool VecAD(void);
101extern bool VecADPar(void);
102extern bool VecUnary(void);
103
104namespace {
105        // function that runs one test
106        static size_t Run_ok_count    = 0;
107        static size_t Run_error_count = 0;
108        bool Run(bool TestOk(void), std::string name)
109        {       bool ok               = true;
110                std::streamsize width =  20;
111                std::cout.width( width );
112                std::cout.setf( std::ios_base::left );
113                std::cout << name;
114                //
115                ok &= name.size() < size_t(width);
116                ok &= TestOk();
117                if( ok )
118                {       std::cout << "OK" << std::endl;
119                        Run_ok_count++;
120                }
121                else
122                {       std::cout << "Error" << std::endl;
123                        Run_error_count++;
124                }
125                return ok;
126        }
127}
128
129// main program that runs all the tests
130int main(void)
131{       bool ok = true;
132        using namespace std;
133
134        // This line is used by test_one.sh
135
136        // run external compiled tests (this line expected by bin/new_test.sh)
137        ok &= Run( abs,             "abs"            );
138        ok &= Run( acos,            "acos"           );
139        ok &= Run( acosh,           "acosh"          );
140        ok &= Run( adfun_copy,      "adfun_copy"     );
141        ok &= Run( Add,             "Add"            );
142        ok &= Run( AddEq,           "AddEq"          );
143        ok &= Run( AddZero,         "AddZero"        );
144        ok &= Run( asin,            "asin"           );
145        ok &= Run( asinh,           "asinh"          );
146        ok &= Run( assign,          "assign"         );
147        ok &= Run( Atan,            "Atan"           );
148        ok &= Run( atan2,           "atan2"          );
149        ok &= Run( check_simple_vector, "check_simple_vector" );
150        ok &= Run( checkpoint,      "checkpoint"     );
151        ok &= Run( Compare,         "Compare"        );
152        ok &= Run( compare_change,  "compare_change" );
153        ok &= Run( CondExp,         "CondExp"        );
154        ok &= Run( CondExpAD,       "CondExpAD"      );
155        ok &= Run( cond_exp_rev,    "cond_exp_rev"   );
156        ok &= Run( copy,            "copy"           );
157        ok &= Run( Cos,             "Cos"            );
158        ok &= Run( Cosh,            "Cosh"           );
159        ok &= Run( dbl_epsilon,     "dbl_epsilon"    );
160        ok &= Run( Div,             "Div"            );
161        ok &= Run( DivEq,           "DivEq"          );
162        ok &= Run( DivZeroOne,      "DivZeroOne"     );
163        ok &= Run( erf,             "erf"            );
164        ok &= Run( Exp,             "Exp"            );
165        ok &= Run( ForHess,         "ForHess"        );
166        ok &= Run( for_sparse_jac,  "for_sparse_jac" );
167        ok &= Run( Forward,         "Forward"        );
168        ok &= Run( forward_dir,     "forward_dir"    );
169        ok &= Run( forward_order,   "forward_order"  );
170        ok &= Run( FromBase,        "FromBase"       );
171        ok &= Run( FunCheck,        "FunCheck"       );
172        ok &= Run( jacobian,        "jacobian"       );
173        ok &= Run( limits,          "limits"         );
174        ok &= Run( Log,             "Log"            );
175        ok &= Run( Log10,           "Log10"          );
176        ok &= Run( Mul,             "Mul"            );
177        ok &= Run( mul_level,       "mul_level"      );
178        ok &= Run( MulEq,           "MulEq"          );
179        ok &= Run( MulZeroOne,      "MulZeroOne"     );
180        ok &= Run( NearEqualExt,    "NearEqualExt"   );
181        ok &= Run( Neg,             "Neg"            );
182        ok &= Run( ode_err_control, "ode_err_control");
183        ok &= Run( optimize,        "optimize"       );
184        ok &= Run( parameter,       "parameter"      );
185        ok &= Run( Poly,            "Poly"           );
186        ok &= Run( Pow,             "Pow"            );
187        ok &= Run( PowInt,          "PowInt"         );
188        ok &= Run( print_for,       "print_for"      );
189        ok &= Run( reverse,         "reverse"        );
190        ok &= Run( rev_sparse_hes,  "rev_sparse_hes" );
191        ok &= Run( rev_sparse_jac,  "rev_sparse_jac" );
192        ok &= Run( RevTwo,          "RevTwo"         );
193        ok &= Run( RombergOne,      "RombergOne"     );
194        ok &= Run( Rosen34,         "Rosen34"        );
195        ok &= Run( Runge45,         "Runge45"        );
196        ok &= Run( SimpleVector,    "SimpleVector"   );
197        ok &= Run( Sin,             "Sin"            );
198        ok &= Run( SinCos,          "SinCos"         );
199        ok &= Run( Sinh,            "Sinh"           );
200        ok &= Run( sparse_hessian,  "sparse_hessian" );
201        ok &= Run( sparse_jacobian, "sparse_jacobian");
202        ok &= Run( sparse_vec_ad,   "sparse_vec_ad"  );
203        ok &= Run( Sqrt,            "Sqrt"           );
204        ok &= Run( std_math,        "std_math"       );
205        ok &= Run( Sub,             "Sub"            );
206        ok &= Run( SubEq,           "SubEq"          );
207        ok &= Run( SubZero,         "SubZero"        );
208        ok &= Run( tan,             "tan"            );
209        ok &= Run( track_new_del,   "track_new_del"  );
210        ok &= Run( Value,           "Value"          );
211        ok &= Run( VecAD,           "VecAD"          );
212        ok &= Run( VecADPar,        "VecADPar"       );
213        ok &= Run( VecUnary,        "VecUnary"       );
214# ifdef CPPAD_ADOLC_TEST
215        ok &= Run( base_adolc,      "base_adolc"     );
216# endif
217# ifdef CPPAD_IPOPT_TEST
218        ok &= Run( ipopt_solve,     "ipopt_solve"    );
219# endif
220# ifdef CPPAD_OPENMP_TEST
221        ok &= Run( alloc_openmp,    "alloc_openmp"   );
222# endif
223# ifdef CPPAD_EIGEN_TEST
224        ok &= Run( cppad_eigen, "cppad_eigen" );
225# endif
226# if ! CPPAD_EIGENVECTOR
227        ok &= Run( test_vector, "test_vector" );
228# endif
229
230        // check for errors
231        using std::cout;
232        using std::endl;
233        assert( ok || (Run_error_count > 0) );
234        if( CppAD::thread_alloc::free_all() )
235        {       Run_ok_count++;
236                cout << "OK:    " << "No memory leak detected" << endl;
237        }
238        else
239        {       ok = false;
240                Run_error_count++;
241                cout << "Error: " << "memory leak detected" << endl;
242        }
243        // Run base_require after memory leak check because base_alloc.hpp uses
244        // thread_alloc to allocate memory for static copies of nan.
245        ok &= Run( base_alloc_test, "base_alloc"     );
246        // convert int(size_t) to avoid warning on _MSC_VER systems
247        if( ok )
248                cout << "All " << int(Run_ok_count) << " tests passed." << endl;
249        else    cout << int(Run_error_count) << " tests failed." << endl;
250
251        return static_cast<int>( ! ok );
252
253}
254// END PROGRAM
Note: See TracBrowser for help on using the repository browser.