//! More...
Classes | |
class | glue_solve |
Functions | |
template<typename T1 , typename T2 > | |
static void | glue_solve::apply (Mat< typename T1::elem_type > &out, const Glue< T1, T2, glue_solve > &X) |
//!
void glue_solve::apply | ( | Mat< typename T1::elem_type > & | out, | |
const Glue< T1, T2, glue_solve > & | X | |||
) | [inline, static, inherited] |
Definition at line 25 of file glue_solve_meat.hpp.
References Glue< T1, T2, glue_type >::A, arma_print(), Glue< T1, T2, glue_type >::B, unwrap_check< T1 >::M, Mat< eT >::n_cols, Mat< eT >::n_rows, Mat< eT >::reset(), solve(), auxlib::solve_od(), and auxlib::solve_ud().
{ arma_extra_debug_sigprint(); typedef typename T1::elem_type eT; const unwrap_check<T1> A_tmp(X.A, out); const unwrap_check<T2> B_tmp(X.B, out); const Mat<eT>& A = A_tmp.M; const Mat<eT>& B = B_tmp.M; arma_debug_check( (A.n_rows != B.n_rows), "solve(): number of rows in A and B must be the same" ); bool status; if(A.n_rows == A.n_cols) { status = auxlib::solve(out, A, B); } else if(A.n_rows > A.n_cols) { arma_extra_debug_print("solve(): detected over-determined system"); status = auxlib::solve_od(out, A, B); } else { arma_extra_debug_print("solve(): detected under-determined system"); status = auxlib::solve_ud(out, A, B); } if(status == false) { out.reset(); arma_print("solve(): solution not found"); } }