AI-ANN
view release on metacpan or search on metacpan
examples/_Inline/build/benchmark_pl_3d06/benchmark_pl_3d06.xs view on Meta::CPAN
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "INLINE.h"
#include <math.h>
double afunc[4001];
double dafunc[4001];
void generate_globals() {
int i;
for (i=0;i<=4000;i++) {
afunc[i] = 2 * (erf(i/1000.0-2));
dafunc[i] = 4 / sqrt(M_PI) * exp(-1 * ((i/1000.0-2) ** 2));
}
}
double afunc_c (float input) {
return afunc[(int) floor((input)*1000)];
}
double dafunc_c (float input) {
return dafunc[(int) floor((input)*1000)];
}
MODULE = benchmark_pl_3d06 PACKAGE = main
PROTOTYPES: DISABLE
void
generate_globals ()
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
generate_globals();
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
XSRETURN_EMPTY; /* return empty stack */
}
/* must have used dXSARGS; list context implied */
return; /* assume stack size is correct */
double
afunc_c (input)
float input
double
dafunc_c (input)
float input
( run in 2.097 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )