Blame view
include/linux/average.h
653 Bytes
c5485a7e7 lib: Add generic ... |
1 2 |
#ifndef _LINUX_AVERAGE_H #define _LINUX_AVERAGE_H |
c5485a7e7 lib: Add generic ... |
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
/* Exponentially weighted moving average (EWMA) */ /* For more documentation see lib/average.c */ struct ewma { unsigned long internal; unsigned long factor; unsigned long weight; }; extern void ewma_init(struct ewma *avg, unsigned long factor, unsigned long weight); extern struct ewma *ewma_add(struct ewma *avg, unsigned long val); /** * ewma_read() - Get average value * @avg: Average structure * * Returns the average value held in @avg. */ static inline unsigned long ewma_read(const struct ewma *avg) { |
af5568843 lib: Improve EWMA... |
26 |
return avg->internal >> avg->factor; |
c5485a7e7 lib: Add generic ... |
27 28 29 |
} #endif /* _LINUX_AVERAGE_H */ |