Update Changes
[Math-GSL.git] / swig / Sort.i
blob930cc70cf9875b57344ad9a58be09aa50f620e2f
1 %module "Math::GSL::Sort"
2 /* Danger Will Robinson! */
4 %include "typemaps.i"
5 %include "gsl_typemaps.i"
6 %include "system.i"
8 %typemap(argout) (double * data, const size_t stride, const size_t n) {
9 int i=0;
10 AV* tempav = newAV();
12 while( i < $3 ) {
13 av_push(tempav, newSVnv((double) $1[i]));
14 i++;
17 $result = sv_2mortal( newRV_noinc( (SV*) tempav) );
18 //Perl_sv_dump($result);
19 argvi++;
21 %typemap(argout) (double * dest, const size_t k, const gsl_vector * v) {
22 int i=0;
23 AV* tempav = newAV();
25 while( i < $2 ) {
26 av_push(tempav, newSVnv((double) $1[i]));
27 i++;
30 $result = sv_2mortal( newRV_noinc( (SV*) tempav) );
31 argvi++;
34 %typemap(argout) (double * dest, const size_t k, const double * src, const size_t stride, const size_t n) {
35 int i=0;
36 AV* tempav = newAV();
37 while( i < $2 ) {
38 av_push(tempav, newSVnv((double) $1[i]));
39 i++;
42 $result = sv_2mortal( newRV_noinc( (SV*) tempav) );
43 argvi++;
45 %typemap(argout) (size_t * p, const size_t k, const gsl_vector * v)
47 int i=0;
48 AV* tempav = newAV();
49 while( i < $2 ) {
50 av_push(tempav, newSVnv((double) $1[i]));
51 i++;
54 $result = sv_2mortal( newRV_noinc( (SV*) tempav) );
55 argvi++;
58 %typemap(argout) (size_t * p, const double * data, const size_t stride, const size_t n)
60 int i=0;
61 AV* tempav = newAV();
62 while( i < $4 ) {
63 av_push(tempav, newSVnv((size_t) $1[i]));
64 i++;
67 $result = sv_2mortal( newRV_noinc( (SV*) tempav) );
68 argvi++;
71 %typemap(argout) (size_t * p, const size_t k, const double * src, const size_t stride, const size_t n)
73 int i=0;
74 AV* tempav = newAV();
75 while( i < $2 ) {
76 av_push(tempav, newSVnv((size_t) $1[i]));
77 i++;
80 $result = sv_2mortal( newRV_noinc( (SV*) tempav) );
81 argvi++;
84 %apply double * { double *data, double *dest };
87 #include "gsl/gsl_nan.h"
88 #include "gsl/gsl_sort.h"
89 #include "gsl/gsl_sort_double.h"
90 #include "gsl/gsl_sort_int.h"
91 #include "gsl/gsl_sort_vector.h"
92 #include "gsl/gsl_sort_vector_double.h"
93 #include "gsl/gsl_sort_vector_int.h"
94 #include "gsl/gsl_permutation.h"
96 #if GSL_MINOR_VERSION == 12
97 %import "gsl/gsl_inline.h"
98 #endif
100 %include "gsl/gsl_nan.h"
101 %include "gsl/gsl_sort.h"
102 %include "gsl/gsl_sort_double.h"
103 %include "gsl/gsl_sort_int.h"
104 %include "gsl/gsl_sort_vector.h"
105 %include "gsl/gsl_sort_vector_double.h"
106 %include "gsl/gsl_sort_vector_int.h"
107 %include "gsl/gsl_permutation.h"
109 %include "../pod/Sort.pod"