|
Macaulay2 Engine
|
DMat<M2::ARingGFFlint> — dense GF matrices stored in a FLINT fq_zech_mat_t. More...
#include <utility>#include "aring-gf-flint.hpp"#include <M2/gc-include.h>#include <flint/fq_nmod_mat.h>#include <flint/fq_zech_mat.h>Go to the source code of this file.
Classes | |
| class | DMat< M2::ARingGFFlint > |
| Specialisation of DMat for ARingGFFlint matrices, backed by FLINT's fq_zech_mat (Zech-log) routines. More... | |
DMat<M2::ARingGFFlint> — dense GF matrices stored in a FLINT fq_zech_mat_t.
Specialises the dense-matrix template for the small-q Galois-field aring ARingGFFlint. Storage is a single fq_zech_mat_t mArray whose entries are Zech log indices shared with the aring; the class exposes the standard DMat surface (ring(), numRows, numColumns, entry(r, c) via fq_zech_mat_entry, resize, swap) plus a raw fq_zech_mat() accessor and the unsafeArray() direct-pointer hook for consumers that need to hand the underlying buffer back to FLINT. All fq_zech_mat_* API calls take the ring().flintContext() so the constructors and destructor thread it through.
Arithmetic and the LU / rank / solve paths are not declared in this header — consumers (the LU specialisations in dmat-lu-inplace.hpp and the mat-linalg.hpp family) reach into fq_zech_mat() and call the FLINT routines directly. The companion dmat-gf-flint-big.hpp covers the polynomial- quotient (fq_nmod_mat_t) representation used by ARingGFFlintBig; the user picks between the two at ring construction time through the separate rawARingGaloisFieldFlintZech and rawARingGaloisFieldFlintBig entry points (no in-engine auto-fallback). The required M2/gc-include.h shim precedes the FLINT headers so the allocator routes through bdwgc.
Definition in file dmat-gf-flint.hpp.