Mercurial > hg > octave-lyh
comparison liboctave/fNDArray.cc @ 8650:a1ae2aae903e
abs,real,imag,conj: use code from mx-inlines rather than the generic map
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Mon, 02 Feb 2009 15:35:32 +0100 |
parents | 25bc2d31e1bf |
children | 53b4fdeacc2e |
comparison
equal
deleted
inserted
replaced
8649:e50b44b75891 | 8650:a1ae2aae903e |
---|---|
895 } | 895 } |
896 | 896 |
897 FloatNDArray | 897 FloatNDArray |
898 real (const FloatComplexNDArray& a) | 898 real (const FloatComplexNDArray& a) |
899 { | 899 { |
900 octave_idx_type a_len = a.length (); | 900 return FloatNDArray (mx_inline_real_dup (a.data (), a.length ()), |
901 FloatNDArray retval; | 901 a.dims ()); |
902 if (a_len > 0) | |
903 retval = FloatNDArray (mx_inline_real_dup (a.data (), a_len), a.dims ()); | |
904 return retval; | |
905 } | 902 } |
906 | 903 |
907 FloatNDArray | 904 FloatNDArray |
908 imag (const FloatComplexNDArray& a) | 905 imag (const FloatComplexNDArray& a) |
909 { | 906 { |
910 octave_idx_type a_len = a.length (); | 907 return FloatNDArray (mx_inline_imag_dup (a.data (), a.length ()), |
911 FloatNDArray retval; | 908 a.dims ()); |
912 if (a_len > 0) | |
913 retval = FloatNDArray (mx_inline_imag_dup (a.data (), a_len), a.dims ()); | |
914 return retval; | |
915 } | 909 } |
916 | 910 |
917 FloatNDArray& | 911 FloatNDArray& |
918 FloatNDArray::insert (const FloatNDArray& a, octave_idx_type r, octave_idx_type c) | 912 FloatNDArray::insert (const FloatNDArray& a, octave_idx_type r, octave_idx_type c) |
919 { | 913 { |
929 } | 923 } |
930 | 924 |
931 FloatNDArray | 925 FloatNDArray |
932 FloatNDArray::abs (void) const | 926 FloatNDArray::abs (void) const |
933 { | 927 { |
934 FloatNDArray retval (dims ()); | 928 return FloatNDArray (mx_inline_fabs_dup (data (), length ()), |
935 | 929 dims ()); |
936 octave_idx_type nel = nelem (); | |
937 | |
938 for (octave_idx_type i = 0; i < nel; i++) | |
939 retval(i) = fabs (elem (i)); | |
940 | |
941 return retval; | |
942 } | 930 } |
943 | 931 |
944 Matrix | 932 Matrix |
945 FloatNDArray::matrix_value (void) const | 933 FloatNDArray::matrix_value (void) const |
946 { | 934 { |