Changeset 8b87135 in git


Ignore:
Timestamp:
Sep 14, 2011, 7:02:46 PM (13 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
407497f6a46f6a77950bc9af3836af45064e4808
Parents:
e209100ba5f79c94ecb471edc913f70d78a3c0cb
git-author:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2011-09-14 19:02:46+02:00
git-committer:
Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 16:12:49+01:00
Message:
FIX: handling of minpoly should be more precise + adding some assumes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/subexpr.cc

    re20910 r8b87135  
    624624  {
    625625    if (iiCheckRing(t)) return NULL;
    626     void *x=data;
    627     if (rtyp==VNOETHER) x=(void *)pCopy((currRing->ppNoether));
    628     else if ((rtyp==VMINPOLY)&& \
    629                     nCoeff_is_Extension(currRing->cf) && \
    630                     (!nCoeff_is_GF(currRing->cf)))
    631       x=(void *)p_Copy(currRing->cf->extRing->minideal->m[0],
    632                       currRing->cf->extRing );
     626    void *x = data;
     627    if (rtyp==VNOETHER) x = (void *)pCopy((currRing->ppNoether));
     628    else if ((rtyp==VMINPOLY) && nCoeff_is_algExt(currRing->cf) && (!nCoeff_is_GF(currRing->cf)))
     629    {
     630      const ring A = currRing->cf->extRing;
     631     
     632      assume( A != NULL );
     633      assume( A->minideal != NULL );
     634   
     635      x=(void *)p_Copy(A->minideal->m[0], A);
     636    }
    633637    data=NULL;
    634638    return x;
     
    10351039      case TRACE:      return (void *)traceit;
    10361040      case VSHORTOUT:  return (void *)(currRing != NULL ? currRing->ShortOut : 0);
    1037       case VMINPOLY:   if (currRing != NULL &&
    1038                            nCoeff_is_Extension(currRing->cf)&&
    1039                            !nCoeff_is_GF(currRing->cf))
    1040                        /* Q(a), Fp(a), but not GF(q) */
    1041                          return (void *)currRing->cf->extRing->minideal->m[0];
    1042                        else
    1043                          return (void *)currRing->cf->nNULL;
     1041      case VMINPOLY:
     1042        if ( (currRing != NULL)  && nCoeff_is_algExt(currRing->cf) && !nCoeff_is_GF(currRing->cf))
     1043        {
     1044          /* Q(a), Fp(a), but not GF(q) */
     1045          const ring A = currRing->cf->extRing;
     1046         
     1047          assume( A != NULL );
     1048          assume( A->minideal != NULL );
     1049         
     1050          return (void *)A->minideal->m[0];
     1051        }
     1052        else
     1053          return (void *)currRing->cf->nNULL;
     1054       
    10441055      case VNOETHER:   return (void *) (currRing->ppNoether);
    10451056      case IDHDL:
Note: See TracChangeset for help on using the changeset viewer.