/* -*- c -*- */ %module list_vector %include "list-vector.i" %multiple_values /* The ordinary, well behaved multi-typemap. */ double sum_list(int LISTLENINPUT, double *LISTINPUT); double sum_vector(int VECTORLENINPUT, double *VECTORINPUT); void one_to_seven_list(int *LISTLENOUTPUT, int **LISTOUTPUT); void one_to_seven_vector(int *VECTORLENOUTPUT, int **VECTOROUTPUT); /* Variants with `size_t' instead of `int' length. */ double sum_list2(size_t LISTLENINPUT, double *LISTINPUT); double sum_vector2(size_t VECTORLENINPUT, double *VECTORINPUT); void one_to_seven_list2(size_t *LISTLENOUTPUT, int **LISTOUTPUT); void one_to_seven_vector2(size_t *VECTORLENOUTPUT, int **VECTOROUTPUT); /* Parallel variants */ double sum_lists(int PARALLEL_LISTLENINPUT, double *PARALLEL_LISTINPUT, int *PARALLEL_LISTINPUT, int *PARALLEL_LISTINPUT); double sum_lists2(size_t PARALLEL_LISTLENINPUT, double *PARALLEL_LISTINPUT, int *PARALLEL_LISTINPUT, int *PARALLEL_LISTINPUT); void produce_lists(int *PARALLEL_VECTORLENOUTPUT, int **PARALLEL_VECTOROUTPUT, int **PARALLEL_VECTOROUTPUT, double **PARALLEL_VECTOROUTPUT); %{ double sum_list(int length, double *item) { int i; double res = 0.0; for (i = 0; i