|

INTRODUCTION
Overview
Download and Install
Documentation
Publications
REPOSITORY
Libraries
DEVELOPER
Dev Guide
Dashboard
PEOPLE
Contributors
Users

Project
Download
Mailing lists
|
|
|
17 #ifndef GBXUTILACFR_MATH_DEFINITIONS_H
18 #define GBXUTILACFR_MATH_DEFINITIONS_H
21 #if defined (GBXUTILACFR_STATIC)
22 #define GBXUTILACFR_EXPORT
23 #elif defined (GBXUTILACFR_EXPORTS)
24 #define GBXUTILACFR_EXPORT __declspec (dllexport)
26 #define GBXUTILACFR_EXPORT __declspec (dllimport)
29 #define GBXUTILACFR_EXPORT
41 #define _USE_MATH_DEFINES
52 #define M_PI 3.14159265358979323846
57 #define NAN (__builtin_nanf(""))
62 #define INF (__builtin_inff())
70 #define DEG2RAD_RATIO (M_PI/180.0)
74 #define DEG2RAD(deg) ((deg)*DEG2RAD_RATIO)
76 #define RAD2DEG(rad) ((rad)/DEG2RAD_RATIO)
81 GBXUTILACFR_EXPORT inline void NORMALISE_ANGLE( double &theta )
85 if (theta >= -M_PI && theta < M_PI)
88 multiplier = std::floor(theta / (2*M_PI));
89 theta -= multiplier*2*M_PI;
92 else if (theta < -M_PI)
99 GBXUTILACFR_EXPORT inline void NORMALISE_ANGLE( float &theta )
101 double thDouble = theta;
102 NORMALISE_ANGLE( thDouble );
103 theta = (float)thDouble;
115 #define MIN(x, y) (((x) < (y)) ? (x) : (y))
119 #define MAX(x, y) (((x) > (y)) ? (x) : (y))
125 #define APPLY_LIMITS(max_x, x, min_x) \
126 if((x)>(max_x)) x=(max_x); if((x)<(min_x)) x=(min_x);
130 #define NORM2(x, y) (sqrt((x)*(x)+(y)*(y)))
134 #define NORM3(x, y, z) (sqrt((x)*(x)+(y)*(y)+(z)*(z)))
138 #define ROUND(x) ((int)(x+0.5))
143 #define ROUND_TO(n,d) (d*rint(n/d))
147 #define SIGN(A) ((A)<0?(-1):(1))
151 #define COS_LAW(side1, side2, theta) \
152 (sqrt(SQR(side1)+SQR(side2)-2.0*(side1)*(side2)*cos(theta)))
156 #define INV_COS_LAW(oppSide, side1, side2) \
157 (acos((SQR(side1)+SQR(side2)-SQR(oppSide))/(2.0*(side1)*(side2))))
161 #if defined (__SVR4) && defined (__sun)
162 #define isfinite(x) \
163 __extension__ ({ __typeof (x) __x_f = (x); \
164 __builtin_expect(!isnan(__x_f - __x_f), 1); })
167 __extension__ ({ __typeof (x) __x_i = (x); \
168 __builtin_expect(!isnan(__x_i) && !isfinite(__x_i), 0); })
178 #define NEAR(x,y,epsilon) (((x) > (y)-(epsilon)) && ((x) < (y)+(epsilon)))
184 GBXUTILACFR_EXPORT void
185 CLIP_TO_LIMITS( const T &min_x, T &x, const T &max_x )
187 assert( min_x <= max_x );
190 else if ( x < min_x )
|
|