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

Function TranPertVector

Singular/walk.cc:3596–3735  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3594 ************************************************************************/
3595#if 0
3596static intvec* TranPertVector(ideal G, intvec* iva)
3597{
3598 BOOLEAN nError = Overflow_Error;
3599 Overflow_Error = FALSE;
3600
3601 int i, j;
3602 // int nG = IDELEMS(G);
3603 int nV = currRing->N;
3604
3605 // define the sequence which expresses the current monomial ordering
3606 // w_1 = iva; w_2 = (1,0,..,0); w_n = (0,...,0,1,0)
3607 intvec* ivMat = MivMatrixOrder(iva);
3608
3609 int mtmp, m=(*iva)[0];
3610
3611 for(i=ivMat->length(); i>=0; i--)
3612 {
3613 mtmp = (*ivMat)[i];
3614 if(mtmp <0)
3615 {
3616 mtmp = -mtmp;
3617 }
3618 if(mtmp > m)
3619 {
3620 m = mtmp;
3621 }
3622 }
3623
3624 // define the maximal total degree of polynomials of G
3625 mpz_t ndeg;
3626 mpz_init(ndeg);
3627
3628 // 12 Juli 03
3629#ifndef UPPER_BOUND
3630 mpz_set_si(ndeg, Trandegreebound(G)+1);
3631#else
3632 mpz_t ztmp;
3633 mpz_init(ztmp);
3634
3635 mpz_t maxdeg;
3636 mpz_init_set_si(maxdeg, Trandegreebound(G));
3637
3638 //ndeg = (2*maxdeg*maxdeg + (nV+1)*maxdeg)*m;//Kalkbrenner (1999)
3639 mpz_pow_ui(ztmp, maxdeg, 2);
3640 mpz_mul_ui(ztmp, ztmp, 2);
3641 mpz_mul_ui(maxdeg, maxdeg, nV+1);
3642 mpz_add(ndeg, ztmp, maxdeg);
3643 mpz_mul_ui(ndeg, ndeg, m);
3644
3645 mpz_clear(ztmp);
3646
3647 //PrintS("\n// with the new upper degree bound (2d^2+(n+1)d)*m ");
3648 //Print("\n// where d = %d, n = %d and bound = %d", maxdeg, nV, ndeg);
3649#endif //UPPER_BOUND
3650
3651#ifdef INVEPS_SMALL_IN_TRAN
3652 if(mpz_cmp_ui(ndeg, nV)>0 && nV > 3)
3653 {

Callers

nothing calls this directly

Calls 5

MivMatrixOrderFunction · 0.85
PrintSFunction · 0.85
ivStringFunction · 0.85
PrintFunction · 0.50
lengthMethod · 0.45

Tested by

no test coverage detected