MPSolve  3.2.1
tools.h
Go to the documentation of this file.
1 /***********************************************************
2 ** C Tools **
3 ** Version 2.0 **
4 ** **
5 ** Written by Giuseppe Fiorentino **
6 ** (fiorent@dm.unipi.it) **
7 ***********************************************************/
8 
18 #include <mps/mps.h>
19 
20 #ifndef MPS_TOOLS_H_
21 #define MPS_TOOLS_H_
22 
23 MPS_BEGIN_DECLS
24 
25 /* consts */
26 #define LOG2 0.69314718055994530941
27 #define LOG10 2.30258509299404568401
28 #define LOG10_2 0.30102999566398119521
29 #define LOG2_10 3.32192809488736234787
30 #define PI 3.14159265358979323846
31 
32 /* macros */
33 #define MAX(A, B) ((A) > (B) ? (A) : (B))
34 #define MIN(A, B) ((A) < (B) ? (A) : (B))
35 
36 /* functions */
37 void randomize (unsigned int seed);
38 double drand (void);
39 double dbl_set_2dl (double d, long int l);
40 void dbl_get_2dl (double *rd, long int *rl, double d);
41 double dbl_get_mant (double d);
42 int dbl_get_exp (double d);
43 
44 /* vector support functions */
45 #define mps_boolean_valloc(N) (mps_boolean*)malloc ((N)*sizeof(mps_boolean))
46 void mps_boolean_vinit (mps_boolean v[], unsigned long int size);
47 #define mps_boolean_vclear(V, N) mps_boolean_vinit (V, N)
48 #define mps_boolean_vfree(V) free (V)
49 
50 /* vector support functions */
51 #define char_valloc(N) (char*)malloc ((N)*sizeof(char))
52 void char_vinit (char v[], unsigned long int size);
53 #define char_vclear(V, N) char_vinit (V, N)
54 #define char_vfree(V) free (V)
55 
56 #define int_valloc(N) (int*)malloc ((N)*sizeof(int))
57 void int_vinit (int v[], unsigned long int size);
58 #define int_vclear(V, N) int_vinit (V, N)
59 #define int_vfree(V) free (V)
60 
61 #define long_valloc(N) (long*)malloc ((N)*sizeof(long))
62 void long_vinit (long v[], unsigned long int size);
63 #define long_vclear(V, N) lng_vinit (V, N)
64 #define long_vfree(V) free (V)
65 
66 #define float_valloc(N) (float*)malloc ((N)*sizeof(float))
67 void float_vinit (float v[], unsigned long int size);
68 #define float_vclear(V, N) float_vinit (V, N)
69 #define float_vfree(V) free (V)
70 
71 #define double_valloc(N) (double*)malloc ((N)*sizeof(double))
72 void double_vinit (double v[], unsigned long int size);
73 #define double_vclear(V, N) double_vinit (V, N)
74 #define double_vfree(V) free (V)
75 
76 MPS_END_DECLS
77 
78 #endif
mps.h
Header file for libmps.