Definition at line 686 of file matrix.cpp.
687{
690 {
691 ERROR(
"module tensor: different base rings");
692 return nullptr;
693 }
699
701
702 int i, j, next = 0;
703
704 for (i = 0; i <
n_rows(); i++)
705 for (j = 0; j < m->
n_cols(); j++)
706 mat.set_column(next++, R->component_shift(i * m->
n_rows(), m->
elem(j)));
707
708 for (i = 0; i < m->
n_rows(); i++)
709 for (j = 0; j <
n_cols(); j++)
710 mat.set_column(next++, R->tensor_shift(m->
n_rows(), i,
elem(j)));
711 return mat.to_matrix();
712}
FreeModule * tensor(const FreeModule *G) const
void direct_sum_to(const FreeModule *G)
const Ring * get_ring() const
ring_elem elem(int i, int j) const
friend class MatrixConstructor
const FreeModule * rows() const
const FreeModule * cols() const
References cols(), elem(), ERROR, freemem(), FreeModule, G, get_ring(), Matrix(), MatrixConstructor, module_tensor(), n_cols(), n_rows(), rows(), MatrixConstructor::set_column(), FreeModule::tensor(), and MatrixConstructor::to_matrix().
Referenced by module_tensor(), and rawModuleTensor().