1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
%module "Math::GSL::QRNG"
%include "typemaps.i"
%include "gsl_typemaps.i"
%include "renames.i"
%apply double *OUTPUT { double x[] };
%typemap(freearg) double x[];
%typemap(argout) double x[] {
if (argvi >= items) {
EXTEND(sp,1);
}
$result = sv_newmortal();
sv_setnv($result,(NV) *($1));
argvi++;
$result = sv_newmortal();
sv_setnv($result,(NV) *($1+1));
argvi++;
}
%newobject gsl_qrng_alloc;
%newobject gsl_qrng_clone;
%extend gsl_qrng {
~gsl_qrng() {
gsl_qrng_free($self);
}
}
%{
#include "gsl/gsl_inline.h"
#include "gsl/gsl_types.h"
#include "gsl/gsl_qrng.h"
%}
%include "gsl/gsl_inline.h"
%include "gsl/gsl_types.h"
%include "gsl/gsl_qrng.h"
%include "../pod/QRNG.pod"
|