Vuo
2.4.4
Loading...
Searching...
No Matches
type
VuoInteger.h
Go to the documentation of this file.
1
10
#ifndef VuoInteger_h
11
#define VuoInteger_h
12
13
#ifdef __cplusplus
14
extern
"C"
{
15
#endif
16
17
#include <stdint.h>
18
#include <math.h>
19
31
typedef
int64_t
VuoInteger
;
32
33
#define VuoInteger_SUPPORTS_COMPARISON
34
#include "
VuoList_VuoInteger.h
"
35
36
VuoInteger
VuoInteger_makeFromJson
(
struct
json_object * js);
37
struct
json_object *
VuoInteger_getJson
(
const
VuoInteger
value);
38
char
*
VuoInteger_getSummary
(
const
VuoInteger
value);
39
40
VuoInteger
VuoInteger_minList
(
VuoList_VuoInteger
values,
VuoInteger
*outputPosition);
41
VuoInteger
VuoInteger_maxList
(
VuoList_VuoInteger
values,
VuoInteger
*outputPosition);
42
VuoInteger
VuoInteger_average
(
VuoList_VuoInteger
values);
43
44
VuoInteger
VuoInteger_wrap
(
VuoInteger
value,
VuoInteger
minimum,
VuoInteger
maximum);
45
46
VuoInteger
VuoInteger_random
(
const
VuoInteger
minimum,
const
VuoInteger
maximum);
47
48
void
VuoInteger_setRandomState
(
unsigned
short
state[3],
const
VuoInteger
seed);
49
VuoInteger
VuoInteger_randomWithState
(
unsigned
short
state[3],
const
VuoInteger
minimum,
const
VuoInteger
maximum);
50
51
VuoInteger
VuoInteger_makeFromHexByte
(
unsigned
char
byte
);
52
58
static
inline
VuoInteger
VuoInteger_add
(
VuoInteger
a,
VuoInteger
b) __attribute__((
const
));
59
static
inline
VuoInteger
VuoInteger_add
(
VuoInteger
a,
VuoInteger
b)
60
{
61
return
a+b;
62
}
63
69
static
inline
VuoInteger
VuoInteger_subtract
(
VuoInteger
a,
VuoInteger
b) __attribute__((
const
));
70
static
inline
VuoInteger
VuoInteger_subtract
(
VuoInteger
a,
VuoInteger
b)
71
{
72
return
a-b;
73
}
74
78
static
inline
VuoInteger
VuoInteger_multiply
(
VuoInteger
a,
VuoInteger
b) __attribute__((
const
));
79
static
inline
VuoInteger
VuoInteger_multiply
(
VuoInteger
a,
VuoInteger
b)
80
{
81
return
a*b;
82
}
83
87
static
inline
VuoInteger
VuoInteger_scale
(
VuoInteger
a,
VuoInteger
b) __attribute__((
const
));
88
static
inline
VuoInteger
VuoInteger_scale
(
VuoInteger
a,
VuoInteger
b)
89
{
90
return
a*b;
91
}
92
98
static
inline
VuoInteger
VuoInteger_divide
(
VuoInteger
a,
VuoInteger
b) __attribute__((
const
));
99
static
inline
VuoInteger
VuoInteger_divide
(
VuoInteger
a,
VuoInteger
b)
100
{
101
return
a/b;
102
}
103
107
static
inline
VuoInteger
VuoInteger_makeNonzero
(
VuoInteger
a) __attribute__((
const
));
108
static
inline
VuoInteger
VuoInteger_makeNonzero
(
VuoInteger
a)
109
{
110
return
a ? a : 1;
111
}
112
116
static
inline
VuoInteger
VuoInteger_snap
(
VuoInteger
a,
VuoInteger
center,
VuoInteger
snap) __attribute__((
const
));
117
static
inline
VuoInteger
VuoInteger_snap
(
VuoInteger
a,
VuoInteger
center,
VuoInteger
snap)
118
{
119
if
(snap == 0)
120
return
a;
121
return
center + snap * ((a-center) / snap);
122
}
123
124
bool
VuoInteger_areEqual
(
const
VuoInteger
value1,
const
VuoInteger
value2);
125
bool
VuoInteger_areEqualListWithinTolerance
(
VuoList_VuoInteger
values,
VuoInteger
tolerance);
126
bool
VuoInteger_isLessThan
(
const
VuoInteger
a,
const
VuoInteger
b);
127
bool
VuoInteger_isWithinRange
(
VuoInteger
value,
VuoInteger
minimum,
VuoInteger
maximum);
128
129
#ifndef MIN
133
#define MIN(a,b) (((a)<(b))?(a):(b))
134
#endif
135
136
#ifndef MAX
140
#define MAX(a,b) (((a)>(b))?(a):(b))
141
#endif
142
146
static
inline
VuoInteger
VuoInteger_clamp
(
VuoInteger
value,
VuoInteger
limitA,
VuoInteger
limitB)
147
{
148
return
MIN
(
MAX
(value,
MIN
(limitA, limitB)),
MAX
(limitA,limitB));
149
}
150
155
static
inline
VuoInteger
VuoInteger_clampn
(
VuoInteger
value,
VuoInteger
limitA,
VuoInteger
limitB)
156
{
157
return
VuoInteger_clamp
(value, limitA, limitB);
158
}
159
161
164
char
*
VuoInteger_getString
(
const
VuoInteger
value);
165
void
VuoInteger_retain
(
VuoInteger
value);
166
void
VuoInteger_release
(
VuoInteger
value);
168
173
#ifdef __cplusplus
174
}
175
#endif
176
177
#endif
Generated on Thu Nov 9 2023 16:59:30 for Vuo by
1.9.8