Update to 2.0.0 tree from current Fremantle build
[opencv] / 3rdparty / include / cblas.h
1 /* CLAPACK 3.0 BLAS wrapper macros and functions
2  * Feb 5, 2000
3  */
4
5 #ifndef __CBLAS_H
6 #define __CBLAS_H
7
8 #include "f2c.h"
9
10 #if defined _MSC_VER && _MSC_VER >= 1400
11 #pragma warning(disable: 4244 4554)
12 #endif
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 static __inline double r_lg10(real *x)
19 {
20     return 0.43429448190325182765*log(*x);
21 }
22
23 static __inline double d_lg10(doublereal *x)
24 {
25     return 0.43429448190325182765*log(*x);
26 }
27
28 static __inline double d_sign(doublereal *a, doublereal *b)
29 {
30     double x = fabs(*a);
31     return *b >= 0 ? x : -x;
32 }
33
34 static __inline double r_sign(real *a, real *b)
35 {
36     double x = fabs((double)*a);
37     return *b >= 0 ? x : -x;
38 }
39
40 static __inline logical lsame_(char *ca, char *cb)
41 {
42     return toupper(ca[0]) == toupper(cb[0]);
43 }
44
45 static __inline integer i_nint(real *x)
46 {
47     return (integer)(*x >= 0 ? floor(*x + .5) : -floor(.5 - *x));
48 }
49
50 static __inline void exit_(integer *rc)
51 {
52     exit(*rc);
53 }
54
55 static __inline double pow_dd(doublereal *ap, doublereal *bp)
56 {
57     return pow(*ap, *bp);
58 }
59
60 logical slaisnan_(real *in1, real *in2);
61 logical dlaisnan_(doublereal *din1, doublereal *din2);
62
63 static __inline logical sisnan_(real *in1)
64 {
65     return slaisnan_(in1, in1);
66 }
67
68 static __inline logical disnan_(doublereal *din1)
69 {
70     return dlaisnan_(din1, din1);
71 }
72
73 char *F77_aloc(ftnlen, char*);
74
75 #ifdef __cplusplus
76 }
77 #endif
78
79 #endif /* __BLASWRAP_H */