Macaulay2 Engine
Loading...
Searching...
No Matches

◆ DMat() [3/3]

template<typename ACoeffRing>
DMat< ACoeffRing >::DMat ( const DMat< ACoeffRing > & M)
inline

Definition at line 97 of file dmat.hpp.

98 : mRing(&M.ring()),
101 {
102 size_t len = mNumRows * mNumColumns;
103 if (len == 0)
104 mArray = nullptr;
105 else
106 {
108 for (size_t i = 0; i < len; i++)
109 {
110 ring().init(mArray[i]);
111 ring().set_zero(mArray[i]);
112 }
114 for (size_t r=0; r < mNumRows; ++r)
115 {
116 mRowPointers.push_back(next);
117 next += mNumColumns;
118 }
119 for (size_t r = 0; r < mNumRows; ++r)
120 for (size_t c = 0; c < mNumColumns; ++c)
121 ring().init_set(entry(r,c), M.entry(r,c));
122 }
123 }
size_t numRows() const
Definition dmat.hpp:144
size_t mNumColumns
Definition dmat.hpp:176
const ACoeffRing * mRing
Definition dmat.hpp:174
std::vector< ElementType * > mRowPointers
Definition dmat.hpp:178
ElementType * mArray
Definition dmat.hpp:177
ElementType & entry(size_t row, size_t column)
Definition dmat.hpp:148
size_t mNumRows
Definition dmat.hpp:175
const ACoeffRing & ring() const
Definition dmat.hpp:143
ACoeffRing::ElementType ElementType
Definition dmat.hpp:65
size_t numColumns() const
Definition dmat.hpp:145
Definition dmat.hpp:62
#define newarray(T, len)
Definition newdelete.hpp:82