y=cube(x) returns the cube of the argument for any numeric type, integral or floating point.
More...
Functions |
unsigned char | cube (unsigned char u) |
unsigned short | cube (unsigned short u) |
unsigned int | cube (unsigned int u) |
unsigned long | cube (unsigned long u) |
char | cube (char c) |
signed char | cube (signed char i) |
short | cube (short i) |
int | cube (int i) |
long | cube (long i) |
float | cube (const float &x) |
double | cube (const double &x) |
long double | cube (const long double &x) |
negator< float > | cube (const negator< float > &x) |
negator< double > | cube (const negator< double > &x) |
negator< long double > | cube (const negator< long double > &x) |
template<class P > |
std::complex< P > | cube (const std::complex< P > &x) |
template<class P > |
std::complex< P > | cube (const negator< std::complex< P > > &x) |
template<class P > |
std::complex< P > | cube (const conjugate< P > &x) |
template<class P > |
std::complex< P > | cube (const negator< conjugate< P > > &x) |
Detailed Description
y=cube(x) returns the cube of the argument for any numeric type, integral or floating point.
We promise to evaluate x only once. We assume is is acceptable for the result type to be the same as the argument type; if it won't fit caller must cast argument to a wider type first. This is an inline routine which will run as fast as explicit multiplies (x*x*x) in optimized code, and significantly faster for complex or conjugate types (8 flops vs. 11).
Cubing a negated real type returns a negated result. Cubing a negated complex or conjugate returns a non-negated complex result since that can be done with no additional cost.
Function Documentation
std::complex<P> SimTK::cube |
( |
const negator< conjugate< P > > & |
x |
) |
[inline] |
std::complex<P> SimTK::cube |
( |
const conjugate< P > & |
x |
) |
[inline] |
std::complex<P> SimTK::cube |
( |
const negator< std::complex< P > > & |
x |
) |
[inline] |
std::complex<P> SimTK::cube |
( |
const std::complex< P > & |
x |
) |
[inline] |
negator<long double> SimTK::cube |
( |
const negator< long double > & |
x |
) |
[inline] |
negator<double> SimTK::cube |
( |
const negator< double > & |
x |
) |
[inline] |
negator<float> SimTK::cube |
( |
const negator< float > & |
x |
) |
[inline] |
long double SimTK::cube |
( |
const long double & |
x |
) |
[inline] |
double SimTK::cube |
( |
const double & |
x |
) |
[inline] |
float SimTK::cube |
( |
const float & |
x |
) |
[inline] |
long SimTK::cube |
( |
long |
i |
) |
[inline] |
int SimTK::cube |
( |
int |
i |
) |
[inline] |
short SimTK::cube |
( |
short |
i |
) |
[inline] |
signed char SimTK::cube |
( |
signed char |
i |
) |
[inline] |
char SimTK::cube |
( |
char |
c |
) |
[inline] |
unsigned long SimTK::cube |
( |
unsigned long |
u |
) |
[inline] |
unsigned int SimTK::cube |
( |
unsigned int |
u |
) |
[inline] |
unsigned short SimTK::cube |
( |
unsigned short |
u |
) |
[inline] |
unsigned char SimTK::cube |
( |
unsigned char |
u |
) |
[inline] |