Changeset 1d92bf in git


Ignore:
Timestamp:
May 8, 2012, 2:51:57 PM (12 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
fefaa8ebeb7a4ac9c586d3f248d03e8578febd79
Parents:
e699d86f1d122e6f33ebbdf5cd73abd7985274e2
git-author:
Martin Lee <martinlee84@web.de>2012-05-08 14:51:57+02:00
git-committer:
Martin Lee <martinlee84@web.de>2012-05-11 11:06:45+02:00
Message:
chg: deleted abs_fac outside of factory
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/extra.cc

    re699d8 r1d92bf  
    117117#ifdef HAVE_SPECTRUM
    118118#include <kernel/spectrum.h>
    119 #endif
    120 
    121 #ifdef HAVE_BIFAC
    122 #include <bifac.h>
    123119#endif
    124120
     
    34823478      }
    34833479      else
    3484   /*==================== bifac =================*/
    3485   #ifdef HAVE_BIFAC
    3486       if (strcmp(sys_cmd, "bifac")==0)
    3487       {
    3488         if (h->Typ()!=POLY_CMD)
    3489         {
    3490           WerrorS("`system(\"bifac\",<poly>) expected");
    3491           return TRUE;
    3492         }
    3493         if (!rField_is_Q(currRing))
    3494         {
    3495           WerrorS("coeff field must be Q");
    3496           return TRUE;
    3497         }
    3498         BIFAC B;
    3499         CFFList C;
    3500         int sw_rat=isOn(SW_RATIONAL);
    3501         On(SW_RATIONAL);
    3502         CanonicalForm F( convSingPClapP((poly)(h->Data()), currRing));
    3503         B.bifac(F, 1);
    3504         CFFList L=B.getFactors();
    3505         // construct the ring ==============================================
    3506         int i;
    3507         int lev=ExtensionLevel();
    3508         char **names=(char**)omAlloc0(lev*sizeof(char_ptr));
    3509         for(i=1;i<=lev; i++)
    3510         {
    3511           StringSetS("");
    3512           names[i-1]=omStrDup(StringAppend("a(%d)",i));
    3513         }
    3514         ring alg_ring=rDefault(0,lev,names);
    3515         ring new_ring=rCopy0(currRing); // all variable names, ordering etc.
    3516         new_ring->P=lev;
    3517         new_ring->parameter=names;
    3518         new_ring->extRing=alg_ring;
    3519         new_ring->ch=1; // WTF!!??? :(
    3520         rComplete(new_ring,TRUE);
    3521         // set the mipo ===============================================
    3522         ring save_currRing=currRing; idhdl save_currRingHdl=currRingHdl;
    3523         rChangeCurrRing(alg_ring);
    3524         ideal mipo_id=idInit(lev,1);
    3525         for (i=lev; i>0;i--)
    3526         {
    3527           CanonicalForm Mipo=getMipo(Variable(-i),Variable(i));
    3528           mipo_id->m[i-1]=convClapPSingP(Mipo);
    3529         }
    3530         idShow(mipo_id);
    3531         alg_ring->qideal=mipo_id;
    3532         rChangeCurrRing(new_ring);
    3533         for (i=lev-1; i>=0;i--)
    3534         {
    3535           poly p=pOne();
    3536           lnumber n=(lnumber)pGetCoeff(p);
    3537           // no need to delete nac 1
    3538           n->z=(napoly)mipo_id->m[i];
    3539           mipo_id->m[i]=p;
    3540         }
    3541         new_ring->qideal=id_Copy(alg_ring->qideal,new_ring);
    3542         // convert factors =============================================
    3543         ideal fac_id=idInit(L.length(),1);
    3544         CFFListIterator J=L;
    3545         i=0;
    3546         intvec *v = new intvec( L.length() );
    3547         for ( ; J.hasItem(); J++,i++ )
    3548         {
    3549           fac_id->m[i]=convClapAPSingAP( J.getItem().factor() );
    3550           (*v)[i]=J.getItem().exp();
    3551         }
    3552         idhdl hh=enterid("factors",0,LIST_CMD,&(currRing->idroot),FALSE);
    3553         lists LL=(lists)omAllocBin( slists_bin);
    3554         LL->Init(2);
    3555         LL->m[0].rtyp=IDEAL_CMD;
    3556         LL->m[0].data=(char *)fac_id;
    3557         LL->m[1].rtyp=INTVEC_CMD;
    3558         LL->m[1].data=(char *)v;
    3559         IDDATA(hh)=(char *)LL;
    3560 
    3561         rChangeCurrRing(save_currRing);
    3562         currRingHdl=save_currRingHdl;
    3563         if (!sw_rat) Off(SW_RATIONAL);
    3564 
    3565         res->data=new_ring;
    3566         res->rtyp=RING_CMD;
    3567         return FALSE;
    3568       }
    3569       else
    3570   #endif
    35713480  /*==================== gcd-varianten =================*/
    35723481  #ifdef HAVE_FACTORY
Note: See TracChangeset for help on using the changeset viewer.