# do not dump Octave core if exist("crash_dumps_octave_core", "builtin") crash_dumps_octave_core(0); endif scriptDir = fileparts(mfilename('fullpath')); addpath(scriptDir); # Operator overloading example swigexample a = swigexample.ComplexVal(2,3); b = swigexample.ComplexVal(-5,10); printf("a = %s\n",disp(a)); printf("b = %s\n",disp(b)); c = a + b; printf("c = %s\n",disp(c)); printf("a*b = %s\n",disp(a*b)); printf("a-c = %s\n",disp(a-c)); e = swigexample.ComplexVal(a-c); printf("e = %s\n",disp(e)); # Big expression f = ((a+b)*(c+b*e)) + (-a); printf("f = %s\n",disp(f)); # paren overloading printf("a(3)= %s\n",disp(a(3))); # friend operator printf("2*a = %s\n",disp(2*a)); # conversions printf("single(a) = %g\n", single(a)); printf("double(a) = %g\n", double(a)); # unary functions if swig_octave_prereq(3,8,0) printf("real(a) = %g\n", real(a)); printf("imag(a) = %g\n", imag(a)); printf("abs(a) = %g\n", abs(a)); printf("conj(a) = %s\n", disp(conj(a))); printf("exp(a) = %s\n", disp(exp(a))); endif # concatenation operator, note: calls @swig_ref/horzcat.m g = [a, b, c]; printf("g = %s\n",disp(g));