本文整理汇总了C++中CppAD::log10方法的典型用法代码示例。如果您正苦于以下问题:C++ CppAD::log10方法的具体用法?C++ CppAD::log10怎么用?C++ CppAD::log10使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CppAD
的用法示例。
在下文中一共展示了CppAD::log10方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: log10
bool log10(void)
{ bool ok = true;
using CppAD::log10;
using CppAD::log;
using namespace CppAD;
// independent variable vector, indices, values, and declaration
CPPAD_TESTVECTOR(AD<double>) U(1);
size_t s = 0;
U[s] = 10.;
Independent(U);
// dependent variable vector, indices, and values
CPPAD_TESTVECTOR(AD<double>) Z(2);
size_t x = 0;
size_t y = 1;
Z[x] = log10(U[s]);
Z[y] = log10(Z[x]);
// define f : U -> Z and vectors for derivative calculations
ADFun<double> f(U, Z);
CPPAD_TESTVECTOR(double) v( f.Domain() );
CPPAD_TESTVECTOR(double) w( f.Range() );
// check values
ok &= NearEqual(Z[x] , 1., 1e-10 , 1e-10);
ok &= NearEqual(Z[y] , 0., 1e-10 , 1e-10);
// forward computation of partials w.r.t. s
double l10 = log(10.);
v[s] = 1.;
w = f.Forward(1, v);
ok &= NearEqual(w[x], 1./(U[s]*l10) , 1e-10 , 1e-10); // dx/ds
ok &= NearEqual(w[y], 1./(U[s]*Z[x]*l10*l10), 1e-10 , 1e-10); // dy/ds
// reverse computation of partials of y
w[x] = 0.;
w[y] = 1.;
v = f.Reverse(1,w);
ok &= NearEqual(v[s], 1./(U[s]*Z[x]*l10*l10), 1e-10 , 1e-10); // dy/ds
return ok;
}