...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
#include <boost/math/special_functions/cbrt.hpp>
namespace boost{ namespace math{ template <class T> calculated-result-type cbrt(T x); template <class T, class Policy> calculated-result-type cbrt(T x, const Policy&); }} // namespaces
Returns the cubed root of x: x1/3.
The return type of this function is computed using the result
type calculation rules: the return is double
when x is an integer type and T otherwise.
The final Policy argument is optional and can be used to control the behaviour of the function: how it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
Implemented using Halley iteration.
For built in floating-point types cbrt
should have approximately 2 epsilon accuracy.
A mixture of spot test sanity checks, and random high precision test values calculated using NTL::RR at 1000-bit precision.