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

◆ remake() [1/2]

const Matrix * Matrix::remake ( const FreeModule * target) const

Definition at line 260 of file matrix.cpp.

261{
262 if (n_rows() != target->rank())
263 {
264 ERROR("wrong number of rows");
265 return nullptr;
266 }
267 const Ring *R = get_ring();
268 if (R != target->get_ring())
269 {
270 ERROR("expected same ring");
271 return nullptr;
272 }
273
274 MatrixConstructor mat(target, n_cols());
275 for (int i = 0; i < n_cols(); i++)
276 mat.set_column(i, R->copy_vec(mEntries[i]));
277 mat.compute_column_degrees();
278 return mat.to_matrix();
279}
const Ring * get_ring() const
Definition freemod.hpp:102
int rank() const
Definition freemod.hpp:105
const Ring * get_ring() const
Definition matrix.hpp:134
friend class MatrixConstructor
Definition matrix.hpp:76
int n_cols() const
Definition matrix.hpp:147
int n_rows() const
Definition matrix.hpp:146
vec copy_vec(const vecterm *v) const
Definition ring-vecs.cpp:91
const int ERROR
Definition m2-mem.cpp:55

References MatrixConstructor::compute_column_degrees(), Ring::copy_vec(), ERROR, FreeModule, FreeModule::get_ring(), get_ring(), Matrix(), MatrixConstructor, mEntries, n_cols(), n_rows(), FreeModule::rank(), remake(), MatrixConstructor::set_column(), and MatrixConstructor::to_matrix().