Go to the documentation of this file.
48 template <
typename T,
typename V=T,
typename S=T>
216 template <
class T,
class V,
class S>
219 return Rall1d<T,V,S>(lhs.t/rhs.t,(lhs.grad*rhs.t-lhs.t*rhs.grad)/(rhs.t*rhs.t));
222 template <
class T,
class V,
class S>
223 INLINE Rall1d<T,V,S>
operator *(
const Rall1d<T,V,S>& lhs,
const Rall1d<T,V,S>& rhs)
225 return Rall1d<T,V,S>(lhs.t*rhs.t,rhs.t*lhs.grad+lhs.t*rhs.grad);
228 template <
class T,
class V,
class S>
229 INLINE Rall1d<T,V,S>
operator +(
const Rall1d<T,V,S>& lhs,
const Rall1d<T,V,S>& rhs)
231 return Rall1d<T,V,S>(lhs.t+rhs.t,lhs.grad+rhs.grad);
235 template <
class T,
class V,
class S>
236 INLINE Rall1d<T,V,S>
operator -(
const Rall1d<T,V,S>& lhs,
const Rall1d<T,V,S>& rhs)
238 return Rall1d<T,V,S>(lhs.t-rhs.t,lhs.grad-rhs.grad);
241 template <
class T,
class V,
class S>
244 return Rall1d<T,V,S>(-arg.t,-arg.grad);
247 template <
class T,
class V,
class S>
250 return Rall1d<T,V,S>(s*v.t,s*v.grad);
253 template <
class T,
class V,
class S>
256 return Rall1d<T,V,S>(v.t*s,v.grad*s);
259 template <
class T,
class V,
class S>
265 template <
class T,
class V,
class S>
271 template <
class T,
class V,
class S>
277 template <
class T,
class V,
class S>
283 template <
class T,
class V,
class S>
289 template <
class T,
class V,
class S>
296 template <
class T,
class V,
class S>
304 template <
class T,
class V,
class S>
305 INLINE Rall1d<T,V,S>
log(
const Rall1d<T,V,S>& arg)
312 template <
class T,
class V,
class S>
320 template <
class T,
class V,
class S>
328 template <
class T,
class V,
class S>
336 template <
class T,
class V,
class S>
344 template <
class T,
class V,
class S>
352 template <
class T,
class V,
class S>
360 template <
class T,
class V,
class S>
368 template <
class T,
class V,
class S>
376 template <
class T,
class V,
class S>
384 template <
class T,
class V,
class S>
392 template <
class T,
class V,
class S>
400 template <
class T,
class V,
class S>
408 template <
class T,
class V,
class S>
417 template <
class T,
class V,
class S>
420 return Norm(value.t);
423 template <
class T,
class V,
class S>
430 template <
class T,
class V,
class S>
433 T v(x.t*x.t+y.t*y.t);
438 template <
class T,
class V,
class S>
443 LinComb(alfa,a.grad,beta,b.grad)
447 template <
class T,
class V,
class S>
450 LinCombR(alfa, a.t, beta, b.t, result.t);
451 LinCombR(alfa, a.grad, beta, b.grad, result.grad);
455 template <
class T,
class V,
class S>
461 template <
class T,
class V,
class S>
468 template <
class T,
class V,
class S>
471 return (
Equal(x.t,y.t,eps)&&
Equal(x.grad,y.grad,eps));
474 template <
class T,
class V,
class S>
480 return (x.t == y.t && x.grad == y.grad);
484 template <
class T,
class V,
class S>
INLINE void SetToIdentity(Rall1d< T, V, S > &value)
INLINE Rall1d< T, V, S > & operator/=(const Rall1d< T, V, S > &rhs)
INLINE Rall1d< T, V, S > pow(const Rall1d< T, V, S > &arg, double m)
ArticulatedBodyInertia operator*(double a, const ArticulatedBodyInertia &I)
INLINE Rall1d< T, V, S > sqrt(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > asin(const Rall1d< T, V, S > &x)
INLINE Rall1d< T, V, S > sin(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > operator/(const Rall1d< T, V, S > &lhs, const Rall1d< T, V, S > &rhs)
INLINE Rall1d< T, V, S > exp(const Rall1d< T, V, S > &arg)
bool operator==(const Rotation &a, const Rotation &b)
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 > atan2(const Rall1d< T, V, S > &y, const Rall1d< T, V, S > &x)
INLINE S Norm(const Rall1d< T, V, S > &value)
ArticulatedBodyInertia operator-(const ArticulatedBodyInertia &Ia, const ArticulatedBodyInertia &Ib)
INLINE Rall1d< T, V, S > tan(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > LinComb(S alfa, const Rall1d< T, V, S > &a, const T &beta, const Rall1d< T, V, S > &b)
static INLINE Rall1d< T, V, S > Identity()
INLINE bool operator!=(const Rall1d< T, V, S > &y, const Rall1d< T, V, S > &x)
INLINE Rall1d< T, V, S > & operator+=(const Rall1d< T, V, S > &rhs)
INLINE Rall1d< T, V, S > log(const Rall1d< T, V, S > &arg)
IMETHOD bool Equal(const FrameAcc &r1, const FrameAcc &r2, double eps=epsilon)
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 > sinh(const Rall1d< T, V, S > &arg)
const typedef T & Arg
Arg is used for passing the element to a function.
INLINE Rall1d< T, V, S > hypot(const Rall1d< T, V, S > &y, const Rall1d< T, V, S > &x)
INLINE Rall1d< T, V, S > atan(const Rall1d< T, V, S > &x)
INLINE Rall1d< T, V, S > & operator*=(const Rall1d< T, V, S > &rhs)
static INLINE Rall1d< T, V, S > Zero()
INLINE Rall1d< T, V, S > cosh(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > & operator=(S c)
ArticulatedBodyInertia operator+(const ArticulatedBodyInertia &Ia, const ArticulatedBodyInertia &Ib)
void SetToZero(Jacobian &jac)
INLINE Rall1d< T, V, S > sqr(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > & operator-=(const Rall1d< T, V, S > &rhs)
INLINE Rall1d< T, V, S > tanh(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > acos(const Rall1d< T, V, S > &x)
INLINE Rall1d< T, V, S > abs(const Rall1d< T, V, S > &x)