octave: map unary functions to __...___ Python-style unary members

- Only available in Octave 3.8.0 and higher
This commit is contained in:
Karl Wette 2016-02-07 17:16:23 +01:00
commit 125329466d
3 changed files with 42 additions and 0 deletions

View file

@ -31,4 +31,20 @@
return (double) $self->re();
}
double __real__() {
return $self->re();
}
double __imag__() {
return $self->im();
}
double __abs__() {
return sqrt($self->re()*$self->re() + $self->im()*$self->im());
}
ComplexVal __conj__() {
return ComplexVal($self->re(), -$self->im());
}
ComplexVal __exp__() {
return exp($self->re()) * ComplexVal(cos($self->im()), sin($self->im()));
}
};

View file

@ -28,3 +28,12 @@ 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