- rename example modules from "example" to "swigexample", to avoid a warning from shadowing the Octave built-in function "example" - remove deprecated "static" Makefile targets: there is no longer an option to build static Octave modules in the Examples Makefile - emacs whitespace cleanup run on all files
62 lines
1.2 KiB
Matlab
62 lines
1.2 KiB
Matlab
# file: runme.m
|
|
|
|
# This file illustrates the manipulation of C++ references in Octave
|
|
|
|
swigexample
|
|
|
|
# ----- Object creation -----
|
|
|
|
printf("Creating some objects:\n");
|
|
a = swigexample.Vector(3,4,5)
|
|
b = swigexample.Vector(10,11,12)
|
|
|
|
printf(" Created %s\n",a.cprint());
|
|
printf(" Created %s\n",b.cprint());
|
|
|
|
# ----- Call an overloaded operator -----
|
|
|
|
# This calls the wrapper we placed around
|
|
#
|
|
# operator+(const Vector &a, const Vector &)
|
|
#
|
|
# It returns a new allocated object.
|
|
|
|
printf("Adding a+b\n");
|
|
c = swigexample.addv(a,b);
|
|
printf(" a+b = %s\n", c.cprint());
|
|
|
|
clear c
|
|
|
|
# ----- Create a vector array -----
|
|
|
|
# Note: Using the high-level interface here
|
|
printf("Creating an array of vectors\n");
|
|
va = swigexample.VectorArray(10)
|
|
|
|
# ----- Set some values in the array -----
|
|
|
|
# These operators copy the value of $a and $b to the vector array
|
|
va.set(0,a);
|
|
va.set(1,b);
|
|
|
|
va.set(2,swigexample.addv(a,b))
|
|
|
|
# Get some values from the array
|
|
|
|
printf("Getting some array values\n");
|
|
for i=0:4,
|
|
printf(" va(%d) = %s\n",i,va.get(i).cprint());
|
|
end;
|
|
|
|
# Watch under resource meter to check on this
|
|
printf("Making sure we don't leak memory.\n");
|
|
for i=0:1000000-1,
|
|
c = va.get(mod(i,10));
|
|
end
|
|
|
|
# ----- Clean up -----
|
|
printf("Cleaning up\n");
|
|
|
|
clear va
|
|
clear a
|
|
clear b
|