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

Method map

kernel/fglm/fglmzero.cc:142–174  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

140}
141
142void
143idealFunctionals::map( ring source )
144{
145 // maps from ring source to currentRing.
146 int var, col, row;
147 matHeader * colp;
148 matElem * elemp;
149 number newelem;
150
151 int * perm = (int *)omAlloc0( (_nfunc+1)*sizeof( int ) );
152 maFindPerm( source->names, source->N, NULL, 0, currRing->names,
153 currRing->N, NULL, 0, perm, NULL , currRing->cf->type);
154 nMapFunc nMap=n_SetMap( source->cf, currRing->cf);
155
156 matHeader ** temp = (matHeader **)omAlloc( _nfunc*sizeof( matHeader * ));
157 for ( var= 0; var < _nfunc; var ++ ) {
158 for ( col= 0, colp= func[var]; col < _size; col++, colp++ ) {
159 if ( colp->owner == TRUE ) {
160 for ( row= colp->size-1, elemp= colp->elems; row >= 0;
161 row--, elemp++ )
162 {
163 newelem= nMap( elemp->elem, source->cf, currRing->cf );
164 nDelete( & elemp->elem );
165 elemp->elem= newelem;
166 }
167 }
168 }
169 temp[ perm[var+1]-1 ]= func[var];
170 }
171 omFreeSize( (ADDRESS)func, _nfunc*sizeof( matHeader * ) );
172 omFreeSize( (ADDRESS)perm, (_nfunc+1)*sizeof( int ) );
173 func= temp;
174}
175
176matHeader *
177idealFunctionals::grow( int var )

Callers 1

fglmzeroFunction · 0.45

Calls 3

omAlloc0Function · 0.85
maFindPermFunction · 0.85
n_SetMapFunction · 0.85

Tested by

no test coverage detected