3#ifndef _dmat_gf_flint_big_hpp_
4#define _dmat_gf_flint_big_hpp_
45#include <M2/gc-include.h>
47#pragma GCC diagnostic push
48#pragma GCC diagnostic ignored "-Wconversion"
49#include <flint/fq_nmod_mat.h>
50#pragma GCC diagnostic pop
52template <
typename ACoeffRing>
83 fq_nmod_mat_init(
mArray, nrows, ncols,
ring().flintContext());
104 return fq_nmod_mat_nrows(
mArray,
ring().flintContext());
108 return fq_nmod_mat_ncols(
mArray,
ring().flintContext());
113 return *fq_nmod_mat_entry(
mArray, row, column);
117 return *fq_nmod_mat_entry(
mArray, row, column);
120 void resize(
size_t new_nrows,
size_t new_ncols)
122 DMat newMatrix(
ring(), new_nrows, new_ncols);
M2::ARingGFFlintBig — arbitrary-degree GF(p^k) via FLINT fq_nmod.
const ElementType * unsafeArray() const
void resize(size_t new_nrows, size_t new_ncols)
ACoeffRing::ElementType ElementType
M2::ARingGFFlintBig ACoeffRing
fq_nmod_mat_t & fq_nmod_mat()
const ACoeffRing & ring() const
size_t numColumns() const
ElementType & entry(size_t row, size_t column)
DMat(const ACoeffRing &R, size_t nrows, size_t ncols)
const fq_nmod_mat_t & fq_nmod_mat() const
DMat(const DMat< ACoeffRing > &M)
void swap(DMat< ACoeffRing > &M)
ElementType *& unsafeArray()
const ElementType & entry(size_t row, size_t column) const
const ACoeffRing & ring() const
fq_nmod_struct ElementType
aring-style adapter for FLINT's polynomial-quotient representation of finite fields GF(p^n) that are ...
void swap(mpfr::mpreal &x, mpfr::mpreal &y)