Mercurial > hg > octave-nkf
diff src/DLD-FUNCTIONS/det.cc @ 8916:a2878ba31a9e
add diag & perm matrix query methods to octave_value
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 06 Mar 2009 12:00:11 +0100 |
parents | c3f7e2549abb |
children | eb63fbe60fab |
line wrap: on
line diff
--- a/src/DLD-FUNCTIONS/det.cc +++ b/src/DLD-FUNCTIONS/det.cc @@ -95,56 +95,48 @@ if (arg.is_diag_matrix ()) { - const octave_base_value& a = arg.get_rep (); if (arg.is_complex_type ()) { if (isfloat) { - CAST_CONV_ARG (const octave_float_complex_diag_matrix&); - retval(0) = v.float_complex_diag_matrix_value ().determinant ().value (); + retval(0) = arg.float_complex_diag_matrix_value ().determinant ().value (); if (nargout > 1) - retval(1) = v.float_complex_diag_matrix_value ().rcond (); + retval(1) = arg.float_complex_diag_matrix_value ().rcond (); } else { - CAST_CONV_ARG (const octave_complex_diag_matrix&); - retval(0) = v.complex_diag_matrix_value ().determinant ().value (); + retval(0) = arg.complex_diag_matrix_value ().determinant ().value (); if (nargout > 1) - retval(1) = v.complex_diag_matrix_value ().rcond (); + retval(1) = arg.complex_diag_matrix_value ().rcond (); } } else { if (isfloat) { - CAST_CONV_ARG (const octave_float_diag_matrix&); - retval(0) = v.float_diag_matrix_value ().determinant ().value (); + retval(0) = arg.float_diag_matrix_value ().determinant ().value (); if (nargout > 1) - retval(1) = v.float_diag_matrix_value ().rcond (); + retval(1) = arg.float_diag_matrix_value ().rcond (); } else { - CAST_CONV_ARG (const octave_diag_matrix&); - retval(0) = v.diag_matrix_value ().determinant ().value (); + retval(0) = arg.diag_matrix_value ().determinant ().value (); if (nargout > 1) - retval(1) = v.diag_matrix_value ().rcond (); + retval(1) = arg.diag_matrix_value ().rcond (); } } } else if (arg.is_perm_matrix ()) { - const octave_base_value& a = arg.get_rep (); if (isfloat) { - CAST_CONV_ARG (const octave_float_perm_matrix&); - retval(0) = static_cast<float> (v.perm_matrix_value ().determinant ()); + retval(0) = static_cast<float> (arg.perm_matrix_value ().determinant ()); if (nargout > 1) retval(1) = 1.0; } else { - CAST_CONV_ARG (const octave_perm_matrix&); - retval(0) = static_cast<double> (v.perm_matrix_value ().determinant ()); + retval(0) = static_cast<double> (arg.perm_matrix_value ().determinant ()); if (nargout > 1) retval(1) = 1.0f; }