00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #ifndef QVMATH_H
00026 #define QVMATH_H
00027
00028 #include <iostream>
00029 #include <gsl/gsl_blas.h>
00030 #include <QPointF>
00031
00032 #include <qvdefines.h>
00033
00034 #include <math.h>
00035 #ifndef POW2
00036 #define POW2(X) ((X)*(X))
00037 #endif
00038
00039 #ifndef SIGN
00040 #define SIGN(X) (((X)>=0)?1:-1)
00041 #endif
00042
00043 #ifndef ABS
00044 #define ABS(X) (((X)>0)?(X):(-(X)))
00045 #endif
00046
00047 #ifndef MIN
00048 #define MIN(X,Y) (((X)<(Y))?(X):(Y))
00049 #endif
00050
00051 #ifndef MAX
00052 #define MAX(X,Y) (((X)>(Y))?(X):(Y))
00053 #endif
00054
00055 #ifndef RANDOM
00056 #define RANDOM(MIN, MAX) (rand()%((MAX)-(MIN)+1) + (MIN))
00057 #endif
00058
00059 #ifndef PI
00060 #define PI (3.14159265358979323846)
00061 #endif
00062
00063 #ifndef EPSILON
00064 #define EPSILON (10E-6)
00065 #endif
00066
00068 const int qvFactorial(const int n);
00069
00078 const double qvCombination(const int setRange, const int subsetRange);
00079
00082 const double qvAngle(const QPointF &);
00083
00086 const double qvClockWiseAngle(const QPointF &, const QPointF &);
00087
00090 const int qvRandom(const int minValue, const int maxValue);
00091
00094 double norm2(const QPointF &p);
00095
00096 #endif