| %module scilab_multivalue |
| |
| |
| |
| void output2(int *OUTPUT, int *OUTPUT); |
| int output2Ret(int *OUTPUT, int *OUTPUT); |
| void output2Input2(int a, int b, int *OUTPUT, int *OUTPUT); |
| int output2Input2Ret(int a, int b, int *OUTPUT, int *OUTPUT); |
| int output3Input1Ret(int a, int *OUTPUT, int *OUTPUT, int *OUTPUT); |
| int output3Input3Ret(int x, int *OUTPUT, int y, int *OUTPUT, int z, int *OUTPUT); |
| |
| void inout2(int *INOUT, int *INOUT); |
| int inout2Ret(int *INOUT, int *INOUT); |
| void inout2Input2(int a, int b, int *INOUT, int *INOUT); |
| int inout2Input2Ret(int a, int b, int *INOUT, int *INOUT); |
| int inout3Input1Ret(int a, int *INOUT, int *INOUT, int *INOUT); |
| int inout3Input3Ret(int x, int *INOUT, int y, int *INOUT, int z, int *INOUT); |
| |
| class ClassA { |
| public: |
| ClassA() {}; |
| int output2Input2Ret(int a, int b, int *OUTPUT, int *OUTPUT); |
| int inout2Input2Ret(int a, int b, int *INOUT, int *INOUT); |
| }; |
| |
| %{ |
| |
| // Test return of multiple values with OUTPUT |
| |
| void output2(int *a, int *b) { |
| *a = 1; |
| *b = 2; |
| } |
| |
| int output2Ret(int *a, int *b) { |
| *a = 1; |
| *b = 2; |
| return *a + *b; |
| } |
| |
| void output2Input2(int a, int b, int *c, int *d) { |
| *c = a + 1; |
| *d = b + 2; |
| } |
| |
| int output2Input2Ret(int a, int b, int *c, int *d) { |
| *c = a + 1; |
| *d = b + 2; |
| return *c + *d; |
| } |
| |
| int output3Input1Ret(int x, int *a, int *b, int *c) { |
| *a = x + 1; |
| *b = x + 2; |
| *c = x + 3; |
| return x; |
| } |
| |
| int output3Input3Ret(int x, int *a, int y, int *b, int z, int *c) { |
| *a = x + 1; |
| *b = y + 2; |
| *c = z + 3; |
| return *a + *b + *c; |
| } |
| |
| |
| // Test return of multiple values with INOUT |
| |
| void inout2(int *a, int *b) { |
| *a = *a + 1; |
| *b = *a + 2; |
| } |
| |
| int inout2Ret(int *a, int *b) { |
| *a = *a + 1; |
| *b = *a + 2; |
| return *a + *b; |
| } |
| |
| void inout2Input2(int a, int b, int *c, int *d) { |
| *c = *c + a; |
| *d = *d + b; |
| } |
| |
| int inout2Input2Ret(int a, int b, int *c, int *d) { |
| *c = *c + a; |
| *d = *d + b; |
| return *c + *d; |
| } |
| |
| int inout3Input1Ret(int x, int *a, int *b, int *c) { |
| *a = *a + x; |
| *b = *b + x; |
| *c = *c + x; |
| return x; |
| } |
| |
| int inout3Input3Ret(int x, int *a, int y, int *b, int z, int *c) { |
| *a = *a + x; |
| *b = *b + y; |
| *c = *c + z; |
| return *a + *b + *c; |
| } |
| |
| // Test return multiples from class methods |
| |
| class ClassA { |
| public: |
| ClassA() {}; |
| int output2Input2Ret(int a, int b, int *c, int *d) { |
| *c = a + 1; |
| *d = b + 2; |
| return *c + *d; |
| } |
| int inout2Input2Ret(int a, int b, int *c, int *d) { |
| *c = *c + a; |
| *d = *d + b; |
| return *c + *d; |
| } |
| }; |
| |
| |
| %} |