Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. #include "movavg.h"
  2.  
  3. // Moving average, by Matt Young
  4. // Licensed into the public domain with the Unlicense.
  5.  
  6. movavg_t *movavg_create(size_t size){
  7. movavg_t *movavg = calloc(1, sizeof(movavg_t));
  8. movavg->size = size;
  9. movavg->items = calloc(size, sizeof(float));
  10. movavg->counter = 0;
  11. return movavg;
  12. }
  13.  
  14. void movavg_free(movavg_t *mov_avg){
  15. free(mov_avg);
  16. mov_avg = NULL;
  17. }
  18.  
  19. void movavg_push(movavg_t *mov_avg, float value){
  20. mov_avg->items[mov_avg->counter++ % mov_avg->size] = value;
  21. }
  22.  
  23. float movavg_calc(movavg_t *mov_avg){
  24. float sum = 0;
  25. for (int i = 0; i < mov_avg->size; i++){
  26. sum += mov_avg->items[i];
  27. }
  28. return sum / (float) mov_avg->size;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement