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

Function nuUResSolve

Singular/ipshell.cc:4917–5071  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4915}
4916
4917BOOLEAN nuUResSolve( leftv res, leftv args )
4918{
4919 leftv v= args;
4920
4921 ideal gls;
4922 int imtype;
4923 int howclean;
4924
4925 // get ideal
4926 if ( v->Typ() != IDEAL_CMD )
4927 return TRUE;
4928 else gls= (ideal)(v->Data());
4929 v= v->next;
4930
4931 // get resultant matrix type to use (0,1)
4932 if ( v->Typ() != INT_CMD )
4933 return TRUE;
4934 else imtype= (int)(long)v->Data();
4935 v= v->next;
4936
4937 if (imtype==0)
4938 {
4939 ideal test_id=idInit(1,1);
4940 int j;
4941 for(j=IDELEMS(gls)-1;j>=0;j--)
4942 {
4943 if (gls->m[j]!=NULL)
4944 {
4945 test_id->m[0]=gls->m[j];
4946 intvec *dummy_w=id_QHomWeight(test_id, currRing);
4947 if (dummy_w!=NULL)
4948 {
4949 WerrorS("Newton polytope not of expected dimension");
4950 delete dummy_w;
4951 return TRUE;
4952 }
4953 }
4954 }
4955 }
4956
4957 // get and set precision in digits ( > 0 )
4958 if ( v->Typ() != INT_CMD )
4959 return TRUE;
4960 else if ( !(rField_is_R(currRing) || rField_is_long_R(currRing) || \
4961 rField_is_long_C(currRing)) )
4962 {
4963 unsigned long int ii=(unsigned long int)v->Data();
4964 setGMPFloatDigits( ii, ii );
4965 }
4966 v= v->next;
4967
4968 // get interpolation steps (0,1,2)
4969 if ( v->Typ() != INT_CMD )
4970 return TRUE;
4971 else howclean= (int)(long)v->Data();
4972
4973 uResultant::resMatType mtype= determineMType( imtype );
4974 int i,count;

Callers

nothing calls this directly

Calls 15

idInitFunction · 0.85
id_QHomWeightFunction · 0.85
WerrorSFunction · 0.85
rField_is_RFunction · 0.85
rField_is_long_RFunction · 0.85
rField_is_long_CFunction · 0.85
setGMPFloatDigitsFunction · 0.85
determineMTypeFunction · 0.85
mprIdealCheckFunction · 0.85
PrintSFunction · 0.85
pWriteFunction · 0.85
listOfRootsFunction · 0.85

Tested by

no test coverage detected