[CppAD-tickets] [C++ Algorithmic Differentiation] #5: failure compiling complex_poly

C++ Algorithmic Differentiation coin-trac at coin-or.org
Sun Nov 11 14:28:56 EST 2007


#5: failure compiling complex_poly
------------------------+---------------------------------------------------
 Reporter:  stefan      |       Owner:  somebody
     Type:  defect      |      Status:  new     
 Priority:  normal      |   Milestone:          
Component:  component1  |     Version:          
 Severity:  normal      |    Keywords:          
------------------------+---------------------------------------------------
 Hi, with trunk rev. 1063 I get the following errors when I try to compile
 example/complex_poly.cpp:
 {{{
 g++    -I.  -g    -MT complex_poly.o -MD -MP -MF .deps/complex_poly.Tpo -c
 -o complex_poly.o example/complex_poly.cpp
 cppad/local/mul.hpp: In member function ‘CppAD::AD<Base>
 CppAD::AD<Base>::operator*(const CppAD::AD<Base>&) const [with Base =
 std::complex<double>]’:
 cppad/poly.hpp:180:   instantiated from ‘Type CppAD::Poly(size_t, const
 Vector&, const Type&) [with Type = CppAD::AD<std::complex<double> >,
 Vector = CppAD::vector<CppAD::AD<std::complex<double> > >]’
 example/complex_poly.cpp:67:   instantiated from here
 cppad/local/mul.hpp:41: error: no matching function for call to
 ‘IdenticalZero(const std::complex<double>&)’
 cppad/local/identical.hpp:144: note: candidates are: bool
 CppAD::IdenticalZero(const float&)
 cppad/local/identical.hpp:146: note:                 bool
 CppAD::IdenticalZero(const double&)
 cppad/local/mul.hpp:44: error: no matching function for call to
 ‘IdenticalOne(const std::complex<double>&)’
 cppad/local/identical.hpp:153: note: candidates are: bool
 CppAD::IdenticalOne(const float&)
 cppad/local/identical.hpp:155: note:                 bool
 CppAD::IdenticalOne(const double&)
 cppad/poly.hpp:180:   instantiated from ‘Type CppAD::Poly(size_t, const
 Vector&, const Type&) [with Type = CppAD::AD<std::complex<double> >,
 Vector = CppAD::vector<CppAD::AD<std::complex<double> > >]’
 example/complex_poly.cpp:67:   instantiated from here
 cppad/local/mul.hpp:59: error: no matching function for call to
 ‘IdenticalZero(const std::complex<double>&)’
 cppad/local/identical.hpp:144: note: candidates are: bool
 CppAD::IdenticalZero(const float&)
 cppad/local/identical.hpp:146: note:                 bool
 CppAD::IdenticalZero(const double&)
 cppad/local/mul.hpp:62: error: no matching function for call to
 ‘IdenticalOne(const std::complex<double>&)’
 cppad/local/identical.hpp:153: note: candidates are: bool
 CppAD::IdenticalOne(const float&)
 cppad/local/identical.hpp:155: note:                 bool
 CppAD::IdenticalOne(const double&)
 cppad/local/mul_eq.hpp: In member function ‘CppAD::AD<Base>&
 CppAD::AD<Base>::operator*=(const CppAD::AD<Base>&) [with Base =
 std::complex<double>]’:
 cppad/poly.hpp:190:   instantiated from ‘Type CppAD::Poly(size_t, const
 Vector&, const Type&) [with Type = CppAD::AD<std::complex<double> >,
 Vector = CppAD::vector<CppAD::AD<std::complex<double> > >]’
 example/complex_poly.cpp:67:   instantiated from here
 cppad/local/mul_eq.hpp:27: error: no matching function for call to
 ‘IdenticalZero(std::complex<double>&)’
 cppad/local/identical.hpp:144: note: candidates are: bool
 CppAD::IdenticalZero(const float&)
 cppad/local/identical.hpp:146: note:                 bool
 CppAD::IdenticalZero(const double&)
 cppad/local/mul_eq.hpp:28: error: no matching function for call to
 ‘IdenticalOne(std::complex<double>&)’
 cppad/local/identical.hpp:153: note: candidates are: bool
 CppAD::IdenticalOne(const float&)
 cppad/local/identical.hpp:155: note:                 bool
 CppAD::IdenticalOne(const double&)
 cppad/local/mul_eq.hpp:42: error: no matching function for call to
 ‘IdenticalOne(const std::complex<double>&)’
 cppad/local/identical.hpp:153: note: candidates are: bool
 CppAD::IdenticalOne(const float&)
 cppad/local/identical.hpp:155: note:                 bool
 CppAD::IdenticalOne(const double&)
 cppad/local/mul_eq.hpp:43: error: no matching function for call to
 ‘IdenticalZero(const std::complex<double>&)’
 cppad/local/identical.hpp:144: note: candidates are: bool
 CppAD::IdenticalZero(const float&)
 cppad/local/identical.hpp:146: note:                 bool
 CppAD::IdenticalZero(const double&)
 cppad/local/add_eq.hpp: In member function ‘CppAD::AD<Base>&
 CppAD::AD<Base>::operator+=(const CppAD::AD<Base>&) [with Base =
 std::complex<double>]’:
 cppad/poly.hpp:191:   instantiated from ‘Type CppAD::Poly(size_t, const
 Vector&, const Type&) [with Type = CppAD::AD<std::complex<double> >,
 Vector = CppAD::vector<CppAD::AD<std::complex<double> > >]’
 example/complex_poly.cpp:67:   instantiated from here
 cppad/local/add_eq.hpp:27: error: no matching function for call to
 ‘IdenticalZero(std::complex<double>&)’
 cppad/local/identical.hpp:144: note: candidates are: bool
 CppAD::IdenticalZero(const float&)
 cppad/local/identical.hpp:146: note:                 bool
 CppAD::IdenticalZero(const double&)
 cppad/local/add_eq.hpp:37: error: no matching function for call to
 ‘IdenticalZero(const std::complex<double>&)’
 cppad/local/identical.hpp:144: note: candidates are: bool
 CppAD::IdenticalZero(const float&)
 cppad/local/identical.hpp:146: note:                 bool
 CppAD::IdenticalZero(const double&)
 cppad/local/forward_sweep.hpp: In function ‘size_t
 CppAD::ForwardSweep(bool, size_t, size_t, CppAD::TapeRec<Base>*, size_t,
 Base*) [with Base = std::complex<double>]’:
 cppad/local/fun_construct.hpp:217:   instantiated from
 ‘CppAD::ADFun<Base>::ADFun(const VectorAD&, const VectorAD&) [with
 ADvector = CppAD::vector<CppAD::AD<std::complex<double> > >, Base =
 std::complex<double>]’
 example/complex_poly.cpp:70:   instantiated from here
 cppad/local/forward_sweep.hpp:388: error: no matching function for call to
 ‘LessThanZero(std::complex<double>)’
 cppad/local/ordered.hpp:156: note: candidates are: bool
 CppAD::LessThanZero(const float&)
 cppad/local/ordered.hpp:159: note:                 bool
 CppAD::LessThanZero(const double&)
 cppad/local/forward_sweep.hpp:393: error: no matching function for call to
 ‘LessThanOrZero(std::complex<double>)’
 cppad/local/ordered.hpp:168: note: candidates are: bool
 CppAD::LessThanOrZero(const float&)
 cppad/local/ordered.hpp:171: note:                 bool
 CppAD::LessThanOrZero(const double&)
 cppad/local/forward_sweep.hpp:403: error: no matching function for call to
 ‘GreaterThanOrZero(std::complex<double>)’
 cppad/local/ordered.hpp:143: note: candidates are: bool
 CppAD::GreaterThanOrZero(const float&)
 cppad/local/ordered.hpp:146: note:                 bool
 CppAD::GreaterThanOrZero(const double&)
 cppad/local/forward_sweep.hpp:408: error: no matching function for call to
 ‘GreaterThanZero(std::complex<double>)’
 cppad/local/ordered.hpp:131: note: candidates are: bool
 CppAD::GreaterThanZero(const float&)
 cppad/local/ordered.hpp:134: note:                 bool
 CppAD::GreaterThanZero(const double&)
 cppad/local/fun_construct.hpp:217:   instantiated from
 ‘CppAD::ADFun<Base>::ADFun(const VectorAD&, const VectorAD&) [with
 ADvector = CppAD::vector<CppAD::AD<std::complex<double> > >, Base =
 std::complex<double>]’
 example/complex_poly.cpp:70:   instantiated from here
 cppad/local/forward_sweep.hpp:573: error: no matching function for call to
 ‘Integer(const std::complex<double>&)’
 cppad/local/integer.hpp:105: note: candidates are: int
 CppAD::Integer(const float&)
 cppad/local/integer.hpp:108: note:                 int
 CppAD::Integer(const double&)
 cppad/local/fun_construct.hpp:217:   instantiated from
 ‘CppAD::ADFun<Base>::ADFun(const VectorAD&, const VectorAD&) [with
 ADvector = CppAD::vector<CppAD::AD<std::complex<double> > >, Base =
 std::complex<double>]’
 example/complex_poly.cpp:70:   instantiated from here
 cppad/local/forward_sweep.hpp:865: error: no matching function for call to
 ‘Integer(const std::complex<double>&)’
 cppad/local/integer.hpp:105: note: candidates are: int
 CppAD::Integer(const float&)
 cppad/local/integer.hpp:108: note:                 int
 CppAD::Integer(const double&)
 cppad/local/forward_sweep.hpp:894: error: no matching function for call to
 ‘Integer(const std::complex<double>&)’
 cppad/local/integer.hpp:105: note: candidates are: int
 CppAD::Integer(const float&)
 cppad/local/integer.hpp:108: note:                 int
 CppAD::Integer(const double&)
 cppad/local/abs_op.hpp: In function ‘void CppAD::ForAbsOp(size_t, Base*,
 const Base*) [with Base = std::complex<double>]’:
 cppad/local/forward_sweep.hpp:253:   instantiated from ‘size_t
 CppAD::ForwardSweep(bool, size_t, size_t, CppAD::TapeRec<Base>*, size_t,
 Base*) [with Base = std::complex<double>]’
 cppad/local/fun_construct.hpp:217:   instantiated from
 ‘CppAD::ADFun<Base>::ADFun(const VectorAD&, const VectorAD&) [with
 ADvector = CppAD::vector<CppAD::AD<std::complex<double> > >, Base =
 std::complex<double>]’
 example/complex_poly.cpp:70:   instantiated from here
 cppad/local/abs_op.hpp:149: error: no matching function for call to
 ‘GreaterThanZero(const std::complex<double>&)’
 cppad/local/ordered.hpp:131: note: candidates are: bool
 CppAD::GreaterThanZero(const float&)
 cppad/local/ordered.hpp:134: note:                 bool
 CppAD::GreaterThanZero(const double&)
 cppad/local/abs_op.hpp:151: error: no matching function for call to
 ‘LessThanZero(const std::complex<double>&)’
 cppad/local/ordered.hpp:156: note: candidates are: bool
 CppAD::LessThanZero(const float&)
 cppad/local/ordered.hpp:159: note:                 bool
 CppAD::LessThanZero(const double&)
 cppad/local/acos_op.hpp: In function ‘void CppAD::ForAcosOp(size_t, Base*,
 Base*, const Base*) [with Base = std::complex<double>]’:
 cppad/local/forward_sweep.hpp:302:   instantiated from ‘size_t
 CppAD::ForwardSweep(bool, size_t, size_t, CppAD::TapeRec<Base>*, size_t,
 Base*) [with Base = std::complex<double>]’
 cppad/local/fun_construct.hpp:217:   instantiated from
 ‘CppAD::ADFun<Base>::ADFun(const VectorAD&, const VectorAD&) [with
 ADvector = CppAD::vector<CppAD::AD<std::complex<double> > >, Base =
 std::complex<double>]’
 example/complex_poly.cpp:70:   instantiated from here
 cppad/local/acos_op.hpp:180: error: no matching function for call to
 ‘acos(const std::complex<double>&)’
 cppad/local/std_math_unary.hpp:309: note: candidates are: float
 CppAD::acos(const float&)
 cppad/local/std_math_unary.hpp:309: note:                 double
 CppAD::acos(const double&)
 /usr/include/c++/4.2.1/cmath:107: note:                 long double
 std::acos(long double)
 /usr/include/c++/4.2.1/cmath:103: note:                 float
 std::acos(float)
 /usr/include/bits/mathcalls.h:55: note:                 double
 acos(double)
 cppad/local/asin_op.hpp: In function ‘void CppAD::ForAsinOp(size_t, Base*,
 Base*, const Base*) [with Base = std::complex<double>]’:
 cppad/local/forward_sweep.hpp:317:   instantiated from ‘size_t
 CppAD::ForwardSweep(bool, size_t, size_t, CppAD::TapeRec<Base>*, size_t,
 Base*) [with Base = std::complex<double>]’
 cppad/local/fun_construct.hpp:217:   instantiated from
 ‘CppAD::ADFun<Base>::ADFun(const VectorAD&, const VectorAD&) [with
 ADvector = CppAD::vector<CppAD::AD<std::complex<double> > >, Base =
 std::complex<double>]’
 example/complex_poly.cpp:70:   instantiated from here
 cppad/local/asin_op.hpp:179: error: no matching function for call to
 ‘asin(const std::complex<double>&)’
 cppad/local/std_math_unary.hpp:313: note: candidates are: float
 CppAD::asin(const float&)
 cppad/local/std_math_unary.hpp:313: note:                 double
 CppAD::asin(const double&)
 /usr/include/c++/4.2.1/cmath:123: note:                 long double
 std::asin(long double)
 /usr/include/c++/4.2.1/cmath:119: note:                 float
 std::asin(float)
 /usr/include/bits/mathcalls.h:57: note:                 double
 asin(double)
 cppad/local/atan_op.hpp: In function ‘void CppAD::ForAtanOp(size_t, Base*,
 Base*, const Base*) [with Base = std::complex<double>]’:
 cppad/local/forward_sweep.hpp:332:   instantiated from ‘size_t
 CppAD::ForwardSweep(bool, size_t, size_t, CppAD::TapeRec<Base>*, size_t,
 Base*) [with Base = std::complex<double>]’
 cppad/local/fun_construct.hpp:217:   instantiated from
 ‘CppAD::ADFun<Base>::ADFun(const VectorAD&, const VectorAD&) [with
 ADvector = CppAD::vector<CppAD::AD<std::complex<double> > >, Base =
 std::complex<double>]’
 example/complex_poly.cpp:70:   instantiated from here
 cppad/local/atan_op.hpp:178: error: no matching function for call to
 ‘atan(const std::complex<double>&)’
 cppad/local/std_math_unary.hpp:317: note: candidates are: float
 CppAD::atan(const float&)
 cppad/local/std_math_unary.hpp:317: note:                 double
 CppAD::atan(const double&)
 /usr/include/c++/4.2.1/cmath:139: note:                 long double
 std::atan(long double)
 /usr/include/c++/4.2.1/cmath:135: note:                 float
 std::atan(float)
 /usr/include/bits/mathcalls.h:59: note:                 double
 atan(double)
 cppad/local/tape_rec.hpp: In member function ‘size_t
 CppAD::TapeRec<Base>::PutPar(const Base&) [with Base =
 std::complex<double>]’:
 cppad/local/ad_tape.hpp:755:   instantiated from ‘void
 CppAD::ADTape<Base>::RecordOp(CppAD::OpCode, CppAD::AD<Base>&, size_t,
 const Base&) [with Base = std::complex<double>]’
 cppad/local/mul.hpp:50:   instantiated from ‘CppAD::AD<Base>
 CppAD::AD<Base>::operator*(const CppAD::AD<Base>&) const [with Base =
 std::complex<double>]’
 cppad/poly.hpp:180:   instantiated from ‘Type CppAD::Poly(size_t, const
 Vector&, const Type&) [with Type = CppAD::AD<std::complex<double> >,
 Vector = CppAD::vector<CppAD::AD<std::complex<double> > >]’
 example/complex_poly.cpp:67:   instantiated from here
 cppad/local/tape_rec.hpp:532: error: no matching function for call to
 ‘IdenticalEqualPar(std::complex<double>&, const std::complex<double>&)’
 cppad/local/identical.hpp:162: note: candidates are: bool
 CppAD::IdenticalEqualPar(const float&, const float&)
 cppad/local/identical.hpp:164: note:                 bool
 CppAD::IdenticalEqualPar(const double&, const double&)
 make[1]: *** [complex_poly.o] Fehler 1
 }}}

 The configure line was
 {{{ configure -C --with-Example --with-TestMore }}}

 I'm using gcc 4.2.1 on a Linux 64 Bit Intel machine.

 Stefan

-- 
Ticket URL: <https://projects.coin-or.org/CppAD/ticket/5>
C++ Algorithmic Differentiation <http://projects.coin-or.org/CppAD>
An algorithmic differentiation library for C++ programs.



More information about the CppAD-tickets mailing list