Simbody  3.7

y=cube(x) returns the cube of the argument for any numeric type, integral or floating point. More...

## Functions

unsigned char SimTK::cube (unsigned char u)

unsigned short SimTK::cube (unsigned short u)

unsigned int SimTK::cube (unsigned int u)

unsigned long SimTK::cube (unsigned long u)

unsigned long long SimTK::cube (unsigned long long u)

char SimTK::cube (char c)

signed char SimTK::cube (signed char i)

short SimTK::cube (short i)

int SimTK::cube (int i)

long SimTK::cube (long i)

long long SimTK::cube (long long i)

float SimTK::cube (const float &x)

double SimTK::cube (const double &x)

negator< float > SimTK::cube (const negator< float > &x)

negator< double > SimTK::cube (const negator< double > &x)

template<class P >
std::complex< P > SimTK::cube (const std::complex< P > &x)

template<class P >
std::complex< P > SimTK::cube (const negator< std::complex< P > > &x)

template<class P >
std::complex< P > SimTK::cube (const conjugate< P > &x)

template<class P >
std::complex< P > SimTK::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.

## ◆ cube() [1/19]

 unsigned char SimTK::cube ( unsigned char u )
inline

## ◆ cube() [2/19]

 unsigned short SimTK::cube ( unsigned short u )
inline

## ◆ cube() [3/19]

 unsigned int SimTK::cube ( unsigned int u )
inline

## ◆ cube() [4/19]

 unsigned long SimTK::cube ( unsigned long u )
inline

## ◆ cube() [5/19]

 unsigned long long SimTK::cube ( unsigned long long u )
inline

## ◆ cube() [6/19]

 char SimTK::cube ( char c )
inline

## ◆ cube() [7/19]

 signed char SimTK::cube ( signed char i )
inline

## ◆ cube() [8/19]

 short SimTK::cube ( short i )
inline

## ◆ cube() [9/19]

 int SimTK::cube ( int i )
inline

## ◆ cube() [10/19]

 long SimTK::cube ( long i )
inline

## ◆ cube() [11/19]

 long long SimTK::cube ( long long i )
inline

## ◆ cube() [12/19]

 float SimTK::cube ( const float & x )
inline

## ◆ cube() [13/19]

 double SimTK::cube ( const double & x )
inline

## ◆ cube() [14/19]

 negator SimTK::cube ( const negator< float > & x )
inline

## ◆ cube() [15/19]

 negator SimTK::cube ( const negator< double > & x )
inline

## ◆ cube() [16/19]

template<class P >
 std::complex

SimTK::cube ( const std::complex< P > & x )

inline

## ◆ cube() [17/19]

template<class P >
 std::complex

SimTK::cube ( const negator< std::complex< P > > & x )

inline

## ◆ cube() [18/19]

template<class P >
 std::complex

SimTK::cube ( const conjugate< P > & x )

inline

## ◆ cube() [19/19]

template<class P >
 std::complex

SimTK::cube ( const negator< conjugate< P > > & x )

inline