Changeset b44622 in git


Ignore:
Timestamp:
May 3, 2007, 3:52:26 PM (17 years ago)
Author:
Oliver Wienand <wienand@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'd25190065115c859833252500a64cfb7b11e3a50')
Children:
a6fa234b0f9f5f9e77a17cde6e450e3a0f8505dc
Parents:
bf64c41bd9346d70ecaaab3ee59f58f5d9d766e8
Message:
Neuer Koeffbereich
Neue Ringdeklaration

ring r = (modnat, 25), x, dp;  ==> Z/25[x]
ring r = (modpow, 2, 12), x, dp; ==> Z/2^12[x]

modpow noch nicht für base != 2 iimplementiert


git-svn-id: file:///usr/local/Singular/svn/trunk@10017 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
Singular
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • Singular/ipshell.cc

    rbf64c41 rb44622  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: ipshell.cc,v 1.155 2007-04-04 14:13:31 Singular Exp $ */
     4/* $Id: ipshell.cc,v 1.156 2007-05-03 13:52:25 wienand Exp $ */
    55/*
    66* ABSTRACT:
     
    43664366{
    43674367  int ch;
    4368 #ifdef HAVE_RING2TOM
     4368#if defined(HAVE_RING2TOM)|| defined(HAVE_RINGMODN)
    43694369  int cring = 0;
    43704370#endif
     
    44064406    }
    44074407  }
     4408#ifdef HAVE_RINGMODN
     4409  else if ((pn->name != NULL)
     4410  && (strcmp(pn->name,"modnat")==0))
     4411  {
     4412    long module = 0;
     4413    if ((pn->next!=NULL) && (pn->next->Typ()==INT_CMD))
     4414    {
     4415      module =(unsigned long) pn->next->Data();
     4416      pn=pn->next;
     4417    }
     4418    if ((module < 2))
     4419    {
     4420      Werror("Wrong ground ring specification");
     4421      goto rInitError;
     4422    }
     4423    ch = module;
     4424    cring = 2;
     4425  }
     4426#endif
     4427#ifdef HAVE_RING2TOM
     4428  else if ((pn->name != NULL)
     4429  && (strcmp(pn->name,"modpow")==0))
     4430  {
     4431    long base = 0;
     4432    long exp = 0;
     4433    if ((pn->next!=NULL) && (pn->next->Typ()==INT_CMD))
     4434    {
     4435      base =(unsigned long) pn->next->Data();
     4436      pn=pn->next;
     4437      if ((pn->next!=NULL) && (pn->next->Typ()==INT_CMD))
     4438      {
     4439        exp = (unsigned long) pn->next->Data();
     4440        pn=pn->next;
     4441      }
     4442    }
     4443    if ((base < 2) || (exp < 1))
     4444    {
     4445      Werror("Wrong ground ring specification");
     4446      goto rInitError;
     4447    }
     4448    ch = exp;
     4449    if (base == 2)
     4450    {
     4451      cring = 1; // Use Z/2^ch
     4452      Print("Beta: using Z/2^%d", ch);
     4453      PrintLn();
     4454    }
     4455    else
     4456    {
     4457      cring = base;
     4458      Werror("p^n not yet implemented");
     4459      goto rInitError;
     4460    }
     4461  }
     4462#endif
    44084463  else
    44094464  {
     
    44274482   *         q    q : GF(q=p^n)       *names         TRUE
    44284483  */
    4429   if (ch!=-1)
     4484  if ((ch!=-1)
     4485#if defined(HAVE_RING2TOM)|| defined(HAVE_RINGMODN)
     4486       && (cring == 0)
     4487#endif
     4488     )
    44304489  {
    44314490    int l = 0;
     
    44554514    else
    44564515    {
    4457 #ifdef HAVE_RING2TOM
    4458       int blupp = Is2toM(ch);
    4459       if (blupp != 0)
    4460       {
    4461         cring = 1; // Use Z/2^ch
    4462         ch = blupp;
    4463         Print("Beta: using Z/2^%d", ch);
    4464         PrintLn();
    4465       }
    4466       else
    4467 #endif
    4468         ch = IsPrime(ch);
     4516      ch = IsPrime(ch);
    44694517    }
    44704518  }
  • Singular/misc.cc

    rbf64c41 rb44622  
    299299        && !rField_is_Ring_2toM(currRing)
    300300#endif
     301#ifdef HAVE_RINGMODN
     302        && !rField_is_Ring_ModN(currRing)
     303#endif
    301304        ) {
    302305          test &=~Sy_bit(OPT_INTSTRATEGY);
     
    330333#ifdef HAVE_RING2TOM
    331334        && !rField_is_Ring_2toM(currRing)
     335#endif
     336#ifdef HAVE_RINGMODN
     337        && !rField_is_Ring_ModN(currRing)
    332338#endif
    333339        ) {
Note: See TracChangeset for help on using the changeset viewer.