MCPcopy Create free account
hub / github.com/Singular/Singular / maGetMaxExp

Function maGetMaxExp

kernel/maps/fast_maps.cc:63–93  ·  view source on GitHub ↗

returns maximal exponent if map_id is applied to pi_id

Source from the content-addressed store, hash-verified

61
62// returns maximal exponent if map_id is applied to pi_id
63static unsigned long maGetMaxExp(ideal pi_id, ring pi_r, ideal map_id, ring map_r)
64{
65 unsigned long max=0;
66 poly* max_map_monomials = (poly*) omAlloc(IDELEMS(map_id)*sizeof(poly));
67 poly max_pi_i, max_map_i;
68
69 int i;
70 for (i=0; i<IDELEMS(map_id); i++)
71 {
72 max_map_monomials[i] = p_GetMaxExpP(map_id->m[i], map_r);
73 }
74
75 for (i=0; i<IDELEMS(pi_id); i++)
76 {
77 max_pi_i = p_GetMaxExpP(pi_id->m[i], pi_r);
78 max_map_i = maGetMaxExpP(max_map_monomials, IDELEMS(map_id), map_r,
79 max_pi_i, pi_r);
80 unsigned long temp = p_GetMaxExp(max_map_i, map_r);
81 if (temp > max){ max=temp; }
82
83 p_LmFree(max_pi_i, pi_r);
84 p_LmFree(max_map_i, map_r);
85 }
86 for (i=0; i<IDELEMS(map_id); i++)
87 {
88 p_LmFree(&max_map_monomials[i], map_r);
89 }
90 omFreeSize(max_map_monomials,IDELEMS(map_id)*sizeof(poly));
91
92 return max;
93}
94
95
96/*******************************************************************************

Callers 1

maMap_CreateRingsFunction · 0.85

Calls 4

p_GetMaxExpPFunction · 0.85
maGetMaxExpPFunction · 0.85
p_GetMaxExpFunction · 0.85
p_LmFreeFunction · 0.85

Tested by

no test coverage detected