File tree Expand file tree Collapse file tree 1 file changed +4
-3
lines changed Expand file tree Collapse file tree 1 file changed +4
-3
lines changed Original file line number Diff line number Diff line change @@ -110,7 +110,7 @@ static inline uint32_t add16signed(uint32_t a, uint32_t b) {
110
110
for (int8_t i = 0 ; i < 2 ; i ++ ) {
111
111
int16_t ai = a >> (sizeof (int16_t ) * 8 * i );
112
112
int16_t bi = b >> (sizeof (int16_t ) * 8 * i );
113
- int32_t intermediate = (int32_t )ai + bi / 2 ;
113
+ int32_t intermediate = (int32_t )ai + bi ;
114
114
if (intermediate > SHRT_MAX ) {
115
115
intermediate = SHRT_MAX ;
116
116
} else if (intermediate < SHRT_MIN ) {
@@ -139,14 +139,15 @@ static inline uint32_t mult16signed(uint32_t val, int32_t mul) {
139
139
uint32_t result = 0 ;
140
140
float mod_mul = (float )mul / (float )((1 << 15 ) - 1 );
141
141
for (int8_t i = 0 ; i < 2 ; i ++ ) {
142
- int16_t ai = (val >> (sizeof (uint16_t ) * 8 * i )) - 0x8000 ;
142
+ int16_t ai = (val >> (sizeof (uint16_t ) * 8 * i ));
143
143
int32_t intermediate = ai * mod_mul ;
144
144
if (intermediate > SHRT_MAX ) {
145
145
intermediate = SHRT_MAX ;
146
146
} else if (intermediate < SHRT_MIN ) {
147
147
intermediate = SHRT_MIN ;
148
148
}
149
- result |= (((uint32_t )intermediate ) + 0x8000 ) << (sizeof (int16_t ) * 8 * i );
149
+ intermediate &= 0x0000FFFF ;
150
+ result |= (((uint32_t )intermediate )) << (sizeof (int16_t ) * 8 * i );
150
151
}
151
152
return result ;
152
153
#endif
You can’t perform that action at this time.
0 commit comments