Page MenuHomec4science

nannumel.c
No OneTemporary

File Metadata

Created
Fri, Jul 18, 05:27

nannumel.c

#include "nanaccum.h"
/* What is C a horrible language. To hoops we have to get through to make this
* work for different data types... Since overloading does not work, we
* generate type-specific functions: */
#define fname(name, suffix) name ## _ ## suffix
#define nanstat_template(TYPE)\
double fname(nanstat, TYPE)(int n, TYPE *x0, mwSize stride) \
{\
int i; int count = 0;\
for (i = 0; i < n; ++i) {\
if (!isnan(x0[i * stride]))\
count += 1;\
}\
return count;\
}
nanstat_template(float);
nanstat_template(double);
nanstat_template(int8_T); nanstat_template(uint8_T);
nanstat_template(int16_T); nanstat_template(uint16_T);
nanstat_template(int32_T); nanstat_template(uint32_T);
nanstat_template(int64_T); nanstat_template(uint64_T);
#include "nanaccum.c" /* takes care of generic nan-handling of arrays :D. */

Event Timeline