FreeModule *value() { if (symm1_result == 0) { symm1_result = F->get_ring()->make_FreeModule(); if (n >= 0) { symm1_deg = D->make_one(); symm1(0, n); D->remove(symm1_deg); } } return symm1_result; }
SchreyerOrder *value() { if (symm1_result == 0) { symm1_result = SchreyerOrder::create(M); if (n >= 0) { symm1_base = M->make_one(); symm1(0, n); M->remove(symm1_base); } } return symm1_result; }