LispBM
Loading...
Searching...
No Matches
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
23extern "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
50static 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
static bool str_eq(char *str1, char *str2)
Definition lbm_utils.h:50