@@ -6,7 +6,7 @@ extern "C" {
6
6
7
7
#define PD_SCALE9 (1000000000L)
8
8
#define PD_EMA_MAX_DIFF 4145 // maximum slots before reset
9
- #define PD_EMA_EXPO -9 // exponent of temporary storage
9
+ #define PD_EMA_EXPO (-9) // exponent of temporary storage
10
10
#define PD_EMA_DECAY (-117065) // 1e9*-log(2)/5921
11
11
#define PC_FACTOR_SIZE 18
12
12
@@ -24,15 +24,15 @@ typedef struct pd
24
24
int64_t v_ ;
25
25
} pd_t ;
26
26
27
- static void pd_scale ( pd_t * n )
27
+ static inline void pd_scale ( pd_t * n )
28
28
{
29
29
int const neg = n -> v_ < 0L ;
30
30
int64_t v = neg ? - n -> v_ : n -> v_ ; // make v positive for loop condition
31
31
for ( ; v >= ( 1L << 28 ); v /= 10L , ++ n -> e_ );
32
32
n -> v_ = neg ? - v : v ;
33
33
}
34
34
35
- static bool pd_store ( int64_t * r , pd_t const * n )
35
+ static inline bool pd_store ( int64_t * r , pd_t const * n )
36
36
{
37
37
int64_t v = n -> v_ ;
38
38
int32_t e = n -> e_ ;
@@ -65,7 +65,7 @@ void pd_load( pd_t *r, int64_t const n )
65
65
pd_scale ( r );
66
66
}
67
67
68
- static void pd_adjust ( pd_t * n , int e , const int64_t * p )
68
+ static inline void pd_adjust ( pd_t * n , int e , const int64_t * p )
69
69
{
70
70
int64_t v = n -> v_ ;
71
71
int d = n -> e_ - e ;
@@ -78,14 +78,14 @@ static void pd_adjust( pd_t *n, int e, const int64_t *p )
78
78
pd_new ( n , v , e );
79
79
}
80
80
81
- static void pd_mul ( pd_t * r , const pd_t * n1 , const pd_t * n2 )
81
+ static inline void pd_mul ( pd_t * r , const pd_t * n1 , const pd_t * n2 )
82
82
{
83
83
r -> v_ = n1 -> v_ * n2 -> v_ ;
84
84
r -> e_ = n1 -> e_ + n2 -> e_ ;
85
85
pd_scale ( r );
86
86
}
87
87
88
- static void pd_div ( pd_t * r , pd_t * n1 , pd_t * n2 )
88
+ static inline void pd_div ( pd_t * r , pd_t * n1 , pd_t * n2 )
89
89
{
90
90
if ( n1 -> v_ == 0 ) { pd_set ( r , n1 ); return ; }
91
91
int64_t v1 = n1 -> v_ , v2 = n2 -> v_ ;
@@ -100,7 +100,7 @@ static void pd_div( pd_t *r, pd_t *n1, pd_t *n2 )
100
100
pd_scale ( r );
101
101
}
102
102
103
- static void pd_add ( pd_t * r , const pd_t * n1 , const pd_t * n2 , const int64_t * p )
103
+ static inline void pd_add ( pd_t * r , const pd_t * n1 , const pd_t * n2 , const int64_t * p )
104
104
{
105
105
int d = n1 -> e_ - n2 -> e_ ;
106
106
if ( d == 0 ) {
@@ -126,7 +126,7 @@ static void pd_add( pd_t *r, const pd_t *n1, const pd_t *n2, const int64_t *p )
126
126
pd_scale ( r );
127
127
}
128
128
129
- static void pd_sub ( pd_t * r , const pd_t * n1 , const pd_t * n2 , const int64_t * p )
129
+ static inline void pd_sub ( pd_t * r , const pd_t * n1 , const pd_t * n2 , const int64_t * p )
130
130
{
131
131
int d = n1 -> e_ - n2 -> e_ ;
132
132
if ( d == 0 ) {
@@ -152,21 +152,21 @@ static void pd_sub( pd_t *r, const pd_t *n1, const pd_t *n2, const int64_t *p )
152
152
pd_scale ( r );
153
153
}
154
154
155
- static int pd_lt ( const pd_t * n1 , const pd_t * n2 , const int64_t * p )
155
+ static inline int pd_lt ( const pd_t * n1 , const pd_t * n2 , const int64_t * p )
156
156
{
157
157
pd_t r [1 ];
158
158
pd_sub ( r , n1 , n2 , p );
159
159
return r -> v_ < 0L ;
160
160
}
161
161
162
- static int pd_gt ( const pd_t * n1 , const pd_t * n2 , const int64_t * p )
162
+ static inline int pd_gt ( const pd_t * n1 , const pd_t * n2 , const int64_t * p )
163
163
{
164
164
pd_t r [1 ];
165
165
pd_sub ( r , n1 , n2 , p );
166
166
return r -> v_ > 0L ;
167
167
}
168
168
169
- static void pd_sqrt ( pd_t * r , pd_t * val , const int64_t * f )
169
+ static inline void pd_sqrt ( pd_t * r , pd_t * val , const int64_t * f )
170
170
{
171
171
pd_t t [1 ], x [1 ], hlf [1 ];
172
172
pd_set ( t , val );
0 commit comments