MPSolve 3.2.1
Loading...
Searching...
No Matches
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
23MPS_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 */
37void randomize (unsigned int seed);
38double drand (void);
39double dbl_set_2dl (double d, long int l);
40void dbl_get_2dl (double *rd, long int *rl, double d);
41double dbl_get_mant (double d);
42int dbl_get_exp (double d);
43
44/* vector support functions */
45#define mps_boolean_valloc(N) (mps_boolean*)malloc ((N)*sizeof(mps_boolean))
46void 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))
52void 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))
57void 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))
62void 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))
67void 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))
72void 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
76MPS_END_DECLS
77
78#endif
Header file for libmps.