1 
2 %module arrays_dimensionless
3 
4 %warnfilter(SWIGWARN_TYPEMAP_VARIN_UNDEF) globalints;    /* Unable to set variable of type int [] */
5 %warnfilter(SWIGWARN_TYPEMAP_VARIN_UNDEF) ints;          /* Unable to set variable of type int [] */
6 
7 %inline %{
8 
9 int globalints[] = {100, 200, 300};
10 const int constglobalints[] = {400, 500, 600};
11 
12 struct Bar {
13     static int ints[];
14 };
15 int Bar::ints[] = {700, 800, 900};
16 
arr_bool(bool array[],int length)17 double arr_bool(bool array[], int length)                { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]=!array[i]; } return sum; }
arr_char(char array[],int length)18 double arr_char(char array[], int length)                { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_schar(signed char array[],int length)19 double arr_schar(signed char array[], int length)        { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_uchar(unsigned char array[],int length)20 double arr_uchar(unsigned char array[], int length)      { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_short(short array[],int length)21 double arr_short(short array[], int length)              { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_ushort(unsigned short array[],int length)22 double arr_ushort(unsigned short array[], int length)    { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_int(int array[],int length)23 double arr_int(int array[], int length)                  { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_uint(unsigned int array[],int length)24 double arr_uint(unsigned int array[], int length)        { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_long(long array[],int length)25 double arr_long(long array[], int length)                { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_ulong(unsigned long array[],int length)26 double arr_ulong(unsigned long array[], int length)      { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_ll(long long array[],int length)27 double arr_ll(long long array[], int length)             { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_ull(unsigned long long array[],int length)28 double arr_ull(unsigned long long array[], int length)   { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_float(float array[],int length)29 double arr_float(float array[], int length)              { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
arr_double(double array[],int length)30 double arr_double(double array[], int length)            { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; }
31 
32 %}
33 
34 %apply SWIGTYPE[] {
35  bool *,
36  char *,
37  signed char *,
38  unsigned char *,
39  short *,
40  unsigned short *,
41  int *,
42  unsigned int *,
43  long *,
44  unsigned long *,
45  long *,
46  unsigned long long *,
47  float *,
48  double *
49 }
50 
51 %inline %{
52 
ptr_bool(bool * array,int length)53 double ptr_bool(bool *array, int length)                { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_char(char * array,int length)54 double ptr_char(char *array, int length)                { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_schar(signed char * array,int length)55 double ptr_schar(signed char *array, int length)        { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_uchar(unsigned char * array,int length)56 double ptr_uchar(unsigned char *array, int length)      { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_short(short * array,int length)57 double ptr_short(short *array, int length)              { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_ushort(unsigned short * array,int length)58 double ptr_ushort(unsigned short *array, int length)    { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_int(int * array,int length)59 double ptr_int(int *array, int length)                  { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_uint(unsigned int * array,int length)60 double ptr_uint(unsigned int *array, int length)        { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_long(long * array,int length)61 double ptr_long(long *array, int length)                { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_ulong(unsigned long * array,int length)62 double ptr_ulong(unsigned long *array, int length)      { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_ll(long long * array,int length)63 double ptr_ll(long long *array, int length)             { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_ull(unsigned long long * array,int length)64 double ptr_ull(unsigned long long *array, int length)   { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_float(float * array,int length)65 double ptr_float(float *array, int length)              { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
ptr_double(double * array,int length)66 double ptr_double(double *array, int length)            { double sum=0.0; int i=0; for(; i<length; i++) sum += array[i]; return sum; }
67 
68 %}
69 
70