PARP Research Group University of Murcia, Spain


src/qvmath/qvmath.h

00001 /*
00002  *      Copyright (C) 2007, 2008, 2009. PARP Research Group.
00003  *      <http://perception.inf.um.es>
00004  *      University of Murcia, Spain.
00005  *
00006  *      This file is part of the QVision library.
00007  *
00008  *      QVision is free software: you can redistribute it and/or modify
00009  *      it under the terms of the GNU Lesser General Public License as
00010  *      published by the Free Software Foundation, version 3 of the License.
00011  *
00012  *      QVision is distributed in the hope that it will be useful,
00013  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  *      GNU Lesser General Public License for more details.
00016  *
00017  *      You should have received a copy of the GNU Lesser General Public
00018  *      License along with QVision. If not, see <http://www.gnu.org/licenses/>.
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



QVision framework. PARP research group, copyright 2007, 2008.