add the missing file of matrix2 example
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2009-sploving@11880 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
215a9c649b
commit
c31100860e
7 changed files with 116 additions and 97 deletions
17
Examples/scilab/matrix2/Makefile
Normal file
17
Examples/scilab/matrix2/Makefile
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
TOP = ../..
|
||||
SWIG = $(TOP)/../preinst-swig
|
||||
SRCS = matrixlib.c
|
||||
TARGET = matrixlib
|
||||
INTERFACE = matrixlib.i
|
||||
|
||||
all::
|
||||
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' scilab
|
||||
|
||||
|
||||
clean::
|
||||
$(MAKE) -f $(TOP)/Makefile scilab_clean
|
||||
rm -f *.sce *.so lib*lib.c *_wrap.c
|
||||
|
||||
check: all
|
||||
$(MAKE) -f $(TOP)/Makefile scilab_run
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
|
||||
|
||||
files=['matrixlib.c','sci_sumitems.c'];//,'sci_getValues.c'];
|
||||
ilib_build('build_c',['sumitems','sci_sumitems';'generateValues','sci_getValues'],files,[]);
|
||||
|
||||
ilib_name = "matrixliblib";
|
||||
files = ["matrixlib_wrap.c","matrixlib.o"];
|
||||
libs = [];
|
||||
table = ["sumitems","_wrap_sumitems";"getValues","_wrap_getValues";];
|
||||
ilib_build(ilib_name,table,files,libs);
|
||||
exit
|
||||
24
Examples/scilab/matrix2/matrixlib.i
Executable file
24
Examples/scilab/matrix2/matrixlib.i
Executable file
|
|
@ -0,0 +1,24 @@
|
|||
%module matrixlib
|
||||
%typemap (in,noblock=1) (double *first, int nbRow, int nbCol){
|
||||
int *piAddr = NULL;
|
||||
sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
|
||||
if (sciErr.iErr) {
|
||||
printError(&sciErr, 0);
|
||||
return 0;
|
||||
}
|
||||
sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &$2, &$3, &$1);
|
||||
if (sciErr.iErr) {
|
||||
printError(&sciErr, 0);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
%typemap (in) (int *numberOfRow, int *numberOfCol) {
|
||||
$1 = &iRowsOut;
|
||||
$2 = &iColsOut;
|
||||
}
|
||||
|
||||
%inline {
|
||||
extern double sumitems(double *first, int nbRow, int nbCol);
|
||||
extern double* getValues(int *numberOfRow, int *numberOfCol);
|
||||
}
|
||||
|
||||
|
|
@ -1,28 +1,6 @@
|
|||
// loader the *.so
|
||||
exec loader.sce
|
||||
|
||||
// First create some objects using the pointer library.
|
||||
printf("Testing the pointer library\n");
|
||||
a = new_intp();
|
||||
b = new_intp();
|
||||
c = new_intp();
|
||||
intp_assign(a,37);
|
||||
intp_assign(b,42);
|
||||
|
||||
a,b,c
|
||||
|
||||
// Call the add() function with some pointers
|
||||
add(a,b,c);
|
||||
|
||||
// Now get the result
|
||||
r = intp_value(c);
|
||||
printf(" 37 + 42 = %i\n",r);
|
||||
|
||||
// Clean up the pointers
|
||||
delete_intp(a);
|
||||
delete_intp(b);
|
||||
delete_intp(c);
|
||||
|
||||
//Now try the typemap library
|
||||
//This should be much easier. Now how it is no longer
|
||||
//necessary to manufacture pointers.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue