Changeset 7028cd in git


Ignore:
Timestamp:
Oct 4, 2016, 3:55:46 PM (8 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
307c218553724983c9c153d9c59e48cabb736455
Parents:
13fcd43bdff18bca81a901df63fe90d0f0f3d178
Message:
reduce_bound: sort extra.cc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/extra.cc

    r13fcd4 r7028cd  
    334334    }
    335335    else
    336     #if 0
    337     if(strcmp(sys_cmd,"power1")==0)
    338     {
    339       res->rtyp=POLY_CMD;
    340       poly f=(poly)h->CopyD();
    341       poly g=pPower(f,2000);
    342       res->data=(void *)g;
    343       return FALSE;
    344     }
    345     else
    346     if(strcmp(sys_cmd,"power2")==0)
    347     {
    348       res->rtyp=POLY_CMD;
    349       poly f=(poly)h->Data();
    350       poly g=pOne();
    351       for(int i=0;i<2000;i++)
    352         g=pMult(g,pCopy(f));
    353       res->data=(void *)g;
    354       return FALSE;
    355     }
    356     if(strcmp(sys_cmd,"power3")==0)
    357     {
    358       res->rtyp=POLY_CMD;
    359       poly f=(poly)h->Data();
    360       poly p2=pMult(pCopy(f),pCopy(f));
    361       poly p4=pMult(pCopy(p2),pCopy(p2));
    362       poly p8=pMult(pCopy(p4),pCopy(p4));
    363       poly p16=pMult(pCopy(p8),pCopy(p8));
    364       poly p32=pMult(pCopy(p16),pCopy(p16));
    365       poly p64=pMult(pCopy(p32),pCopy(p32));
    366       poly p128=pMult(pCopy(p64),pCopy(p64));
    367       poly p256=pMult(pCopy(p128),pCopy(p128));
    368       poly p512=pMult(pCopy(p256),pCopy(p256));
    369       poly p1024=pMult(pCopy(p512),pCopy(p512));
    370       poly p1536=pMult(p1024,p512);
    371       poly p1792=pMult(p1536,p256);
    372       poly p1920=pMult(p1792,p128);
    373       poly p1984=pMult(p1920,p64);
    374       poly p2000=pMult(p1984,p16);
    375       res->data=(void *)p2000;
    376       pDelete(&p2);
    377       pDelete(&p4);
    378       pDelete(&p8);
    379       //pDelete(&p16);
    380       pDelete(&p32);
    381       //pDelete(&p64);
    382       //pDelete(&p128);
    383       //pDelete(&p256);
    384       //pDelete(&p512);
    385       //pDelete(&p1024);
    386       //pDelete(&p1536);
    387       //pDelete(&p1792);
    388       //pDelete(&p1920);
    389       //pDelete(&p1984);
    390       return FALSE;
    391     }
    392     else
    393     #endif
     336/*========reduce procedure like the global one but with jet bounds=======*/
     337    if(strcmp(sys_cmd,"reduce_bound")==0)
     338    {
     339      poly p;
     340      ideal pid;
     341      ideal q;
     342      int bound;
     343      int htype;
     344      const short t1[]={3,POLY_CMD,IDEAL_CMD,INT_CMD};
     345      const short t2[]={3,IDEAL_CMD,IDEAL_CMD,INT_CMD};
     346      const short t3[]={3,VECTOR_CMD,MODUL_CMD,INT_CMD};
     347      const short t4[]={3,VECTOR_CMD,MODUL_CMD,INT_CMD};
     348      if (iiCheckTypes(h,t1,0))
     349      {
     350        p = (poly)h->CopyD();
     351        htype = POLY_CMD;
     352        q = (ideal)h-->next->CopyD();
     353        bound = (long)h->next->next->CopyD();
     354      }
     355      else if  (iiCheckTypes(h,t2,0))
     356      {
     357        pid = (ideal)h->CopyD();
     358        htype = IDEAL_CMD;
     359        q = (ideal)h-->next->CopyD();
     360        bound = (long)h->next->next->CopyD();
     361      }
     362      else if (iiCheckTypes(h,t3,0))
     363      {
     364        p = (poly)h->CopyD();
     365        htype = VECTOR_CMD;
     366        q = (ideal)h-->next->CopyD();
     367        bound = (long)h->next->next->CopyD();
     368      }
     369      else if  (iiCheckTypes(h,t4,1))
     370      {
     371        pid = (ideal)h->CopyD();
     372        htype = IDEAL_CMD;
     373        q = (ideal)h-->next->CopyD();
     374        bound = (long)h->next->next->CopyD();
     375      }
     376      else return TRUE;
     377      res->rtyp = htype;
     378      if(htype == POLY_CMD || htype == VECTOR_CMD)
     379        res->data = (char *)kNFBound(q,currRing->qideal,p,bound);
     380      if(htype == IDEAL_CMD || htype == MODUL_CMD)
     381        res->data = (char *)kNFBound(q,currRing->qideal,pid,bound);
     382      return FALSE;
     383    }
     384    else
    394385/*==================== uname ==================================*/
    395386    if(strcmp(sys_cmd,"uname")==0)
     
    38253816    }
    38263817    else
    3827     /*========reduce procedure like the global one but with jet bounds=================*/
    3828         if(strcmp(sys_cmd,"reduce_bound")==0)
    3829         {
    3830           poly p;
    3831           ideal pid;
    3832           ideal q;
    3833           int bound;
    3834           int htype;
    3835           if(h!= NULL && (h->Typ() == POLY_CMD) ||  (h->Typ() == VECTOR_CMD)
    3836                       || (h->Typ() == IDEAL_CMD) || (h->Typ() == MODUL_CMD))
    3837           {
    3838             if(h->Typ() == POLY_CMD)
    3839             {
    3840               p = (poly)h->CopyD();
    3841               htype = POLY_CMD;
    3842             }
    3843             if(h->Typ() == VECTOR_CMD)
    3844             {
    3845               p = (poly)h->CopyD();
    3846               htype = VECTOR_CMD;
    3847             }
    3848             if(h->Typ() == IDEAL_CMD)
    3849             {
    3850               pid = (ideal)h->CopyD();
    3851               htype = IDEAL_CMD;
    3852             }
    3853             if(h->Typ() == MODUL_CMD)
    3854             {
    3855               pid = (ideal)h->CopyD();
    3856               htype = MODUL_CMD;
    3857             }
    3858             h=h->next;
    3859           }
    3860           else return TRUE;
    3861           if(h!= NULL && (h->Typ() == IDEAL_CMD || h->Typ() == MODUL_CMD) )
    3862           {
    3863             q = (ideal)h->CopyD();
    3864             h=h->next;
    3865           }
    3866           else return TRUE;
    3867           if(h!= NULL && h->Typ() == INT_CMD)
    3868           {
    3869             bound = (long)h->CopyD();
    3870           }
    3871           else return TRUE;
    3872           res->rtyp = htype;
    3873           if(htype == POLY_CMD || htype == VECTOR_CMD)
    3874             res->data = (char *)kNFBound(q,currRing->qideal,p,bound);
    3875           if(htype == IDEAL_CMD || htype == MODUL_CMD)
    3876             res->data = (char *)kNFBound(q,currRing->qideal,pid,bound);
    3877           return FALSE;
    3878         }
    3879         else
     3818/*==================== power* ==================================*/
     3819    #if 0
     3820    if(strcmp(sys_cmd,"power1")==0)
     3821    {
     3822      res->rtyp=POLY_CMD;
     3823      poly f=(poly)h->CopyD();
     3824      poly g=pPower(f,2000);
     3825      res->data=(void *)g;
     3826      return FALSE;
     3827    }
     3828    else
     3829    if(strcmp(sys_cmd,"power2")==0)
     3830    {
     3831      res->rtyp=POLY_CMD;
     3832      poly f=(poly)h->Data();
     3833      poly g=pOne();
     3834      for(int i=0;i<2000;i++)
     3835        g=pMult(g,pCopy(f));
     3836      res->data=(void *)g;
     3837      return FALSE;
     3838    }
     3839    if(strcmp(sys_cmd,"power3")==0)
     3840    {
     3841      res->rtyp=POLY_CMD;
     3842      poly f=(poly)h->Data();
     3843      poly p2=pMult(pCopy(f),pCopy(f));
     3844      poly p4=pMult(pCopy(p2),pCopy(p2));
     3845      poly p8=pMult(pCopy(p4),pCopy(p4));
     3846      poly p16=pMult(pCopy(p8),pCopy(p8));
     3847      poly p32=pMult(pCopy(p16),pCopy(p16));
     3848      poly p64=pMult(pCopy(p32),pCopy(p32));
     3849      poly p128=pMult(pCopy(p64),pCopy(p64));
     3850      poly p256=pMult(pCopy(p128),pCopy(p128));
     3851      poly p512=pMult(pCopy(p256),pCopy(p256));
     3852      poly p1024=pMult(pCopy(p512),pCopy(p512));
     3853      poly p1536=pMult(p1024,p512);
     3854      poly p1792=pMult(p1536,p256);
     3855      poly p1920=pMult(p1792,p128);
     3856      poly p1984=pMult(p1920,p64);
     3857      poly p2000=pMult(p1984,p16);
     3858      res->data=(void *)p2000;
     3859      pDelete(&p2);
     3860      pDelete(&p4);
     3861      pDelete(&p8);
     3862      //pDelete(&p16);
     3863      pDelete(&p32);
     3864      //pDelete(&p64);
     3865      //pDelete(&p128);
     3866      //pDelete(&p256);
     3867      //pDelete(&p512);
     3868      //pDelete(&p1024);
     3869      //pDelete(&p1536);
     3870      //pDelete(&p1792);
     3871      //pDelete(&p1920);
     3872      //pDelete(&p1984);
     3873      return FALSE;
     3874    }
     3875    else
     3876    #endif
    38803877/*==================== Error =================*/
    38813878      Werror( "(extended) system(\"%s\",...) %s", sys_cmd, feNotImplemented );
Note: See TracChangeset for help on using the changeset viewer.