mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
2.5 KiB
129 lines
2.5 KiB
/* f2c.h -- Standard Fortran to C header file */ |
|
|
|
/** barf [ba:rf] 2. "He suggested using FORTRAN, and everybody barfed." |
|
|
|
- From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */ |
|
|
|
#ifndef __F2C_H__ |
|
#define __F2C_H__ |
|
|
|
#include <assert.h> |
|
#include <math.h> |
|
#include <ctype.h> |
|
#include <stdlib.h> |
|
#include <string.h> |
|
#include <stdio.h> |
|
|
|
#include "cblas.h" |
|
#include "lapack.h" |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
#undef complex |
|
|
|
typedef int integer; |
|
typedef unsigned int uinteger; |
|
typedef char *address; |
|
typedef short int shortint; |
|
typedef float real; |
|
typedef double doublereal; |
|
typedef lapack_complex complex; |
|
typedef lapack_doublecomplex doublecomplex; |
|
typedef int logical; |
|
typedef short int shortlogical; |
|
typedef char logical1; |
|
typedef char integer1; |
|
|
|
#define TRUE_ (1) |
|
#define FALSE_ (0) |
|
|
|
#ifndef abs |
|
#define abs(x) ((x) >= 0 ? (x) : -(x)) |
|
#endif |
|
#define dabs(x) (double)abs(x) |
|
#ifndef min |
|
#define min(a,b) ((a) <= (b) ? (a) : (b)) |
|
#endif |
|
#ifndef max |
|
#define max(a,b) ((a) >= (b) ? (a) : (b)) |
|
#endif |
|
#define dmin(a,b) (double)min(a,b) |
|
#define dmax(a,b) (double)max(a,b) |
|
#define bit_test(a,b) ((a) >> (b) & 1) |
|
#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b))) |
|
#define bit_set(a,b) ((a) | ((uinteger)1 << (b))) |
|
|
|
static __inline double r_lg10(float *x) |
|
{ |
|
return 0.43429448190325182765*log(*x); |
|
} |
|
|
|
static __inline double d_lg10(double *x) |
|
{ |
|
return 0.43429448190325182765*log(*x); |
|
} |
|
|
|
static __inline double d_sign(double *a, double *b) |
|
{ |
|
double x = fabs(*a); |
|
return *b >= 0 ? x : -x; |
|
} |
|
|
|
static __inline double r_sign(float *a, float *b) |
|
{ |
|
double x = fabs((double)*a); |
|
return *b >= 0 ? x : -x; |
|
} |
|
|
|
static __inline int i_nint(float *x) |
|
{ |
|
return (int)(*x >= 0 ? floor(*x + .5) : -floor(.5 - *x)); |
|
} |
|
|
|
int pow_ii(int *ap, int *bp); |
|
double pow_di(double *ap, int *bp); |
|
static __inline double pow_ri(float *ap, int *bp) |
|
{ |
|
double apd = *ap; |
|
return pow_di(&apd, bp); |
|
} |
|
static __inline double pow_dd(double *ap, double *bp) |
|
{ |
|
return pow(*ap, *bp); |
|
} |
|
|
|
static __inline void d_cnjg(doublecomplex *r, doublecomplex *z) |
|
{ |
|
double zi = z->i; |
|
r->r = z->r; |
|
r->i = -zi; |
|
} |
|
|
|
static __inline void r_cnjg(complex *r, complex *z) |
|
{ |
|
float zi = z->i; |
|
r->r = z->r; |
|
r->i = -zi; |
|
} |
|
|
|
static __inline int s_copy(char *a, char *b, int maxlen) |
|
{ |
|
strncpy(a, b, maxlen); |
|
a[maxlen] = '\0'; |
|
return 0; |
|
} |
|
|
|
int s_cat(char *lp, char **rpp, int* rnp, int *np); |
|
int s_cmp(char *a0, char *b0); |
|
static __inline int i_len(char* s) |
|
{ |
|
return (int)strlen(s); |
|
} |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif
|
|
|