Changeset da408f in git for Singular/mpr_inout.cc


Ignore:
Timestamp:
Jul 8, 1999, 12:18:13 PM (24 years ago)
Author:
Moritz Wenk <wenk@…>
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
b719a30005f8bcbcca9d638b7908dda038ffee56
Parents:
4deddb979be065737d63e926fc05f264a6b1078a
Message:
*wenk: changed uressolve CMD_3 -> CMD_M (4)
	       laguerre  CMD2_ -> CMD_3
       removed "setFloatDigits" in extra.cc
       fixed output (2.2e33 -> 2.2e+33)
       adapted solve.lib to uressolve, laguerre, extended examples


git-svn-id: file:///usr/local/Singular/svn/trunk@3247 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/mpr_inout.cc

    r4deddb rda408f  
    33****************************************/
    44
    5 /* $Id: mpr_inout.cc,v 1.3 1999-06-29 09:03:45 wenk Exp $ */
     5/* $Id: mpr_inout.cc,v 1.4 1999-07-08 10:18:12 wenk Exp $ */
    66
    77/*
     
    166166//<-
    167167
    168 //-> BOOLEAN nuUResSolve( leftv res, leftv arg1, leftv arg2, leftv arg3 )
    169 BOOLEAN nuUResSolve( leftv res, leftv arg1, leftv arg2, leftv arg3 )
    170 {
     168//-> BOOLEAN nuUResSolve( leftv res, leftv args )
     169BOOLEAN nuUResSolve( leftv res, leftv args )
     170{
     171  leftv v= args;
     172
    171173  ideal gls;
    172   gls= (ideal)(arg1->Data());
    173   int imtype= (int)arg2->Data();
    174   int howclean= (int)arg3->Data();
     174  int imtype;
     175  int howclean;
     176
     177  // get ideal
     178  if ( v->Typ() != IDEAL_CMD )
     179    return TRUE;
     180  else gls= (ideal)(args->Data());
     181  v= v->next;
     182
     183  // get resultant matrix type to use (0,1)
     184  if ( v->Typ() != INT_CMD )
     185    return TRUE;
     186  else imtype= (int)v->Data();
     187  v= v->next;
     188
     189  // get and set precision in digits ( > 0 )
     190  if ( v->Typ() != INT_CMD )
     191    return TRUE;
     192  else if ( !(rField_is_R()||rField_is_long_R()||rField_is_long_C()) )
     193  {
     194    setGMPFloatDigits( (unsigned long int)v->Data() );
     195  }
     196  v= v->next;
     197
     198  // get interpolation steps (0,1,2)
     199  if ( v->Typ() != INT_CMD )
     200    return TRUE;
     201  else howclean= (int)v->Data();
    175202
    176203  uResultant::resMatType mtype= determineMType( imtype );
     
    181208  BOOLEAN interpolate_det= (mtype==uResultant::denseResMat)?TRUE:FALSE;
    182209
    183   emptylist= (lists)Alloc( sizeof(slists) );
    184   emptylist->Init( 0 );
    185 
    186   res->rtyp = LIST_CMD;
    187   res->data= (void *)emptylist;
     210  //emptylist= (lists)Alloc( sizeof(slists) );
     211  //emptylist->Init( 0 );
     212
     213  //res->rtyp = LIST_CMD;
     214  //res->data= (void *)emptylist;
    188215
    189216  TIMING_START(mpr_overall);
    190217
    191218  // check input ideal ( = polynomial system )
    192   if ( mprIdealCheck( gls, arg1->Name(), mtype ) != mprOk )
     219  if ( mprIdealCheck( gls, args->Name(), mtype ) != mprOk )
    193220  {
    194221    return TRUE;
     
    265292  else
    266293  {
    267     WerrorS("Solver was unable to find any root!");
     294    WerrorS("Solver was unable to find any roots!");
    268295    return TRUE;
    269296  }
     
    283310  res->data= (void *)listofroots;
    284311
    285   emptylist->Clean();
    286   //Free( (ADDRESS) emptylist, sizeof(slists) );
     312  //emptylist->Clean();
     313  //  Free( (ADDRESS) emptylist, sizeof(slists) );
    287314
    288315  TIMING_EPR(mpr_overall,"overall time\t\t")
     
    318345//<-
    319346
    320 //-> BOOLEAN nuLagSolve( leftv res, leftv arg1, leftv arg2 )
    321 BOOLEAN nuLagSolve( leftv res, leftv arg1, leftv arg2 )
     347//-> BOOLEAN nuLagSolve( leftv res, leftv arg1, leftv arg2, leftv arg3 )
     348BOOLEAN nuLagSolve( leftv res, leftv arg1, leftv arg2, leftv arg3 )
    322349{
    323350
    324351  poly gls;
    325352  gls= (poly)(arg1->Data());
    326   int howclean= (int)arg2->Data();
     353  int howclean= (int)arg3->Data();
     354
     355  if ( !(rField_is_R()||rField_is_long_R()||rField_is_long_C()) )
     356  {
     357    setGMPFloatDigits( (unsigned long int)arg2->Data() );
     358  }
    327359
    328360  int deg= pTotaldegree( gls );
Note: See TracChangeset for help on using the changeset viewer.