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

Function jjStdJanetBasis

Singular/wrapper.cc:50–133  ·  view source on GitHub ↗

flag: 0: JB, 1: SB

Source from the content-addressed store, hash-verified

48
49/// flag: 0: JB, 1: SB
50BOOLEAN jjStdJanetBasis(leftv res, leftv v, int flag)
51{
52 ideal result;
53
54 jList *T;
55 jList *Q;
56 ideal I=(ideal)v->Data();
57 BOOLEAN is_zero=TRUE;
58 for (int i=0; i < IDELEMS(I); i++)
59 {
60 if ((I->m[i]!=NULL)&& (pIsConstant(I->m[i])))
61 {
62 goto zero;
63 }
64 else
65 is_zero=FALSE;
66 }
67 if (is_zero)
68 goto zero;
69 if (!jInitBasis(I,&T,&Q))
70 {
71 int dpO=(strstr(rOrdStr(currRing),"dp")!=NULL);
72 int ideal_length;
73 if (flag==1)
74 ideal_length= dpO ? GB_length() : CountList(T);
75 else
76 ideal_length=CountList(T);
77
78 result=idInit(ideal_length,1);
79
80 int ideal_index=0;
81
82 LCI iT=T->root;
83
84 while(iT)
85 {
86 pTest(iT->info->root);
87 if ((flag==1) && dpO)
88 {
89 //if (pTotaldegree(iT->info->lead) == pTotaldegree(iT->info->history))
90 if (p_Deg(iT->info->lead,currRing) == p_Deg(iT->info->history,currRing))
91 {
92 result->m[ideal_length-ideal_index-1]=pCopy(iT->info->root);
93 if (!nGreaterZero(pGetCoeff(iT->info->root)))
94 result->m[ideal_length-ideal_index-1]
95 =pNeg(result->m[ideal_length-ideal_index-1]);
96
97 ideal_index++;
98 }
99 }
100 else
101 {
102 result->m[ideal_length-ideal_index-1]=pCopy(iT->info->root);
103 if (!nGreaterZero(pGetCoeff(iT->info->root)))
104 result->m[ideal_length-ideal_index-1]
105 =pNeg(result->m[ideal_length-ideal_index-1]);
106
107 ideal_index++;

Callers 2

jjJanetBasis2Function · 0.85
jjJanetBasisFunction · 0.85

Calls 10

jInitBasisFunction · 0.85
rOrdStrFunction · 0.85
GB_lengthFunction · 0.85
CountListFunction · 0.85
idInitFunction · 0.85
p_DegFunction · 0.85
kInterRedOldFunction · 0.85
idSkipZeroesFunction · 0.85
DestroyListFunction · 0.85
DataMethod · 0.45

Tested by

no test coverage detected