#include "gr.h"
#include "gr_mat.h"
int
gr_mat_det_generic_field(gr_ptr res, const gr_mat_t A, gr_ctx_t ctx)
{
if (A->r <= 4)
return gr_mat_det_cofactor(res, A, ctx);
else
return gr_mat_det_lu(res, A, ctx);
}
int
gr_mat_det_generic_integral_domain(gr_ptr res, const gr_mat_t A, gr_ctx_t ctx)
{
if (A->r <= 4)
return gr_mat_det_cofactor(res, A, ctx);
else
return gr_mat_det_fflu(res, A, ctx);
}
int
gr_mat_det_generic(gr_ptr res, const gr_mat_t A, gr_ctx_t ctx)
{
if (A->r <= 4)
return gr_mat_det_cofactor(res, A, ctx);
else
return gr_mat_det_berkowitz(res, A, ctx);
}
int
gr_mat_det(gr_ptr res, const gr_mat_t x, gr_ctx_t ctx)
{
return GR_MAT_UNARY_OP_GET_SCALAR(ctx, MAT_DET)(res, x, ctx);
}