Apply nan/inf handling patch from Sisyphus
[Math-GSL.git] / gsl_typemaps.i
blob5a321e44d8506f1620940000d9ccfc0e95af9af5
2 %typemap(in) double const [] {
3 AV *tempav;
4 I32 len;
5 int i;
6 SV **tv;
7 if (!SvROK($input))
8 croak("Math::GSL : $input is not a reference!");
9 if (SvTYPE(SvRV($input)) != SVt_PVAV)
10 croak("Math::GSL : $input is not an array ref!");
12 tempav = (AV*)SvRV($input);
13 len = av_len(tempav);
14 $1 = (double *) malloc((len+1)*sizeof(double));
15 for (i = 0; i <= len; i++) {
16 tv = av_fetch(tempav, i, 0);
17 $1[i] = (double) SvNV(*tv);
21 %apply double const [] { size_t *p };
23 %apply double const [] { double *data, double *dest, double *f_in, double *f_out, double data[], const double * src };
24 %apply double const [] { double x[], double a[], double b[] };
25 %apply double const [] { const double * x, const double * y, const double * w };
26 %apply double const [] { const double x_array[], const double xrange[], const double yrange[]};
27 %apply double const [] { double * base, const double * base};
28 %apply double const [] { const double xrange[], const double yrange[] };
29 %apply double const [] { const double * array };
30 %apply double const [] { const double data2[], const double w[] };
31 %apply double const [] { float const *A, float const *B, float const *C, float *C};