
Dear all, The modifications you suggested led to a set of questions.
b- Use the boost::math::constants instead of the gcc extensions.
I implemented this but it seems to add limitations on the types usable. They now require to have an overloaded istream extraction operator and a specialization of std::numeric_limits. Those two limitations are reasonable but I am not certain that we want to impose such conditions on the template types.
c- Use the template parameters in the function calls.
Christopher Kormanyos, could you indicate which compiler you are using ? I could not reproduce the bug you mentioned. Instead of: template<typename T> inline complex<T> exp(const complex<T>& x) { return polar(exp(x.real()), x.imag()); } I needed this: template<typename T> inline complex<T> exp(const complex<T>& x) { return polar<T>(exp(x.real()), x.imag()); } This code seems to work fine for gcc 4.4->4.7 and icc 12.1.
I remain at your (and boost's) service to potentially moderate the review, if needed.
I don't know if it is up to me to decide but I am definitely interested. Regards, Matthieu -- Matthieu Schaller