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>
447 tmp.
dd = x.dd/
v-(S(2)*x.t)*
sqr(tmp.
d);
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;
475 tmp.
dd = (
sqr(x.d)+x.t*x.dd+
sqr(y.d)+y.t*y.dd-
sqr(tmp.
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.
local_group_size(16, 16) .push_constant(Type b
local_group_size(16, 16) .push_constant(Type rhs
INLINE Rall1d< T, V, S > atan(const Rall1d< T, V, S > &x)
INLINE Rall1d< T, V, S > sin(const Rall1d< T, V, S > &arg)
INLINE S Norm(const Rall1d< T, V, S > &value)
INLINE Rall1d< T, V, S > tan(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > sqrt(const Rall1d< T, V, S > &arg)
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 > log(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > tanh(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > exp(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > atan2(const Rall1d< T, V, S > &y, const Rall1d< T, V, S > &x)
INLINE Rall1d< T, V, S > sqr(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > pow(const Rall1d< T, V, S > &arg, double m)
INLINE Rall1d< T, V, S > LinComb(S alfa, const Rall1d< T, V, S > &a, const T &beta, const Rall1d< T, V, S > &b)
INLINE Rall1d< T, V, S > sinh(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > abs(const Rall1d< T, V, S > &x)
INLINE Rall1d< T, V, S > operator-(const Rall1d< T, V, S > &lhs, const Rall1d< T, V, S > &rhs)
INLINE Rall1d< T, V, S > asin(const Rall1d< T, V, S > &x)
INLINE Rall1d< T, V, S > operator+(const Rall1d< T, V, S > &lhs, const Rall1d< T, V, S > &rhs)
INLINE Rall1d< T, V, S > acos(const Rall1d< T, V, S > &x)
void SetToZero(Jacobian &jac)
Rotation operator*(const Rotation &lhs, const Rotation &rhs)
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)
INLINE Rall1d< T, V, S > cosh(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > cos(const Rall1d< T, V, S > &arg)
double epsilon
default precision while comparing with Equal(..,..) functions. Initialized at 0.0000001.
INLINE Rall1d< T, V, S > operator/(const Rall1d< T, V, S > &lhs, const Rall1d< T, V, S > &rhs)
IMETHOD bool Equal(const VectorAcc &, const VectorAcc &, double=epsilon)
ccl_device_inline float beta(float x, float y)
CCL_NAMESPACE_BEGIN struct Window V