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

◆ direct_sum()

FreeModule * FreeModule::direct_sum ( const FreeModule * G) const

Definition at line 244 of file freemod.cpp.

246{
247 int i;
248 if (R != G->get_ring())
249 {
250 ERROR("expected free modules over the same ring");
251 return nullptr;
252 }
254 for (i = 0; i < rank(); i++) result->append(degree(i));
255 for (i = 0; i < G->rank(); i++) result->append(G->degree(i));
256
257 // if (schreyer != NULL && G->schreyer != NULL)
258 // result->schreyer = schreyer->direct_sum(G->schreyer);
259
260 return result;
261}
virtual FreeModule * new_free() const
Definition freemod.cpp:125
const_monomial degree(int i) const
Definition freemod.hpp:104
FreeModule(const Ring *R, int n, bool has_schreyer_order)
Definition freemod.cpp:32
const Ring * R
Definition freemod.hpp:75
int rank() const
Definition freemod.hpp:105
const int ERROR
Definition m2-mem.cpp:55
VALGRIND_MAKE_MEM_DEFINED & result(result)
tbb::flow::graph G

References degree(), ERROR, FreeModule(), G, new_free(), R, rank(), and result().

Referenced by IM2_FreeModule_sum().