3#ifndef _dmat_zzp_flint_hpp_
4#define _dmat_zzp_flint_hpp_
44#include <M2/gc-include.h>
46#pragma GCC diagnostic push
47#pragma GCC diagnostic ignored "-Wconversion"
48#include <flint/nmod_mat.h>
49#pragma GCC diagnostic pop
51template <
typename ACoeffRing>
107 return nmod_mat_entry(
mArray, row, column);
111 return nmod_mat_entry(
mArray, row, column);
114 void resize(
size_t new_nrows,
size_t new_ncols)
116 DMat newMatrix(
ring(), new_nrows, new_ncols);
M2::ARingZZpFlint — Z/p via FLINT's nmod_t precomputed-reciprocal reduction.
void swap(DMat< ACoeffRing > &M)
ElementType *& unsafeArray()
ACoeffRing::ElementType ElementType
const ElementType & entry(size_t row, size_t column) const
DMat(const DMat< ACoeffRing > &M)
ElementType & entry(size_t row, size_t column)
void resize(size_t new_nrows, size_t new_ncols)
size_t numColumns() const
const ACoeffRing & ring() const
ACoeffRing::Element Element
const ElementType * unsafeArray() const
M2::ARingZZpFlint ACoeffRing
DMat(const ACoeffRing &R, size_t nrows, size_t ncols)
const nmod_mat_t & nmod_mat() const
const ACoeffRing & ring() const
size_t characteristic() const
aring-style adapter for Z/p with p a word-size prime, backed by FLINT's nmod_* routines.
void swap(mpfr::mpreal &x, mpfr::mpreal &y)