FLINT3.7.0-dev

GR_MAT_TMP_INIT_SHALLOW_TRANSPOSE, GR_MAT_SHALLOW_TRANSPOSE, GR_MAT_TMP_CLEAR_SHALLOW_TRANSPOSE

Synopsis#include <flint/gr_mat.h>
GR_MAT_TMP_INIT_SHALLOW_TRANSPOSE(AT, A, ctx)source
GR_MAT_SHALLOW_TRANSPOSE(AT, A, ctx)source
GR_MAT_TMP_CLEAR_SHALLOW_TRANSPOSE(AT, ctx)source

GR_MAT_TMP_INIT_SHALLOW_TRANSPOSE makes AT a temporary transpose of A whose entries are shallow copies (sharing heap data) of those of A, allocated on the stack when small. It can be read like a window, and written to provided that the changes are copied back with GR_MAT_SHALLOW_TRANSPOSE(A, AT, ctx), which copies the transpose of its second argument shallowly into its first (the two must not be aliased). GR_MAT_TMP_CLEAR_SHALLOW_TRANSPOSE frees the temporary without clearing the shared entries. The classical multiplication uses this to turn the columns of the right factor into contiguous vectors for dot products.

Cite this page

The FLINT team, “GR_MAT_TMP_INIT_SHALLOW_TRANSPOSE, GR_MAT_SHALLOW_TRANSPOSE, GR_MAT_TMP_CLEAR_SHALLOW_TRANSPOSE (gr_mat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/gr_mat/GR_MAT_TMP_INIT_SHALLOW_TRANSPOSE.html (generated 2026-10-20).