1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
// Example ex05
//[1] call intersci with Makefile
//
V=G_make('ex05fi.c','ex05fi.c');
//[2] run the builder generated by intersci.
// Since files and libs were nor transmited
// to intersci we give them here
files = ['ex05fi.o';'ex05f.o'];
libs = [] ;
exec ex05fi_builder.sce
// generated with intersci
ilib_name = 'libex05fi' // interface library name
ilib_name =
libex05fi
table =["foobar","intsfoobar"];
ilib_build(ilib_name,table,files,libs);
generate a gateway file
generate a loader file
generate a Makefile: Makelib
running the makefile
compilation of ex05fi
compilation of ex05f
building shared library (be patient)
//[3] run the loader to load the interface
// Note that the file loader.sce
// is changed each time you run a demo
// if several0.desc are present in a directory
exec loader.sce;
shared archive loaded
//[4] test the loaded function
a=1:5;b=-a;c=ones(3,3);
deff('[y]=f(i,j)','y=i+j');
Ref=feval(1:3,1:3,f)
Ref =
2. 3. 4.
3. 4. 5.
4. 5. 6.
[a1,b1,c1,d1]=foobar('mul',a,b,c);
if norm(a1-2*a) > %eps then bugmes();quit;end
if norm(b1-2*b) > %eps then bugmes();quit;end
if norm(c1-2*c) > %eps then bugmes();quit;end
if norm(d1-(Ref.*c1))> %eps then bugmes();quit;end
[a1,b1,c1,d1]=foobar('add',a,b,c);
if norm(a1-(2+a)) > %eps then bugmes();quit;end
if norm(b1-(2+b)) > %eps then bugmes();quit;end
if norm(c1-(2+c)) > %eps then bugmes();quit;end
if norm(d1-(Ref+c1))> %eps then bugmes();quit;end
|