comparison liboctave/fMatrix.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 5114ea5a41b5
children 53b4fdeacc2e
comparison
equal deleted inserted replaced
8649:e50b44b75891 8650:a1ae2aae903e
580 } 580 }
581 581
582 FloatMatrix 582 FloatMatrix
583 real (const FloatComplexMatrix& a) 583 real (const FloatComplexMatrix& a)
584 { 584 {
585 octave_idx_type a_len = a.length (); 585 return FloatMatrix (mx_inline_real_dup (a.data (), a.length ()),
586 FloatMatrix retval; 586 a.rows (), a.cols ());
587 if (a_len > 0)
588 retval = FloatMatrix (mx_inline_real_dup (a.data (), a_len),
589 a.rows (), a.cols ());
590 return retval;
591 } 587 }
592 588
593 FloatMatrix 589 FloatMatrix
594 imag (const FloatComplexMatrix& a) 590 imag (const FloatComplexMatrix& a)
595 { 591 {
596 octave_idx_type a_len = a.length (); 592 return FloatMatrix (mx_inline_imag_dup (a.data (), a.length ()),
597 FloatMatrix retval; 593 a.rows (), a.cols ());
598 if (a_len > 0)
599 retval = FloatMatrix (mx_inline_imag_dup (a.data (), a_len),
600 a.rows (), a.cols ());
601 return retval;
602 } 594 }
603 595
604 FloatMatrix 596 FloatMatrix
605 FloatMatrix::extract (octave_idx_type r1, octave_idx_type c1, octave_idx_type r2, octave_idx_type c2) const 597 FloatMatrix::extract (octave_idx_type r1, octave_idx_type c1, octave_idx_type r2, octave_idx_type c2) const
606 { 598 {
2844 } 2836 }
2845 2837
2846 FloatMatrix 2838 FloatMatrix
2847 FloatMatrix::abs (void) const 2839 FloatMatrix::abs (void) const
2848 { 2840 {
2849 octave_idx_type nr = rows (); 2841 return FloatMatrix (mx_inline_fabs_dup (data (), length ()),
2850 octave_idx_type nc = cols (); 2842 rows (), cols ());
2851
2852 FloatMatrix retval (nr, nc);
2853
2854 for (octave_idx_type j = 0; j < nc; j++)
2855 for (octave_idx_type i = 0; i < nr; i++)
2856 retval (i, j) = fabs (elem (i, j));
2857
2858 return retval;
2859 } 2843 }
2860 2844
2861 FloatMatrix 2845 FloatMatrix
2862 FloatMatrix::diag (octave_idx_type k) const 2846 FloatMatrix::diag (octave_idx_type k) const
2863 { 2847 {