Changeset ce1f78 in git for libpolys/coeffs


Ignore:
Timestamp:
Mar 16, 2012, 8:22:15 PM (12 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
7fee87629a807b6be566a7757b3b60f36c22d651
Parents:
cd9796d49b820bd9ecc81b49dc04073e0bbf6012
git-author:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2012-03-16 20:22:15+01:00
git-committer:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2012-03-16 21:36:33+01:00
Message:
fixed short/long output of coeffs depending on ShortOut/CanShortOut options of rings

Note: the ugly ShortOut correction p_String0Short/p_String0Long is due to Hans
Location:
libpolys/coeffs
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • libpolys/coeffs/coeffs.h

    rcd9796 rce1f78  
    145145   number  (*cfRePart)(number a, const coeffs r);
    146146   number  (*cfImPart)(number a, const coeffs r);
    147    void    (*cfWrite)(number &a, const coeffs r);
     147
     148   /// print a given number (long format)
     149   void    (*cfWriteLong)(number &a, const coeffs r);
     150   
     151   /// print a given number in a shorter way, if possible
     152   /// e.g. in K(a): a2 instead of a^2
     153   void    (*cfWriteShort)(number &a, const coeffs r);
     154   
    148155   const char *  (*cfRead)(const char * s, number * a, const coeffs r);
    149156   void    (*cfNormalize)(number &a, const coeffs r);
     
    262269  short      float_len2; /* additional char-flags, rInit */
    263270
    264   BOOLEAN   CanShortOut; //< if the elements can be printed in short format
    265                        // this is set to FALSE if a parameter name has >2 chars
    266   BOOLEAN   ShortOut; //< if the elements should print in short format
     271//  BOOLEAN   CanShortOut; //< if the elements can be printed in short format
     272//                     // this is set to FALSE if a parameter name has >2 chars
     273//  BOOLEAN   ShortOut; //< if the elements should print in short format
    267274
    268275// ---------------------------------------------------
     
    449456
    450457/// write to the output buffer of the currently used reporter
    451 static inline void   n_Write(number& n,  const coeffs r)
    452 { assume(r != NULL); assume(r->cfWrite!=NULL); r->cfWrite(n,r); }
     458static inline void   n_WriteLong(number& n,  const coeffs r)
     459{ assume(r != NULL); assume(r->cfWriteLong!=NULL); r->cfWriteLong(n,r); }
     460
     461/// write to the output buffer of the currently used reporter
     462/// in a shortest possible way, e.g. in K(a): a2 instead of a^2
     463static inline void   n_WriteShort(number& n,  const coeffs r)
     464{ assume(r != NULL); assume(r->cfWriteShort!=NULL); r->cfWriteShort(n,r); }
     465
     466static inline void   n_Write(number& n,  const coeffs r, const BOOLEAN bShortOut = TRUE)
     467{ if (bShortOut) n_WriteShort(n, r); else n_WriteLong(n, r); }
     468
    453469
    454470/// @todo: Describe me!!! --> Hans
  • libpolys/coeffs/ffields.cc

    rcd9796 rce1f78  
    384384* write via StringAppend
    385385*/
    386 void nfWrite (number &a, const coeffs r)
     386static void nfWriteLong (number &a, const coeffs r)
    387387{
    388388#ifdef LDEBUG
     
    397397    if ((long)a!=1L)
    398398    {
    399       if(r->ShortOut==0)  StringAppendS("^");
     399      StringAppend("^%d",(int)((long)a)); // long output!
     400    }
     401  }
     402}
     403
     404
     405/*2
     406* write (shortert output) via StringAppend
     407*/
     408static void nfWriteShort (number &a, const coeffs r)
     409{
     410#ifdef LDEBUG
     411  nfTest(a, r);
     412#endif
     413  if ((long)a==(long)r->m_nfCharQ)  StringAppendS("0");
     414  else if ((long)a==0L)   StringAppendS("1");
     415  else if (nfIsMOne(a, r))   StringAppendS("-1");
     416  else
     417  {
     418    StringAppendS(r->m_nfParameter);
     419    if ((long)a!=1L)
     420    {
    400421      StringAppend("%d",(int)((long)a));
    401422    }
     
    786807  //r->cfRePart = ndCopy;
    787808  //r->cfImPart = ndReturn0;
    788   r->cfWrite = nfWrite;
     809 
     810  r->cfWriteLong = nfWriteLong;
     811 
    789812  r->cfRead = nfRead;
    790813  //r->cfNormalize=ndNormalize;
     
    824847  r->m_nfPlus1Table= NULL;
    825848
    826   if (strlen(name) > 1) {
    827     r->ShortOut = 0;
    828     r->CanShortOut = FALSE;
    829   } else {
    830     r->ShortOut = 1;
    831   }
     849  if (strlen(name) > 1)
     850    r->cfWriteShort = nfWriteLong;
     851  else
     852    r->cfWriteShort = nfWriteShort;
    832853
    833854  r->has_simple_Alloc=TRUE;
  • libpolys/coeffs/gnumpc.cc

    rcd9796 rce1f78  
    416416  n->cfIsMOne  = ngcIsMOne;
    417417  n->cfGreaterZero = ngcGreaterZero;
    418   n->cfWrite  = ngcWrite;
     418
     419  n->cfWriteLong  = ngcWrite;
     420  n->cfWriteShort = ngcWrite;
     421 
    419422  n->cfRead    = ngcRead;
    420423  n->cfPower   = ngcPower;
     
    459462  r->cfRePart = nl_Copy;
    460463  r->cfImPart = ndReturn0;
    461   r->cfWrite = nlWrite;
     464  r->cfWriteLong = nlWrite;
    462465  r->cfRead = nlRead;
    463466  r->cfNormalize=nlNormalize;
  • libpolys/coeffs/gnumpfl.cc

    rcd9796 rce1f78  
    428428  n->cfIsMOne  = ngfIsMOne;
    429429  n->cfGreaterZero = ngfGreaterZero;
    430   n->cfWrite  = ngfWrite;
     430  n->cfWriteLong  = ngfWrite;
    431431  n->cfRead    = ngfRead;
    432432  n->cfPower   = ngfPower;
  • libpolys/coeffs/longrat.cc

    rcd9796 rce1f78  
    26752675  r->cfRePart = nlCopy;
    26762676  //r->cfImPart = ndReturn0;
    2677   r->cfWrite = nlWrite;
     2677  r->cfWriteLong = nlWrite;
    26782678  r->cfRead = nlRead;
    26792679  r->cfNormalize=nlNormalize;
  • libpolys/coeffs/modulop.cc

    rcd9796 rce1f78  
    468468  //r->cfRePart = ndCopy;
    469469  //r->cfImPart = ndReturn0;
    470   r->cfWrite = npWrite;
     470  r->cfWriteLong = npWrite;
    471471  r->cfRead = npRead;
    472472  //r->cfNormalize=ndNormalize;
  • libpolys/coeffs/numbers.cc

    rcd9796 rce1f78  
    291291    if (n->cfGetUnit==NULL) n->cfGetUnit=n->cfCopy;
    292292#endif
    293    
     293
     294    if(n->cfWriteShort==NULL)
     295      n->cfWriteShort = n->cfWriteLong;
     296   
    294297#ifndef NDEBUG
    295298    assume(n->nCoeffIsEqual!=NULL);
     
    316319    assume(n->cfRePart!=NULL);
    317320    assume(n->cfImPart!=NULL);
    318     assume(n->cfWrite!=NULL);
     321
     322    assume(n->cfWriteLong!=NULL);
     323    assume(n->cfWriteShort!=NULL);
     324
     325
     326    if(n->cfWriteLong==NULL) Warn("cfWrite is NULL for coeff %d",t);
     327    if(n->cfWriteShort==NULL) Warn("cfWriteShort is NULL for coeff %d",t);
     328   
    319329    assume(n->cfRead!=NULL);
    320330    assume(n->cfNormalize!=NULL);
  • libpolys/coeffs/numbers.h

    rcd9796 rce1f78  
    2727#define nIsMOne(n)        n_IsMOne(n, currRing->cf)
    2828#define nGreaterZero(n)   n_GreaterZero(n, currRing->cf)
    29 #define nGreater(a, b)   n_Greater (a,b,currRing->cf)
    30 #define nWrite(n)         n_Write(n,currRing->cf)
     29#define nGreater(a, b)    n_Greater (a,b,currRing->cf)
     30#define nWrite(n)         n_Write(n, currRing->cf, rShortOut(currRing))
    3131#define nNormalize(n)     n_Normalize(n,currRing->cf)
    3232
  • libpolys/coeffs/rintegers.cc

    rcd9796 rce1f78  
    408408  r->cfInvers= nrzInvers;
    409409  r->cfCopy  = nrzCopy;
    410   r->cfWrite = nrzWrite;
     410  r->cfWriteLong = nrzWrite;
    411411  r->cfRead = nrzRead;
    412412  r->cfGreater = nrzGreater;
  • libpolys/coeffs/rmodulo2m.cc

    rcd9796 rce1f78  
    7777  r->cfIsMOne      = nr2mIsMOne;
    7878  r->cfGreaterZero = nr2mGreaterZero;
    79   r->cfWrite       = nr2mWrite;
     79  r->cfWriteLong       = nr2mWrite;
    8080  r->cfRead        = nr2mRead;
    8181  r->cfPower       = nr2mPower;
  • libpolys/coeffs/rmodulon.cc

    rcd9796 rce1f78  
    7878  r->cfIsMOne      = nrnIsMOne;
    7979  r->cfGreaterZero = nrnGreaterZero;
    80   r->cfWrite       = nrnWrite;
     80  r->cfWriteLong       = nrnWrite;
    8181  r->cfRead        = nrnRead;
    8282  r->cfPower       = nrnPower;
  • libpolys/coeffs/shortfl.cc

    rcd9796 rce1f78  
    567567  n->cfIsMOne = nrIsMOne;
    568568  n->cfGreaterZero = nrGreaterZero;
    569   n->cfWrite = nrWrite;
     569  n->cfWriteLong = nrWrite;
    570570  n->cfRead = nrRead;
    571571  n->cfPower = nrPower;
  • libpolys/coeffs/test.cc

    rcd9796 rce1f78  
    196196
    197197  assume( r->cfInit != NULL );
    198   assume( r->cfWrite != NULL );
     198  assume( r->cfWriteLong != NULL );
    199199  assume( r->cfAdd != NULL );
    200200  assume( r->cfDelete != NULL );
     
    203203  {
    204204    assume( r->cfInit == nlInit );
    205     assume( r->cfWrite == nlWrite );
    206205    assume( r->cfAdd == nlAdd );
    207206    assume( r->cfDelete == nlDelete );   
     
    210209  {
    211210    assume( r->cfInit == ngfInit );
    212     assume( r->cfWrite == ngfWrite );
    213211    assume( r->cfAdd == ngfAdd );
    214212    assume( r->cfDelete == ngfDelete );
     
    217215  {
    218216    assume( r->cfInit == ngcInit );
    219     assume( r->cfWrite == ngcWrite );
    220217    assume( r->cfAdd == ngcAdd );
    221218    assume( r->cfDelete == ngcDelete );   
     
    224221  {
    225222    assume( r->cfInit == nrInit );
    226     assume( r->cfWrite == nrWrite );
    227223    assume( r->cfAdd == nrAdd );
    228224//    assume( r->cfDelete == nrDelete ); // No?
     
    232228  {
    233229    assume( r->cfInit == nr2mInit );
    234     assume( r->cfWrite == nr2mWrite );
    235230    assume( r->cfAdd == nr2mAdd );
    236231    assume( r->cfDelete == ndDelete );
     
    239234  {
    240235    assume( r->cfInit == nrnInit );
    241     assume( r->cfWrite == nrnWrite );
    242236    assume( r->cfAdd == nrnAdd );
    243237    assume( r->cfDelete == nrnDelete );
     
    247241  {
    248242    assume( r->cfInit == nfInit );
    249     assume( r->cfWrite == nfWrite );
    250243    assume( r->cfAdd == nfAdd );
    251244    //assume( r->cfDelete == nfDelete );
Note: See TracChangeset for help on using the changeset viewer.