LispBM
lbm_utils.h
Go to the documentation of this file.
1 /*
2  Copyright 2022 Joel Svensson svenssonjoel@yahoo.se
3  Copyright 2022 Benjamin Vedder
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 
19 #ifndef LBM_UTILS_H_
20 #define LBM_UTILS_H_
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 #ifndef M_PI
27 #define M_PI 3.14159265358979323846
28 #endif
29 
30 #ifndef M_PI_2
31 #define M_PI_2 1.57079632679
32 #endif
33 
34 #ifndef M_3PI_2
35 #define M_3PI_2 4.71238898038469
36 #endif
37 
38 #define DEG2RAD_f(deg) ((deg) * (float)(M_PI / 180.0))
39 #define RAD2DEG_f(rad) ((rad) * (float)(180.0 / M_PI))
40 
41 #ifndef MIN
42 #define MIN(a,b) (((a)<(b))?(a):(b))
43 #endif
44 #ifndef MAX
45 #define MAX(a,b) (((a)>(b))?(a):(b))
46 #endif
47 
48 #define CMP(a,b) (((a) > (b)) - ((a) < (b)));
49 
50 static inline bool str_eq(char *str1, char *str2) {
51  if (*str1 != *str2) return false;
52  if (*str1 == 0) return true;
53 
54  for (;;) {
55  ++str1; ++str2;
56  if (*str1 != *str2) return false;
57  if (*str1 == 0) return true;
58  }
59 }
60 
61 #ifdef __cplusplus
62 }
63 #endif
64 #endif
str_eq
static bool str_eq(char *str1, char *str2)
Definition: lbm_utils.h:50