Relacs  0.9.8
Namespaces | Macros | Functions
containerfuncs.h File Reference
#include <cmath>
Include dependency graph for containerfuncs.h:
This graph shows which files directly or indirectly include this file:

Namespaces

 relacs
 

Macros

#define CONTAINERFUNC1(func, cfunc)
 
#define CONTAINERFUNC2(func, cfunc)
 
#define NUMSQUARE(x)   (x)*(x)
 
#define NUMCUBE(x)   (x)*(x)*(x)
 
#define NUMGAUSS(x)   ::exp( -0.5*(x)*(x) )*0.398942280401433
 
#define NUMGAUSS(x, y)   ::exp( -0.5*(x)*(x)/(y)/(y) )*0.398942280401433/y
 

Functions

template<typename T >
void numberFormat (T step, T max, int &width, int &prec)
 
template<typename Container >
Container sin (const Container &vec)
 
template<typename Container >
Container cos (const Container &vec)
 
template<typename Container >
Container tan (const Container &vec)
 
template<typename Container >
Container asin (const Container &vec)
 
template<typename Container >
Container acos (const Container &vec)
 
template<typename Container >
Container atan (const Container &vec)
 
template<typename Container1 , typename Container2 >
Container1 atan (const Container1 &x, const Container2 &y)
 
template<typename Container >
Container sinh (const Container &vec)
 
template<typename Container >
Container cosh (const Container &vec)
 
template<typename Container >
Container tanh (const Container &vec)
 
template<typename Container >
Container asinh (const Container &vec)
 
template<typename Container >
Container acosh (const Container &vec)
 
template<typename Container >
Container atanh (const Container &vec)
 
template<typename Container >
Container exp (const Container &vec)
 
template<typename Container >
Container log (const Container &vec)
 
template<typename Container >
Container log10 (const Container &vec)
 
template<typename Container >
Container erf (const Container &vec)
 
template<typename Container >
Container erfc (const Container &vec)
 
template<typename Container >
Container sqrt (const Container &vec)
 
template<typename Container >
Container cbrt (const Container &vec)
 
template<typename Container1 , typename Container2 >
Container1 hypot (const Container1 &x, const Container2 &y)
 
template<typename Container >
Container square (const Container &vec)
 
template<typename Container >
Container cube (const Container &vec)
 
template<typename Container1 , typename Container2 >
Container1 pow (const Container1 &x, const Container2 &y)
 
template<typename Container >
Container ceil (const Container &vec)
 
template<typename Container >
Container floor (const Container &vec)
 
template<typename Container >
Container abs (const Container &vec)
 
template<typename Container >
Container sin (const Container &vec, double f)
 
template<typename Container >
Container cos (const Container &vec, double f)
 
template<typename Container >
Container gauss (const Container &vec)
 
template<typename Container1 , typename Container2 >
Container1 gauss (const Container1 &x, const Container2 &y)
 
template<typename Container >
Container gauss (const Container &x, double s, double m)
 
template<typename Container >
Container alpha (const Container &x, double tau, double offs=0.0)
 
template<typename Container >
Container line (const Container &vec, double abscissa, double slope)
 
template<typename Container >
Container rectangle (const Container &vec, double period, double width, double ramp=0.0)
 
template<typename Container >
Container sawUp (const Container &vec, double period, double ramp=0.0)
 
template<typename Container >
Container sawDown (const Container &vec, double period, double ramp=0.0)
 
template<typename Container >
Container triangle (const Container &vec, double period)
 
template<>
float sin< float > (const float &x)
 
template<>
double sin< double > (const double &x)
 
template<>
long double sin< long double > (const long double &x)
 
template<>
float cos< float > (const float &x)
 
template<>
double cos< double > (const double &x)
 
template<>
long double cos< long double > (const long double &x)
 
template<>
float tan< float > (const float &x)
 
template<>
double tan< double > (const double &x)
 
template<>
long double tan< long double > (const long double &x)
 
template<>
float asin< float > (const float &x)
 
template<>
double asin< double > (const double &x)
 
template<>
long double asin< long double > (const long double &x)
 
template<>
float acos< float > (const float &x)
 
template<>
double acos< double > (const double &x)
 
template<>
long double acos< long double > (const long double &x)
 
template<>
float atan< float > (const float &x)
 
template<>
double atan< double > (const double &x)
 
template<>
long double atan< long double > (const long double &x)
 
template<typename Container1 >
Container1 atan (const Container1 &x, const float &y)
 
template<typename Container1 >
Container1 atan (const Container1 &x, const double &y)
 
template<typename Container1 >
Container1 atan (const Container1 &x, const long double &y)
 
template<typename Container2 >
Container2 atan (const float &x, const Container2 &y)
 
template<typename Container2 >
Container2 atan (const double &x, const Container2 &y)
 
template<typename Container2 >
Container2 atan (const long double &x, const Container2 &y)
 
float atan (float x, float y)
 
double atan (float x, double y)
 
long double atan (float x, long double y)
 
double atan (double x, float y)
 
double atan (double x, double y)
 
long double atan (double x, long double y)
 
long double atan (long double x, float y)
 
long double atan (long double x, double y)
 
long double atan (long double x, long double y)
 
template<>
float sinh< float > (const float &x)
 
template<>
double sinh< double > (const double &x)
 
template<>
long double sinh< long double > (const long double &x)
 
template<>
float cosh< float > (const float &x)
 
template<>
double cosh< double > (const double &x)
 
template<>
long double cosh< long double > (const long double &x)
 
template<>
float tanh< float > (const float &x)
 
template<>
double tanh< double > (const double &x)
 
template<>
long double tanh< long double > (const long double &x)
 
template<>
float asinh< float > (const float &x)
 
template<>
double asinh< double > (const double &x)
 
template<>
long double asinh< long double > (const long double &x)
 
template<>
float acosh< float > (const float &x)
 
template<>
double acosh< double > (const double &x)
 
template<>
long double acosh< long double > (const long double &x)
 
template<>
float atanh< float > (const float &x)
 
template<>
double atanh< double > (const double &x)
 
template<>
long double atanh< long double > (const long double &x)
 
template<>
float exp< float > (const float &x)
 
template<>
double exp< double > (const double &x)
 
template<>
long double exp< long double > (const long double &x)
 
template<>
float log< float > (const float &x)
 
template<>
double log< double > (const double &x)
 
template<>
long double log< long double > (const long double &x)
 
template<>
float log10< float > (const float &x)
 
template<>
double log10< double > (const double &x)
 
template<>
long double log10< long double > (const long double &x)
 
template<>
float erf< float > (const float &x)
 
template<>
double erf< double > (const double &x)
 
template<>
long double erf< long double > (const long double &x)
 
template<>
float erfc< float > (const float &x)
 
template<>
double erfc< double > (const double &x)
 
template<>
long double erfc< long double > (const long double &x)
 
template<>
float sqrt< float > (const float &x)
 
template<>
double sqrt< double > (const double &x)
 
template<>
long double sqrt< long double > (const long double &x)
 
template<>
float cbrt< float > (const float &x)
 
template<>
double cbrt< double > (const double &x)
 
template<>
long double cbrt< long double > (const long double &x)
 
template<typename Container1 >
Container1 hypot (const Container1 &x, const float &y)
 
template<typename Container1 >
Container1 hypot (const Container1 &x, const double &y)
 
template<typename Container1 >
Container1 hypot (const Container1 &x, const long double &y)
 
template<typename Container2 >
Container2 hypot (const float &x, const Container2 &y)
 
template<typename Container2 >
Container2 hypot (const double &x, const Container2 &y)
 
template<typename Container2 >
Container2 hypot (const long double &x, const Container2 &y)
 
float hypot (float x, float y)
 
double hypot (float x, double y)
 
long double hypot (float x, long double y)
 
double hypot (double x, float y)
 
double hypot (double x, double y)
 
long double hypot (double x, long double y)
 
long double hypot (long double x, float y)
 
long double hypot (long double x, double y)
 
long double hypot (long double x, long double y)
 
template<>
float square< float > (const float &x)
 
template<>
double square< double > (const double &x)
 
template<>
long double square< long double > (const long double &x)
 
template<>
float cube< float > (const float &x)
 
template<>
double cube< double > (const double &x)
 
template<>
long double cube< long double > (const long double &x)
 
template<typename Container1 >
Container1 pow (const Container1 &x, const float &y)
 
template<typename Container1 >
Container1 pow (const Container1 &x, const double &y)
 
template<typename Container1 >
Container1 pow (const Container1 &x, const long double &y)
 
template<typename Container2 >
Container2 pow (const float &x, const Container2 &y)
 
template<typename Container2 >
Container2 pow (const double &x, const Container2 &y)
 
template<typename Container2 >
Container2 pow (const long double &x, const Container2 &y)
 
float pow (float x, float y)
 
double pow (float x, double y)
 
long double pow (float x, long double y)
 
double pow (double x, float y)
 
double pow (double x, double y)
 
long double pow (double x, long double y)
 
long double pow (long double x, float y)
 
long double pow (long double x, double y)
 
long double pow (long double x, long double y)
 
template<>
float ceil< float > (const float &x)
 
template<>
double ceil< double > (const double &x)
 
template<>
long double ceil< long double > (const long double &x)
 
template<>
float floor< float > (const float &x)
 
template<>
double floor< double > (const double &x)
 
template<>
long double floor< long double > (const long double &x)
 
template<>
float abs< float > (const float &x)
 
template<>
double abs< double > (const double &x)
 
template<>
long double abs< long double > (const long double &x)
 
template<>
float gauss< float > (const float &x)
 
template<>
double gauss< double > (const double &x)
 
template<>
long double gauss< long double > (const long double &x)
 
template<typename Container1 >
Container1 gauss (const Container1 &x, const float &y)
 
template<typename Container1 >
Container1 gauss (const Container1 &x, const double &y)
 
template<typename Container1 >
Container1 gauss (const Container1 &x, const long double &y)
 
template<typename Container2 >
Container2 gauss (const float &x, const Container2 &y)
 
template<typename Container2 >
Container2 gauss (const double &x, const Container2 &y)
 
template<typename Container2 >
Container2 gauss (const long double &x, const Container2 &y)
 
float gauss (float x, float y)
 
double gauss (float x, double y)
 
long double gauss (float x, long double y)
 
double gauss (double x, float y)
 
double gauss (double x, double y)
 
long double gauss (double x, long double y)
 
long double gauss (long double x, float y)
 
long double gauss (long double x, double y)
 
long double gauss (long double x, long double y)
 

Macro Definition Documentation

#define CONTAINERFUNC1 (   func,
  cfunc 
)
Value:
template < typename Container > \
Container func( const Container &x ) \
{ \
Container y( x ); \
typedef typename Container::iterator ForwardIter; \
for ( ForwardIter iter = y.begin(); iter != y.end(); ++iter ) { \
*iter = func( *iter ); \
} \
return y; \
} \
\
template <> \
inline float func<float>( const float &x ) \
{ \
return cfunc( x ); \
} \
\
template <> \
inline double func<double>( const double &x ) \
{ \
return cfunc( x ); \
} \
\
template <> \
inline long double func<long double>( const long double &x ) \
{ \
return cfunc( x ); \
}
#define CONTAINERFUNC2 (   func,
  cfunc 
)
#define NUMSQUARE (   x)    (x)*(x)
#define NUMCUBE (   x)    (x)*(x)*(x)
#define NUMGAUSS (   x)    ::exp( -0.5*(x)*(x) )*0.398942280401433
#define NUMGAUSS (   x,
 
)    ::exp( -0.5*(x)*(x)/(y)/(y) )*0.398942280401433/y