Changeset 0ea97e in git for Singular/ipshell.cc


Ignore:
Timestamp:
Jul 3, 2007, 3:21:21 PM (17 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
b7e8384e7eeb626a3997e284bf0432220287d24c
Parents:
f232a78ad1717a2c781b6ae4d83d9ac5600e5323
Message:
*hannes: fast_map can not map 0-ideals


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

Legend:

Unmodified
Added
Removed
  • Singular/ipshell.cc

    rf232a7 r0ea97e  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: ipshell.cc,v 1.160 2007-06-20 09:41:43 wienand Exp $ */
     4/* $Id: ipshell.cc,v 1.161 2007-07-03 13:21:21 Singular Exp $ */
    55/*
    66* ABSTRACT:
     
    716716      }
    717717      tmpW.data=IDDATA(w);
    718       #ifdef FAST_MAP
    719       if ((tmpW.rtyp==IDEAL_CMD) && (nMap==nCopy)
    720       #ifdef HAVE_PLURAL
    721       && (!rIsPluralRing(currRing))
    722       #endif
    723       )
    724       {
    725         v->rtyp=IDEAL_CMD;
    726         v->data=fast_map(IDIDEAL(w), IDRING(r), (ideal)theMap, currRing);
     718      if (((tmpW.rtyp==IDEAL_CMD)||(tmpW.rtyp==MODUL_CMD)) && idIs0(IDIDEAL(w)))
     719      {
     720        v->rtyp=tmpW.rtyp;
     721        v->data=idInit(IDELEMS(IDIDEAL(w)),IDIDEAL(w)->rank);
    727722      }
    728723      else
    729       #endif
    730       if (maApplyFetch(MAP_CMD,theMap,v,&tmpW,IDRING(r),NULL,NULL,0,nMap))
    731       {
    732         Werror("cannot map %s(%d)",Tok2Cmdname(w->typ),w->typ);
    733         omFreeBin((ADDRESS)v, sleftv_bin);
    734         if (save_r!=NULL) IDMAP(w)->preimage=save_r;
    735         return NULL;
     724      {
     725        #ifdef FAST_MAP
     726        if ((tmpW.rtyp==IDEAL_CMD) && (nMap==nCopy)
     727        #ifdef HAVE_PLURAL
     728        && (!rIsPluralRing(currRing))
     729        #endif
     730        )
     731        {
     732          v->rtyp=IDEAL_CMD;
     733          v->data=fast_map(IDIDEAL(w), IDRING(r), (ideal)theMap, currRing);
     734        }
     735        else
     736        #endif
     737        if (maApplyFetch(MAP_CMD,theMap,v,&tmpW,IDRING(r),NULL,NULL,0,nMap))
     738        {
     739          Werror("cannot map %s(%d)",Tok2Cmdname(w->typ),w->typ);
     740          omFreeBin((ADDRESS)v, sleftv_bin);
     741          if (save_r!=NULL) IDMAP(w)->preimage=save_r;
     742          return NULL;
     743        }
    736744      }
    737745      if (save_r!=NULL)
     
    20112019        {
    20122020          R->minpoly=naInit(1);
    2013           lnumber n=(lnumber)R->minpoly;
    2014           n->z=R->algring->qideal->m[0];
     2021          lnumber n=(lnumber)R->minpoly;
     2022          n->z=R->algring->qideal->m[0];
    20152023          R->algring->qideal->m[0]=NULL;
    20162024          idDelete(&(R->algring->qideal));
     
    20822090          par_perm=(int *)omAlloc0(par_perm_size*sizeof(int));
    20832091        int i;
    2084         #if 0
    2085         // use imap:
     2092        #if 0
     2093        // use imap:
    20862094        maFindPerm(orig_ring->names,orig_ring->N,orig_ring->parameter,orig_ring->P,
    20872095          currRing->names,currRing->N,currRing->parameter, currRing->P,
    20882096          perm,par_perm, currRing->ch);
    2089         #else
    2090         // use fetch
    2091         if ((rPar(orig_ring)>0) && (rPar(currRing)==0))
    2092         {
    2093           for(i=si_min(rPar(orig_ring),rVar(currRing))-1;i>=0;i--) par_perm[i]=i+1;
    2094         }
    2095         else if (par_perm_size!=0)
    2096           for(i=si_min(rPar(orig_ring),rPar(currRing))-1;i>=0;i--) par_perm[i]=-(i+1);
    2097         for(i=si_min(orig_ring->N,pVariables);i>0;i--) perm[i]=i;
    2098         #endif
     2097        #else
     2098        // use fetch
     2099        if ((rPar(orig_ring)>0) && (rPar(currRing)==0))
     2100        {
     2101          for(i=si_min(rPar(orig_ring),rVar(currRing))-1;i>=0;i--) par_perm[i]=i+1;
     2102        }
     2103        else if (par_perm_size!=0)
     2104          for(i=si_min(rPar(orig_ring),rPar(currRing))-1;i>=0;i--) par_perm[i]=-(i+1);
     2105        for(i=si_min(orig_ring->N,pVariables);i>0;i--) perm[i]=i;
     2106        #endif
    20992107        ideal dest_id=idInit(IDELEMS(q),1);
    21002108        for(i=IDELEMS(q)-1; i>=0; i--)
     
    21022110          dest_id->m[i]=pPermPoly(q->m[i],perm,orig_ring,nMap,
    21032111                                  par_perm,par_perm_size);
    2104           //  PrintS("map:");pWrite(dest_id->m[i]);PrintLn();
     2112          //  PrintS("map:");pWrite(dest_id->m[i]);PrintLn();
    21052113          pTest(dest_id->m[i]);
    21062114        }
     
    47854793  sleftv u; memset(&u,0,sizeof(u)); u.rtyp=IDHDL; u.data=(char *) h;
    47864794            u.name=IDID(h);
    4787  
    4788   sleftv res; memset(&res,0,sizeof(res)); 
     4795
     4796  sleftv res; memset(&res,0,sizeof(res));
    47894797  if(jjPROC(&res,&u,&v))
    47904798  {
Note: See TracChangeset for help on using the changeset viewer.