1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
//=========================================================
// MusE
// Linux Music Editor
// $Id: mmath.h,v 1.1.1.1 2003/10/27 18:54:47 wschweer Exp $
//
// (C) Copyright 2000 Werner Schweer (ws@seh.de)
//=========================================================
#ifndef __MATH_H__
#define __MATH_H__
#define LOG_MIN 1.0e-100
#define LOG_MAX 1.0e100
double qwtCeil125(double x);
double qwtFloor125(double x);
void qwtTwistArray(double *array, int size);
int qwtChkMono(double *array, int size);
void qwtLinSpace(double *array, int size, double xmin, double xmax);
void qwtLogSpace(double *array, int size, double xmin, double xmax);
template <class T>
inline int qwtSign(const T& x)
{
if (x > T(0))
return 1;
else if (x < T(0))
return (-1);
else
return 0;
}
inline int qwtInt(double x)
{
return int(rint(x));
}
template <class T>
inline T qwtAbs (const T& x)
{
return( x > T(0) ? x : -x );
}
template <class T>
inline const T& qwtMax (const T& x, const T& y)
{
return ( x > y ? x : y );
}
template <class T>
inline const T& qwtMin ( const T& x, const T& y)
{
return ( x < y ? x : y );
}
template <class T>
T qwtLim(const T& x, const T& x1, const T& x2)
{
T rv;
T xmin, xmax;
xmin = qwtMin(x1, x2);
xmax = qwtMax(x1, x2);
if ( x < xmin )
rv = xmin;
else if ( x > xmax )
rv = xmax;
else
rv = x;
return rv;
}
#endif
|