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

Function hIndMult

kernel/combinatorics/hdegree.cc:382–433  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

380}
381
382void hIndMult(scmon pure, int Npure, scfmon rad, int Nrad,
383 varset var, int Nvar)
384{
385 int dn, iv, rad0, b, c, x;
386 scmon pn;
387 scfmon rn;
388 if (Nrad < 2)
389 {
390 dn = Npure + Nrad;
391 if (dn == hCo)
392 {
393 if (Nrad==0)
394 hIndep(pure);
395 else
396 {
397 pn = *rad;
398 for (iv = Nvar; iv!=0; iv--)
399 {
400 x = var[iv];
401 if (pn[x])
402 {
403 pure[x] = 1;
404 hIndep(pure);
405 pure[x] = 0;
406 }
407 }
408 }
409 }
410 return;
411 }
412 iv = Nvar;
413 dn = Npure+1;
414 if (dn >= hCo)
415 {
416 if (dn > hCo)
417 return;
418 loop
419 {
420 if(!pure[var[iv]])
421 {
422 if(hNotZero(rad, Nrad, var, iv))
423 {
424 pure[var[iv]] = 1;
425 hIndep(pure);
426 pure[var[iv]] = 0;
427 }
428 }
429 iv--;
430 if (!iv)
431 return;
432 }
433 }
434 while(pure[var[iv]]) iv--;
435 hStepR(rad, Nrad, var, iv, &rad0);
436 iv--;

Callers 2

scIndIndsetFunction · 0.85
hdegree.ccFile · 0.85

Calls 3

hIndepFunction · 0.85
hNotZeroFunction · 0.85
ifFunction · 0.50

Tested by

no test coverage detected