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 {