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

◆ scalar_mult()

Matrix * Matrix::scalar_mult ( const ring_elem r,
bool opposite_mult ) const

Definition at line 588 of file matrix.cpp.

589{
590 auto R = get_ring();
591 auto D = R->degree_monoid();
592 monomial deg = D->make_one();
593 if (!R->is_zero(r)) R->multi_degree(r, deg);
594 D->mult(deg, degree_shift(), deg);
595 MatrixConstructor mat(rows(), cols(), deg);
596 for (int i = 0; i < n_cols(); i++)
597 {
598 vec w = R->copy_vec(elem(i));
599 R->mult_vec_to(w, r, opposite_mult);
600 mat.set_column(i, w);
601 }
602 return mat.to_matrix();
603}
const_monomial degree_shift() const
Definition matrix.hpp:149
const Ring * get_ring() const
Definition matrix.hpp:134
ring_elem elem(int i, int j) const
Definition matrix.cpp:307
friend class MatrixConstructor
Definition matrix.hpp:76
int n_cols() const
Definition matrix.hpp:147
const FreeModule * rows() const
Definition matrix.hpp:144
const FreeModule * cols() const
Definition matrix.hpp:145
#define monomial
Definition gb-toric.cpp:11

References cols(), degree_shift(), elem(), get_ring(), Matrix(), MatrixConstructor, monomial, n_cols(), rows(), scalar_mult(), MatrixConstructor::set_column(), and MatrixConstructor::to_matrix().

Referenced by scalar_mult().