diff options
Diffstat (limited to 'Examples/octave/reference/runme.m')
| -rw-r--r-- | Examples/octave/reference/runme.m | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Examples/octave/reference/runme.m b/Examples/octave/reference/runme.m new file mode 100644 index 0000000..f59c8eb --- /dev/null +++ b/Examples/octave/reference/runme.m @@ -0,0 +1,63 @@ +# file: runme.m + +# This file illustrates the manipulation of C++ references in Octave + +example + +# ----- Object creation ----- + +printf("Creating some objects:\n"); +a = example.Vector(3,4,5) +b = example.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 = example.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 = example.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,example.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 + |
