Ignore:
Timestamp:
Feb 21, 2013, 3:20:06 PM (11 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
f48707971b394befdb9c3fce8f6366610b334e92
Parents:
dd290f48322737d7fcc47f0fb8ea2059467097c07600fb155db01a25b5e1a80b4394e4ff39585f53
Message:
Merge pull request #292 from mmklee/imap

chg: extended naCopyTrans2AlgExt
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libpolys/polys/ext_fields/algext.cc

    rdd290f r680ca3e  
    926926  assume (nCoeff_is_algExt (dst));
    927927  fraction fa=(fraction)a;
    928   assume( rSamePolyRep(src->extRing, dst->extRing) );
    929   poly p = p_Copy(NUM(fa),src->extRing);
     928  poly p, q;
     929  if (rSamePolyRep(src->extRing, dst->extRing))
     930  {
     931    p = p_Copy(NUM(fa),src->extRing);
     932    if (!DENIS1(fa))
     933    {
     934      q = p_Copy(DEN(fa),src->extRing);
     935      assume (q != NULL);
     936    }
     937  }
     938  else
     939  {
     940    assume ((strcmp(rRingVar(0,src->extRing),rRingVar(0,dst->extRing))==0) && (rVar (src->extRing) == rVar (dst->extRing)));
     941
     942    nMapFunc nMap= n_SetMap (src->extRing->cf, dst->extRing->cf);
     943
     944    assume (nMap != NULL);
     945    p= p_PermPoly (NUM (fa), NULL, src->extRing, dst->extRing,nMap, NULL,rVar (src->extRing));
     946    if (!DENIS1(fa))
     947    {
     948      q= p_PermPoly (DEN (fa), NULL, src->extRing, dst->extRing,nMap, NULL,rVar (src->extRing));
     949      assume (q != NULL);
     950    }
     951  }
    930952  definiteReduce(p, dst->extRing->qideal->m[0], dst);
    931953  assume (p_Test (p, dst->extRing));
    932   return (number)p;
     954  if (!DENIS1(fa))
     955  {
     956    definiteReduce(q, dst->extRing->qideal->m[0], dst);
     957    assume (p_Test (q, dst->extRing));
     958    if (q != NULL)
     959    {
     960      number t= naDiv ((number)p,(number)q, dst);
     961      p_Delete (&p, dst->extRing);
     962      p_Delete (&q, dst->extRing);
     963      return t;
     964    }
     965    WerrorS ("mapping denominator to zero");
     966  }
     967  return (number) p;
    933968}
    934969
     
    10211056         return naCopyTrans2AlgExt;
    10221057    }
    1023     else
    1024       return NULL;                               /// Z/p(b) --> Z/p(a)
     1058    else if ((strcmp(rRingVar(0,src->extRing),rRingVar(0,dst->extRing))==0) && (rVar (src->extRing) == rVar (dst->extRing)))
     1059    {
     1060      if (src->type==n_transExt)
     1061        return naCopyTrans2AlgExt;
     1062    }
    10251063  }
    10261064
Note: See TracChangeset for help on using the changeset viewer.