Mercurial > octave-libgccjit
diff liboctave/MArray.cc @ 3504:5eef8a2294bd
[project @ 2000-02-01 10:06:51 by jwe]
author | jwe |
---|---|
date | Tue, 01 Feb 2000 10:07:26 +0000 |
parents | 8b262e771614 |
children | 6ae6f1180e62 |
line wrap: on
line diff
--- a/liboctave/MArray.cc Tue Feb 01 04:06:39 2000 +0000 +++ b/liboctave/MArray.cc Tue Feb 01 10:07:26 2000 +0000 @@ -94,8 +94,12 @@ MArray<T> \ operator OP (const MArray<T>& a, const T& s) \ { \ - DO_VS_OP (OP); \ - return MArray<T> (result, l); \ + MArray<T> result (a.length ()); \ + T *r = result.fortran_vec (); \ + int l = a.length (); \ + const T *v = a.data (); \ + DO_VS_OP (r, l, v, OP, s); \ + return result; \ } MARRAY_AS_OP (+) @@ -110,9 +114,13 @@ MArray<T> \ operator OP (const T& s, const MArray<T>& a) \ { \ - DO_SV_OP (OP); \ - return MArray<T> (result, l); \ - } + MArray<T> result (a.length ()); \ + T *r = result.fortran_vec (); \ + int l = a.length (); \ + const T *v = a.data (); \ + DO_SV_OP (r, l, s, OP, v); \ + return result; \ + } MARRAY_SA_OP(+) MARRAY_SA_OP(-) @@ -135,8 +143,12 @@ } \ if (l == 0) \ return MArray<T> (); \ - DO_VV_OP (OP); \ - return MArray<T> (result, l); \ + MArray<T> result (l); \ + T *r = result.fortran_vec (); \ + const T *x = a.data (); \ + const T *y = b.data (); \ + DO_VV_OP (r, l, x, OP, y); \ + return result; \ } MARRAY_AA_OP (operator +, +) @@ -150,8 +162,12 @@ MArray<T> operator - (const MArray<T>& a) { - NEG_V; - return MArray<T> (result, l); + int l = a.length (); + MArray<T> result (l); + T *r = result.fortran_vec (); + const T *x = a.data (); + NEG_V (r, l, x); + return result; } /*