Changeset bbca14 in git


Ignore:
Timestamp:
Jul 24, 2020, 8:07:52 PM (4 years ago)
Author:
Matthias Koeppe <mkoeppe@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '3720ae8bfcff4a4649ee98a15552089151d2d59b')
Children:
662704d6238aefb332b84b140c56540960cb7754
Parents:
ede6da7ab2b8fb552e62526b579f71e71becdd3b621d20fcc3dc769e5683f90e0b9efd198986ac1c
Message:
Merge remote-tracking branch 'singular/spielwiese' into ci-sage
Files:
6 added
83 edited
8 moved

Legend:

Unmodified
Added
Removed
  • IntegerProgramming/change_cost.cc

    rede6da rbbca14  
    190190  }
    191191
    192 
    193 /////////////////////// provide help text ///////////////////////////////////
    194 
    195192  // handle the case of "missing" arguments
    196193
    197   if((argc==2) && !strcmp(argv[1],"--help"))
    198     // help required
    199   {
    200     system("less change_cost.hlp");
    201     return 0;
    202   }
    203 
    204   else
    205194    // invalid arguments
    206195    cerr<<"USAGE: change_cost [options] groebner_file new_cost_file"<<endl
  • IntegerProgramming/solve_IP.cc

    rede6da rbbca14  
    277277  }
    278278
    279 
    280 /////////////////////// provide help text ///////////////////////////////////
    281 
    282279  // handle the case of "missing" arguments
    283 
    284   if((argc==2) && !strcmp(argv[1],"--help"))
    285     // help required
    286   {
    287     system("less solve_IP.hlp");
    288     return 0;
    289   }
    290 
    291   else
    292280    // invalid arguments
    293281    cerr<<"USAGE: solve_IP [options] toric_file problem_file\n"
  • IntegerProgramming/toric_ideal.cc

    rede6da rbbca14  
    238238  }
    239239
    240 
    241 /////////////////////// provide help text ///////////////////////////////////
    242 
    243240  // handle the case of "missing" arguments
    244 
    245   if((argc==2) && !strcmp(argv[1],"--help"))
    246     // help required
    247   {
    248     system("less toric_ideal.hlp");
    249     return 0;
    250   }
    251 
    252   else
    253241    // invalid arguments
    254242    cerr<<"USAGE: toric_ideal [options] matrix_file"<<endl
  • Makefile.am

    rede6da rbbca14  
    66dox emacs redhat desktop
    77
    8 EXTRA_DIST = README README.md README.pkg autogen.sh doxy redhat/singular.spec.in GPL2 GPL3 doc/doc.tbz2
     8EXTRA_DIST = README README.md README.pkg autogen.sh doxy redhat/singular.spec.in GPL2 GPL3
    99
    1010bin_SCRIPTS = libsingular-config
  • Singular/LIB/ffsolve.lib

    rede6da rbbca14  
    314314  ideal partial_system, curr_sol, curr_sys, factors;
    315315  poly univar_poly;
     316  intvec ones = 1:nvars(basering);
    316317  E = E+defaultIdeal();
    317318  // check assumptions
     
    345346      for(j=1; j<=ncols(factors); j++)
    346347      {
    347         if(deg(factors[j])==1)
     348        if(deg(factors[j], ones)==1)
    348349        {
    349350          curr_sol = std(solutions[i]+ideal(factors[j]));
     
    851852    +get_minpoly_str(size(original_ring),parstr(original_ring,1))+";" ;
    852853  }
    853   string old_vars = varstr(original_ring);
    854   string new_vars = "@y(1.."+string( number_of_monomials )+")";
    855 
    856   def ring_for_var_change = changevar( old_vars+","+new_vars, original_ring);
     854
     855  def ring_for_var_change = addNvarsTo(original_ring, number_of_monomials, "@y", 2);
     856 
    857857  setring ring_for_var_change;
    858858  if( prime_field == 0)
     
    877877  }
    878878
     879  string new_vars = "@y(1.."+string( number_of_monomials )+")";
    879880  def ring_for_elimination = changevar( new_vars, ring_for_var_change);
    880881  setring ring_for_elimination;
  • Singular/dyn_modules/Order/nforder_ideal.cc

    rede6da rbbca14  
    311311  } else if (i<0) {
    312312    Werror("not done yet");
     313    return NULL;
    313314  } else {
    314315    nforder_ideal *B = nf_idPower(A, i/2);
  • Singular/dyn_modules/cohomo/cohomo.cc

    rede6da rbbca14  
    77
    88#include "kernel/mod2.h"
     9
     10#if !defined(__CYGWIN__) || defined(STATIC_VERSION)
     11// acces from a module to routines from the main program
     12// does not work on windows (restrict of the dynamic linker),
     13// a static version is required:
     14// ./configure --with-builtinmodules=cohomo,...
     15
    916
    1017#include "omalloc/omalloc.h"
     
    3845#include <time.h>
    3946
    40 
    41 
    42 
    43 
    44 
    45 
    4647/***************************print(only for debugging)***********************************************/
    4748//print vector of integers.
     
    6061  }
    6162}
    62 
    6363
    6464//print vector of vectors of integers.
     
    9292  }
    9393}
    94 
    95 
    96 
    9794
    9895//only for T^2,
     
    13131310    {
    13141311      fset.erase(fset.begin()+i);
    1315       return fset;
    1316     }
    1317   }
     1312      break;
     1313    }
     1314  }
     1315  return fset;
    13181316}
    13191317
     
    41354133  for(int i=0;i<bvs.size();i++)
    41364134  {
    4137     for(int j=0;j<bvs.size(), j!=i; j++)
     4135    for(int j=0;j!=i; j++)
    41384136    {
    41394137      vs.push_back(bvs[j]);
     
    53335331  return MAX_TOK;
    53345332}
    5335 
    5336 
    53375333#endif
    5338 
    5339 
     5334#endif
     5335
     5336
  • Singular/dyn_modules/freealgebra/freealgebra.cc

    rede6da rbbca14  
    11#include "Singular/libsingular.h"
    22#include <vector>
     3
     4#if !defined(__CYGWIN__) || defined(STATIC_VERSION)
     5// acces from a module to routines from the main program
     6// does not work on windows (restrict of the dynamic linker),
     7// a static version is required:
     8// ./configure --with-builtinmodules=freealgebra,...
    39
    410#ifdef HAVE_SHIFTBBA
     
    457463  return (MAX_TOK);
    458464}
     465#endif
  • Singular/dyn_modules/singmathic/Makefile.am

    rede6da rbbca14  
    2424if SING_WIN
    2525if !SI_BUILTIN_SINGMATHIC
    26  singmathic_la_LIBADD = ${top_srcdir}/Singular/libSingular.la
     26 singmathic_la_LIBADD = ${top_builddir}/Singular/libSingular.la
    2727endif
    2828endif
  • Singular/dyn_modules/subsets/subsets.cc

    rede6da rbbca14  
    11#include "Singular/libsingular.h"
     2
     3#if !defined(__CYGWIN__) || defined(STATIC_VERSION)
     4// acces from a module to routines from the main program
     5// does not work on windows (restrict of the dynamic linker),
     6// a static version is required:
     7// ./configure --with-builtinmodules=subsets,...
    28
    39#include <vector>
     
    7379  return (MAX_TOK);
    7480}
     81#endif
  • Singular/dyn_modules/systhreads/bytebuf.h

    rede6da rbbca14  
    3333    buf = allocate_space(cap);
    3434    memcpy(buf, other.buf, count);
     35    return *this;
    3536  }
    3637  ~ByteBuf() {
  • Singular/dyn_modules/systhreads/libthread.h

    rede6da rbbca14  
    2525  Job *startJob(ThreadPool *pool, Job *job, leftv arg);
    2626  Job *startJob(ThreadPool *pool, Job *job);
    27   Job *scheduleJob(ThreadPool *pool, Job *job, long ndeps, Job **deps);
     27//   Job *scheduleJob(ThreadPool *pool, Job *job, long ndeps, Job **deps);
    2828  void cancelJob(Job *job);
    2929  void waitJob(Job *job);
  • Singular/dyn_modules/systhreads/shared.cc

    rede6da rbbca14  
    14801480  ts->active = false;
    14811481  thread_lock.unlock();
     1482  return result;
    14821483}
    14831484
     
    24922493}
    24932494
    2494 Job *scheduleJob(ThreadPool *pool, Job *job, long ndeps, Job **deps) {
    2495   if (job->pool) return NULL;
    2496   pool->scheduler->lock.lock();
    2497   bool cancelled = false;
    2498   job->addDep(ndeps, deps);
    2499   for (long i = 0; i < ndeps; i++) {
    2500     deps[i]->addNotify(job);
    2501     cancelled |= deps[i]->cancelled;
    2502   }
    2503   if (cancelled) {
    2504     job->pool = pool;
    2505     pool->cancelJob(job);
    2506   }
    2507   else
    2508     pool->attachJob(job);
    2509   pool->scheduler->lock.unlock();
    2510 }
     2495// Job *scheduleJob(ThreadPool *pool, Job *job, long ndeps, Job **deps) {
     2496//   if (job->pool) return NULL;
     2497//   pool->scheduler->lock.lock();
     2498//   bool cancelled = false;
     2499//   job->addDep(ndeps, deps);
     2500//   for (long i = 0; i < ndeps; i++) {
     2501//     deps[i]->addNotify(job);
     2502//     cancelled |= deps[i]->cancelled;
     2503//   }
     2504//   if (cancelled) {
     2505//     job->pool = pool;
     2506//     pool->cancelJob(job);
     2507//   }
     2508//   else
     2509//     pool->attachJob(job);
     2510//   pool->scheduler->lock.unlock();
     2511//   return FIXME: missing/unclear what this is supposed to be
     2512// }
    25112513
    25122514void cancelJob(Job *job) {
  • Singular/eigenval_ip.cc

    rede6da rbbca14  
    216216      else
    217217      {
    218         if(e->m[i0]==NULL&&!nGreaterZero(pGetCoeff(e->m[i1]))||
    219            e->m[i1]==NULL&&
    220           (nGreaterZero(pGetCoeff(e->m[i0]))||pNext(e->m[i0])!=NULL)||
     218        if((e->m[i0]==NULL&&!nGreaterZero(pGetCoeff(e->m[i1])))||
     219           (e->m[i1]==NULL&&
     220            (nGreaterZero(pGetCoeff(e->m[i0]))||pNext(e->m[i0])!=NULL))||
    221221           e->m[i0]!=NULL&&e->m[i1]!=NULL&&
    222           (pNext(e->m[i0])!=NULL&&pNext(e->m[i1])==NULL||
    223            pNext(e->m[i0])==NULL&&pNext(e->m[i1])==NULL&&
    224            nGreater(pGetCoeff(e->m[i0]),pGetCoeff(e->m[i1]))))
     222            ((pNext(e->m[i0])!=NULL&&pNext(e->m[i1])==NULL)||
     223             (pNext(e->m[i0])==NULL&&pNext(e->m[i1])==NULL&&
     224             nGreater(pGetCoeff(e->m[i0]),pGetCoeff(e->m[i1])))))
    225225        {
    226226          poly e1=e->m[i0];
  • Singular/iplib.cc

    rede6da rbbca14  
    799799};
    800800
     801extern "C" int flint_mod_init(SModulFunctions* psModulFunctions);
    801802
    802803SModulFunc_t
    803804iiGetBuiltinModInit(const char* libname)
    804805{
     806#ifdef HAVE_FLINT
     807  if (strcmp(libname,"flint.so")==0) return SI_MOD_INIT0(flint);
     808#endif
    805809#  define SI_GET_BUILTIN_MOD_INIT(name) if (strcmp(libname, #name ".so") == 0){ return SI_MOD_INIT0(name); }
    806810          SI_FOREACH_BUILTIN(SI_GET_BUILTIN_MOD_INIT)
  • Singular/links/ssiLink.cc

    rede6da rbbca14  
    809809  if (tok>MAX_TOK)
    810810  {
     811    ring save_ring=currRing;
    811812    blackbox *b=getBlackboxStuff(tok);
    812813    res->rtyp=tok;
    813814    b->blackbox_deserialize(&b,&(res->data),l);
     815    if (save_ring!=currRing)
     816      rChangeCurrRing(save_ring);
    814817  }
    815818  else
  • Singular/misc_ip.cc

    rede6da rbbca14  
    807807              StringAppend("FLINT(%s),",FLINT_VERSION);
    808808#endif
    809               StringAppendS("factory(" FACTORYVERSION "),\n\t");
     809//              StringAppendS("factory(" FACTORYVERSION "),\n\t");
     810              StringAppendS("\n\t");
    810811#ifndef HAVE_OMALLOC
    811812              StringAppendS("xalloc,");
     
    925926#endif
    926927              "\n",AC_CONFIGURE_ARGS, CC,CFLAGS " " PTHREAD_CFLAGS,
    927               CXX,CXXFLAGS " " PTHREAD_CFLAGS,  DEFS,CPPFLAGS,  LDFLAGS,
    928               LIBS " " PTHREAD_LIBS);
     928              CXX,CXXFLAGS " " PTHREAD_CFLAGS,  DEFS,CPPFLAGS,  LDFLAGS,
     929              LIBS " " PTHREAD_LIBS);
    929930              feStringAppendResources(0);
    930931              feStringAppendBrowsers(0);
     
    12631264}
    12641265#endif
     1266extern "C" int flint_mod_init(SModulFunctions* psModulFunctions)
     1267{
     1268    package save=currPack;
     1269    currPack=basePack;
     1270    n_FlintQ=nRegister(n_unknown,flintQ_InitChar);
     1271    if (n_FlintQ!=n_unknown)
     1272    {
     1273      iiAddCproc("kernel","flintQp",FALSE,ii_FlintQ_init);
     1274      nRegisterCfByName(flintQInitCfByName,n_FlintQ);
     1275    }
     1276#if __FLINT_RELEASE >= 20503
     1277    iiAddCproc("kernel","flintQ",FALSE,ii_FlintQrat_init);
     1278    nRegisterCfByName(flintQInitCfByName,n_FlintQ);
     1279#endif
     1280    n_FlintZn=nRegister(n_unknown,flintZn_InitChar);
     1281    if (n_FlintZn!=n_unknown)
     1282    {
     1283      iiAddCproc("kernel","flintZn",FALSE,ii_FlintZn_init);
     1284      nRegisterCfByName(flintZnInitCfByName,n_FlintZn);
     1285    }
     1286    currPack=save;
     1287    return MAX_TOK;
     1288}
    12651289#endif
    12661290
     
    14251449    //h=enterid("CC",0/*level*/, CRING_CMD,&(basePack->idroot),FALSE /*init*/,FALSE /*search*/);
    14261450    //IDDATA(h)=(char*)nInitChar(n_long_C,NULL);
    1427     #ifdef HAVE_FLINT
    1428     n_FlintQ=nRegister(n_unknown,flintQ_InitChar);
    1429     if (n_FlintQ!=n_unknown)
    1430     {
    1431       iiAddCproc("kernel","flintQp",FALSE,ii_FlintQ_init);
    1432       nRegisterCfByName(flintQInitCfByName,n_FlintQ);
    1433     }
    1434 #if __FLINT_RELEASE >= 20503
    1435     iiAddCproc("kernel","flintQ",FALSE,ii_FlintQrat_init);
    1436     nRegisterCfByName(flintQInitCfByName,n_FlintQ);
    1437 #endif
    1438     n_FlintZn=nRegister(n_unknown,flintZn_InitChar);
    1439     if (n_FlintZn!=n_unknown)
    1440     {
    1441       iiAddCproc("kernel","flintZn",FALSE,ii_FlintZn_init);
    1442       nRegisterCfByName(flintZnInitCfByName,n_FlintZn);
    1443     }
    1444     #endif
    14451451  }
    14461452// setting routines for PLURAL QRINGS:
  • Singular/mod_lib.cc

    rede6da rbbca14  
    1414#define SI_BUILTIN_LIBSTR(name) (char*) #name ".so",
    1515
    16 const char * const si_builtin_libs[] = { SI_FOREACH_BUILTIN(SI_BUILTIN_LIBSTR) NULL };
     16const char * const si_builtin_libs[] = { SI_FOREACH_BUILTIN(SI_BUILTIN_LIBSTR)
     17#ifdef HAVE_FLINT
     18                                        "flint.so",
     19#endif
     20                                        NULL };
     21
    1722
    1823#undef SI_BUILTIN_LIBSTR
  • Singular/newstruct.cc

    rede6da rbbca14  
    4444  return sizeof(newstruct_desc_s);
    4545}
    46 
     46static inline int NeedShadowRing(int t)
     47{
     48  return (RingDependend(t)|| (t==DEF_CMD) ||(t==LIST_CMD));
     49}
    4750char * newstruct_String(blackbox *b, void *d)
    4851{
     
    8790      StringAppendS(a->name);
    8891      StringAppendS("=");
    89       if ((!RingDependend(a->typ))
    90       || ((l->m[a->pos-1].data==(void *)currRing)
     92      if (((!RingDependend(a->typ)&&!RingDependend(l->m[a->pos].rtyp)))
     93      || ((rEqual((ring)l->m[a->pos-1].data,currRing))
    9194         && (currRing!=NULL)))
    9295      {
     
    9699        }
    97100        else if (l->m[a->pos].rtyp==STRING_CMD)
    98         {
     101        {
    99102          StringAppendS((char*)l->m[a->pos].Data());
    100         }
    101         else
     103        }
     104        else
    102105        {
    103106          char *tmp2=omStrDup(l->m[a->pos].String());
     
    353356            nm=nt->member;
    354357            while ((nm!=NULL)&&(strcmp(nm->name,a2->name+2)!=0)) nm=nm->next;
    355             if ((nm!=NULL)&&(RingDependend(nm->typ)))
     358            if ((nm!=NULL)&&(NeedShadowRing(nm->typ)))
    356359              search_ring=TRUE;
    357360            else
     
    550553  {
    551554    l->m[nm->pos].rtyp=nm->typ;
    552     if (RingDependend(nm->typ) ||(nm->typ==DEF_CMD)||(nm->typ==LIST_CMD))
     555    if (NeedShadowRing(nm->typ))
    553556    {
    554557      l->m[nm->pos-1].rtyp=RING_CMD;
     
    644647  }
    645648  omFreeSize(rings,Ll+1);
    646   if (ring_changed)
     649  if (ring_changed && (save_ring!=NULL))
    647650    f->m->SetRing(f,save_ring,FALSE);
    648651  return FALSE;
     
    755758    }
    756759    if (t==QRING_CMD) t=RING_CMD;
    757     else if (RingDependend(t) || (t==DEF_CMD)||(t==LIST_CMD))
     760    else if (NeedShadowRing(t))
    758761      res->size++;    // one additional field for the ring (before the data)
    759762    //Print("found type %s at real-pos %d",start,res->size);
     
    847850  {
    848851    Print(">>%s<< at pos %d, type %d (%s)\n",elem->name,elem->pos,elem->typ,Tok2Cmdname(elem->typ));
    849     if (RingDependend(elem->typ)|| (elem->typ==DEF_CMD) ||(elem->typ==LIST_CMD))
     852    if (NeedShadowRing(elem->typ))
    850853      Print(">>r_%s<< at pos %d, shadow ring\n",elem->name,elem->pos-1);
    851854    elem=elem->next;
  • Singular/svd_si.h

    rede6da rbbca14  
    32253225            return;
    32263226        }
    3227         ap::ap_error::make_assertion(fromtheright && zcolumns==m || !fromtheright && zrows==m);
     3227        ap::ap_error::make_assertion(fromtheright ? zcolumns==m : zrows==m);
    32283228
    32293229        //
     
    34523452            return;
    34533453        }
    3454         ap::ap_error::make_assertion(fromtheright && zcolumns==n || !fromtheright && zrows==n);
     3454        ap::ap_error::make_assertion(fromtheright ? zcolumns==n : zrows==n);
    34553455
    34563456        //
     
    38603860            return;
    38613861        }
    3862         ap::ap_error::make_assertion(fromtheright && zcolumns==m || !fromtheright && zrows==m);
     3862        ap::ap_error::make_assertion(fromtheright ? zcolumns==m : zrows==m);
    38633863
    38643864        //
     
    40754075            return;
    40764076        }
    4077         ap::ap_error::make_assertion(fromtheright && zcolumns==n || !fromtheright && zrows==n);
     4077        ap::ap_error::make_assertion(fromtheright ? zcolumns==n : zrows==n);
    40784078
    40794079        //
     
    68976897                // First apply standard test to bottom of matrix
    68986898                //
    6899                 if( amp::abs<Precision>(e(m-1))<=amp::abs<Precision>(tol)*amp::abs<Precision>(d(m)) || tol<0 && amp::abs<Precision>(e(m-1))<=thresh )
     6899                if( amp::abs<Precision>(e(m-1))<=amp::abs<Precision>(tol)*amp::abs<Precision>(d(m)) || (tol<0 && amp::abs<Precision>(e(m-1))<=thresh) )
    69006900                {
    69016901                    e(m-1) = 0;
     
    69376937                // First apply standard test to top of matrix
    69386938                //
    6939                 if( amp::abs<Precision>(e(ll))<=amp::abs<Precision>(tol)*amp::abs<Precision>(d(ll)) || tol<0 && amp::abs<Precision>(e(ll))<=thresh )
     6939                if( amp::abs<Precision>(e(ll))<=amp::abs<Precision>(tol)*amp::abs<Precision>(d(ll)) || (tol<0 && amp::abs<Precision>(e(ll))<=thresh) )
    69406940                {
    69416941                    e(ll) = 0;
  • Tst/Manual/exportto.res.gz.uu

    rede6da rbbca14  
    1 begin 640 exportto.res.gz
    2 M'XL(""W"UUX"`V5X<&]R='1O+G)E<P#MF5M/VS`4@-_Y%1;;0XJJTH3+&$B1
    3 M!AM3!6,;[=,F%*6)$PS.!?MDE$W[[[/;)NG4T"3.]H0K45KW?#F.[Y\RGKP?
    4 M72&$3!M=CD[1-G`84#+=/D'BDT-B`D;O9$O^1[:-\"Q-&$`RB/'C@(,+6^,E
    5 M;]DH98F'4K,HVAN@7\67_8%X(S$@TK\[*4H/96E^4>,L8PS'T">],N)HR44N
    6 MH*@H-H>RF!(./UR6<R5E6G]==Y*D_6CE5U&7W\67`U%Q4][C[BX2@6C#Z_OP
    7 M!J'4]>[=$,]CC4E/8L?'T4;,O"ENP40S9"X84IM*-M=P$7S7)$$>_*HV6+9<
    8 M'W'R$Q_G4&K6WKGHWT6L'!I?F,@X%D.`/Q>+`I9$:#F@2G"".;SS_0U)-H"?
    9 M,@JMP=LD<KPGCQ*O)5@)-0'/,TI'/G9I6S#&,W!$RX9M01;B>#Y=E4#QAYD+
    10 MV!&!?N:!D["6X)0FWCU7R#@'6]ZC(Z82([/VC>,\8A+>ED.V#@0L:<Q;#P`.
    11 M_H>';+W_:\&0)7@JFD8.]E;@YPPF),*L=<9K+)?)"K8._(@5,XXA22O).G`D
    12 MNE`)K)H8#?O1A8PK@"2,$X95,CYQP)%R59V`4%P!<IBO*NL;^)SW&)9SL6KA
    13 M64LLJ-AWF5]FCTC<8.MXEG9G'6A?U!O$D%"C%\O!Q:D:':1R#PP4:[X)KJ=Y
    14 MI]P/60)$')GV.]$'G>B]3K35B3:5:?616K6--*?S?4&QOSDE43A5S'U+Z/2Z
    15 M<FEH-,Y=9HE3^K7:VI+WV"7AH#!+P)>55YUCX`<AC13I@(H)^BUN1-]C%F.*
    16 MC+/>"OL5=6!3)?:<)BX@M;P>2SB7Y\=V;.YAAW:I5N+L8Y:Z]L9>43GY4S\U
    17 M5VSNR"Y$4#C9?Q6Y87>1T^JDU4FKDU8GK4Y:G;0Z:772ZJ352:N35J<NZO1V
    18 MQ8"D'RT=2'YLZD#S6..JU^I9T#*_-;07%Y"@T3GYBWJ6MK.#&/9Q($Y98HY'
    19 MR%A_;%GTLV5JT]6FJTU7FZXV76VZVG2UZ6K3U::K35>;[DLQ7<OZUZ;;RFA:
    20 5:O&>C<HMUQ!U?;WU!^(/K>-N*P``
     1begin 644 exportto.res.gz
     2M'XL(".'D#%\"`V5X<&]R='1O+G)E<P#MF5MOFS`4@-_[*ZQN#Z2*TD`OZUH)
     3M:>TNBM9U4Y.WJ4($'.K68&H?UG33_OOL)$"FT`!FDR;-D9HFSODXQO=/C"=O
     4M1U<((=M%EZ-SM`L"!I1,=\^0_.21A(#5.]M1_Y'K(CQ/&0=@@P0_#@3XL#->
     5M\8Z+4LX"E-I%T<$`_2B^'`[D&TD`D?[=65%ZK$KSBUH7&><X@3[IE1$G*R[V
     6M`<5%L3U4Q90(^.;SG"LIV_GMNA.6]N.U7V5=?A9?CF3%;76/^_M(!J(MKZ_#
     7M&X12/[CW([R(M28]A9V>QELQ^Z:X!1O-D;UD2&TJU5S#9?!=DP1Y\(O:8-5R
     8M?23(=WR:0ZE=>^>R?Y>Q:FA\X3+C6`X!\5PLFG$6H]6`*L$)%O`F#+<DV0)^
     9MRBBT!F]9[`5/`25!2[`2:@*^SR@=A=BG;<$$S\&3+1NU!7F$D\5TU0+E'^8^
     10M8$\&AED`'N,MP2EEP;W0R+@`6]ZC)Z<2)_/VC>,]8A+=ED.V#@2L:"Q:#P`!
     11MX;N';+/_:\&(,SR53:,&>ROP<P83$F/>.N,U5LMD!5L'?L":&<?`TDJR#AS)
     12M+M0"JR9&PW[T(1,:((D2QK%.QB<!.-:NJC<C%%>``A:KRN8&ON`#CM5<K%IX
     13M-A)+*@E]'I;98Y(TV#J>I?UY!SJ4]08Y)/3HY7+P\5R/GJ5J#YQIUGP;7$^+
     14M3KD?,@9$'ID..]%'G>B#3K33B;:U:?V16K6--*?S?4&SOP4E<335S'U+Z/2Z
     15M<FEH-,Y][LA3^K7>VI+WV"41H#%+(%25UYUC$,XB&FO2[RGSH6%_WV.>8(JL
     16MBUZ^'C,AU%FL'9L[S;%;:HH\1]BE^KQRU[1(_=1/[34S.G$+J9)^\U>E:-A=
     17MBHR&&`TQ&F(TQ&B(T1"C(49#C(88#3$:\N]HR.LUFU"NL?()];&I3RQBK:M>
     18MJV<4J_S.T%U>0(%6Y^3_U3.>O3W$<8AG\L0BYTN,K,W':44_.[:Q1F.-QAJ-
     19M-1IK--9HK-%8H[%&8XW&&HTUZEBCX_QI:VQE!RT5\\!%Y?9ER;J^W/D%P.;J
     20%5U(I````
    2121`
    2222end
  • Tst/Manual/exportto.stat

    rede6da rbbca14  
    1 1 >> tst_memory_0 :: 1591198253:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:85080
    2 1 >> tst_memory_1 :: 1591198253:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2150192
    3 1 >> tst_memory_2 :: 1591198253:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2191296
    4 1 >> tst_timer_1 :: 1591198253:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:5
     11 >> tst_memory_0 :: 1594680545:4132, 64 bit:4.1.3:x86_64-Linux:mini:84248
     21 >> tst_memory_1 :: 1594680545:4132, 64 bit:4.1.3:x86_64-Linux:mini:2150192
     31 >> tst_memory_2 :: 1594680545:4132, 64 bit:4.1.3:x86_64-Linux:mini:2191296
     41 >> tst_timer_1 :: 1594680545:4132, 64 bit:4.1.3:x86_64-Linux:mini:3
  • Tst/Manual/importfrom.res.gz.uu

    rede6da rbbca14  
    1 begin 640 importfrom.res.gz
    2 M'XL("'O"UUX"`VEM<&]R=&9R;VTN<F5S`.V9WVO;,!"`W_-7B+`'!T:ZI.T*
    3 M#036;1UAW:\D3QO#*+;LB,B2*YW7]+^?Y#9-H%YLRWW8PP5"#/&GDZW3G3^\
    4 M6'Z8?26$C*;D9G9%^F!@*/BJ/R'V*.220S"8]-POF4X)SW*E(=$J&TIV-S1`
    5 MH;=X'&$\)8(;^$-UL%2YA4Y.B#T@1SZ_WOPF)*?1AJ:L/#=8#AQV>>F"?]=<
    6 MPL*&,)685A%Q,R&/4]Z#2V;@71S_*]YQ\$LAH#6X5ED8W4>"1RW!2J@)>%T(
    7 M,8L9%6U!R;80VCN;M@5URF29$%Z@_3)-@87VQ+B((%2Z);@2*MH8CX@EV/(:
    8 MPXR"YMOV-R>\8SQ=[U.V#@3F:&9:)X"!^.-M\7S]:\%4*[:RM\8E>ROP6P%+
    9 MGC'=.N*<N:I1P=:!GYAGQ`6HO)*L`V=V";W`JHW1<!TI%,8#Y*E4FOE$O#?`
    10 M,N^IA@D7K`(T4%:5JA91CA!IYG9C5>EY%MI2,J8ZWL?/N*SK(\=HNNU`QW;>
    11 M8)/"CWXH")^O_.@D=UTP\9SY,;B>-IUBWQ8*.)-PUHD^[T2?=J+'G>B1-^V?
    12 MJ56-I#F]ZPR>ZVT$S]*59^PU%ZMY96EHE.=4C^V#Y]ROMNQ6[(8;\-@E$+O)
    13 M^^XQB)-49)YT(NP&_2D;T1NF)1,D>#\X8'^0#FSNQ5X+18'XQ8VT,L8]0;9C
    14 M=XIR:A5%T3CH<ZF*!\^QGK+[]PP%!@4&!08%!@4&!08%!@4&!08%!@4&!>;_
    15 M$9CSPU<PP<Q9S.N<%H8=:,S;E]28<O"&U_HD56A`:$!H0&A`:$!H0&A`:$!H
    16 >0&A`:$!H0"]A0!=3LN]CP6@P>=7["_)%JC3#)@``
     1begin 644 importfrom.res.gz
     2M'XL("/;D#%\"`VEM<&]R=&9R;VTN<F5S`.V976O;,!1`W_,K1-B#`R-=TG:#
     3M!@+KMHZP[H,D;V,8Q;YQ1&3)E:[7]-]/<INF4#>VY#V,H4"((3ZZLG1UI8,7
     4MRX^S;X20T91<SRY)'S4..5OU)\1<Q4PPC`:3GOTETREA>2$5KI7,AP)NAQHI
     5M]A8/+8RGA#.-OZF*EK(PT,D),1?DR.?GFU^$%#39T@RJ>Z/EP&(7%S;X#\4$
     6M+DP(78LIF1#;$_+0Y0.X!(WOT_2E>,?!KR5'9W`C\SBY2SA+',%:J`UX57(^
     7M2X%R5U#`#F,SLIDKJ#(054)X@>8+BB+$YL:T3#"6RA%<<9ELM4?$"G1\QCBG
     8MJ-C.?7#B6V#9YI"R32""I4$[)X#&]---^7S^&\%,25B9H;')[@1^+W')<E#.
     9M$>=@JT8-VP1^!L^("Y1%+=D$SLP4>H%U"Z/E/%(LM0?(,B$5^$2\TPBY=U?C
     10M->-0`VJLJDK=%E&UD"BPJ[&N]#P+;2B14I4>XN=,-.TCQVBZZT"GIM]HDL*/
     11MOB\(7R[]Z'5A=\&U9\^/P<VT[A3[II3(0.!9)_J\$WW:B1YWHD?>M'^FUFTD
     12M[>G]SN`YWYJS/%MYQMXPOIK7EH96>4[5V!P\YWZU93]CUTRCQRK!U';>=XUA
     13MNLYX[DE?<4FQY7QO00G@)/HPV-=CJ;4]C;FQ^^/^J3GN2YI&?29D>>\,YLR_
     14M__<LR$"0@2`#00:"#`09"#(09"#(0)"!(`/_JPR</WTU$,VL$;PN:*GAB1*\
     15M_9M*4#7>\ED?!2781+")8!/!)H)-!)L(-A%L(MA$L(E@$_^>3;R;DL.>$(T&
     16,DU>]/R`:$V*G)```
    1717`
    1818end
  • Tst/Manual/importfrom.stat

    rede6da rbbca14  
    1 1 >> tst_memory_0 :: 1591198331:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:86528
    2 1 >> tst_memory_1 :: 1591198331:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2150192
    3 1 >> tst_memory_2 :: 1591198331:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2191296
    4 1 >> tst_timer_1 :: 1591198331:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:4
     11 >> tst_memory_0 :: 1594680566:4132, 64 bit:4.1.3:x86_64-Linux:mini:85696
     21 >> tst_memory_1 :: 1594680566:4132, 64 bit:4.1.3:x86_64-Linux:mini:2150192
     31 >> tst_memory_2 :: 1594680566:4132, 64 bit:4.1.3:x86_64-Linux:mini:2191296
     41 >> tst_timer_1 :: 1594680566:4132, 64 bit:4.1.3:x86_64-Linux:mini:3
  • Tst/Manual/listvar.res.gz.uu

    rede6da rbbca14  
    1 begin 640 listvar.res.gz
    2 M'XL("-/"UUX"`VQI<W1V87(N<F5S`*67W4_;,!#`W_DKK&D/92`@Y6L#46F,
    3 M,55C&Z,\;9HB-[D$JXY=[,MHF?:_STZ;M&A-&KM]:*O<_7R7^TIN<'_5_TH(
    4 M"7KDIG])7J'&/<Z&K\Z)^1<RP;"S?;YE?TFO1SC3^)NJ/0%/>QHI;@WF>+=G
    5 MOL9*1@0#\H?\K02'"T'WA>#("A03*='GU<7C0EOR*=%+5T\J5;6X>%JI)A>3
    6 MG>G.\T+TUHJ80,(N3A=7WQ578Z"<]"^2W<GNM)(%!U8VOSE[O_O[A)'&S\^#
    7 M7S,;IU99M5!^8^_`*A>??IOCK;.[Y)"D($!1E*JCMZL3DA8GV/A80+?0+=VS
    8 M>;>YS768,`XK=346Z:@KAR!8CJ>:!=0I1AN%IW5D2G>[R^YB,//7%/+Z4TQA
    9 M5Z<<+I]B)?-SNBW/<;$YS].MB1<.3.1UO2Y)E,S(O*]+\!XTOH_C1B.UX)><
    10 MHS/X(+,PFD:<18Y@#;0>O,XY[Q?][@@*F&!8%+@CJ$PE%C/3"YR7,81&+<XC
    11 M#*6*P0D<<AF-M(?%`G2\QS"C9@I,W(,3/@%+'Y9+MAE$L#1HYP+0&']\S%?E
    12 M?PV8*@E#$QI;[$[@MQSO60;*V>(=C*5:S3:#G\#3X@#EN(9L!OLFA5[@ZL9H
    13 ME4?[-/(`62JD`A^+4XV0.8*1`MM+JP?'?Z"Y*1%3%9=TQD2KT5]#T\D&=&S\
    14 M1I-2/WK6SI\O_>AD;)]AB:?GS?`Z6F]D^S&7R$#@T4;T\4;TX49T=R,Z\*;]
    15 M*W7U8Z`M7<YUSWQKSK)TZ&G[@?'A7<UH:%'G5'7-:^6=WVPI,W;#-'IT"<;6
    16 M>=\>PSA)>>9))]PTZ`_1DAZ!$L!)Y\-VQ7XG&[!C+_::2XK$SVZDI-;V_<^5
    17 M+9>08JTN-GF[X<Q6^4IXO+RAW!KY;$.Q_]8V%8U&-(69;F>P6YY>>'UV9C9`
    18 ME.**T72]UR4Z(W4^5'V!H!3$;B2+NUE=H)I)@W69%QE)XZI`#Y)'6>N:>$DJ
    19 M&H?&K@=IWGXRRMDSN$>(B1C2P">V!>F5%3KQM5F0GC8C"8D'R73X#$IZD(D"
    20 MLW6)D3LYHAB:UB5>I,X5]2"!0S:89ED_]B57CI?F+JM?^==/$XT,<P17TC[B
    21 E:@=A(SED0KIV-NG8I89%B\%]TEO:=3K!]OGKK7\VIX@NG!4`````
     1begin 644 listvar.res.gz
     2M'XL("`[E#%\"`VQI<W1V87(N<F5S`*67W4_;,!#`W_DKK&D/[4!`RM<&HM(8
     3M8ZK&-D1YFZ;(32[!JF,7^S):IOWOLY.F+5J3QFX?VLIW/]_EOF(/'ZX'WPDA
     4M09_<#J[(&]2XS]GHS04Q_T(F&':Z%SOVE_3[A#.-OZG:%_"\KY'BSG".]_KF
     5M:Z)D1#`@?\C?A>!H*>B]$AQ;@6(B)?IBL7A2:$L^(WIE]72AJI:+9PO5Y'*Z
     6M.]M]68K>6Q$32-CEV7+U0[$:`^5D<)GL3?=F"UEP:&7SA[//>W!`&&G\_#S\
     7M5=HXL\JJA?([^P16N?@,VFQOG=TC1R0%`8JB5!W=7>R0M-C!QL<"NH5NY9[-
     8MN\UMKL.$<5BKJ[%(1UTY!,%J/%494*<8;16>UI&IW.VMNHM!Z:\IY,V[F,)>
     9M['*TNHN5S/?IM=S'Q>8\3W<F7C@TD=?UNB11,B/SOJ[`!]#X,8X;C=2"WW*.
     10MSN"CS,)H%G$6.8(UT&;P)N=\4/2[(RA@BF%1X(Z@,I58S$PO<%[&$!JU.(\P
     11ME"H&)W#$9336'A8+T/$9PXR:*3!U#T[X#"Q]7"W99A#!TJ"="T!C_/DI7Y?_
     12M#6"J)(Q,:&RQ.X$_<GQ@&2AGB_<PD6H]VPQ^`4^+0Y23&K(9')@4>H'K&Z-5
     13M'NW;R`-DJ9`*?"S.-$+F"$8*;"^M'QS_@>:A1$Q57-$9$ZU&?PU-IUO0L?$;
     14M34K]Z+*=OU[YT<G$OL,23\^;X4VTWLKV4RZ1@<#CK>B3K>BCK>C>5G3@3?M7
     15MZOK70%NZFNN>^=:<9>G(T_8CXZ/[FM'0HLZIZIECY;W?;*DR=LLT>G0)QM9Y
     16MWQ[#.$EYYDG?<$FQ=;['H`1PTOG4+>>QU-J>I5S9ZD!?7%&+6[&]+937XH7P
     17M9/6T?V?DY6G?_MM8H#0:TQ1*W<YPK]J]\/K\W-RF4(IK1M/-7E=H2>I\I`8"
     18M02F(W4@6][*Z0#63!NLQ+S*2QE6!'B2/LM8U\9I4-`Z-70_2G"0RRMD+N$>(
     19MB1C2P">V!>F5%3KUM5F0GC8C"8D'R73X`DIZD(D"<X,18W=R3#$TK4N\2)TK
     20MZD$"AVPXR[)![$NN'2_-759_?=X\330RS!%<2?NZJ!V$C>2(">G:V:1C+P@L
     2176@[NT_[*O:$3="_>[OP#@YXX6N@4````
    2222`
    2323end
  • Tst/Manual/listvar.stat

    rede6da rbbca14  
    1 1 >> tst_memory_0 :: 1591198419:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:301568
    2 1 >> tst_memory_1 :: 1591198419:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2278208
    3 1 >> tst_memory_2 :: 1591198419:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2319312
    4 1 >> tst_timer_1 :: 1591198419:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:6
     11 >> tst_memory_0 :: 1594680590:4132, 64 bit:4.1.3:x86_64-Linux:mini:300736
     21 >> tst_memory_1 :: 1594680590:4132, 64 bit:4.1.3:x86_64-Linux:mini:2278208
     31 >> tst_memory_2 :: 1594680590:4132, 64 bit:4.1.3:x86_64-Linux:mini:2319312
     41 >> tst_timer_1 :: 1594680590:4132, 64 bit:4.1.3:x86_64-Linux:mini:4
  • Tst/Old/m96si.res.gz.uu

    rede6da rbbca14  
    1 begin 640 m96si.res.gz
    2 M'XL("-2PUUX"`VTY-G-I+G)E<P!=DDMKPS`,@._^%:;LT%[&\NIC83V4,2@K
    3 M@ZX]U8SB+$YJ<)S4=O?X]U-F+6EV,=*'97W(VNT?UR^4TF`)A]2.2OI`%RG9
    4 M(0];;J0NJ>EAU,*F5M^TZ&'<0LTK8<>3E+#@[9ZTI82%/I*$13YRUAVMX^YB
    5 MCX54@K#8\W<CN!/'MAMAB6>5U(1-,>9?A,U\G,--)RLHGGOP*61Y<L\KPA8>
    6 M%`T\Y`HPN?.@RU'-=@`-SY?:2:%=#"@:H@10/$01H&2(0D#3(0H`S7H$&?H:
    7 M82%!U]+4(M.B'1;*GJV259D!0-N35-GK[V1"U&VX"3^X0?A/>",M-`O1V;J\
    8 MK0>0=*`H504`?7>.ZYR;'`CJ%@JF<X#IA_,KL(5\<9TW\*WH_*1J#DVCX.\[
    9 M:PLSKN'-")4/!XC1=`M/1>BWKYMNCY)^C\S5(A7=A>F2;M8K.H(UNE4R&Z7]
    10 0/HV#27I#?@`I(*N%U`(`````
     1begin 644 m96si.res.gz
     2M'XL("&3##%\"`VTY-G-I+G)E<P!=TLEJPS`0!N"[GD*$'I)+J;<L-<TAE$)H
     3M**3)*:($N98=@6TYDM+E[3NJ)G;=BQA]:/F19K=_7+]02H,E#+*Q5-('NDC)
     4M#CUTKF534MUCY+!5U3<M>HP=-KP69CQ)"0O>[HG;2ECH*TE8Y"MK[-%8;B_F
     5M6,A*$!9[?]>"6W%TMQ&6>*ME0]@4:_Y%V,S7.:RTLH;-<P^?0I8G^[PB;.&A
     6M:.$@6T"2.P_='*.9#C#A^:*L%(V-@:(A)4#QD"*@9$@AT'1(`="L)YAA7BT,
     7M3#!KJ97(&N$>"\.>327K,@/`M"=99:^_+Q-BW);K\(-KQ'^!-]+`92%F-C9W
     8M^P&2#HJRJ@$P[\[R)N<Z!\&X3Y7B[HCY]7.4@1=3;@6F/AS@2S'O=@LU1MVK
     9JMNN*I.\*_:<MBF[!=$DWZQ4=05/<5C(;I7UWC(-)>D-^`$"!M'*B`@``
    1110`
    1211end
  • Tst/Old/m96si.stat

    rede6da rbbca14  
    1 1 >> tst_memory_0 :: 1591193812:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:212160
    2 1 >> tst_memory_1 :: 1591193812:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2278208
    3 1 >> tst_memory_2 :: 1591193812:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2319312
    4 1 >> tst_timer_1 :: 1591193812:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:3
     11 >> tst_memory_0 :: 1594671972:4132, 64 bit:4.1.3:x86_64-Linux:mini:211328
     21 >> tst_memory_1 :: 1594671972:4132, 64 bit:4.1.3:x86_64-Linux:mini:2278208
     31 >> tst_memory_2 :: 1594671972:4132, 64 bit:4.1.3:x86_64-Linux:mini:2319312
     41 >> tst_timer_1 :: 1594671972:4132, 64 bit:4.1.3:x86_64-Linux:mini:2
  • Tst/Old/proc.res.gz.uu

    rede6da rbbca14  
    1 begin 640 proc.res.gz
    2 M'XL(".VPUUX"`W!R;V,N<F5S`.U806^;,!2^YU=8=(=$ZFAL0](L:@[=-*E:
    3 M-6GM3JNJB("AU@@PXZS3IOWWV208DR89,X==W`.RG]_W_/&>\??2^\_O;CX"
    4 M`.`"%"P/00$']SL3<L$O-<&N>#@T$P[.7%E]:2W0<-28II5CD`3"=]]])M<8
    5 MX1N6`0T#H0M^JPFJF2!EPAH3Z"DFJ`D-)]*:TI)_#]@P2%,M^J6^)$,W:VB\
    6 MQU8+B=!AMLC3V")_QY:14-DF&ETTK>D*#^?\[`$^-I&J?-`8#*49+,:C>@5#
    7 MN:*"X"K[DDQ8N;Z&#1U<U4`1PE,]YM65%G/6BNG!;<R#.?-P>[&=-:^]I;=7
    8 M\I<OZATIO*\7WA>%=T)!8WMF=B.UBD6BH<16AZIZHL'%!3@#)_\>T./V-<Y!
    9 M27^2-V#<!00/@7C)ER4/^*9<QC0E+T!C`2HYHUE2'0DW(\^N])=8D9.3&TJL
    10 M!$G?`H'NOK"[;\A(P,FR(GC*%\0L7XLW";(H8)&;TI5$KT7&N^QT!!W\Z(&.
    11 M!&].U\0,_4QH\L0_7)NAXT(DC,>&S$^#_X8N>^W];9-S2C+N]4+[O="X%QKU
    12 M0D-CM/E)9:3L<<X3EI-51IAAO<N4KI.5X=Y/-%W=';D:.ISS@"$A%'=F=TM=
    13 ML5MQY1I\)3R2Y$V_,1[%2;HV1,>I^$"_9!W17PG+2`J&;T<*^PGTP!9&V/=I
    14 M'G!@MF_(\E+<2GGTKUBMQ=+&C;Q[2OR1$G_5`/JRRT*U^".KX%;!K8);!;<*
    15 M;A7<*OC_4/!:ER>U:LO_3.!1K=S;F?*:+G:62K^ED.)Z@.H!K`>=?I][>^H.
    16 MNX"P"0B9@.`AD&T^;/-AFP_;?-CFPS8?MODP;3ZV+4)K"MM3U)YBU89<BF:%
    17 E9)%H4L1366<+<'MS#1PAS[(JSKS1Z2$<S5\-_@#"T<I^(AL`````
     1begin 644 proc.res.gz
     2M'XL("&3##%\"`W!R;V,N<F5S`.U706^;,!2^YU=8=(=$ZFAL0](L:@[=-*E:
     3MM4.[6U5%!`RU1B`SSCJMVG^?#<&8-,F8N6R2<T#V>^][_OR>\4?NOWRX^0P`
     4M@`NP87D(-G!POS,A%[RH"7;%PZ&9"'#FRNI+ZP8-1XUI6@8&22!B]\-GTL<(
     5MW[(,:!@(7?!+35#-!"D3UIA`3S%!36HXD=:4%OQ[P(9!FFK9+W673-WXT'B/
     6MK982H<-LD:>Q1?Z.+2.ALDTTNFA:TQ41SOG9`WQL,I7UH#$82C-8C$>U!T/I
     7M44EP67U))BQ#W\*&#BY[H`CAJ9[SZDK+.6OE]&"5\V#-/-QVMJOFM9?T]EK^
     8M>J/>D<;[>N-]T7@G%#2J,[,;*2\6A8826QZJ\HD&%Q?@#)S\/:#':AOGH*`_
     9MR3LP[@*"AT"\X,N"!WQ;+&.:DE>@L0`5G-$L*8^$FY%G5\9+K*C)R04E5H)D
     10M[`:![K&P>VS(2,#)LB1X*A;$+%^+G019%+#(3>E*HM>BXEU6.H(.?O1`1X(W
     11MIVMBAGXF-'GBGZ[-T/%&%(S'ALQ/@_^$+GJM_6V;<THR[O5"^[W0N!<:]4)#
     12M8[3Y266DZ''.$Y:354:88;^+E*Z3E>':3S1=W1VY&CJ<\X`A(11W9G=+W;%;
     13M<>4:O"4\DN1-WS$>Q4FZ-D1_3/.`=^[W5\(RDH+A^U%U'^>%>,/SZ&^QVN>*
     14M-FZDTE-"BI20JH\I7WZQH%I(D55#JX96#:T:6C6T:OC_JV&M<9-:`>4_9CRJ
     15M5;":J:CI8F<IM5"*$JX'J![`>M#I?Z.WIY2P"PB;@)`)"!X"62&W0FZ%W`JY
     16M%7(KY/^&D%=RVYK"]A2UIUA)^J40?I)%0O#%4UEG"W![<PT<(75RA\Z\T;PA
     17.',W?#'X#,73#X`89````
    1818`
    1919end
  • Tst/Old/proc.stat

    rede6da rbbca14  
    1 1 >> tst_memory_0 :: 1591193837:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:83456
    2 1 >> tst_memory_1 :: 1591193837:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2215936
    3 1 >> tst_memory_2 :: 1591193837:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2215936
    4 1 >> tst_timer_1 :: 1591193837:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:3
     11 >> tst_memory_0 :: 1594671972:4132, 64 bit:4.1.3:x86_64-Linux:mini:82624
     21 >> tst_memory_1 :: 1594671972:4132, 64 bit:4.1.3:x86_64-Linux:mini:2215936
     31 >> tst_memory_2 :: 1594671972:4132, 64 bit:4.1.3:x86_64-Linux:mini:2215936
     41 >> tst_timer_1 :: 1594671972:4132, 64 bit:4.1.3:x86_64-Linux:mini:2
  • Tst/Short/ok_s.lst

    rede6da rbbca14  
    1616bug_newstruct
    1717bug_newstruct3
     18bug_newstruct4
    1819bug_normalize
    1920bug_opposite
  • Tst/Short/ssi_Z.res.gz.uu

    rede6da rbbca14  
    1 begin 640 ssi_Z.res.gz
    2 M'XL(".##UUX"`W-S:5]:+G)E<P#-54UOXC`0O?,K1M$>PA8%;*=`0,FANY=*
    3 MJY6ZW5-0A6)PFJAN$L7IPO[['4.^*!;EMO4EUO/XC=]\Y?'W]_N?`$`"^'%_
    4 M!U:E*D>FW%H.'NL3&@""ZS1+*WNX'.@O!`$HE:Y#)Q,[1U51U5JS`-J]ZX!,
    5 MLQ>0Q+?0?+'#2\3!78_]-H`RS9ZA)'X8CO:C;=&=30,H<OD7"G]_0TB'SP+8
    6 ME6DE;$E&Q;##YPT71:XQI>_H/#,=F9CI"(9D(W.E\1Z*X3B*HD=1Y;DH@D'8
    7 MBA@2XI<BVMJ2]NZ[`>++@7Y"BV$0>*2$?OQR,![#)A=QG&Y2D55J`6&HL>SM
    8 ME8L2\AC^1*6"!1"-UHO+?/.BLXAX7FX/3+`M>A;=6D`6O0JEMWL#!>U3?&N?
    9 M.*TE48,DS$="WTF:?R!I;%,Z_`2Z/)U.5:%O7=QX#3/Y"TT(F-=J\@3P59.T
    10 M/A(*E];AABZ\'OODDFU#+J_@U:6H;<LK;!O>DEQO*\GU;]!30L^"-[6.4RF,
    11 MMJHZQ-\\/.BD[;A>>5'2C11*G;K%F1^CW^JAL"W.K>%IJU-VTNHWG'='V'^%
    12 MKE6;<SP:MOBM>0K0:3-4W*/',+.I-[*B,Y^S4Y]1=S)O7$8G'CVS1S8QS1U&
    13 MZ@9DYPW(<"8ES""*L8M=6$=PQ?G3_^]$YM8"78-`3$[BGH>033_6M\`_@;>*
    14 =/H/"F:F\V;PK;^8YO2ZR,?U?!O\`-/HK4*$'````
     1begin 644 ssi_Z.res.gz
     2M'XL(".[&#%\"`W-S:5]:+G)E<P#-54V/FS`0O>=7C%`/I!L1/":;D"@<VEY6
     3MJBJUVQ/1*L()-&B]@##;I/^^8T*`-%8VMZTO6,_C-W[SQ>//+P_?`(`%\/7A
     4M$UB5JAR9"FLQ>&Q.,``"UVF65O9P,=!?"`)0*EV'3A;O'55%56O-:QXKD6E6
     5M.2KO\7@!M/N)`V3P#)(M+2*:[XF..;3KV=\'4*;9+RC9,@Q'A]&VZ,ZF`12Y
     6M_`/%\G#'6(?/`MB7:17;DHV*88?[)RXDKC'B.1USS72,F>D8A60C<Z7Q'DK2
     7MCZ+P**J\%,4H"-LX@1U;EG&TM27V[D\"PA<#_806HR"(2,7Z\8O!>`R;/$Z2
     8M=)/&6:7F$(8:RUY?1%Q"GL#OJ%0P!Z;19@F9;YYU?@G/RVW-!-NB9]&M.631
     9M2ZST]F"@P#[%Y_:)TT82&B11/G;XCR3_#4EC&W'X_KK0U>E4%?G694_7*),_
     10MR(2!>:W<)X"/FJ3UL4.XMNH;NO!Z[.XUVQ.YO(%7EZ*V+6^P/?&6['9;R6Y_
     11M@YX?>DJ\JG62RMAHJZHZ_N:Q@JSMN%YY(78C!;G3M#A?UL/G>V%;0EC#\U9'
     12M[ZS5[X3HCJC_"EVKMA!T-&SQ>_,4P.EIJ'A'CV%FHS^RH@N?LW.?47?BGUQ&
     13M?8_<-7ODS#1W.#8-R"\;D--,VG&#*.Y=[<(F@BLAGMZ_$_FD$>@9!%)R=IXA
     14FA-.W]<WI3^"OHO]!X<Q4WMSORMMSG5X7V93^#X._L:+(V;L'````
    1515`
    1616end
  • Tst/Short/ssi_Z.stat

    rede6da rbbca14  
    1 1 >> tst_memory_0 :: 1591198688:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:94048
    2 1 >> tst_memory_1 :: 1591198688:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2150192
    3 1 >> tst_memory_2 :: 1591198688:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:2191296
    4 1 >> tst_timer_1 :: 1591198688:4132, 64 bit:4.1.3:x86_64-Linux:nepomuck:4
     11 >> tst_memory_0 :: 1594672878:4132, 64 bit:4.1.3:x86_64-Linux:mini:94168
     21 >> tst_memory_1 :: 1594672878:4132, 64 bit:4.1.3:x86_64-Linux:mini:2150192
     31 >> tst_memory_2 :: 1594672878:4132, 64 bit:4.1.3:x86_64-Linux:mini:2191296
     41 >> tst_timer_1 :: 1594672878:4132, 64 bit:4.1.3:x86_64-Linux:mini:3
  • Tst/Short/ssi_Z.tst

    rede6da rbbca14  
    11LIB "tst.lib";
    22tst_init();
     3LIB"flint.so";
    34
    45link l1="ssi:w ss1.ssi";
  • Tst/regress.cmd

    rede6da rbbca14  
    12091209
    12101210# Und Tschuess
     1211if ($exit_code != 0 && ($exit_code % 256) == 0)
     1212{
     1213  $exit_code = 1;
     1214}
    12111215exit $exit_code;
    12121216
  • autogen.sh

    rede6da rbbca14  
    11#! /bin/sh
     2set -e
    23
    34cd `dirname "$0"`
  • configure.ac

    rede6da rbbca14  
    9090
    9191# Check whether --with-gmp was given.
     92DEFAULT_CHECKING_PATH="/usr /usr/local /sw /opt/local"
    9293GMP_HOME_PATH="${DEFAULT_CHECKING_PATH}"
    9394if test "$with_gmp" = yes ; then
     
    109110  fi
    110111done
     112if test -z "${GMP_LIBS}"
     113then
     114  GMP_LIBS="-lgmp"
     115fi
     116
    111117CFLAGS="${BACKUP_CFLAGS} ${GMP_CPPFLAGS}"
    112 LIBS="${BACKUP_LIBS} ${GMP_LIBS}"
     118LIBS=" ${GMP_LIBS} ${BACKUP_LIBS}"
     119
    113120AC_SUBST(GMP_CPPFLAGS)
    114121AC_SUBST(GMP_LIBS)
  • factory/FLINTconvert.cc

    rede6da rbbca14  
    6464#include <flint/fmpq_mpoly.h>
    6565
    66 #if (__FLINT_RELEASE < 20601)
     66// planed, but not yet in FLINT: #if (__FLINT_RELEASE < 20602)
    6767// helper for fq_nmod_t -> nmod_poly_t
    6868static void fq_nmod_get_nmod_poly(nmod_poly_t a, const fq_nmod_t b, const fq_nmod_ctx_t ctx)
     
    8181    fq_nmod_reduce(a, ctx);
    8282}
    83 #endif
     83//#endif
    8484
    8585
     
    384384  bool save_sym_ff= isOn (SW_SYMMETRIC_FF);
    385385  if (save_sym_ff) Off (SW_SYMMETRIC_FF);
     386  #if __FLINT_RELEASE >= 20503
    386387  nmod_poly_t res;
    387388  nmod_poly_init(res,getCharacteristic());
     389  #endif
    388390  for (CFIterator i= f; i.hasTerms(); i++)
    389391  {
     
    399401    {
    400402      STICKYASSERT (i.exp() <= fq_nmod_ctx_degree(ctx), "convertFacCF2Fq_nmod_t: element is not reduced");
     403      #if __FLINT_RELEASE >= 20503
    401404      nmod_poly_set_coeff_ui (res, i.exp(), c.intval());
    402     }
    403   }
     405      #else
     406      nmod_poly_set_coeff_ui (result, i.exp(), c.intval());
     407      #endif
     408    }
     409  }
     410  #if __FLINT_RELEASE >= 20503
    404411  fq_nmod_init(result,ctx);
    405412  fq_nmod_set_nmod_poly(result,res,ctx);
     413  #endif
    406414  if (save_sym_ff) On (SW_SYMMETRIC_FF);
    407415}
  • factory/Makefile.am

    rede6da rbbca14  
    6565                fac_sqrfree.cc \
    6666                fac_util.cc \
     67                fac_berlekamp.cc \
     68                fac_cantzass.cc \
     69                fac_univar.cc \
    6770                facFqBivar.cc \
    6871                facFqBivarUtil.cc \
     
    8487                int_poly.cc \
    8588                int_rat.cc \
     89                int_pp.cc \
    8690                variable.cc \
    8791                NTLconvert.cc \
     
    145149                fac_sqrfree.h \
    146150                fac_util.h \
     151                fac_berlekamp.h \
     152                fac_cantzass.h \
     153                fac_univar.h \
    147154                facFqBivar.h \
    148155                facFqBivarUtil.h \
     
    164171                int_poly.h \
    165172                int_rat.h \
     173                int_pp.h \
    166174                timing.h \
    167175                variable.h \
  • factory/cfEzgcd.cc

    rede6da rbbca14  
    10351035        BuildIrred (NTLIrredpoly, d*3);
    10361036        CanonicalForm newMipo= convertNTLzzpX2CF (NTLIrredpoly, Variable (1));
     1037        #else
     1038        factoryError("NTL/FLINT missing: EZGCD_P");
    10371039        #endif
    10381040        v2= rootOf (newMipo);
     
    10551057        BuildIrred (NTLIrredpoly, d*2);
    10561058        CanonicalForm newMipo= convertNTLzzpX2CF (NTLIrredpoly, Variable (1));
     1059        #else
     1060        factoryError("NTL/FLINT missing: EZGCD_P");
    10571061        #endif
    10581062        v2= rootOf (newMipo);
     
    10821086      BuildIrred (NTLIrredpoly, d*2);
    10831087      CanonicalForm newMipo= convertNTLzzpX2CF (NTLIrredpoly, Variable (1));
     1088      #else
     1089      factoryError("NTL/FLINT missing: EZGCD_P");
    10841090      #endif
    10851091      v2= rootOf (newMipo);
  • factory/cfGcdUtil.cc

    rede6da rbbca14  
    117117          BuildIrred (NTLIrredpoly, d*3);
    118118          CanonicalForm newMipo= convertNTLzzpX2CF (NTLIrredpoly, Variable (1));
     119          #else
     120          factoryError("NTL/FLINT missing:gcd_test_one");
    119121          #endif
    120122          v2= rootOf (newMipo);
     
    132134          BuildIrred (NTLIrredpoly, d*2);
    133135          CanonicalForm newMipo= convertNTLzzpX2CF (NTLIrredpoly, Variable (1));
     136          #else
     137          factoryError("NTL/FLINT missing:gcd_test_one");
    134138          #endif
    135139          v2= rootOf (newMipo);
     
    154158        BuildIrred (NTLIrredpoly, d*2);
    155159        CanonicalForm newMipo= convertNTLzzpX2CF (NTLIrredpoly, Variable (1));
     160        #else
     161        factoryError("NTL/FLINT missing:gcd_test_one");
    156162        #endif
    157163        v2= rootOf (newMipo);
  • factory/cfModGcd.cc

    rede6da rbbca14  
    18251825  N= convertNTLmat_zz_pE2FacCFMatrix (*NTLN, alpha);
    18261826  delete NTLN;
     1827  #else
     1828  factoryError("NTL/FLINT missing: gaussianElimFq");
    18271829  #endif
    18281830  delete N;
     
    19251927  mat_zz_pE *NTLN= convertFacCFMatrix2NTLmat_zz_pE(*N);
    19261928  long rk= gauss (*NTLN);
     1929  #else
     1930  factoryError("NTL/FLINT missing: solveSystemFq");
    19271931  #endif
    19281932
  • factory/cf_char.cc

    rede6da rbbca14  
    1717#include "cf_primes.h"
    1818#include "cf_util.h"
     19#include "int_pp.h"
     20
     21#ifdef HAVE_FLINT
     22#include "FLINTconvert.h" // for __FLINT_RELEASE
     23#endif
    1924
    2025STATIC_VAR int theCharacteristic = 0;
     
    4348}
    4449
     50#if !defined(HAVE_NTL)
     51#if !defined(HAVE_FLINT) || (__FLINT_RELEASE<=20600)
     52void setCharacteristic( int c, int n )
     53{
     54    ASSERT( c > 1 && n > 0, "illegal characteristic" );
     55    setCharacteristic( c );
     56    InternalPrimePower::setPrimePower( c, n );
     57    CFFactory::settype( PrimePowerDomain );
     58}
     59#endif
     60#endif
     61
     62
    4563void setCharacteristic( int c, int n, char name )
    4664{
  • factory/cf_chinese.cc

    rede6da rbbca14  
    2929#include "canonicalform.h"
    3030#include "cf_iter.h"
     31#include "cf_util.h"
    3132
    3233
     
    219220    ZZ bound;
    220221    SqrRoot (bound, NTLq/2);
     222#else
     223   factoryError("NTL/FLINT missing:Farey");
    221224#endif
    222225    for ( i = f; i.hasTerms(); i++ )
  • factory/cf_defs.h

    rede6da rbbca14  
    2121
    2222#define UndefinedDomain 32000
     23#define PrimePowerDomain 5
    2324#define GaloisFieldDomain 4
    2425#define FiniteFieldDomain 3
     
    4647/// set to 1 to use Flints gcd over Q/Z
    4748static const int SW_USE_FL_GCD_0=9;
     49/// set to 1 to use Factorys Berlekamp alg.
     50static const int SW_BERLEKAMP=10;
    4851
     52static const int SW_FAC_QUADRATICLIFT=11;
    4953/*ENDPUBLIC*/
    5054
  • factory/cf_factor.cc

    rede6da rbbca14  
    3131#include "singext.h"
    3232#include "cf_util.h"
     33#include "fac_berlekamp.h"
     34#include "fac_cantzass.h"
     35#include "fac_univar.h"
    3336
    3437#include "int_int.h"
     
    439442#endif
    440443      {
    441         // use FLINT
     444        // use FLINT: char p, univariate
    442445        nmod_poly_t f1;
    443446        convertFacCF2nmod_poly_t (f1, f);
     
    453456#endif
    454457#ifdef HAVE_NTL
    455       {
     458      { // NTL char 2, univariate
    456459        if (getCharacteristic()==2)
    457460        {
     
    478481#ifdef HAVE_NTL
    479482      {
    480         // use NTL
     483        // use NTL char p, univariate
    481484        if (fac_NTL_char != getCharacteristic())
    482485        {
     
    502505#endif
    503506#if !defined(HAVE_NTL) && !defined(HAVE_FLINT)
    504       // Use Factory without NTL
    505       factoryError ("univariate factorization depends on FLINT/NTL(missing)");
    506       return CFFList (CFFactor (f, 1));
     507      // Use Factory without NTL: char p, univariate
     508      {
     509        if ( isOn( SW_BERLEKAMP ) )
     510          F=FpFactorizeUnivariateB( f, issqrfree );
     511        else
     512          F=FpFactorizeUnivariateCZ( f, issqrfree, 0, Variable(), Variable() );
     513        return F;
     514      }
    507515#endif
    508516    }
     
    552560      }
    553561      else
    554       #if defined(HAVE_FLINT) && (__FLINT_RELEASE>=20504)
    555       {
    556         // use FLINT
     562      #if defined(HAVE_FLINT) && (__FLINT_RELEASE>=20503)  && (__FLINT_RELEASE!= 20600)
     563      {
     564        // FLINT 2.6.0 has a bug:
     565        // factorize x^12-13*x^10-13*x^8+13*x^4+13*x^2-1 runs forever
     566        // use FLINT: char 0, univariate
    557567        fmpz_poly_t f1;
    558568        convertFacCF2Fmpz_poly_t (f1, fz);
     
    594604      goto end_char0;
    595605      #else
    596       factoryError ("univariate factorization over Z depends on NTL/FLINT(missing)");
    597       return CFFList (CFFactor (f, 1));
     606      {
     607        //Use Factory without NTL: char 0, univariate
     608        F = ZFactorizeUnivariate( fz, issqrfree );
     609        goto end_char0;
     610      }
    598611      #endif
    599612    }
     
    758771#endif
    759772#if !defined(HAVE_NTL) && !defined(HAVE_FLINT)
    760       factoryError ("univariate factorization  depends on FLINT/NTL(missing)");
    761       return CFFList (CFFactor (f, 1));
     773      // char p, extension, univariate
     774      F=FpFactorizeUnivariateCZ( f, false, 1, alpha, Variable() );
    762775#endif
    763776    }
  • factory/cf_gcd.cc

    rede6da rbbca14  
    2828#include "FLINTconvert.h"
    2929#include "facAlgFuncUtil.h"
     30#include "templates/ftmpl_functions.h"
    3031
    3132#ifdef HAVE_NTL
     
    7475{
    7576    return icontent( f, 0 );
     77}
     78
     79#ifdef HAVE_FLINT
     80static CanonicalForm
     81gcd_univar_flintp (const CanonicalForm& F, const CanonicalForm& G)
     82{
     83  nmod_poly_t F1, G1;
     84  convertFacCF2nmod_poly_t (F1, F);
     85  convertFacCF2nmod_poly_t (G1, G);
     86  nmod_poly_gcd (F1, F1, G1);
     87  CanonicalForm result= convertnmod_poly_t2FacCF (F1, F.mvar());
     88  nmod_poly_clear (F1);
     89  nmod_poly_clear (G1);
     90  return result;
     91}
     92
     93static CanonicalForm
     94gcd_univar_flint0( const CanonicalForm & F, const CanonicalForm & G )
     95{
     96  fmpz_poly_t F1, G1;
     97  convertFacCF2Fmpz_poly_t(F1, F);
     98  convertFacCF2Fmpz_poly_t(G1, G);
     99  fmpz_poly_gcd (F1, F1, G1);
     100  CanonicalForm result= convertFmpz_poly_t2FacCF (F1, F.mvar());
     101  fmpz_poly_clear (F1);
     102  fmpz_poly_clear (G1);
     103  return result;
     104}
     105#endif
     106
     107#ifdef HAVE_NTL
     108static CanonicalForm
     109gcd_univar_ntl0( const CanonicalForm & F, const CanonicalForm & G )
     110{
     111    ZZX F1=convertFacCF2NTLZZX(F);
     112    ZZX G1=convertFacCF2NTLZZX(G);
     113    ZZX R=GCD(F1,G1);
     114    return convertNTLZZX2CF(R,F.mvar());
     115}
     116
     117static CanonicalForm
     118gcd_univar_ntlp( const CanonicalForm & F, const CanonicalForm & G )
     119{
     120  if (fac_NTL_char!=getCharacteristic())
     121  {
     122    fac_NTL_char=getCharacteristic();
     123    zz_p::init(getCharacteristic());
     124  }
     125  zz_pX F1=convertFacCF2NTLzzpX(F);
     126  zz_pX G1=convertFacCF2NTLzzpX(G);
     127  zz_pX R=GCD(F1,G1);
     128  return  convertNTLzzpX2CF(R,F.mvar());
     129}
     130#endif
     131
     132//{{{ static CanonicalForm balance_p ( const CanonicalForm & f, const CanonicalForm & q )
     133//{{{ docu
     134//
     135// balance_p() - map f from positive to symmetric representation
     136//   mod q.
     137//
     138// This makes sense for univariate polynomials over Z only.
     139// q should be an integer.
     140//
     141// Used by gcd_poly_univar0().
     142//
     143//}}}
     144
     145static CanonicalForm
     146balance_p ( const CanonicalForm & f, const CanonicalForm & q, const CanonicalForm & qh )
     147{
     148    Variable x = f.mvar();
     149    CanonicalForm result = 0;
     150    CanonicalForm c;
     151    CFIterator i;
     152    for ( i = f; i.hasTerms(); i++ )
     153    {
     154        c = i.coeff();
     155        if ( c.inCoeffDomain())
     156        {
     157          if ( c > qh )
     158            result += power( x, i.exp() ) * (c - q);
     159          else
     160            result += power( x, i.exp() ) * c;
     161        }
     162        else
     163          result += power( x, i.exp() ) * balance_p(c,q,qh);
     164    }
     165    return result;
     166}
     167
     168static CanonicalForm
     169balance_p ( const CanonicalForm & f, const CanonicalForm & q )
     170{
     171    CanonicalForm qh = q / 2;
     172    return balance_p (f, q, qh);
     173}
     174
     175static CanonicalForm gcd_poly_univar0( const CanonicalForm & F, const CanonicalForm & G, bool primitive )
     176{
     177  CanonicalForm f, g, c, cg, cl, BB, B, M, q, Dp, newD, D, newq;
     178  int p, i;
     179
     180  if ( primitive )
     181  {
     182    f = F;
     183    g = G;
     184    c = 1;
     185  }
     186  else
     187  {
     188    CanonicalForm cF = content( F ), cG = content( G );
     189    f = F / cF;
     190    g = G / cG;
     191    c = bgcd( cF, cG );
     192  }
     193  cg = gcd( f.lc(), g.lc() );
     194  cl = ( f.lc() / cg ) * g.lc();
     195//     B = 2 * cg * tmin(
     196//         maxnorm(f)*power(CanonicalForm(2),f.degree())*isqrt(f.degree()+1),
     197//         maxnorm(g)*power(CanonicalForm(2),g.degree())*isqrt(g.degree()+1)
     198//         )+1;
     199  M = tmin( maxNorm(f), maxNorm(g) );
     200  BB = power(CanonicalForm(2),tmin(f.degree(),g.degree()))*M;
     201  q = 0;
     202  i = cf_getNumSmallPrimes() - 1;
     203  while ( true )
     204  {
     205    B = BB;
     206    while ( i >= 0 && q < B )
     207    {
     208      p = cf_getSmallPrime( i );
     209      i--;
     210      while ( i >= 0 && mod( cl, p ) == 0 )
     211      {
     212        p = cf_getSmallPrime( i );
     213        i--;
     214      }
     215      setCharacteristic( p );
     216      Dp = gcd( mapinto( f ), mapinto( g ) );
     217      Dp = ( Dp / Dp.lc() ) * mapinto( cg );
     218      setCharacteristic( 0 );
     219      if ( Dp.degree() == 0 )
     220        return c;
     221      if ( q.isZero() )
     222      {
     223        D = mapinto( Dp );
     224        q = p;
     225        B = power(CanonicalForm(2),D.degree())*M+1;
     226      }
     227      else
     228      {
     229        if ( Dp.degree() == D.degree() )
     230        {
     231          chineseRemainder( D, q, mapinto( Dp ), p, newD, newq );
     232          q = newq;
     233          D = newD;
     234        }
     235        else if ( Dp.degree() < D.degree() )
     236        {
     237          // all previous p's are bad primes
     238          q = p;
     239          D = mapinto( Dp );
     240          B = power(CanonicalForm(2),D.degree())*M+1;
     241        }
     242        // else p is a bad prime
     243      }
     244    }
     245    if ( i >= 0 )
     246    {
     247      // now balance D mod q
     248      D = pp( balance_p( D, q ) );
     249      if ( fdivides( D, f ) && fdivides( D, g ) )
     250        return D * c;
     251      else
     252        q = 0;
     253    }
     254    else
     255      return gcd_poly( F, G );
     256    DEBOUTLN( cerr, "another try ..." );
     257  }
     258}
     259
     260static CanonicalForm
     261gcd_poly_p( const CanonicalForm & f, const CanonicalForm & g )
     262{
     263    if (f.inCoeffDomain() || g.inCoeffDomain()) //zero case should be caught by gcd
     264      return 1;
     265    CanonicalForm pi, pi1;
     266    CanonicalForm C, Ci, Ci1, Hi, bi, pi2;
     267    bool bpure, ezgcdon= isOn (SW_USE_EZGCD_P);
     268    int delta = degree( f ) - degree( g );
     269
     270    if ( delta >= 0 )
     271    {
     272        pi = f; pi1 = g;
     273    }
     274    else
     275    {
     276        pi = g; pi1 = f; delta = -delta;
     277    }
     278    if (pi.isUnivariate())
     279      Ci= 1;
     280    else
     281    {
     282      if (!ezgcdon)
     283        On (SW_USE_EZGCD_P);
     284      Ci = content( pi );
     285      if (!ezgcdon)
     286        Off (SW_USE_EZGCD_P);
     287      pi = pi / Ci;
     288    }
     289    if (pi1.isUnivariate())
     290      Ci1= 1;
     291    else
     292    {
     293      if (!ezgcdon)
     294        On (SW_USE_EZGCD_P);
     295      Ci1 = content( pi1 );
     296      if (!ezgcdon)
     297        Off (SW_USE_EZGCD_P);
     298      pi1 = pi1 / Ci1;
     299    }
     300    C = gcd( Ci, Ci1 );
     301    int d= 0;
     302    if ( !( pi.isUnivariate() && pi1.isUnivariate() ) )
     303    {
     304        if ( gcd_test_one( pi1, pi, true, d ) )
     305        {
     306          C=abs(C);
     307          //out_cf("GCD:",C,"\n");
     308          return C;
     309        }
     310        bpure = false;
     311    }
     312    else
     313    {
     314        bpure = isPurePoly(pi) && isPurePoly(pi1);
     315#ifdef HAVE_FLINT
     316        if (bpure && (CFFactory::gettype() != GaloisFieldDomain))
     317          return gcd_univar_flintp(pi,pi1)*C;
     318#else
     319#ifdef HAVE_NTL
     320        if ( bpure && (CFFactory::gettype() != GaloisFieldDomain))
     321            return gcd_univar_ntlp(pi, pi1 ) * C;
     322#endif
     323#endif
     324    }
     325    Variable v = f.mvar();
     326    Hi = power( LC( pi1, v ), delta );
     327    int maxNumVars= tmax (getNumVars (pi), getNumVars (pi1));
     328
     329    if (!(pi.isUnivariate() && pi1.isUnivariate()))
     330    {
     331      if (size (Hi)*size (pi)/(maxNumVars*3) > 500) //maybe this needs more tuning
     332      {
     333        On (SW_USE_FF_MOD_GCD);
     334        C *= gcd (pi, pi1);
     335        Off (SW_USE_FF_MOD_GCD);
     336        return C;
     337      }
     338    }
     339
     340    if ( (delta+1) % 2 )
     341        bi = 1;
     342    else
     343        bi = -1;
     344    CanonicalForm oldPi= pi, oldPi1= pi1, powHi;
     345    while ( degree( pi1, v ) > 0 )
     346    {
     347        if (!(pi.isUnivariate() && pi1.isUnivariate()))
     348        {
     349          if (size (pi)/maxNumVars > 500 || size (pi1)/maxNumVars > 500)
     350          {
     351            On (SW_USE_FF_MOD_GCD);
     352            C *= gcd (oldPi, oldPi1);
     353            Off (SW_USE_FF_MOD_GCD);
     354            return C;
     355          }
     356        }
     357        pi2 = psr( pi, pi1, v );
     358        pi2 = pi2 / bi;
     359        pi = pi1; pi1 = pi2;
     360        maxNumVars= tmax (getNumVars (pi), getNumVars (pi1));
     361        if (!pi1.isUnivariate() && (size (pi1)/maxNumVars > 500))
     362        {
     363            On (SW_USE_FF_MOD_GCD);
     364            C *= gcd (oldPi, oldPi1);
     365            Off (SW_USE_FF_MOD_GCD);
     366            return C;
     367        }
     368        if ( degree( pi1, v ) > 0 )
     369        {
     370            delta = degree( pi, v ) - degree( pi1, v );
     371            powHi= power (Hi, delta-1);
     372            if ( (delta+1) % 2 )
     373                bi = LC( pi, v ) * powHi*Hi;
     374            else
     375                bi = -LC( pi, v ) * powHi*Hi;
     376            Hi = power( LC( pi1, v ), delta ) / powHi;
     377            if (!(pi.isUnivariate() && pi1.isUnivariate()))
     378            {
     379              if (size (Hi)*size (pi)/(maxNumVars*3) > 1500) //maybe this needs more tuning
     380              {
     381                On (SW_USE_FF_MOD_GCD);
     382                C *= gcd (oldPi, oldPi1);
     383                Off (SW_USE_FF_MOD_GCD);
     384                return C;
     385              }
     386            }
     387        }
     388    }
     389    if ( degree( pi1, v ) == 0 )
     390    {
     391      C=abs(C);
     392      //out_cf("GCD:",C,"\n");
     393      return C;
     394    }
     395    if (!pi.isUnivariate())
     396    {
     397      if (!ezgcdon)
     398        On (SW_USE_EZGCD_P);
     399      Ci= gcd (LC (oldPi,v), LC (oldPi1,v));
     400      pi /= LC (pi,v)/Ci;
     401      Ci= content (pi);
     402      pi /= Ci;
     403      if (!ezgcdon)
     404        Off (SW_USE_EZGCD_P);
     405    }
     406    if ( bpure )
     407        pi /= pi.lc();
     408    C=abs(C*pi);
     409    //out_cf("GCD:",C,"\n");
     410    return C;
     411}
     412
     413static CanonicalForm
     414gcd_poly_0( const CanonicalForm & f, const CanonicalForm & g )
     415{
     416    CanonicalForm pi, pi1;
     417    CanonicalForm C, Ci, Ci1, Hi, bi, pi2;
     418    int delta = degree( f ) - degree( g );
     419
     420    if ( delta >= 0 )
     421    {
     422        pi = f; pi1 = g;
     423    }
     424    else
     425    {
     426        pi = g; pi1 = f; delta = -delta;
     427    }
     428    Ci = content( pi ); Ci1 = content( pi1 );
     429    pi1 = pi1 / Ci1; pi = pi / Ci;
     430    C = gcd( Ci, Ci1 );
     431    int d= 0;
     432    if ( pi.isUnivariate() && pi1.isUnivariate() )
     433    {
     434#ifdef HAVE_FLINT
     435        if (isPurePoly(pi) && isPurePoly(pi1) )
     436            return gcd_univar_flint0(pi, pi1 ) * C;
     437#else
     438#ifdef HAVE_NTL
     439        if ( isPurePoly(pi) && isPurePoly(pi1) )
     440            return gcd_univar_ntl0(pi, pi1 ) * C;
     441#endif
     442#endif
     443        return gcd_poly_univar0( pi, pi1, true ) * C;
     444    }
     445    else if ( gcd_test_one( pi1, pi, true, d ) )
     446      return C;
     447    Variable v = f.mvar();
     448    Hi = power( LC( pi1, v ), delta );
     449    if ( (delta+1) % 2 )
     450        bi = 1;
     451    else
     452        bi = -1;
     453    while ( degree( pi1, v ) > 0 )
     454    {
     455        pi2 = psr( pi, pi1, v );
     456        pi2 = pi2 / bi;
     457        pi = pi1; pi1 = pi2;
     458        if ( degree( pi1, v ) > 0 )
     459        {
     460            delta = degree( pi, v ) - degree( pi1, v );
     461            if ( (delta+1) % 2 )
     462                bi = LC( pi, v ) * power( Hi, delta );
     463            else
     464                bi = -LC( pi, v ) * power( Hi, delta );
     465            Hi = power( LC( pi1, v ), delta ) / power( Hi, delta-1 );
     466        }
     467    }
     468    if ( degree( pi1, v ) == 0 )
     469        return C;
     470    else
     471        return C * pp( pi );
    76472}
    77473
     
    101497  if ( getCharacteristic() != 0 )
    102498  {
    103     if (0) ; // dummy, to be able to build without NTL and FLINT
     499    if (0) {} // dummy, to be able to build without NTL and FLINT
    104500    #if defined(HAVE_FLINT) && ( __FLINT_RELEASE >= 20503)
    105501    if ( isOn( SW_USE_FL_GCD_P)
     
    130526    #endif
    131527    else
    132     fc = subResGCD_p( fc, gc );
     528    fc = gcd_poly_p( fc, gc );
    133529  }
    134530  else if (!fc_and_gc_Univariate) /* && char==0*/
     
    145541    if ( isOn( SW_USE_EZGCD ) )
    146542      fc= ezgcd (fc, gc);
    147     #endif 
     543    #endif
    148544    #ifdef HAVE_NTL
    149545    else if (isOn(SW_USE_CHINREM_GCD))
     
    152548    #endif
    153549    {
    154        fc = subResGCD_0( fc, gc );
     550       fc = gcd_poly_0( fc, gc );
    155551    }
    156552  }
    157553  else
    158554  {
    159     fc = subResGCD_0( fc, gc );
     555    fc = gcd_poly_0( fc, gc );
    160556  }
    161557  if ((getCharacteristic()>0)&&(!hasAlgVar(fc))) fc/=fc.lc();
  • factory/cf_hnf.cc

    rede6da rbbca14  
    1717#include "cf_defs.h"
    1818#include "cf_hnf.h"
     19#include "cf_util.h"
    1920
    2021#ifdef HAVE_NTL
     
    5758  delete AA;
    5859  return convertNTLmat_ZZ2FacCFMatrix(WW);
     60#else
     61  factoryError("NTL/FLINT missing: cf_HNF");
    5962#endif
    6063}
     
    7982  delete AA;
    8083  return r;
     84#else
     85  factoryError("NTL/FLINT missing: cf_LLL");
    8186#endif
    8287}
  • factory/cf_irred.cc

    rede6da rbbca14  
    4949  BuildIrred (NTLirredpoly, i);
    5050  CanonicalForm CFirredpoly= convertNTLzzpX2CF (NTLirredpoly, x);
     51  #else
     52  factoryError("NTL/FLINT missing: randomIrredpoly");
    5153  #endif
    5254  return CFirredpoly;
  • factory/cf_map_ext.cc

    rede6da rbbca14  
    108108  zz_pE root= FindRoot (NTL_alpha_mipo);
    109109  return convertNTLzzpE2CF (root, beta);
     110  #else
     111  factoryError("NTL/FLINT missing: mapUp");
    110112  #endif
    111113}
     
    352354  int d= degree (mipo);
    353355  int p= getCharacteristic ();
    354   #ifdef HAVE_FLINT
     356  #if defined(HAVE_FLINT) && (__FLINT_RELEASE >= 20503)
    355357  nmod_poly_t FLINT_mipo;
    356358  nmod_poly_init(FLINT_mipo,p);
     
    362364  }
    363365  zz_pX NTL_mipo;
     366  #else
     367  factoryError("NTL/FLINT missing: primitiveElement");
     368  return CanonicalForm(0);
    364369  #endif
    365370  CanonicalForm mipo2;
     
    369374  do
    370375  {
    371     #ifdef HAVE_FLINT
     376    #if defined(HAVE_FLINT) && (__FLINT_RELEASE >= 20503)
    372377    nmod_poly_randtest_monic_irreducible(FLINT_mipo, FLINTrandom, d+1);
    373378    mipo2=convertnmod_poly_t2FacCF(FLINT_mipo,Variable(1));
     
    386391      return 0;
    387392  } while (1);
    388   #ifdef HAVE_FLINT
     393  #if defined(HAVE_FLINT) && (__FLINT_RELEASE >= 20503)
    389394  nmod_poly_clear(FLINT_mipo);
    390395  // convert alpha_mipo
     
    451456    CanonicalForm primElemMipo= findMinPoly (primElem, alpha);
    452457    int p= getCharacteristic ();
    453     #ifdef HAVE_FLINT
     458    #if defined(HAVE_FLINT) && (__FLINT_RELEASE >= 20503)
    454459    // convert mipo1
    455460    nmod_poly_t mipo1;
     
    488493    zz_pE root= FindRoot (NTLPrimElemMipo);
    489494    return convertNTLzzpE2CF (root, beta);
     495    #else
     496    factoryError("NTL/FLINT missing: mapPrimElem");
    490497    #endif
    491498  }
     
    505512  }
    506513  int p= getCharacteristic ();
    507   #ifdef HAVE_FLINT
     514  #if defined(HAVE_FLINT) && (__FLINT_RELEASE >= 20503)
    508515  // convert mipo
    509516  nmod_poly_t mipo1;
     
    573580  }
    574581  return (convertNTLzzpE2CF (roots[ind], beta));
     582  #else
     583  factoryError("NTL/FLINT missing: map");
     584  return CanonicalForm(0);
    575585  #endif
    576586}
    577587
    578 #ifdef HAVE_FLINT
     588#if defined(HAVE_FLINT) && (__FLINT_RELEASE >= 20503)
    579589/*
    580590    g is in Fp[x]
     
    631641  ASSERT (F.isUnivariate() && F.mvar()==alpha,"expected element of F_p(alpha)");
    632642
    633   #if defined(HAVE_NTL) && !defined(HAVE_FLINT)
    634   if (fac_NTL_char != getCharacteristic())
    635   {
    636     fac_NTL_char= getCharacteristic();
    637     zz_p::init (getCharacteristic());
    638   }
    639   zz_pX NTLF= convertFacCF2NTLzzpX (F);
    640   int d= degree (getMipo (alpha));
    641 
    642   zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo(alpha));
    643   zz_pE::init (NTLMipo);
    644   vec_zz_p pows;
    645   pows.SetLength (2*d);
    646 
    647   zz_pE powNTLF;
    648   set (powNTLF);
    649   zz_pE NTLFE= to_zz_pE (NTLF);
    650   zz_pX buf;
    651   for (int i= 0; i < 2*d; i++)
    652   {
    653     buf= rep (powNTLF);
    654     buf.rep.SetLength (d);
    655     pows [i]= buf.rep[0];
    656     powNTLF *= NTLFE;
    657   }
    658 
    659   zz_pX NTLMinPoly;
    660   MinPolySeq (NTLMinPoly, pows, d);
    661 
    662   return convertNTLzzpX2CF (NTLMinPoly, Variable (1));
    663   #elif defined(HAVE_FLINT)
     643  #if defined(HAVE_FLINT) && (__FLINT_RELEASE >= 20503)
    664644  nmod_poly_t FLINT_F,FLINT_alpha,g;
    665645  nmod_poly_init(g,getCharacteristic());
     
    672652  nmod_poly_clear(g);
    673653  return res;
     654  #elif defined(HAVE_NTL)
     655  if (fac_NTL_char != getCharacteristic())
     656  {
     657    fac_NTL_char= getCharacteristic();
     658    zz_p::init (getCharacteristic());
     659  }
     660  zz_pX NTLF= convertFacCF2NTLzzpX (F);
     661  int d= degree (getMipo (alpha));
     662
     663  zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo(alpha));
     664  zz_pE::init (NTLMipo);
     665  vec_zz_p pows;
     666  pows.SetLength (2*d);
     667
     668  zz_pE powNTLF;
     669  set (powNTLF);
     670  zz_pE NTLFE= to_zz_pE (NTLF);
     671  zz_pX buf;
     672  for (int i= 0; i < 2*d; i++)
     673  {
     674    buf= rep (powNTLF);
     675    buf.rep.SetLength (d);
     676    pows [i]= buf.rep[0];
     677    powNTLF *= NTLFE;
     678  }
     679
     680  zz_pX NTLMinPoly;
     681  MinPolySeq (NTLMinPoly, pows, d);
     682
     683  return convertNTLzzpX2CF (NTLMinPoly, Variable (1));
     684  #else
     685  factoryError("NTL/FLINT missing: findMinPoly");
    674686  #endif
    675687}
  • factory/cf_switches.h

    rede6da rbbca14  
    2020 *
    2121**/
    22 const int CFSwitchesMax = 10;
     22const int CFSwitchesMax = 12;
    2323
    2424/** class CFSwitches
  • factory/cf_util.h

    rede6da rbbca14  
    44#define INCL_CF_UTIL_H
    55
    6 // #include "config.h"
     6#include "globaldefs.h"
    77
    88int ilog2 (int a);
  • factory/configure.ac

    rede6da rbbca14  
    3131# - check for CC and CXX but be careful about CFLAGS.
    3232#
     33AC_CHECK_SIZEOF(long,4)
    3334SING_RESET_FLAGS()
    3435SING_CHECK_SET_ARGS()
     
    208209
    209210# Check whether --with-gmp was given.
     211DEFAULT_CHECKING_PATH="/usr /usr/local /sw /opt/local"
    210212if test "${with_gmp+set}" = set; then :
    211213  if test "$with_gmp" = yes ; then
  • factory/facAbsBiFact.cc

    rede6da rbbca14  
    141141          CanonicalForm D1= convertZZ2CF (NTLD1);
    142142          CanonicalForm D2= convertZZ2CF (NTLD2);
     143          #else
     144          factoryError("NTL/FLINT missing: choosePoint");
    143145          #endif
    144146          if ((!f.isZero()) &&
     
    542544    M= convertNTLmat_ZZ2FacCFMatrix (*NTLM);
    543545    delete NTLM;
     546    #else
     547    factoryError("NTL/FLINT missing: absBiFactorizeMain");
    544548    #endif
    545549
     
    734738  ZZ NTLD= discriminant (NTLmipo);
    735739  den= abs (convertZZ2CF (NTLD*NTLf));
     740  #else
     741  factoryError("NTL/FLINT missing: absBiFactorizeMain");
    736742  #endif
    737743
  • factory/facBivar.cc

    rede6da rbbca14  
    1616
    1717#include "cf_assert.h"
     18#include "cf_util.h"
    1819#include "debug.h"
    1920#include "timing.h"
     
    553554    ZZ NTLD= discriminant (NTLmipo);
    554555    den= abs (convertZZ2CF (NTLD*NTLf));
     556    #else
     557    factoryError("NTL/FLINT missing: biFactorize");
    555558    #endif
    556559
     
    572575    #elif defined(HAVE_NTL)
    573576    CanonicalForm discMipo= convertZZ2CF (NTLD);
     577    #else
     578    factoryError("NTL/FLINT missing: biFactorize");
    574579    #endif
    575580    findGoodPrime (F*discMipo,i);
  • factory/facFqBivar.cc

    rede6da rbbca14  
    2222
    2323#include "cf_assert.h"
     24#include "cf_util.h"
    2425#include "debug.h"
    2526#include "timing.h"
     
    841842  BuildIrred (NTLIrredpoly, i*m);
    842843  CanonicalForm newMipo= convertNTLzzpX2CF (NTLIrredpoly, Variable (1));
     844  #else
     845  factoryError("NTL/FLINT missing: chooseExtension");
    843846  #endif
    844847  return rootOf (newMipo);
  • factory/facFqSquarefree.cc

    rede6da rbbca14  
    258258    buffer= pthRoot (A, q, alpha);
    259259  }
     260#else
     261  factoryError("NTL/FLINT missing: squarefreeFactorization");
    260262#endif
    261263
  • factory/fac_berlekamp.cc

    rede6da rbbca14  
    11/* emacs edit mode for this file is -*- C++ -*- */
    22
    3 
    4 #include "config.h"
    5 
    6 
    7 #include "cf_assert.h"
     3#include <config.h>
     4
     5#include "assert.h"
    86#include "debug.h"
    97
     
    1715#include "cf_generator.h"
    1816#include "fac_sqrfree.h"
     17
     18#if !defined(HAVE_FLINT) && !defined(HAVE_NTL)
    1919
    2020#ifdef DEBUGOUTPUT
     
    399399    return H;
    400400}
     401#endif
  • factory/fac_berlekamp.h

    rede6da rbbca14  
    44#define INCL_FAC_BERLEKAMP_H
    55
    6 // #include "config.h"
     6#include <config.h>
    77
    88#include "canonicalform.h"
  • factory/fac_cantzass.cc

    rede6da rbbca14  
    11/* emacs edit mode for this file is -*- C++ -*- */
    22
    3 
    4 #include "config.h"
    5 
    6 
    7 #include "cf_assert.h"
     3#include <config.h>
     4
     5#include "factory/cf_gmp.h"
     6
     7#include "assert.h"
    88
    99#include "cf_defs.h"
     
    1414#include "gmpext.h"
    1515
    16 #include "factory/cf_gmp.h"
    17 
     16#ifdef HAVE_FLINT
     17#include"FLINTconvert.h"
     18#endif
     19
     20#if !defined(HAVE_NTL)
     21#if !defined(HAVE_FLINT)||(__FLINT_RELEASE<=20600)
    1822static CanonicalForm randomPoly( int n, const Variable & x, const CFRandom & gen );
    1923
     
    292296    return prod;
    293297}
     298#endif
     299#endif
  • factory/fac_cantzass.h

    rede6da rbbca14  
    44#define INCL_FAC_CANTZASS_H
    55
    6 // #include "config.h"
     6#include <config.h>
    77
    88#include "variable.h"
  • factory/fac_sqrfree.cc

    rede6da rbbca14  
    1111#include "cf_map.h"
    1212#include "cf_algorithm.h"
     13
     14#ifdef HAVE_FLINT
     15#include "FLINTconvert.h" // for __FLINT_RELEASE
     16#endif
    1317
    1418static int
     
    150154}
    151155
     156#if !defined(HAVE_NTL)
     157#if !defined(HAVE_FLINT)||(__FLINT_RELEASE<=20600)
     158static int divexp = 1;
     159
     160static void divexpfunc ( CanonicalForm &, int & e )
     161{
     162    e /= divexp;
     163}
     164
     165CFFList sqrFreeFp ( const CanonicalForm & f )
     166{
     167    CanonicalForm t0 = f, t, v, w, h;
     168    CanonicalForm leadcf = t0.lc();
     169    Variable x = f.mvar();
     170    CFFList F;
     171    int p = getCharacteristic();
     172    int k, e = 1;
     173
     174    if ( ! leadcf.isOne() )
     175        t0 /= leadcf;
     176
     177    divexp = p;
     178    while ( t0.degree(x) > 0 )
     179    {
     180        t = gcd( t0, t0.deriv() );
     181        v = t0 / t;
     182        k = 0;
     183        while ( v.degree(x) > 0 )
     184        {
     185            k = k+1;
     186            if ( k % p == 0 )
     187            {
     188                t /= v;
     189                k = k+1;
     190            }
     191            w = gcd( t, v );
     192            h = v / w;
     193            v = w;
     194            t /= v;
     195            if ( h.degree(x) > 0 )
     196                F.append( CFFactor( h/h.lc(), e*k ) );
     197        }
     198        t0 = apply( t, divexpfunc );
     199        e = p * e;
     200    }
     201    if ( ! leadcf.isOne() )
     202    {
     203        if ( !F.isEmpty() && (F.getFirst().exp() == 1) )
     204        {
     205            leadcf = F.getFirst().factor() * leadcf;
     206            F.removeFirst();
     207        }
     208        F.insert( CFFactor( leadcf, 1 ) );
     209    }
     210    return F;
     211}
     212#endif
     213#endif
  • factory/fac_sqrfree.h

    rede6da rbbca14  
    2222                       );
    2323
     24CFFList sqrFreeFp ( const CanonicalForm & f );
    2425#endif /* ! INCL_FAC_SQRFREE_H */
  • factory/fac_univar.cc

    rede6da rbbca14  
    1818#include "cf_primes.h"
    1919#include "fac_sqrfree.h"
    20 
     20#include "cfUnivarGcd.h"
     21
     22#ifdef HAVE_FLINT
     23#include "FLINTconvert.h" // for __FLINT_RELEASE
     24#endif
     25
     26#if !defined(HAVE_NTL)
     27#if (!defined(HAVE_FLINT)) || (__FLINT_RELEASE<=20600)
    2128TIMING_DEFINE_PRINT(fac_choosePrimes)
    2229TIMING_DEFINE_PRINT(fac_facModPrimes)
     
    215222}
    216223
     224bool isSqrFreeZ ( const CanonicalForm & f )
     225{
     226    return gcd( f, f.deriv() ).degree() == 0;
     227}
     228
     229bool isSqrFreeFp( const CanonicalForm & f )
     230{
     231  CFFList F = sqrFreeFp( f );
     232  return ( F.length() == 1 && F.getFirst().exp() == 1 );
     233}
     234
     235bool isSqrFree ( const CanonicalForm & f )
     236{
     237//    ASSERT( f.isUnivariate(), "multivariate factorization not implemented" );
     238    if ( getCharacteristic() == 0 )
     239        return isSqrFreeZ( f );
     240    else
     241        return isSqrFreeFp( f );
     242}
     243
    217244
    218245static int choosePrimes ( int * p, const CanonicalForm & f )
     
    249276    int i, j, save;
    250277    int p = pk.getp(), k = pk.getk();
    251     int no_iter = (int)(log( (double)k )/log(2.0)+2);
     278    int no_iter = SI_LOG2(k)+2;
    252279    int * kvals = new int[no_iter];
    253280
     
    278305        {
    279306            j--;
    280             setCharacteristic( p, kvals[j+1] );
     307            setCharacteristic( p, kvals[j+1]);
    281308            DEBOUTLN( cerr, "lifting from p^" << kvals[j+1] << " to p^" << kvals[j] );
    282309            c = mapinto( c );
     
    542569    return ZF;
    543570}
     571#endif
     572#endif
  • factory/gfops.cc

    rede6da rbbca14  
    8888        gf_table = new unsigned short[gf_maxtable];
    8989
    90 /*#ifdef SINGULAR
    91     // just copy the table if Singular already read it
    92     //printf("init_gf(gf_get_table) q=%d, nfCharQ=%d\n",q,nfCharQ);
    93     if ( q == nfCharQ )
    94     {
    95         gf_p = p; gf_n = n;
    96         gf_q = q; gf_q1 = q - 1;
    97         gf_m1 = nfM1;
    98         gf_mipo = intVec2CF( nfMinPoly[0], nfMinPoly + 1, 1 );
    99         (void)memcpy( gf_table, nfPlus1Table, gf_q * sizeof( unsigned short ) );
    100         gf_table[gf_q] = 0;
    101         return;
    102     }
    103 #endif*/
    104 
    10590    // try to open file
    10691    char *gffilename;
     
    117102    else
    118103    {
    119 #ifndef SINGULAR
    120104      sprintf( buffer, "gftables/%d", q );
    121105      gffilename = buffer;
     106#ifndef SINGULAR
    122107      inputfile = fopen( buffer, "r" );
    123108#else
    124       sprintf( buffer, "gftables/%d", q );
    125       gffilename = buffer;
    126109      inputfile = feFopen( buffer, "r" );
    127110#endif
  • factory/int_pp.cc

    rede6da rbbca14  
    33
    44#include "config.h"
    5 
     5#include "globaldefs.h"
    66
    77#include "cf_assert.h"
     
    1313#include "imm.h"
    1414
    15 mpz_t InternalPrimePower::primepow;
    16 mpz_t InternalPrimePower::primepowhalf;
    17 int InternalPrimePower::prime;
    18 int InternalPrimePower::exp;
    19 bool InternalPrimePower::initialized = false;
     15#ifdef HAVE_FLINT
     16#include "FLINTconvert.h"
     17#endif
     18
     19#if !defined(HAVE_NTL)
     20#if !defined(HAVE_FLINT)||(__FLINT_RELEASE<=20600)
     21GLOBAL_VAR mpz_t InternalPrimePower::primepow;
     22GLOBAL_VAR mpz_t InternalPrimePower::primepowhalf;
     23GLOBAL_VAR int InternalPrimePower::prime;
     24GLOBAL_VAR int InternalPrimePower::exp;
     25GLOBAL_VAR bool InternalPrimePower::initialized = false;
    2026
    2127
     
    408414}
    409415//}}}
     416#endif
     417#endif
  • factory/si_log2.h

    rede6da rbbca14  
    1717  return (int)r;
    1818}
    19 #if SIZE_OF_LONG==4
     19#if SIZEOF_LONG==4
    2020#define SI_LOG2_LONG(A) SI_LOG2(A)
    2121#else
  • gfanlib/Makefile.am

    rede6da rbbca14  
    1717SOURCES = gfanlib_circuittableint.cpp gfanlib_mixedvolume.cpp gfanlib_paralleltraverser.cpp gfanlib_polyhedralfan.cpp gfanlib_polymakefile.cpp gfanlib_symmetriccomplex.cpp gfanlib_symmetry.cpp gfanlib_traversal.cpp gfanlib_zcone.cpp gfanlib_zfan.cpp
    1818libgfan_la_SOURCES = $(SOURCES)
    19 libgfan_la_LDFLAGS = $(SINGULAR_LDFLAGS) $(CDDGMPLDFLAGS) -release ${PACKAGE_VERSION}
     19libgfan_la_LDFLAGS = $(SINGULAR_LDFLAGS) $(CDDGMPLDFLAGS) $(GMP_LIBS) -release ${PACKAGE_VERSION}
    2020
    2121libgfan_includedir =$(includedir)/gfanlib
  • gfanlib/configure.ac

    rede6da rbbca14  
    4343AX_CHECK_COMPILE_FLAG([-std=c++11], [CXX11_FLAG="-std=c++11"], [CXX11_FLAG="-std=c++0x"], [])
    4444AC_SUBST(CXX11_FLAG)
     45AC_SUBST(GMP_LIBS)
     46AC_SUBST(LIBS)
    4547AC_LANG_POP()
    4648
  • kernel/GBEngine/tgb.cc

    rede6da rbbca14  
    22872287  int i;
    22882288  int s = place_holders.size ();
    2289   for(i = 0; i < s; i++)
    2290   {
    2291     DataNoroCacheNode *ref = place_holders[i].ref;
    2292     number coef = place_holders[i].coef;
    2293     if(ref->value_len == backLinkCode)
    2294     {
    2295       row[ref->term_index] = npAddM (row[ref->term_index], coef);
    2296     }
    2297     else
    2298     {
    2299 #ifndef NORO_SPARSE_ROWS_PRE
    2300       DenseRow *ref_row = ref->row;
    2301       if(ref_row == NULL)
    2302         continue;
    2303       number *ref_begin = ref_row->array;
    2304       number *ref_end = ref_row->array + (ref_row->end - ref_row->begin);
    2305       number *my_pos = row + ref_row->begin;
    2306       //TODO npisOne distinction
    2307       if(!(npIsOne (coef)))
    2308       {
    2309         while(ref_begin != ref_end)
     2289
     2290  if (currRing->cf-ch<=NV_MAX_PRIME)
     2291  {
     2292    for(i = 0; i < s; i++)
     2293    {
     2294      DataNoroCacheNode *ref = place_holders[i].ref;
     2295      number coef = place_holders[i].coef;
     2296      if(ref->value_len == backLinkCode)
     2297      {
     2298        row[ref->term_index] = npAddM (row[ref->term_index], coef);
     2299      }
     2300      else
     2301      {
     2302  #ifndef NORO_SPARSE_ROWS_PRE
     2303        DenseRow *ref_row = ref->row;
     2304        if(ref_row == NULL)
     2305          continue;
     2306        number *ref_begin = ref_row->array;
     2307        number *ref_end = ref_row->array + (ref_row->end - ref_row->begin);
     2308        number *my_pos = row + ref_row->begin;
     2309        //TODO npisOne distinction
     2310        if(!(npIsOne (coef)))
    23102311        {
    2311 
    2312           *my_pos = npAddM (*my_pos, npMult (coef, *ref_begin));
    2313           ++ref_begin;
    2314           ++my_pos;
     2312          while(ref_begin != ref_end)
     2313          {
     2314            *my_pos = npAddM (*my_pos, npMult (coef, *ref_begin));
     2315            ++ref_begin;
     2316            ++my_pos;
     2317          }
    23152318        }
     2319        else
     2320        {
     2321          while(ref_begin != ref_end)
     2322          {
     2323
     2324            *my_pos = npAddM (*my_pos, *ref_begin);
     2325            ++ref_begin;
     2326            ++my_pos;
     2327          }
     2328        }
     2329  #else
     2330        SparseRow *ref_row = ref->row;
     2331        if(ref_row == NULL)
     2332          continue;
     2333        int n = ref_row->len;
     2334        int j;
     2335        int *idx_array = ref_row->idx_array;
     2336        number *coef_array = ref_row->coef_array;
     2337        if(!(npIsOne (coef)))
     2338        {
     2339          for(j = 0; j < n; j++)
     2340          {
     2341            int idx = idx_array[j];
     2342            number ref_coef = coef_array[j];
     2343            row[idx] = npAddM (row[idx], npMult (coef, ref_coef));
     2344          }
     2345        }
     2346        else
     2347        {
     2348          for(j = 0; j < n; j++)
     2349          {
     2350            int idx = idx_array[j];
     2351            number ref_coef = coef_array[j];
     2352            row[idx] = npAddM (row[idx], ref_coef);
     2353          }
     2354        }
     2355  #endif
     2356      }
     2357    }
     2358  }
     2359  else /*ch >NV_MAX_PRIME */
     2360  {
     2361    for(i = 0; i < s; i++)
     2362    {
     2363      DataNoroCacheNode *ref = place_holders[i].ref;
     2364      number coef = place_holders[i].coef;
     2365      if(ref->value_len == backLinkCode)
     2366      {
     2367        row[ref->term_index] = npAddM (row[ref->term_index], coef);
    23162368      }
    23172369      else
    23182370      {
    2319         while(ref_begin != ref_end)
     2371  #ifndef NORO_SPARSE_ROWS_PRE
     2372        DenseRow *ref_row = ref->row;
     2373        if(ref_row == NULL)
     2374          continue;
     2375        number *ref_begin = ref_row->array;
     2376        number *ref_end = ref_row->array + (ref_row->end - ref_row->begin);
     2377        number *my_pos = row + ref_row->begin;
     2378        //TODO npisOne distinction
     2379        if(!(npIsOne (coef)))
    23202380        {
    2321 
    2322           *my_pos = npAddM (*my_pos, *ref_begin);
    2323           ++ref_begin;
    2324           ++my_pos;
     2381          while(ref_begin != ref_end)
     2382          {
     2383            *my_pos = npAddM (*my_pos, nvMult (coef, *ref_begin));
     2384            ++ref_begin;
     2385            ++my_pos;
     2386          }
    23252387        }
    2326       }
    2327 
    2328 #else
    2329       SparseRow *ref_row = ref->row;
    2330       if(ref_row == NULL)
    2331         continue;
    2332       int n = ref_row->len;
    2333       int j;
    2334       int *idx_array = ref_row->idx_array;
    2335       number *coef_array = ref_row->coef_array;
    2336       for(j = 0; j < n; j++)
    2337       {
    2338         int idx = idx_array[j];
    2339         number ref_coef = coef_array[j];
    2340         row[idx] = npAddM (row[idx], npMult (coef, ref_coef));
    2341       }
    2342 #endif
     2388        else
     2389        {
     2390          while(ref_begin != ref_end)
     2391          {
     2392            *my_pos = npAddM (*my_pos, *ref_begin);
     2393            ++ref_begin;
     2394            ++my_pos;
     2395          }
     2396        }
     2397  #else
     2398        SparseRow *ref_row = ref->row;
     2399        if(ref_row == NULL)
     2400          continue;
     2401        int n = ref_row->len;
     2402        int j;
     2403        int *idx_array = ref_row->idx_array;
     2404        number *coef_array = ref_row->coef_array;
     2405        if(!(npIsOne (coef)))
     2406        {
     2407          for(j = 0; j < n; j++)
     2408          {
     2409            int idx = idx_array[j];
     2410            number ref_coef = coef_array[j];
     2411            row[idx] = npAddM (row[idx], nvMult (coef, ref_coef));
     2412          }
     2413        }
     2414        else
     2415        {
     2416          for(j = 0; j < n; j++)
     2417          {
     2418            int idx = idx_array[j];
     2419            number ref_coef = coef_array[j];
     2420            row[idx] = npAddM (row[idx], ref_coef);
     2421          }
     2422        }
     2423  #endif
     2424      }
    23432425    }
    23442426  }
     
    33093391#ifdef USE_NORO
    33103392  use_noro = ((!(nc)) && (S->rank <= 1) && (rField_is_Zp (r))
    3311               && (!(eliminationProblem)) && (n_GetChar(currRing->cf) <= 32003));
     3393              && (!(eliminationProblem)) && (n_GetChar(currRing->cf) <= NV_MAX_PRIME));
    33123394  use_noro_last_block = false;
    33133395  if((!(use_noro)) && (lastDpBlockStart <= (currRing->N)))
    33143396  {
    33153397    use_noro_last_block = ((!(nc)) && (S->rank <= 1) && (rField_is_Zp (r))
    3316                            && (n_GetChar(currRing->cf) <= 32003));
     3398                           && (n_GetChar(currRing->cf) <= NV_MAX_PRIME));
    33173399  }
    33183400#else
  • kernel/GBEngine/tgb_internal.h

    rede6da rbbca14  
    6767#include "kernel/GBEngine/kstd1.h"
    6868
    69 
    70 #if 1
    71 
    72 #define npInit n_Init
    73 #define npNeg npNegM
    74 #define npInvers npInversM
    75 #define npIsOne npIsOne
    76 #define npIsZero npIsZeroM
    77 
    78 #define npMult npMult
    79 
    80 #else
    81 #error Please do NOT call internal functions directly!
    82 #endif
    83 
     69#include "coeffs/modulop_inl.h" // npInit, npMult
    8470
    8571class PolySimple
     
    784770    poly exp_diff=cache->temp_term;
    785771    p_ExpVectorDiff(exp_diff,t,c->strat->S[i],c->r);
    786     p_SetCoeff(exp_diff,npNeg(npInvers(coefstrat,c->r->cf),c->r->cf),c->r);
     772    p_SetCoeff(exp_diff,npNegM(npInversM(coefstrat,c->r->cf),c->r->cf),c->r);
    787773    p_Setm(exp_diff,c->r);
    788774    assume(c->strat->S[i]!=NULL);
     
    942928      assume(bpos<256);
    943929      assume(!(npIsZero((number)(long) buffer[bpos],currRing->cf)));
    944       STATISTIC(n_Add); temp_array[idx]=F4mat_to_number_type(npAddM((number)(long) temp_array[idx], (number)(long) buffer[bpos++],currRing->cf));
     930      temp_array[idx]=F4mat_to_number_type(npAddM((number)(long) temp_array[idx], (number)(long) buffer[bpos++],currRing->cf));
    945931      #ifndef SING_NDEBUG
    946932      assume(idx<temp_size);
     
    990976      assume(bpos<256);
    991977      //assume(!(npIsZero((number) buffer[bpos])));
    992       STATISTIC(n_Add); temp_array[i]=F4mat_to_number_type(npAddM((number)(long) temp_array[i], (number)(long) buffer[bpos++],currRing->cf));
     978      temp_array[i]=F4mat_to_number_type(npAddM((number)(long) temp_array[i], (number)(long) buffer[bpos++],currRing->cf));
    993979      #ifndef SING_NDEBUG
    994980      assume(i<temp_size);
     
    10171003  for(i=0;i<len;i++)
    10181004  {
    1019       STATISTIC(n_Add); temp_array[i]=F4mat_to_number_type(npAddM((number)(long) temp_array[i], (number)(long) row[i],currRing->cf));
    1020       #ifndef SING_NDEBUG
    1021       assume(i<temp_size);
    1022       #endif
     1005    temp_array[i]=F4mat_to_number_type(npAddM((number)(long) temp_array[i], (number)(long) row[i],currRing->cf));
     1006    #ifndef SING_NDEBUG
     1007    assume(i<temp_size);
     1008    #endif
    10231009  }
    10241010
     
    10431029  for(i=0;i<len;i++)
    10441030  {
    1045 
    1046       STATISTIC(n_Sub); temp_array[i]=F4mat_to_number_type(npSubM((number)(long) temp_array[i], (number)(long) row[i],currRing->cf));
    1047       #ifndef SING_NDEBUG
    1048       assume(i<temp_size);
    1049       #endif
    1050   }
    1051 
     1031    temp_array[i]=F4mat_to_number_type(npSubM((number)(long) temp_array[i], (number)(long) row[i],currRing->cf));
     1032    #ifndef SING_NDEBUG
     1033    assume(i<temp_size);
     1034    #endif
     1035  }
    10521036}
    10531037
     
    10661050        {
    10671051          int idx=idx_array[j];
    1068           STATISTIC(n_Add); temp_array[idx]=F4mat_to_number_type(   (number_type)(long)npAddM((number) (long)temp_array[idx],(number)(long) coef_array[j],currRing->cf));
     1052          temp_array[idx]=F4mat_to_number_type(   (number_type)(long)npAddM((number) (long)temp_array[idx],(number)(long) coef_array[j],currRing->cf));
    10691053          #ifndef SING_NDEBUG
    10701054          assume(idx<temp_size);
     
    10861070        {
    10871071          int idx=idx_array[j];
    1088           STATISTIC(n_Sub); temp_array[idx]=F4mat_to_number_type(  (number_type)(long) npSubM((number) (long)temp_array[idx],(number)(long) coef_array[j],currRing->cf));
     1072          temp_array[idx]=F4mat_to_number_type(  (number_type)(long) npSubM((number) (long)temp_array[idx],(number)(long) coef_array[j],currRing->cf));
    10891073          #ifndef SING_NDEBUG
    10901074          assume(idx<temp_size);
     
    11511135         if (red.ref->value_len==NoroCache<number_type>::backLinkCode)
    11521136         {
    1153            STATISTIC(n_Add); temp_array[red.ref->term_index]=F4mat_to_number_type( npAddM((number)(long) temp_array[red.ref->term_index],red.coef,currRing->cf));
     1137           temp_array[red.ref->term_index]=F4mat_to_number_type( npAddM((number)(long) temp_array[red.ref->term_index],red.coef,currRing->cf));
    11541138         }
    11551139         else
     
    12001184    assume(coef_array[j]!=0);
    12011185    CoefIdx<number_type> ci;
    1202     STATISTIC(n_Mult); ci.coef=F4mat_to_number_type(npMultM((number)(long) coef,(number)(long) coef_array[j],currRing->cf));
     1186    ci.coef=F4mat_to_number_type(npMultM((number)(long) coef,(number)(long) coef_array[j],currRing->cf));
    12031187    ci.idx=idx_array[j];
    12041188    pairs[pos++]=ci;
     
    12151199      assume(coef_array[j]!=0);
    12161200      CoefIdx<number_type> ci;
    1217       STATISTIC(n_Mult); ci.coef=F4mat_to_number_type(npMultM((number)(long) coef,(number)(long) coef_array[j],currRing->cf));
     1201      ci.coef=F4mat_to_number_type(npMultM((number)(long) coef,(number)(long) coef_array[j],currRing->cf));
    12181202      assume(ci.coef!=0);
    12191203      ci.idx=j;
     
    12501234      assume(coef_array[j]!=0);
    12511235      CoefIdx<number_type> ci;
    1252       STATISTIC(n_InpNeg); ci.coef=F4mat_to_number_type(npNegM((number)(long) coef_array[j],currRing->cf)); // FIXME: inplace negation! // TODO: check if this is not a bug!?
     1236      ci.coef=F4mat_to_number_type(npNegM((number)(long) coef_array[j],currRing->cf)); // FIXME: inplace negation! // TODO: check if this is not a bug!?
    12531237      assume(ci.coef!=0);
    12541238      ci.idx=j;
     
    12771261    assume(coef_array[j]!=0);
    12781262    CoefIdx<number_type> ci;
    1279     STATISTIC(n_InpNeg); ci.coef=F4mat_to_number_type(npNegM((number)(unsigned long)coef_array[j],currRing->cf));  // FIXME: inplace negation! // TODO: check if this is not a bug!?
     1263    ci.coef=F4mat_to_number_type(npNegM((number)(unsigned long)coef_array[j],currRing->cf));  // FIXME: inplace negation! // TODO: check if this is not a bug!?
    12801264    ci.idx=idx_array[j];
    12811265    pairs[pos++]=ci;
     
    13851369    else
    13861370    {
    1387       STATISTIC(n_Add); pairs[act].coef=F4mat_to_number_type(npAddM((number)(long)pairs[act].coef,(number)(long)pairs[i].coef,currRing->cf));
     1371      pairs[act].coef=F4mat_to_number_type(npAddM((number)(long)pairs[act].coef,(number)(long)pairs[i].coef,currRing->cf));
    13881372    }
    13891373  }
     
    15581542    int i;
    15591543    number_type* row_array=rows[row];
    1560     for(i=startIndices[row];i<ncols;i++)
    1561     {
    1562       row_array[i]=F4mat_to_number_type(npMult((number)(long) row_array[i],(number)(long) coef,currRing->cf));
     1544    if(currRing->cf->ch<=NV_MAX_PRIME)
     1545    {
     1546      for(i=startIndices[row];i<ncols;i++)
     1547      {
     1548        row_array[i]=F4mat_to_number_type(npMult((number)(long) row_array[i],(number)(long) coef,currRing->cf));
     1549      }
     1550    }
     1551    else
     1552    {
     1553      for(i=startIndices[row];i<ncols;i++)
     1554      {
     1555        row_array[i]=F4mat_to_number_type(nvMult((number)(long) row_array[i],(number)(long) coef,currRing->cf));
     1556      }
    15631557    }
    15641558  }
     
    15741568    assume(!(npIsZero((number)(long) row_array[start],currRing->cf)));
    15751569    if (!(npIsOne((number)(long) coef,currRing->cf)))
    1576       multiplyRow(r,F4mat_to_number_type(npInvers((number)(long) coef,currRing->cf)));
     1570      multiplyRow(r,F4mat_to_number_type(npInversM((number)(long) coef,currRing->cf)));
    15771571    assume(npIsOne((number)(long) row_array[start],currRing->cf));
    15781572    int lastIndex=modP_lastIndexRow(row_array, ncols);
    15791573    number minus_one=npInit(-1, currRing->cf);
    1580     for (other_row=r+1;other_row<nrows;other_row++)
    1581     {
    1582       assume(startIndices[other_row]>=start);
    1583       if (startIndices[other_row]==start)
     1574    if(currRing->cf->ch<=NV_MAX_PRIME)
     1575    {
     1576      for (other_row=r+1;other_row<nrows;other_row++)
    15841577      {
    1585         int i;
    1586         number_type* other_row_array=rows[other_row];
    1587         number coef2=npNeg((number)(long) other_row_array[start],currRing->cf);
    1588         if (coef2==minus_one)
     1578        assume(startIndices[other_row]>=start);
     1579        if (startIndices[other_row]==start)
    15891580        {
    1590           for(i=start;i<=lastIndex;i++)
     1581          int i;
     1582          number_type* other_row_array=rows[other_row];
     1583          number coef2=npNegM((number)(long) other_row_array[start],currRing->cf);
     1584          if (coef2==minus_one)
    15911585          {
    1592             if (row_array[i]!=zero)
    1593             { STATISTIC(n_Sub);
    1594               other_row_array[i]=F4mat_to_number_type(npSubM((number)(long) other_row_array[i], (number)(long) row_array[i],currRing->cf));
     1586            for(i=start;i<=lastIndex;i++)
     1587            {
     1588              if (row_array[i]!=zero)
     1589              {
     1590                other_row_array[i]=F4mat_to_number_type(npSubM((number)(long) other_row_array[i], (number)(long) row_array[i],currRing->cf));
     1591              }
    15951592            }
    1596 
    15971593          }
    1598       }
    1599       else
    1600       {
    1601           //assume(FALSE);
    1602           for(i=start;i<=lastIndex;i++)
     1594          else
    16031595          {
    1604             if (row_array[i]!=zero)
    1605             { STATISTIC(n_Add);
    1606               other_row_array[i]=F4mat_to_number_type(npAddM(npMult(coef2,(number)(long) row_array[i],currRing->cf),(number)(long) other_row_array[i],currRing->cf));
     1596            for(i=start;i<=lastIndex;i++)
     1597            {
     1598              if (row_array[i]!=zero)
     1599              {
     1600                other_row_array[i]=F4mat_to_number_type(npAddM(npMult(coef2,(number)(long) row_array[i],currRing->cf),(number)(long) other_row_array[i],currRing->cf));
     1601              }
    16071602            }
    1608 
    16091603          }
    1610         }
    1611         updateStartIndex(other_row,start);
    1612         assume(npIsZero((number)(long) other_row_array[start],currRing->cf));
    1613       }
    1614     }
    1615   }
    1616   void updateStartIndex(int row,int lower_bound)
    1617   {
    1618     number_type* row_array=rows[row];
    1619     assume((lower_bound<0)||(npIsZero((number)(long) row_array[lower_bound],currRing->cf)));
    1620     int i;
    1621     //number_type zero=npInit(0);
    1622     for(i=lower_bound+1;i<ncols;i++)
    1623     {
    1624       if (!(row_array[i]==0))
    1625         break;
    1626     }
    1627     startIndices[row]=i;
    1628   }
    1629   int getStartIndex(int row)
    1630   {
    1631     return startIndices[row];
    1632   }
    1633   BOOLEAN findPivot(int &r, int &c)
    1634   {
    1635     //row>=r, col>=c
    1636 
    1637     while(c<ncols)
    1638     {
    1639       int i;
    1640       for(i=r;i<nrows;i++)
    1641       {
    1642         assume(startIndices[i]>=c);
    1643         if (startIndices[i]==c)
    1644         {
    1645           //r=i;
    1646           if (r!=i)
    1647             permRows(r,i);
    1648           return TRUE;
     1604          updateStartIndex(other_row,start);
     1605          assume(npIsZero((number)(long) other_row_array[start],currRing->cf));
    16491606        }
    16501607      }
    1651       c++;
    1652     }
    1653     return FALSE;
    1654   }
     1608    }
     1609    else /* ch>NV_MAX_PRIME*/
     1610    {
     1611      for (other_row=r+1;other_row<nrows;other_row++)
     1612      {
     1613        assume(startIndices[other_row]>=start);
     1614        if (startIndices[other_row]==start)
     1615        {
     1616          int i;
     1617          number_type* other_row_array=rows[other_row];
     1618          number coef2=npNegM((number)(long) other_row_array[start],currRing->cf);
     1619          if (coef2==minus_one)
     1620          {
     1621            for(i=start;i<=lastIndex;i++)
     1622            {
     1623              if (row_array[i]!=zero)
     1624              {
     1625                other_row_array[i]=F4mat_to_number_type(npSubM((number)(long) other_row_array[i], (number)(long) row_array[i],currRing->cf));
     1626              }
     1627            }
     1628          }
     1629          else
     1630          {
     1631            for(i=start;i<=lastIndex;i++)
     1632            {
     1633              if (row_array[i]!=zero)
     1634              {
     1635                other_row_array[i]=F4mat_to_number_type(npAddM(nvMult(coef2,(number)(long) row_array[i],currRing->cf),(number)(long) other_row_array[i],currRing->cf));
     1636              }
     1637            }
     1638          }
     1639          updateStartIndex(other_row,start);
     1640          assume(npIsZero((number)(long) other_row_array[start],currRing->cf));
     1641        }
     1642      }
     1643    }
     1644}
     1645void updateStartIndex(int row,int lower_bound)
     1646{
     1647  number_type* row_array=rows[row];
     1648  assume((lower_bound<0)||(npIsZero((number)(long) row_array[lower_bound],currRing->cf)));
     1649  int i;
     1650  //number_type zero=npInit(0);
     1651  for(i=lower_bound+1;i<ncols;i++)
     1652  {
     1653    if (!(row_array[i]==0))
     1654      break;
     1655  }
     1656  startIndices[row]=i;
     1657}
     1658int getStartIndex(int row)
     1659{
     1660  return startIndices[row];
     1661}
     1662BOOLEAN findPivot(int &r, int &c)
     1663{
     1664  //row>=r, col>=c
     1665
     1666  while(c<ncols)
     1667  {
     1668    int i;
     1669    for(i=r;i<nrows;i++)
     1670    {
     1671      assume(startIndices[i]>=c);
     1672      if (startIndices[i]==c)
     1673      {
     1674        //r=i;
     1675        if (r!=i)
     1676          permRows(r,i);
     1677        return TRUE;
     1678      }
     1679    }
     1680    c++;
     1681  }
     1682  return FALSE;
     1683}
    16551684protected:
    16561685  number_type** rows;
     
    16701699    int i;
    16711700    number_type* row_array=rows[row];
    1672     for(i=startIndices[row];i<ncols;i++)
    1673     {
    1674       row_array[i]=F4mat_to_number_type(npMult((number)(long) row_array[i],(number)(long) coef,currRing->cf));
     1701    if (currRing->cf->ch<=NV_MAX_PRIME)
     1702    {
     1703      for(i=startIndices[row];i<ncols;i++)
     1704      {
     1705        row_array[i]=F4mat_to_number_type(npMult((number)(long) row_array[i],(number)(long) coef,currRing->cf));
     1706      }
     1707    }
     1708    else
     1709    {
     1710      for(i=startIndices[row];i<ncols;i++)
     1711      {
     1712        row_array[i]=F4mat_to_number_type(nvMult((number)(long) row_array[i],(number)(long) coef,currRing->cf));
     1713      }
    16751714    }
    16761715  }
     
    17361775    {
    17371776      //it should be one, but this safety is not expensive
    1738       multiplyRow(r, F4mat_to_number_type(npInvers((number)(long) row_array[start],currRing->cf)));
     1777      multiplyRow(r, F4mat_to_number_type(npInversM((number)(long) row_array[start],currRing->cf)));
    17391778    }
    17401779    int lastIndex=modP_lastIndexRow(row_array, ncols);
    17411780    assume(lastIndex<ncols);
    17421781    assume(lastIndex>=0);
    1743     for(other_row=r-1;other_row>=0;other_row--)
    1744     {
    1745       assume(lastReducibleIndices[other_row]<=start);
    1746       if (lastReducibleIndices[other_row]==start)
     1782    if(currRing->cf->ch<=NV_MAX_PRIME)
     1783    {
     1784      for(other_row=r-1;other_row>=0;other_row--)
    17471785      {
    1748         number_type* other_row_array=rows[other_row];
    1749         number coef=npNeg((number)(long) other_row_array[start],currRing->cf);
    1750         assume(!(npIsZero(coef,currRing->cf)));
    1751         int i;
    1752         assume(start>startIndices[other_row]);
    1753         for(i=start;i<=lastIndex;i++)
     1786        assume(lastReducibleIndices[other_row]<=start);
     1787        if (lastReducibleIndices[other_row]==start)
    17541788        {
    1755           if (row_array[i]!=zero)
     1789          number_type* other_row_array=rows[other_row];
     1790          number coef=npNegM((number)(long) other_row_array[start],currRing->cf);
     1791          assume(!(npIsZero(coef,currRing->cf)));
     1792          int i;
     1793          assume(start>startIndices[other_row]);
     1794          for(i=start;i<=lastIndex;i++)
    17561795          {
    1757             STATISTIC(n_Add);
    1758             other_row_array[i]=F4mat_to_number_type(npAddM(npMult(coef,(number)(long)row_array[i],currRing->cf),(number)(long)other_row_array[i],currRing->cf));
     1796            if (row_array[i]!=zero)
     1797            {
     1798              other_row_array[i]=F4mat_to_number_type(npAddM(npMult(coef,(number)(long)row_array[i],currRing->cf),(number)(long)other_row_array[i],currRing->cf));
     1799            }
    17591800          }
     1801          updateLastReducibleIndex(other_row,r);
    17601802        }
    1761         updateLastReducibleIndex(other_row,r);
     1803      }
     1804    }
     1805    else
     1806    {
     1807      for(other_row=r-1;other_row>=0;other_row--)
     1808      {
     1809        assume(lastReducibleIndices[other_row]<=start);
     1810        if (lastReducibleIndices[other_row]==start)
     1811        {
     1812          number_type* other_row_array=rows[other_row];
     1813          number coef=npNegM((number)(long) other_row_array[start],currRing->cf);
     1814          assume(!(npIsZero(coef,currRing->cf)));
     1815          int i;
     1816          assume(start>startIndices[other_row]);
     1817          for(i=start;i<=lastIndex;i++)
     1818          {
     1819            if (row_array[i]!=zero)
     1820            {
     1821              other_row_array[i]=F4mat_to_number_type(npAddM(nvMult(coef,(number)(long)row_array[i],currRing->cf),(number)(long)other_row_array[i],currRing->cf));
     1822            }
     1823          }
     1824          updateLastReducibleIndex(other_row,r);
     1825        }
    17621826      }
    17631827    }
  • kernel/GBEngine/tgbgauss.cc

    rede6da rbbca14  
    251251    //must extract content and normalize here
    252252    mat->row_content(row);
    253     mat->row_normalize(row);
     253    //mat->row_normalize(row); // row_content does normalize
    254254
    255255    //for(i=row+1;i<pn;i++){
     
    862862    if(!nGreaterZero(ph->coef))
    863863    {
    864       //ph = pNeg(ph);
    865864      p=ph;
    866865      while(p!=NULL)
     
    870869      }
    871870    }
     871    if (currRing->cf->cfGcd==ndGcd) return;
    872872
    873873    h=nCopy(ph->coef);
  • kernel/mod2.h

    rede6da rbbca14  
    1515#define HAVE_SVD
    1616
    17 #undef VERSION
    18 #define VERSION "4.1.3"
    1917#define SINGULAR_MAJOR_VERSION 4
    2018#define SINGULAR_MINOR_VERSION 1
  • libpolys/coeffs/Makefile.am

    rede6da rbbca14  
    2424libcoeffs_la_includedir  =$(includedir)/singular/coeffs
    2525libcoeffs_la_include_HEADERS = \
    26   coeffs.h numbers.h si_gmp.h gnumpc.h gnumpfl.h longrat.h modulop.h ffields.h rintegers.h rmodulo2m.h rmodulon.h \
     26  coeffs.h numbers.h si_gmp.h gnumpc.h gnumpfl.h longrat.h modulop.h modulop_inl.h \
     27  ffields.h rintegers.h rmodulo2m.h rmodulon.h \
    2728  shortfl.h mpr_complex.h mpr_global.h numstats.h ntupel.h \
    2829  bigintmat.h Enumerator.h \
  • libpolys/coeffs/modulop.cc

    rede6da rbbca14  
    2525
    2626BOOLEAN npGreaterZero (number k, const coeffs r);
    27 number  npMult        (number a, number b, const coeffs r);
    28 number  npInit        (long i, const coeffs r);
    2927long    npInt         (number &n, const coeffs r);
    3028void    npPower       (number a, int i, number * result,const coeffs r);
    31 BOOLEAN npIsZero      (number a,const coeffs r);
    32 BOOLEAN npIsOne       (number a,const coeffs r);
    3329BOOLEAN npIsMOne       (number a,const coeffs r);
    3430number  npDiv         (number a, number b,const coeffs r);
     
    4743nMapFunc npSetMap(const coeffs src, const coeffs dst);
    4844
     45#include "coeffs/modulop_inl.h" // npMult, npInit
     46
    4947#ifdef NV_OPS
    50 #pragma GCC diagnostic ignored "-Wlong-long"
    51 static inline number nvMultM(number a, number b, const coeffs r)
    52 {
    53   assume( getCoeffType(r) == n_Zp );
    54 
    55 #if SIZEOF_LONG == 4
    56 #define ULONG64 (unsigned long long)(unsigned long)
    57 #else
    58 #define ULONG64 (unsigned long)
    59 #endif
    60   return (number)
    61       (unsigned long)((ULONG64 a)*(ULONG64 b) % (ULONG64 r->ch));
    62 }
    63 number  nvMult        (number a, number b, const coeffs r);
    6448number  nvDiv         (number a, number b, const coeffs r);
    6549number  nvInvers      (number c, const coeffs r);
     
    8367//}
    8468
    85 number npMult (number a,number b, const coeffs r)
    86 {
    87   n_Test(a, r);
    88   n_Test(b, r);
    89 
    90   if (((long)a == 0) || ((long)b == 0))
    91     return (number)0;
    92   number c = npMultM(a,b, r);
    93   n_Test(c, r);
    94   return c;
    95 }
    9669
    9770void npInpMult (number &a,number b, const coeffs r)
     
    10881
    10982/*2
    110 * create a number from int
    111 */
    112 number npInit (long i, const coeffs r)
    113 {
    114   long ii=i % (long)r->ch;
    115   if (ii <  0L)                         ii += (long)r->ch;
    116 
    117   number c = (number)ii;
    118   n_Test(c, r);
    119   return c;
    120 }
    121 
    122 
    123 /*2
    12483 * convert a number to an int in (-p/2 .. p/2]
    12584 */
     
    13089  if ((long)n > (((long)r->ch) >>1)) return ((long)n -((long)r->ch));
    13190  else                               return ((long)n);
    132 }
    133 
    134 BOOLEAN npIsZero (number  a, const coeffs r)
    135 {
    136   n_Test(a, r);
    137 
    138   return 0 == (long)a;
    13991}
    14092
     
    692644// ----------------------------------------------------------
    693645#ifdef NV_OPS
    694 
    695 number nvMult (number a,number b, const coeffs r)
    696 {
    697   //if (((long)a == 0) || ((long)b == 0))
    698   //  return (number)0;
    699   //else
    700     return nvMultM(a,b,r);
    701 }
    702 
    703646void nvInpMult(number &a, number b, const coeffs r)
    704647{
    705   number n=nvMultM(a,b,r);
     648  number n=nvMult(a,b,r);
    706649  a=n;
    707650}
     
    725668  {
    726669    number inv=nvInversM(b,r);
    727     return nvMultM(a,inv,r);
     670    return nvMult(a,inv,r);
    728671  }
    729672}
     
    752695  {
    753696    nvPower(a,i-1,result,r);
    754     *result = nvMultM(a,*result,r);
    755   }
    756 }
    757 #endif
    758 #endif
    759 
     697    *result = nvMult(a,*result,r);
     698  }
     699}
     700#endif
     701#endif
     702
  • libpolys/coeffs/modulop.h

    rede6da rbbca14  
    169169}
    170170
    171 static inline BOOLEAN npIsZeroM (number  a, const coeffs)
    172 {
    173   return 0 == (long)a;
    174 }
    175171static inline BOOLEAN npIsOne (number a, const coeffs)
    176172{
     
    253249long    npInt         (number &n, const coeffs r);
    254250
    255 // The folloing is reused inside tgb*.cc
    256 number  npMult        (number a, number b, const coeffs r);
    257 
    258251#define npEqualM(A,B,r)  ((A)==(B))
    259252
    260 
    261 #endif
     253#endif
  • libpolys/polys/Makefile.am

    rede6da rbbca14  
    112112
    113113templates/p_Procs.inc: p_Procs_Generate.cc
    114         $(MAKE) $(AM_MAKEFLAGS) CXX="$(CXX_FOR_BUILD)" CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" LDFLAGS="" LIBS="" p_Procs_Generate
     114        $(MAKE) $(AM_MAKEFLAGS) CXX="$(CXX_FOR_BUILD)" \
     115        CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
     116        CPPFLAGS="-I${abs_top_srcdir} -I${abs_top_builddir} -I${top_srcdir} -I${top_builddir} ${FACTORY_INCLUDES} $(CPPFLAGS_FOR_BUILD) ${USE_P_PROCS_STATIC}" \
     117        LDFLAGS="" LIBS="" p_Procs_Generate
    115118        ./p_Procs_Generate$(BUILD_EXEEXT) > ./templates/p_Procs.inc
    116119
  • libpolys/polys/simpleideals.cc

    rede6da rbbca14  
    922922int binom (int n,int r)
    923923{
    924   int i,result;
     924  int i;
     925  int64 result;
    925926
    926927  if (r==0) return 1;
     
    930931  {
    931932    result *= n-r+i;
    932     if (result<0)
    933     {
    934       WarnS("overflow in binomials");
    935       return 0;
    936     }
    937933    result /= i;
    938934  }
    939   return result;
     935  if (result>MAX_INT_VAL)
     936  {
     937    WarnS("overflow in binomials");
     938    result=0;
     939  }
     940  return (int)result;
    940941}
    941942
     
    947948  if (r->isLPring)
    948949  {
    949         PrintS("In order to address bimodules, the command freeAlgebra should be used."); 
     950    PrintS("In order to address bimodules, the command freeAlgebra should be used.");
    950951  }
    951952  ideal h = idInit(i, i);
  • libpolys/polys/templates/p_Numbers.h

    rede6da rbbca14  
    5656#define n_Sub_RingGeneral(n1, n2, r)       n_Sub_FieldGeneral(n1, n2, r)
    5757#define n_InpMult_RingGeneral(n1, n2, r)   n_InpMult_FieldGeneral(n1, n2, r)
    58 
    59 static FORCE_INLINE void n_InpAdd_RingGeneral(number &n1, number n2, const coeffs r)
    60 {  assume(nCoeff_is_Ring(r)); n_InpAdd(n1, n2, r); }
     58#define n_InpAdd_RingGeneral(n1,n2,r)      n_InpAdd(n1, n2, r)
    6159#endif
    6260
    6361#include "coeffs/modulop.h"
     62#include "coeffs/modulop_inl.h"
    6463
    6564#define n_Copy_FieldZp(n, r)        n
    6665#define n_Delete_FieldZp(n, r)      do {} while (0)
    67 
    68 static FORCE_INLINE number n_Mult_FieldZp(number n1, number n2, const coeffs r)
    69 { STATISTIC(n_Mult); return npMultM(n1, n2, r); }
    70 
    71 #ifdef HAVE_NUMSTATS
    72 static FORCE_INLINE number n_Add_FieldZp(number n1, number n2, const coeffs r)
    73 { STATISTIC(n_Add); const number sum = npAddM(n1, n2, r);
    74   // avoid double counting
    75   if( npIsZeroM(sum,r) ) STATISTIC(n_CancelOut);
    76   return sum;
    77 }
    78 #else
    79 static FORCE_INLINE number n_Add_FieldZp(number n1, number n2, const coeffs r)
    80 { return npAddM(n1, n2, r); }
    81 #endif
    82 
    83 #ifdef HAVE_NUMSTATS
    84 static FORCE_INLINE number n_Sub_FieldZp(number n1, number n2, const coeffs r)
    85 { STATISTIC(n_Sub); const number d = npSubM(n1, n2, r);
    86   // avoid double counting
    87   if( npIsZeroM(d,r) ) STATISTIC(n_CancelOut);
    88   return d;
    89 }
    90 #else
    91 static FORCE_INLINE number n_Sub_FieldZp(number n1, number n2, const coeffs r)
    92 { return npSubM(n1, n2, r); }
    93 #endif
    94 
    95 static FORCE_INLINE BOOLEAN n_IsZero_FieldZp(number n, const coeffs r)
    96 { STATISTIC(n_IsZero); return npIsZeroM(n, r); }
    97 
    98 static FORCE_INLINE BOOLEAN n_Equal_FieldZp(number n1, number n2, const coeffs r)
    99 { STATISTIC(n_Equal); return  npEqualM(n1, n2, r); }
    100 
    101 static FORCE_INLINE number n_Neg_FieldZp(number n, const coeffs r)
    102 { STATISTIC(n_InpNeg); return npNegM(n, r); }
    103 
    104 static FORCE_INLINE void n_InpMult_FieldZp(number &n1, number n2, const coeffs r)
    105 { STATISTIC(n_InpMult); npInpMultM(n1, n2, r);  }
    106 
    107 #ifdef HAVE_NUMSTATS
    108 static FORCE_INLINE void n_InpAdd_FieldZp(number &n1, number n2, const coeffs r)
    109 {
    110   STATISTIC(n_InpAdd); n1=npAddM(n1, n2, r);
    111   // avoid double counting
    112   if( npIsZeroM(n1,r) ) STATISTIC(n_CancelOut);
    113 }
    114 #else
    115 static FORCE_INLINE void n_InpAdd_FieldZp(number &n1, number n2, const coeffs r)
    116 { n1=npAddM(n1, n2, r); }
    117 #endif
     66#define n_Mult_FieldZp(n1,n2,r)     npMultM(n1,n2,r)
     67#define n_Add_FieldZp(n1,n2,r)      npAddM(n1,n2,r)
     68#define n_Sub_FieldZp(n1,n2,r)      npSubM(n1,n2,r)
     69#define n_IsZero_FieldZp(n,r)       npIsZeroM(n,r)
     70#define n_Equal_FieldZp(n1,n2,r)    npEqualM(n1,n2,r)
     71#define n_Neg_FieldZp(n,r)          npNegM(n,r)
     72#define n_InpMult_FieldZp(n1,n2,r)  npInpMultM(n1,n2,r)
     73#define n_InpAdd_FieldZp(n1,n2,r)   npInpAddM(n1,n2,r)
    11874
    11975#define DO_LFORCE_INLINE
    12076#include "coeffs/longrat.cc" // for inlining... TODO: fix this Uglyness?!!!
    12177
    122 static FORCE_INLINE number n_Copy_FieldQ(number n, const coeffs r)
    123 { STATISTIC(n_Copy); return nlCopy(n, r); }
    124 
    125 static FORCE_INLINE void   n_Delete_FieldQ(number* n, const coeffs r)
    126 { STATISTIC(n_Delete); nlDelete(n,r); }
    127 
    128 static FORCE_INLINE number n_Mult_FieldQ(number n1, number n2, const coeffs r)
    129 { STATISTIC(n_Mult); return nlMult(n1,n2, r); }
    130 
    131 #ifdef HAVE_NUMSTATS
    132 static FORCE_INLINE number n_Add_FieldQ(number n1, number n2, const coeffs r)
    133 { STATISTIC(n_Add); const number sum = nlAdd(n1, n2, r);
    134   // avoid double counting
    135   if( nlIsZero(sum,r) ) STATISTIC(n_CancelOut);
    136   return sum;
    137 }
    138 #else
    139 static FORCE_INLINE number n_Add_FieldQ(number n1, number n2, const coeffs r)
    140 { return nlAdd(n1, n2, r); }
    141 #endif
    142 
    143 #ifdef HAVE_NUMSTATS
    144 static FORCE_INLINE number n_Sub_FieldQ(number n1, number n2, const coeffs r)
    145 { STATISTIC(n_Sub); const number d = nlSub(n1, n2, r);
    146   // avoid double counting
    147   if( nlIsZero(d,r) ) STATISTIC(n_CancelOut);
    148   return d;
    149 }
    150 #else
    151 static FORCE_INLINE number n_Sub_FieldQ(number n1, number n2, const coeffs r)
    152 { return nlSub(n1, n2, r); }
    153 #endif
    154 
    155 static FORCE_INLINE BOOLEAN n_IsZero_FieldQ(number n, const coeffs r)
    156 { STATISTIC(n_IsZero); return nlIsZero(n, r); }
    157 
    158 static FORCE_INLINE BOOLEAN n_Equal_FieldQ(number n1, number n2, const coeffs r)
    159 { STATISTIC(n_Equal); return  nlEqual(n1, n2, r); }
    160 
    161 static FORCE_INLINE number n_Neg_FieldQ(number n, const coeffs r)
    162 { STATISTIC(n_InpNeg); return nlNeg(n, r); }
    163 
    164 static FORCE_INLINE void n_InpMult_FieldQ(number &n1, number n2, const coeffs r)
    165 { STATISTIC(n_InpMult); nlInpMult(n1, n2, r); }
    166 
    167 #ifdef HAVE_NUMSTATS
    168 static FORCE_INLINE void n_InpAdd_FieldQ(number &n1, number n2, const coeffs r)
    169 { STATISTIC(n_InpAdd); assume(nCoeff_is_Q(r)); nlInpAdd(n1, n2, r);
    170   // avoid double counting
    171   if( nlIsZero(n1,r) ) STATISTIC(n_CancelOut);
    172 }
    173 #else
    174 static FORCE_INLINE void n_InpAdd_FieldQ(number &n1, number n2, const coeffs r)
    175 { nlInpAdd(n1, n2, r); }
    176 #endif
     78#define n_Copy_FieldQ(n,r)          nlCopy(n,r)
     79#define n_Delete_FieldQ(n,r)        nlDelete(n,r)
     80#define n_Mult_FieldQ(n1,n2,r)      nlMult(n1,n2,r)
     81#define n_Add_FieldQ(n1,n2,r)       nlAdd(n1,n2,r)
     82#define n_Sub_FieldQ(n1,n2,r)       nlSub(n1,n2,r)
     83#define n_IsZero_FieldQ(n,r)        nlIsZero(n,r)
     84#define n_Equal_FieldQ(n1,n2,r)     nlEqual(n1,n2,r)
     85#define n_Neg_FieldQ(n,r)           nlNeg(n,r)
     86#define n_InpMult_FieldQ(n1,n2,r)   nlInpMult(n1,n2,r)
     87#define n_InpAdd_FieldQ(n1,n2,r)    nlInpAdd(n1,n2,r)
    17788
    17889#endif
  • m4/flint-check.m4

    rede6da rbbca14  
    1414AC_DEFUN([LB_CHECK_FLINT],
    1515[
    16 DEFAULT_CHECKING_PATH="/sw /opt/local"
     16DEFAULT_CHECKING_PATH="/usr /usr/local /sw /opt/local"
    1717
    1818AC_ARG_WITH(flint,
  • m4/gfanlib-check.m4

    rede6da rbbca14  
    2323 AC_MSG_CHECKING([whether libcddgmp is usable])
    2424
    25  BACKUP_LIBS=$LIBS
     25# Check whether --with-gmp was given.
     26DEFAULT_CHECKING_PATH="/usr /usr/local /sw /opt/local"
     27GMP_HOME_PATH="${DEFAULT_CHECKING_PATH}"
     28if test "$with_gmp" = yes ; then
     29        GMP_HOME_PATH="${DEFAULT_CHECKING_PATH}"
     30elif test "$with_gmp" != no ; then
     31        GMP_HOME_PATH="$with_gmp ${DEFAULT_CHECKING_PATH}"
     32fi
    2633
    27  LIBS="-lcddgmp -lgmp $GMP_LIBS $LIBS"
     34BACKUP_CFLAGS=${CFLAGS}
     35BACKUP_LIBS=${LIBS}
     36
     37for GMP_HOME in ${GMP_HOME_PATH}
     38do
     39  if test "x$GMP_HOME" != "x/usr"; then
     40    if test -e ${GMP_HOME}/include/gmp.h; then
     41      GMP_CPPFLAGS="-I${GMP_HOME}/include"
     42      GMP_LIBS="-L${GMP_HOME}/lib -Wl,-rpath -Wl,${GMP_HOME}/lib -lgmp"
     43    fi
     44  fi
     45done
     46if test -z "${GMP_LIBS}"
     47then
     48  GMP_LIBS="-lgmp"
     49fi
     50
     51LIBS="-lcddgmp $GMP_LIBS $LIBS"
    2852
    2953 AC_LANG_PUSH(C++)
     
    77101fi
    78102
    79 
    80 
    81103AM_CONDITIONAL(HAVE_GFANLIB, test "x$PASSED_ALL_TESTS_FOR_GFANLIB" = x1)
    82104AC_DEFINE_UNQUOTED(HAVE_GFANLIB, ${PASSED_ALL_TESTS_FOR_GFANLIB}, [whether gfanlib support is enabled])
  • make_tar.sh

    • Property mode changed from 100644 to 100755
    rede6da rbbca14  
    1 #!/bin/sh
     1#!/usr/bin/env bash
     2# Hannes helper to build tar files for the ftp server
     3
     4set -e
     5
    26TARVERSION=4.1.3p2
    37VERSION=4.1.3
    4 export VERSION TARVERSION
     8INSTALL_DIR=/tmp2/wawa-i
     9BUILD_DIR=/tmp2/wawa
     10export VERSION TARVERSION INSTALL_DIR BUILD_DIR
    511
    612git archive --prefix=singular-$VERSION/ HEAD |tar xf -
     
    3036command rm singular-$VERSION/factory/ConwayList.txt
    3137command rm -rf singular-$VERSION/logo  singular-$VERSION/standalone.test  singular-$VERSION/templates  singular-$VERSION/tests
    32 cp redhat/singular.spec singular-$VERSION/redhat/singular.spec
    33 cp /tmp2/wawa-i/share/singular/LIB/all.lib  singular-$VERSION/Singular/LIB/.
     38cp $BUILD_DIR/redhat/singular.spec singular-$VERSION/redhat/singular.spec
     39cp $INSTALL_DIR/share/singular/LIB/all.lib  singular-$VERSION/Singular/LIB/.
    3440tar cf singular-$TARVERSION.tar singular-$VERSION
    3541gzip -9 -f singular-$TARVERSION.tar
  • omalloc/Makefile.am

    rede6da rbbca14  
    4141
    4242omTables.inc:
    43         $(MAKE) $(AM_MAKEFLAGS) CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" LDFLAGS="$(LDFLAGS_FOR_BUILD)" omTables
     43        $(MAKE) $(AM_MAKEFLAGS) \
     44        CC="${CC_FOR_BUILD}" \
     45        CFLAGS="${CFLAGS_FOR_BUILD}" \
     46        CPPFLAGS="-I${abs_top_srcdir}/.. -I${abs_top_builddir}/.. $(CPPFLAGS_FOR_BUILD) -DOM_GENERATE_INC" \
     47        LDFLAGS="$(LDFLAGS_FOR_BUILD)" omTables
    4448        ./omTables$(BUILD_EXEEXT) > omTables.xx && mv omTables.xx  omTables.inc
    4549
    4650omTables.h:
    47         $(MAKE) $(AM_MAKEFLAGS) CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" LDFLAGS="$(LDFLAGS_FOR_BUILD)" omTables1
     51        $(MAKE) $(AM_MAKEFLAGS) \
     52        CPPFLAGS="-I${abs_top_srcdir}/.. -I${abs_top_builddir}/.. $(CPPFLAGS_FOR_BUILD)" \
     53        CC="${CC_FOR_BUILD}" \
     54        CFLAGS="${CFLAGS_FOR_BUILD}" \
     55        LDFLAGS="$(LDFLAGS_FOR_BUILD)" omTables1
    4856        ./omTables1$(BUILD_EXEEXT) >omTables.yy && mv omTables.yy omTables.h
    4957
  • omalloc/configure.ac

    rede6da rbbca14  
    2828
    2929AX_PROG_CC_FOR_BUILD
     30AC_SUBST(BUILD_EXEEXT)
    3031
    3132# Add pre'prefixed config
  • omalloc/omTables.c

    rede6da rbbca14  
    1414#include <unistd.h>
    1515#include <string.h>
    16 #include "omConfig.h"
    17 #include "omDerivedConfig.h"
    18 #include "omStructs.h"
    19 #include "omAllocPrivate.h"
     16#include "omalloc/omConfig.h"
     17#include "omalloc/omDerivedConfig.h"
     18#include "omalloc/omStructs.h"
     19#include "omalloc/omAllocPrivate.h"
    2020
    2121/* Specify the minimal number of blocks which should go into a bin */
  • omalloc/omTables1.c

    rede6da rbbca14  
    1414#include <unistd.h>
    1515#include <string.h>
    16 #include "omConfig.h"
    17 #include "omDerivedConfig.h"
    18 #include "omStructs.h"
    19 #include "omAllocPrivate.h"
     16#include "omalloc/omConfig.h"
     17#include "omalloc/omDerivedConfig.h"
     18#include "omalloc/omStructs.h"
     19#include "omalloc/omAllocPrivate.h"
    2020
    2121/* Specify the minimal number of blocks which should go into a bin */
Note: See TracChangeset for help on using the changeset viewer.