FLINT3.7.0-dev

gr_mat_apply_2x2_rows, gr_mat_apply_2x2_cols

Synopsis#include <flint/gr_mat.h>
int gr_mat_apply_2x2_rows(gr_mat_t A, slong i1, slong i2, slong c0, slong c1, gr_srcptr M, gr_ctx_t ctx)source
int gr_mat_apply_2x2_cols(gr_mat_t A, slong j1, slong j2, slong r0, slong r1, gr_srcptr M, gr_ctx_t ctx)source

Multiply rows i1,i2i_1, i_2 of AA, restricted to the columns c0≤j<c1c_0 \le j < c_1, on the left by the 2×22 \times 2 matrix MM (given row by row as a vector of length 4), respectively columns j1,j2j_1, j_2, restricted to the rows r0≤i<r1r_0 \le i < r_1, on the right by MTM^T: the rows (columns) u,vu, v become M0u+M1vM_0 u + M_1 v and M2u+M3vM_2 u + M_3 v. With MM a plane rotation, these are the building blocks of the QR algorithm (Numerical eigenvalues). They call _gr_vec_apply_2x2.

Cite this page

The FLINT team, “gr_mat_apply_2x2_rows, gr_mat_apply_2x2_cols (gr_mat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/gr_mat/gr_mat_apply_2x2_rows.html (generated 2026-11-07).