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

Method generateMonoms

kernel/numeric/mpr_base.cc:2187–2225  ·  view source on GitHub ↗

mprSTICKYPROT: ST_DENSE_MEM: more mem allocated ST_DENSE_NMON: new monom added

Source from the content-addressed store, hash-verified

2185// ST_DENSE_MEM: more mem allocated
2186// ST_DENSE_NMON: new monom added
2187void resMatrixDense::generateMonoms( poly mm, int var, int deg )
2188{
2189 if ( deg == 0 )
2190 {
2191 poly mon = pCopy( mm );
2192
2193 if ( numVectors == veclistmax )
2194 {
2195 resVectorList= (resVector * )omReallocSize( resVectorList,
2196 (veclistmax) * sizeof( resVector ),
2197 (veclistmax + veclistblock) * sizeof( resVector ) );
2198 int k;
2199 for ( k= veclistmax; k < (veclistmax + veclistblock); k++ )
2200 resVectorList[k].init();
2201 veclistmax+= veclistblock;
2202 mprSTICKYPROT(ST_DENSE_MEM);
2203
2204 }
2205 resVectorList[numVectors].init( mon );
2206 numVectors++;
2207 mprSTICKYPROT(ST_DENSE_NMON);
2208 return;
2209 }
2210 else
2211 {
2212 if ( var == (currRing->N)+1 ) return;
2213 poly newm = pCopy( mm );
2214 while ( deg >= 0 )
2215 {
2216 generateMonoms( newm, var+1, deg );
2217 pIncrExp( newm, var );
2218 pSetm( newm );
2219 deg--;
2220 }
2221 pDelete( & newm );
2222 }
2223
2224 return;
2225}
2226
2227void resMatrixDense::generateMonomData( int deg, intvec* polyDegs , intvec* iVO )
2228{

Callers

nothing calls this directly

Calls 2

generateMonomsFunction · 0.85
initMethod · 0.45

Tested by

no test coverage detected