Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
dpl_types.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2020 Inria
3
*
4
* This file is subject to the terms and conditions of the GNU Lesser
5
* General Public License v2.1. See the file LICENSE in the top level
6
* directory for more details.
7
*/
8
20
#ifndef DPL_DPL_TYPES_H
21
#define DPL_DPL_TYPES_H
22
23
#include <stdint.h>
24
#include <math.h>
25
26
#ifdef __cplusplus
27
extern
"C"
{
28
#endif
29
33
#ifndef M_PI
34
#define M_PI 3.1415926535
35
#endif
36
41
#define DPL_TIMEOUT_NEVER (UINT32_MAX)
42
#define DPL_WAIT_FOREVER (DPL_TIMEOUT_NEVER)
43
49
#define DPL_STACK_ALIGNMENT (4)
50
55
typedef
uint32_t
dpl_time_t
;
56
60
typedef
char
dpl_stack_t
;
61
65
typedef
float
dpl_float32_t
;
69
typedef
double
dpl_float64_t
;
70
75
#define DPL_FLOAT32_INIT(__X) ((float)__X)
76
#define DPL_FLOAT64_INIT(__X) ((double)__X)
77
#define DPL_FLOAT64TO32(__X) (float)(__X)
78
#define DPL_FLOAT32_I32_TO_F32(__X) (float)(__X)
79
#define DPL_FLOAT64_I32_TO_F64(__X) ((double)(__X))
80
#define DPL_FLOAT64_I64_TO_F64(__X) ((double)(__X))
81
#define DPL_FLOAT64_U64_TO_F64(__X) ((double)(__X))
82
#define DPL_FLOAT64_F64_TO_U64(__X) ((uint64_t)(__X))
83
#define DPL_FLOAT32_INT(__X) ((int32_t)__X)
84
#define DPL_FLOAT64_INT(__X) ((int64_t)__X)
85
#define DPL_FLOAT64_FROM_F32(__X) (double)(__X)
86
#define DPL_FLOAT32_FROM_F64(__X) (float)(__X)
87
#define DPL_FLOAT32_CEIL(__X) (ceilf(__X))
88
#define DPL_FLOAT64_CEIL(__X) (ceil(__X))
89
#define DPL_FLOAT32_FABS(__X) fabsf(__X)
90
#define DPL_FLOAT32_FMOD(__X, __Y) fmodf(__X, __Y)
91
#define DPL_FLOAT64_FMOD(__X, __Y) fmod(__X, __Y)
92
#define DPL_FLOAT32_NAN() nanf("")
93
#define DPL_FLOAT64_NAN() nan("")
94
#define DPL_FLOAT32_ISNAN(__X) isnan(__X)
95
#define DPL_FLOAT64_ISNAN(__X) DPL_FLOAT32_ISNAN(__X)
96
#define DPL_FLOAT32_LOG10(__X) (log10f(__X))
97
#define DPL_FLOAT64_LOG10(__X) (log10(__X))
98
#define DPL_FLOAT64_ASIN(__X) asin(__X)
99
#define DPL_FLOAT64_ATAN(__X) atan(__X)
100
#define DPL_FLOAT32_SUB(__X, __Y) ((__X)-(__Y))
101
#define DPL_FLOAT64_SUB(__X, __Y) ((__X)-(__Y))
102
#define DPL_FLOAT32_ADD(__X, __Y) ((__X)+(__Y))
103
#define DPL_FLOAT64_ADD(__X, __Y) ((__X)+(__Y))
104
#define DPL_FLOAT32_MUL(__X, __Y) ((__X)*(__Y))
105
#define DPL_FLOAT64_MUL(__X, __Y) ((__X)*(__Y))
106
#define DPL_FLOAT32_DIV(__X, __Y) ((__X)/(__Y))
107
#define DPL_FLOAT64_DIV(__X, __Y) ((__X)/(__Y))
108
#define DPL_FLOAT32_PRINTF_PRIM "%s%d.%03d"
109
#define DPL_FLOAT32_PRINTF_VALS(__X) (__X)<0?"-":"", (int)(fabsf(__X)), (int)(fabsf((__X)-(int)(__X))*1000)
110
#define DPL_FLOAT64_PRINTF_PRIM "%s%d.%06d"
111
#define DPL_FLOAT64_PRINTF_VALS(__X) (__X)<0?"-":"", (int)(fabs(__X)), (int)(fabs((__X)-(int)(__X))*1000000)
112
114
#ifdef __cplusplus
115
}
116
#endif
117
118
#endif
/* DPL_DPL_TYPES_H */
dpl_time_t
uint32_t dpl_time_t
dpl time type
Definition:
dpl_types.h:55
dpl_stack_t
char dpl_stack_t
dpl stack buffer type
Definition:
dpl_types.h:60
dpl_float32_t
float dpl_float32_t
dpl float 32 type
Definition:
dpl_types.h:65
dpl_float64_t
double dpl_float64_t
dpl float 64 type
Definition:
dpl_types.h:69
Generated on Tue Nov 24 2020 19:46:51 by
1.8.17