STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Static Public Member Functions | List of all members
_Ctraits< _Ty > Class Template Reference

Static Public Member Functions

static _Ty _Flt_eps ()
 
static _Ty _Flt_max ()
 
static _Ty _Cosh (_Ty _Left, _Ty _Right)
 
static short _Exp (_Ty *_Pleft, _Ty _Right, short _Exponent)
 
static _Ty _Infv (_Ty)
 
static bool _Isinf (_Ty _Left)
 
static bool _Isnan (_Ty _Left)
 
static _Ty _Nanv (_Ty)
 
static _Ty _Sinh (_Ty _Left, _Ty _Right)
 
static _Ty asinh (_Ty _Left)
 
static _Ty atan2 (_Ty _Yval, _Ty _Xval)
 
static _Ty cos (_Ty _Left)
 
static _Ty exp (_Ty _Left)
 
static _Ty ldexp (_Ty _Left, int _Exponent)
 
static _Ty log (_Ty _Left)
 
static _Ty log1p (_Ty _Left)
 
static _Ty pow (_Ty _Left, _Ty _Right)
 
static _Ty sin (_Ty _Left)
 
static _Ty sqrt (_Ty _Left)
 
static _Ty tan (_Ty _Left)
 

Member Function Documentation

template<class _Ty >
static _Ty _Ctraits< _Ty >::_Cosh ( _Ty  _Left,
_Ty  _Right 
)
inlinestatic
74  { // return cosh(_Left) * _Right
75  return (_CSTD _Cosh((double)_Left, (double)_Right));
76  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
static _Ty _Cosh(_Ty _Left, _Ty _Right)
Definition: complex:73
#define _CSTD
Definition: yvals.h:570
constexpr const _Ty &() _Right
Definition: algorithm:3591
template<class _Ty >
static short _Ctraits< _Ty >::_Exp ( _Ty *  _Pleft,
_Ty  _Right,
short  _Exponent 
)
inlinestatic
79  { // compute exp(*_Pleft) * _Right * 2 ^ _Exponent
80  double _Tmp = (double)*_Pleft;
81  short _Ans = _CSTD _Exp(&_Tmp, (double)_Right, _Exponent);
82  *_Pleft = (_Ty)_Tmp;
83  return (_Ans);
84  }
#define _CSTD
Definition: yvals.h:570
static short _Exp(_Ty *_Pleft, _Ty _Right, short _Exponent)
Definition: complex:78
constexpr const _Ty &() _Right
Definition: algorithm:3591
template<class _Ty >
static _Ty _Ctraits< _Ty >::_Flt_eps ( )
inlinestatic
64  { // get epsilon
66  }
Definition: limits:101
template<class _Ty >
static _Ty _Ctraits< _Ty >::_Flt_max ( )
inlinestatic
69  { // get max
70  return ((numeric_limits<_Ty>::max)());
71  }
Definition: limits:101
template<class _Ty >
static _Ty _Ctraits< _Ty >::_Infv ( _Ty  )
inlinestatic
87  { // return infinity
89  }
Definition: limits:101
template<class _Ty >
static bool _Ctraits< _Ty >::_Isinf ( _Ty  _Left)
inlinestatic
92  { // test for infinity
93  double _Tmp = (double)_Left;
94  return (_CSTD _Dtest(&_Tmp) == _INFCODE);
95  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
#define _INFCODE
Definition: ymath.h:23
#define _CSTD
Definition: yvals.h:570
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Dtest(double *)
template<class _Ty >
static bool _Ctraits< _Ty >::_Isnan ( _Ty  _Left)
inlinestatic
98  { // test for NaN
99  double _Tmp = (double)_Left;
100  return (_CSTD _Dtest(&_Tmp) == _NANCODE);
101  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
#define _NANCODE
Definition: ymath.h:24
#define _CSTD
Definition: yvals.h:570
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Dtest(double *)
template<class _Ty >
static _Ty _Ctraits< _Ty >::_Nanv ( _Ty  )
inlinestatic
104  { // return NaN
106  }
Definition: limits:101
template<class _Ty >
static _Ty _Ctraits< _Ty >::_Sinh ( _Ty  _Left,
_Ty  _Right 
)
inlinestatic
109  { // return sinh(_Left) * _Right
110  return (_CSTD _Sinh((double)_Left, (double)_Right));
111  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
static _Ty _Sinh(_Ty _Left, _Ty _Right)
Definition: complex:108
#define _CSTD
Definition: yvals.h:570
constexpr const _Ty &() _Right
Definition: algorithm:3591
template<class _Ty >
static _Ty _Ctraits< _Ty >::asinh ( _Ty  _Left)
inlinestatic
114  { // return asinh(_Left)
115  constexpr _Ty _Ln2 = 0.69314718055994530941723212145817658L;
116 
117  bool _Neg = _Left < 0;
118  _Ty _Ans;
119 
120  if (_Neg)
121  _Left = -_Left;
122  if (_Left < 2 / _Flt_eps())
123  _Ans = log1p(_Left
124  + _Left * _Left / (1 + sqrt(_Left * _Left + 1)));
125  else
126  _Ans = log(_Left) + _Ln2;
127  return (_Neg ? -_Ans : _Ans);
128  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
static _Ty sqrt(_Ty _Left)
Definition: complex:178
static _Ty log(_Ty _Left)
Definition: complex:150
static _Ty log1p(_Ty _Left)
Definition: complex:155
static _Ty _Flt_eps()
Definition: complex:63
template<class _Ty >
static _Ty _Ctraits< _Ty >::atan2 ( _Ty  _Yval,
_Ty  _Xval 
)
inlinestatic
131  { // return atan(_Yval / _Xval)
132  return (_CSTD atan2((double)_Yval, (double)_Xval));
133  }
static _Ty atan2(_Ty _Yval, _Ty _Xval)
Definition: complex:130
#define _CSTD
Definition: yvals.h:570
template<class _Ty >
static _Ty _Ctraits< _Ty >::cos ( _Ty  _Left)
inlinestatic
136  { // return cos(_Left)
137  return (_CSTD cos((double)_Left));
138  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
#define _CSTD
Definition: yvals.h:570
static _Ty cos(_Ty _Left)
Definition: complex:135
template<class _Ty >
static _Ty _Ctraits< _Ty >::exp ( _Ty  _Left)
inlinestatic
141  { // return exp(_Left)
142  return (_CSTD exp((double)_Left));
143  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
static _Ty exp(_Ty _Left)
Definition: complex:140
#define _CSTD
Definition: yvals.h:570
template<class _Ty >
static _Ty _Ctraits< _Ty >::ldexp ( _Ty  _Left,
int  _Exponent 
)
inlinestatic
146  { // return _Left * 2 ^ _Exponent
147  return (_CSTD ldexp((double)_Left, _Exponent));
148  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
#define _CSTD
Definition: yvals.h:570
static _Ty ldexp(_Ty _Left, int _Exponent)
Definition: complex:145
template<class _Ty >
static _Ty _Ctraits< _Ty >::log ( _Ty  _Left)
inlinestatic
151  { // return log(_Left)
152  return (_CSTD log((double)_Left));
153  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
static _Ty log(_Ty _Left)
Definition: complex:150
#define _CSTD
Definition: yvals.h:570
template<class _Ty >
static _Ty _Ctraits< _Ty >::log1p ( _Ty  _Left)
inlinestatic
156  { // return log(1 + _Left)
157  if (_Left < -1)
158  return (_Nanv(_Left));
159  else if (_Left == 0)
160  return (_Left);
161  else
162  { // compute log(1 + _Left) with fixup for small _Left
163  _Ty _Leftp1 = 1 + _Left;
164  return (log(_Leftp1) - ((_Leftp1 - 1) - _Left) / _Leftp1);
165  }
166  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
static _Ty _Nanv(_Ty)
Definition: complex:103
static _Ty log(_Ty _Left)
Definition: complex:150
template<class _Ty >
static _Ty _Ctraits< _Ty >::pow ( _Ty  _Left,
_Ty  _Right 
)
inlinestatic
169  { // return _Left ^ _Right
170  return (_CSTD pow((double)_Left, (double)_Right));
171  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
static _Ty pow(_Ty _Left, _Ty _Right)
Definition: complex:168
#define _CSTD
Definition: yvals.h:570
constexpr const _Ty &() _Right
Definition: algorithm:3591
template<class _Ty >
static _Ty _Ctraits< _Ty >::sin ( _Ty  _Left)
inlinestatic
174  { // return sin(_Left)
175  return (_CSTD sin((double)_Left));
176  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
#define _CSTD
Definition: yvals.h:570
static _Ty sin(_Ty _Left)
Definition: complex:173
template<class _Ty >
static _Ty _Ctraits< _Ty >::sqrt ( _Ty  _Left)
inlinestatic
179  { // return sqrt(_Left)
180  return (_CSTD sqrt((double)_Left));
181  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
static _Ty sqrt(_Ty _Left)
Definition: complex:178
#define _CSTD
Definition: yvals.h:570
template<class _Ty >
static _Ty _Ctraits< _Ty >::tan ( _Ty  _Left)
inlinestatic
184  { // return tan(_Left)
185  return (_CSTD tan((double)_Left));
186  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
static _Ty tan(_Ty _Left)
Definition: complex:183
#define _CSTD
Definition: yvals.h:570

The documentation for this class was generated from the following file: