OMX_STATIC_ARRAY_SIZE
[openmx:openmx.git] / src / omxDefines.h
1 /*
2  *  Copyright 2007-2013 The OpenMx Project
3  *
4  *  Licensed under the Apache License, Version 2.0 (the "License");
5  *  you may not use this file except in compliance with the License.
6  *  You may obtain a copy of the License at
7  *
8  *       http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *   Unless required by applicable law or agreed to in writing, software
11  *   distributed under the License is distributed on an "AS IS" BASIS,
12  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License.
15  *
16  */
17
18 /***********************************************************
19  * 
20  *  omxDefines.h
21  *
22  *  Created: Timothy R. Brick   Date: 2009-09-23
23  *
24  *      Contains #define information for debugging purposes.
25  *
26  **********************************************************/
27 #ifndef _OMXDEFINES_H_
28 #define _OMXDEFINES_H_
29
30
31 #define MIN_ROWS_PER_THREAD 8
32 #define OMX_DEFAULT_MAX_PTS(rows) 100*rows*rows
33 #define EPSILON 1e-16
34 #define TRUE 1
35 #define FALSE 0
36 #define OMX_ERROR           -1
37 #define OMX_DEVELOPER_ERROR -2
38
39 #define OMXINLINE inline
40
41 #define OMXZERO(ptr, num)       memset(ptr, 0, sizeof(*ptr)*num)
42
43 #define OMX_STATIC_ARRAY_SIZE(ar) (sizeof(ar)/sizeof(ar[0]))
44
45 #ifdef DEBUGMX
46 #define OMX_DEBUG 1
47 #define OMX_VERBOSE 1
48 #else
49 #ifdef VERBOSEMX
50 #define OMX_DEBUG 0
51 #define OMX_VERBOSE 1
52 #else
53 #define OMX_DEBUG 0
54 #define OMX_VERBOSE 0
55 #endif /* VERBOSEMX */
56 #endif /* DEBUGMX */
57
58 #ifdef DEBUGMX_ROWS
59 #define OMX_DEBUG_ROWS(row) ((row < 10) || (row % 50 == 0))
60 #else
61 #define OMX_DEBUG_ROWS(row) 0
62 #endif /* DEBUGMX_ROWS */
63
64 #ifdef DEBUGNPSOL
65 #define OMX_DEBUG_OPTIMIZER 1
66 #else
67 #define OMX_DEBUG_OPTIMIZER 0
68 #endif /* DEBUGNPSOL */
69
70 #ifdef DEBUGMX_MATRIX
71 #define OMX_DEBUG_MATRIX 1
72 #else
73 #define OMX_DEBUG_MATRIX 0
74 #endif /* DEBUGMX_MATRIX */
75
76 #ifdef DEBUGMX_ALGEBRA
77 #define OMX_DEBUG_ALGEBRA 1
78 #else
79 #define OMX_DEBUG_ALGEBRA 0
80 #endif /* DEBUGMX_ALGEBRA */
81
82 #ifdef DEBUGMX_DEVELOPER
83 #define OMX_DEBUG_DEVELOPER 1
84 #else
85 #define OMX_DEBUG_DEVELOPER 0
86 #endif /* DEBUGMX_DEVELOPER */
87 #endif /* _OMXDEFINES_H_ */