26#include "kdl-config.h"
38 #define IMETHOD __forceinline
41 #define IMETHOD inline
52 #define FRAMES_CHECKI(a) assert(a)
54 #define FRAMES_CHECKI(a)
83 #pragma warning (disable:4786)
85 inline double sin(
double a) {
89 inline double cos(
double a) {
92 inline double exp(
double a) {
95 inline double log(
double a) {
98 inline double tan(
double a) {
122 inline double pow(
double a,
double b) {
125 inline double atan2(
double a,
double b) {
130#if (__cplusplus > 199711L)
180extern const double PI;
183extern const double PI_2;
186extern const double PI_4;
204inline double max(
double a,
double b) {
212inline double min(
double a,
double b) {
224 #define INLINE __forceinline
227 #define INLINE inline
232 double beta,
double b ) {
233 return alfa*a+beta*b;
237 double beta,
double b,
double& result ) {
238 result=alfa*a+beta*b;
251inline double sign(
double arg) {
252 return (arg<0)?(-1):(1);
255inline double sqr(
double arg) {
return arg*arg;}
256inline double Norm(
double arg) {
257 return fabs( (
double)arg );
260#if defined __WIN32__ && !defined __GNUC__
261inline double hypot(
double y,
double x) { return ::_hypot(y,x);}
262inline double abs(
double x) { return ::fabs(x);}
271 return ((eps>tmp)&& (tmp>-eps) );
275 a = 1.98*rand()/(double)RAND_MAX -0.99;
279 a = 0.001+0.99*rand()/(double)RAND_MAX;
282inline double diff(
double a,
double b,
double dt) {
288inline double addDelta(
double a,
double da,
double dt) {
double Arg
Definition utility.h:152
int Arg
Definition utility.h:158
const T & Arg
Arg is used for passing the element to a function.
Definition utility.h:146
Definition articulatedbodyinertia.hpp:32
INLINE Rall1d< T, V, S > atan(const Rall1d< T, V, S > &x)
Definition rall1d.h:377
INLINE Rall1d< T, V, S > sin(const Rall1d< T, V, S > &arg)
Definition rall1d.h:313
INLINE S Norm(const Rall1d< T, V, S > &value)
Definition rall1d.h:418
INLINE Rall1d< T, V, S > tan(const Rall1d< T, V, S > &arg)
Definition rall1d.h:329
INLINE Rall1d< T, V, S > sqrt(const Rall1d< T, V, S > &arg)
Definition rall1d.h:369
const double deg2rad
the value pi/180
double sign(double arg)
Definition utility.h:251
INLINE Rall1d< T, V, S > hypot(const Rall1d< T, V, S > &y, const Rall1d< T, V, S > &x)
Definition rall1d.h:385
INLINE void SetToIdentity(Rall1d< T, V, S > &value)
Definition rall1d.h:462
INLINE Rall1d< T, V, S > log(const Rall1d< T, V, S > &arg)
Definition rall1d.h:305
INLINE Rall1d< T, V, S > tanh(const Rall1d< T, V, S > &arg)
Definition rall1d.h:424
INLINE Rall1d< T, V, S > exp(const Rall1d< T, V, S > &arg)
Definition rall1d.h:297
INLINE Rall1d< T, V, S > atan2(const Rall1d< T, V, S > &y, const Rall1d< T, V, S > &x)
Definition rall1d.h:431
INLINE Rall1d< T, V, S > sqr(const Rall1d< T, V, S > &arg)
Definition rall1d.h:353
const double rad2deg
the value 180/pi
INLINE Rall1d< T, V, S > pow(const Rall1d< T, V, S > &arg, double m)
Definition rall1d.h:361
INLINE Rall1d< T, V, S > LinComb(S alfa, const Rall1d< T, V, S > &a, const T &beta, const Rall1d< T, V, S > &b)
Definition rall1d.h:439
IMETHOD Vector diff(const Vector &p_w_a, const Vector &p_w_b, double dt=1)
Definition frames.hpp:1130
int MAXLENFILENAME
maximal length of a file name
const double PI
the value of pi
INLINE Rall1d< T, V, S > sinh(const Rall1d< T, V, S > &arg)
Definition rall1d.h:337
INLINE Rall1d< T, V, S > abs(const Rall1d< T, V, S > &x)
Definition rall1d.h:409
int VSIZE
the number of derivatives used in the RN-... objects.
INLINE Rall1d< T, V, S > asin(const Rall1d< T, V, S > &x)
Definition rall1d.h:393
INLINE Rall1d< T, V, S > acos(const Rall1d< T, V, S > &x)
Definition rall1d.h:401
double min(double a, double b)
Definition utility.h:212
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)
Definition rall1d.h:448
IMETHOD void random(Vector &a)
addDelta operator for displacement rotational velocity.
Definition frames.hpp:1215
INLINE Rall1d< T, V, S > cosh(const Rall1d< T, V, S > &arg)
Definition rall1d.h:345
INLINE Rall1d< T, V, S > cos(const Rall1d< T, V, S > &arg)
Definition rall1d.h:321
IMETHOD void SetToZero(Vector &v)
Definition frames.hpp:1069
IMETHOD void posrandom(Vector &a)
Definition frames.hpp:1244
IMETHOD Vector addDelta(const Vector &p_w_a, const Vector &p_w_da, double dt=1)
adds vector da to vector a. see also the corresponding diff() routine.
Definition frames.hpp:1157
IMETHOD bool Equal(const FrameAcc &r1, const FrameAcc &r2, double eps=epsilon)
Definition frameacc.hpp:394
const double PI_4
the value of pi/4
double epsilon
default precision while comparing with Equal(..,..) functions. Initialized at 0.0000001.
double max(double a, double b)
Definition utility.h:204
const double PI_2
the value of pi/2