51template <
class T,
class V=T,
class S=T>
223template <
class T,
class V,
class S>
233template <
class T,
class V,
class S>
243template <
class T,
class V,
class S>
249template <
class T,
class V,
class S>
255template <
class T,
class V,
class S>
261template <
class T,
class V,
class S>
267template <
class T,
class V,
class S>
273template <
class T,
class V,
class S>
279template <
class T,
class V,
class S>
285template <
class T,
class V,
class S>
291template <
class T,
class V,
class S>
297template <
class T,
class V,
class S>
308template <
class T,
class V,
class S>
315template <
class T,
class V,
class S>
321 tmp.
dd = tmp.
d*arg.
d+tmp.
t*arg.
dd;
325template <
class T,
class V,
class S>
331 tmp.
dd = (arg.
dd-tmp.
d*arg.
d)/arg.
t;
335template <
class T,
class V,
class S>
343template <
class T,
class V,
class S>
351template <
class T,
class V,
class S>
359template <
class T,
class V,
class S>
367template <
class T,
class V,
class S>
375template <
class T,
class V,
class S>
383template <
class T,
class V,
class S>
392template <
class T,
class V,
class S>
396 tmp.
t =
pow(arg.
t,m);
397 T v2 = (m/arg.
t)*tmp.
t;
399 tmp.
dd = (S((m-1))/arg.
t)*tmp.
d*arg.
d +
v2*arg.
dd;
403template <
class T,
class V,
class S>
409 tmp.
d = (S(0.5)/tmp.
t)*arg.
d;
410 tmp.
dd = (S(0.5)*arg.
dd-
sqr(tmp.
d))/tmp.
t;
414template <
class T,
class V,
class S>
426template <
class T,
class V,
class S>
439template <
class T,
class V,
class S>
451template <
class T,
class V,
class S>
457 tmp.
d = (
x.t*
y.d-
x.d*
y.t)/
v;
458 tmp.
dd = (
x.t*
y.dd-
x.dd*
y.t-S(2)*(
x.t*
x.d+
y.t*
y.d)*tmp.
d ) /
v;
462template <
class T,
class V,
class S>
469template <
class T,
class V,
class S>
474 tmp.
d = (
x.t*
x.d+
y.t*
y.d)/tmp.
t;
480template <
class T,
class V,
class S>
483 return Norm(value.
t);
489template <
class T,
class V,
class S>
499template <
class T,
class V,
class S>
507template <
class T,
class V,
class S>
515template <
class T,
class V,
class S>
523template <
class T,
class V,
class S>
ATTR_WARN_UNUSED_RESULT const BMVert * v2
ATTR_WARN_UNUSED_RESULT const BMVert * v
static T Sign(const T &x)
INLINE Rall2d(const Rall2d< T, V, S > &r)
INLINE Rall2d(typename TI< T >::Arg tn, const V &afg)
INLINE Rall2d< T, V, S > & operator/=(const Rall2d< T, V, S > &rhs)
INLINE Rall2d(typename TI< T >::Arg c)
static INLINE Rall2d< T, V, S > Zero()
INLINE Rall2d(typename TI< T >::Arg tn, const V &afg, const V &afg2)
INLINE Rall2d< T, V, S > & operator*=(const Rall2d< T, V, S > &rhs)
INLINE Rall2d< T, V, S > & operator+=(const Rall2d< T, V, S > &rhs)
INLINE Rall2d< T, V, S > & operator=(S c)
static INLINE Rall2d< T, V, S > Identity()
INLINE Rall2d< T, V, S > & operator-=(const Rall2d< T, V, S > &rhs)
const T & Arg
Arg is used for passing the element to a function.
ccl_device_inline float beta(const float x, const float y)
INLINE S Norm(const Rall1d< T, V, S > &value)
INLINE Rall1d< T, V, S > hypot(const Rall1d< T, V, S > &y, const Rall1d< T, V, S > &x)
INLINE void SetToIdentity(Rall1d< T, V, S > &value)
INLINE Rall1d< T, V, S > atan2(const Rall1d< T, V, S > &y, const Rall1d< T, V, S > &x)
INLINE Rall1d< T, V, S > LinComb(S alfa, const Rall1d< T, V, S > &a, const T &beta, const Rall1d< T, V, S > &b)
VectorAcc operator-(const VectorAcc &r1, const VectorAcc &r2)
VectorAcc operator/(const VectorAcc &r1, double r2)
IMETHOD bool Equal(const VectorAcc &, const VectorAcc &, double=epsilon)
VectorAcc operator*(const VectorAcc &r1, const VectorAcc &r2)
INLINE void LinCombR(S alfa, const Rall1d< T, V, S > &a, const T &beta, const Rall1d< T, V, S > &b, Rall1d< T, V, S > &result)
IMETHOD void SetToZero(Vector &v)
VectorAcc operator+(const VectorAcc &r1, const VectorAcc &r2)
double epsilon
default precision while comparing with Equal(..,..) functions. Initialized at 0.0000001.
CCL_NAMESPACE_BEGIN struct Window V