| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #ifndef __MY_MATH_H_
- #define __MY_MATH_H_
- #include "stdint.h"
- #define BIT_REVERSED(data) \
- ({ \
- typeof(data) _result = 0; \
- for(uint8_t i = 0; i < sizeof(typeof(data)) * 8; i++) \
- { \
- _result = ((data >> i) & 0x01) | _result; \
- if(i < (sizeof(typeof(data)) * 8 - 1)) \
- { \
- _result = _result << 1; \
- } \
- } \
- _result; \
- })
- #define MAX(x, y) \
- ({ \
- typeof(x) _max1 = (x); \
- typeof(y) _max2 = (y); \
- (void)(&_max1 == &_max2); \
- _max1 > _max2 ? _max1 : _max2 \
- })
- #define MIN(x, y) \
- ({ \
- typeof(x) _min1 = x; \
- typeof(y) _min2 = y; \
- (void)(&_min1 == &_min2); \
- _min1 < _min2 ? _min1 : _min2 \
- })
- #define OVER_WEIGHT_SCALE 1.2f/9.8f //假设a = 1.2
- #define LOSS_WEIGHT_SCALE -1.2f/9.8f
- void Least_Squares(uint8_t n, float x[], uint32_t y[], float* slope, float* intercept);
- void buf2int(int *tint, unsigned char *buf);
- float average(int n_values, ...);
- // uint8_t Bit_Reversed(uint8_t data);
- #endif
|