# ifndef CPPAD_DECLARE_AD_INCLUDED # define CPPAD_DECLARE_AD_INCLUDED /* -------------------------------------------------------------------------- CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-08 Bradley M. Bell CppAD is distributed under multiple licenses. This distribution is under the terms of the Common Public License Version 1.0. A copy of this license is included in the COPYING file of this distribution. Please visit http://www.coin-or.org/CppAD/ for information on other licenses. -------------------------------------------------------------------------- */ namespace CppAD { // classes template class AD; template class ADFun; template class ADTape; template class VecAD; template class recorder; template class player; template class VecAD_reference; template class ADDiscrete; // functions with one VecAD argument template bool Parameter (const VecAD &u); template bool Variable (const VecAD &u); // functions with one AD argument template int Integer (const AD &u); template bool Parameter (const AD &u); template bool Variable (const AD &u); template bool IdenticalZero (const AD &u); template bool IdenticalOne (const AD &u); template bool IdenticalPar (const AD &u); template bool LessThanZero (const AD &u); template bool LessThanOrZero (const AD &u); template bool GreaterThanZero (const AD &u); template bool GreaterThanOrZero (const AD &u); template AD Var2Par (const AD &u); template AD abs (const AD &u); template AD acos (const AD &u); template AD asin (const AD &u); template AD atan (const AD &u); template AD cos (const AD &u); template AD cosh (const AD &u); template AD exp (const AD &u); template AD log (const AD &u); template AD log10 (const AD &u); template AD sin (const AD &u); template AD sinh (const AD &u); template AD sqrt (const AD &u); template AD tan (const AD &u); // arithematic operators template AD operator + ( const AD &left, const AD &right); template AD operator - ( const AD &left, const AD &right); template AD operator * ( const AD &left, const AD &right); template AD operator / ( const AD &left, const AD &right); // comparison operators template bool operator < ( const AD &left, const AD &right); template bool operator <= ( const AD &left, const AD &right); template bool operator > ( const AD &left, const AD &right); template bool operator >= ( const AD &left, const AD &right); template bool operator == ( const AD &left, const AD &right); template bool operator != ( const AD &left, const AD &right); // pow template AD pow ( const AD &x, const AD &y); // NearEqual template bool NearEqual( const AD &x, const AD &y, const Base &r, const Base &a); template bool NearEqual( const Base &x, const AD &y, const Base &r, const Base &a); template bool NearEqual( const AD &x, const Base &y, const Base &r, const Base &a); // CondExpOp template AD CondExpOp ( enum CompareOp cop , const AD &left , const AD &right , const AD &trueCase , const AD &falseCase ); // IdenticalEqualPar template bool IdenticalEqualPar (const AD &u, const AD &v); // EqualOpSeq template bool EqualOpSeq (const AD &u, const AD &v); // PrintFor template void PrintFor(const char *text, const AD &x); // Value template Base Value(const AD &x); // Pow function template AD pow (const AD &x, const AD &y); // output operator template std::ostream& operator << (std::ostream &os, const AD &x); template std::ostream& operator << (std::ostream &os, const VecAD_reference &e); template std::ostream& operator << (std::ostream &os, const VecAD &vec); } # endif