CAMLprim value ml_gsl_linalg_LU_refine(value A, value LU, value P, value B, value X, value RES) { GSL_PERMUT_OF_BIGARRAY(P); _DECLARE_MATRIX2(A, LU); _DECLARE_VECTOR3(B, X, RES); _CONVERT_MATRIX2(A, LU); _CONVERT_VECTOR3(B, X, RES); gsl_linalg_LU_refine(&m_A, &m_LU, &perm_P, &v_B, &v_X, &v_RES); return Val_unit; }
/** * C++ version of gsl_linalg_LU_refine(). * @param A A matrix * @param LU An LU decomposition matrix * @param p A permutation * @param b A vector * @param x A vector * @param residual A residual vector * @return Error code on failure */ inline int LU_refine( matrix const& A, matrix const& LU, permutation const& p, vector const& b, vector& x, vector& residual ){ return gsl_linalg_LU_refine( A.get(), LU.get(), p.get(), b.get(), x.get(), residual.get() ); }