The function template <class V> void assign_large_int(V a) inside boost::math::ntl::RR contains the lines t = static_cast<double>(a & 0xffff); m_value += ldexp(RR(t), exp).value(); My compiler (powerpc-apple-darwin8-g++-4.0.1) complains about the second line: error: cannot convert 'boost::math::ntl::RR' to 'double' for argument '1' to 'double ldexp(double, int)' I assume this is because it cannot see the function definition for RR ldexp(RR r, int exp) defined further down in RR.hpp. This trivial patch fixes the error for me: math_toolkit/boost/math/bindings$ svn diff rr.hpp Index: rr.hpp =================================================================== --- rr.hpp (revision 39435) +++ rr.hpp (working copy) @@ -25,6 +25,9 @@ namespace ntl { +class RR; +RR ldexp(RR r, int exp); + class RR { public: math_toolkit/boost/math/bindings$ but there may (probably?) be similar errors for the other functions. Cheers, Jordan