source: trunk/test_more/acos.cpp @ 3793

Last change on this file since 3793 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: 1.7 KB
Line 
1/* $Id: acos.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/*
14Old acos examples now used just for valiadation testing
15*/
16# include <cppad/cppad.hpp>
17
18bool acos(void)
19{       bool ok = true;
20
21        using CppAD::acos;
22        using namespace CppAD;
23
24        // independent variable vector
25        CPPAD_TESTVECTOR(AD<double>) U(1);
26        U[0]     = .5;
27        Independent(U);
28
29        // a temporary values
30        AD<double> x = cos(U[0]);
31
32        // dependent variable vector
33        CPPAD_TESTVECTOR(AD<double>) Z(1);
34        Z[0] = acos(x); // acos( cos(u) )
35
36        // create f: U -> Z and vectors used for derivative calculations
37        ADFun<double> f(U, Z);
38        CPPAD_TESTVECTOR(double) v(1);
39        CPPAD_TESTVECTOR(double) w(1);
40
41        // check value
42        ok &= NearEqual(U[0] , Z[0],  1e-10 , 1e-10);
43
44        // forward computation of partials w.r.t. u
45        size_t j;
46        size_t p     = 5;
47        double jfac  = 1.;
48        double value = 1.;
49        v[0]         = 1.;
50        for(j = 1; j < p; j++)
51        {       jfac *= j;
52                w     = f.Forward(j, v);
53                ok &= NearEqual(jfac*w[0], value, 1e-10 , 1e-10); // d^jz/du^j
54                v[0]  = 0.;
55                value = 0.;
56        }
57
58        // reverse computation of partials of Taylor coefficients
59        CPPAD_TESTVECTOR(double) r(p);
60        w[0]  = 1.;
61        r     = f.Reverse(p, w);
62        jfac  = 1.;
63        value = 1.;
64        for(j = 0; j < p; j++)
65        {       ok &= NearEqual(jfac*r[j], value, 1e-10 , 1e-10); // d^jz/du^j
66                jfac *= (j + 1);
67                value = 0.;
68        }
69
70        return ok;
71}
Note: See TracBrowser for help on using the repository browser.