From a0359a8adfdd5a7f88db7cc7ceac2e147810db64 Mon Sep 17 00:00:00 2001 From: Jonathan Leto Date: Mon, 8 Sep 2008 01:23:55 -0700 Subject: [PATCH] Refactor Vector --- Vector.i | 24 +----------------------- gsl_typemaps.i | 5 ++++- 2 files changed, 5 insertions(+), 24 deletions(-) diff --git a/Vector.i b/Vector.i index cb04022..2a67cea 100644 --- a/Vector.i +++ b/Vector.i @@ -1,29 +1,7 @@ %module "Math::GSL::Vector" %include "typemaps.i" - -%apply int *OUTPUT { size_t *imin, size_t *imax }; - -%apply double *OUTPUT { double * min_out, double * max_out }; - -%typemap(in) double *v { - AV *tempav; - I32 len; - int i; - SV **tv; - if (!SvROK($input)) - croak("Math::GSL : $input is not a reference!"); - if (SvTYPE(SvRV($input)) != SVt_PVAV) - croak("Math::GSL : $input is not an array ref!"); - - tempav = (AV*)SvRV($input); - len = av_len(tempav); - $1 = (double *) malloc((len+1)*sizeof(double)); - for (i = 0; i <= len; i++) { - tv = av_fetch(tempav, i, 0); - $1[i] = (double) SvNV(*tv); - } -} +%include "gsl_typemaps.i" FILE * fopen(char *, char *); int fclose(FILE *); diff --git a/gsl_typemaps.i b/gsl_typemaps.i index 42a3afd..682b3a0 100644 --- a/gsl_typemaps.i +++ b/gsl_typemaps.i @@ -28,7 +28,10 @@ %apply double const [] { const double xrange[], const double yrange[] }; %apply double const [] { const double * array }; %apply double const [] { const double data2[], const double w[] }; -%apply double const [] { float const *A, float const *B, float const *C, float *C}; +%apply double const [] { float const *A, float const *B, float const *C, float *C, double *v}; + +%apply int *OUTPUT { size_t *imin, size_t *imax }; +%apply double *OUTPUT { double * min_out, double * max_out }; %apply double * OUTPUT { double *abserr, double *result }; %{ -- 2.11.4.GIT