Giter VIP home page Giter VIP logo

singular / singular Goto Github PK

View Code? Open in Web Editor NEW
252.0 252.0 114.0 179.38 MB

sources for the Singular computer algebra system

Home Page: http://www.singular.uni-kl.de

License: Other

C++ 43.30% C 8.00% Java 1.63% Shell 0.50% TeX 0.07% Python 0.34% LLVM 0.16% Scilab 41.41% SystemVerilog 0.01% Perl 0.20% HTML 0.61% CSS 0.10% Emacs Lisp 2.03% Makefile 0.28% Yacc 0.16% M4 0.70% GDB 0.01% Roff 0.05% Tcl 0.44% Boogie 0.01%

singular's Introduction

CAS Singular {#mainpage}

Singular is a computer algebra system for polynomial computations, with special emphasis on commutative and non-commutative algebra, algebraic geometry, and singularity theory. It is free and open-source under the GNU General Public Licence (See [COPYING](@ref copying_page)).

singular's People

Contributors

adipopescu avatar alexanderdreyer avatar bendooru avatar burcin avatar dependabot[bot] avatar dkboku avatar ederc avatar fchapoton avatar fingolfin avatar fruhbis-kruger-anne avatar gerhardpfister avatar hannes14 avatar hovinen avatar jakobkroeker avatar jankoboehm avatar kabouzeid avatar kaikrueger avatar levandov avatar mheymann avatar mkoeppe avatar mmklee avatar mohamed-barakat avatar oberfran avatar ranosch avatar sachinkmohan avatar slap avatar steenpass avatar tthsqe12 avatar wdecker avatar yueren avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

singular's Issues

typo in standard.lib?

when calling groebner(),

the line
if (find(s_opt, option())) { "calling std for ideals in ring with ring coefficients"; }

in standard.lib

causes an error "s_opt is not defined". Should it be
if (find(option(),"prot")) { "calling std for ideals in ring with ring coefficients"; }

instead?

Jakob

libsingular-config.in portability issue

I just tried to use Spielwiese's libsingular to build the GAP package libsing, but run into a problem with the "libsingular-config" script caused by this script using "readlink -f". The "-f" option is a non-portable GNU extension of the POSIX readlink shell command. Hence, it does not work on plain Mac OS X.

I can work around this by install GNU coreutils, but it would be better if this worked out of the box on Mac OS X, no?

By the way, it might actually be best to not roll your own -config script, but instead use pkgconfig.

xalloc/omalloc.h overwrites omalloc/omalloc.h, makes use of installed Singular infeasible

With latest Singular spielwiese (also with 4.0.0), the installed header omalloc/omalloc.h is actually xalloc/omalloc.h. As a result, client code (such as that in libsing) which wants / needs to free memory using omfree() / omFree() previously allocated by libsingular may crash, and vice versa.

For now, I work around this by manually copying the "correct" omalloc.h after doing a "make install".

std in rings with parameters

ring R = (0, I, T, Px, Py, Cx, Cy, Sx, Sy, a, b, dt, dx, dy), (i, t, x, y, cx, cy, sx, sy), (c,lp);
//   characteristic : 0
//   13 parameter    : I T Px Py Cx Cy Sx Sy a b dt dx dy
//   minpoly        : 0
//   number of vars : 8
//        block   1 : ordering c
//        block   2 : ordering lp
//                  : names    i t x y cx cy sx sy

ideal Id;

Id[1]=i^2+1;
Id[2]=cx^2+sx^2-1;
Id[3]=cy^2+sy^2-1;

std(Id);

produces:

   ? longalg missing 1
   ? longalg missing 1
   ? longalg missing 1
   ? error occurred in or before V.tst line 16: `std(Id);`

and doesn't return anything...

$

clean call to nfShowMipo in Singular/subexpr.cc

char * sleftv::String(void *d, BOOLEAN typed, int dim) in Singular/subexr.cc calls nfShowMipo(). It shouldn't.

    case NUMBER_CMD:
      StringSetS((char*) (typed ? "number(" : ""));
      if ((rtyp==IDHDL)&&(IDTYP((idhdl)data)==NUMBER_CMD))
      {
        nWrite(IDNUMBER((idhdl)data));
      }
      else if (rtyp==NUMBER_CMD)
      {
        number n=(number)data;
        nWrite(n);
        data=(char *)n;
      }
      else if((rtyp==VMINPOLY)&&(rField_is_GF(currRing)))
      {
        nfShowMipo(currRing->cf);
      }
      else
      {
        number n=nCopy((number)d);
        nWrite(n);
        nDelete(&n);
      }
      s = StringAppendS((char*) (typed ? ")" : ""));
      return omStrDup(s);

bugs in new coeffs: "if (deg=0)"?

The new coeffs (libpolys/coeffs/AE.cc, libpolys/coeffs/AEQ.cc, libpolys/coeffs/AEp.cc)
contain if (deg=0) "check" in the method is_one(), which does not seem correct.

make check sometimes fails for omalloc

seed == 1317251095
1:2:3:4:5:6:7:8:9:10:F:11:12:13:14:15:16:17:18:19:20:F:21:22:23:24:25:26:27:28:29:30:F:31:32:33:34:35:36:37:38:39:40:F:41:42:43:44:45:46:47:48:49:50:F:51:52:53:54:55:56:57:58:59:60:F:61:62:63:64:65:66:67:68:69:70:F:71:72:73:74:75:76:77:78:79:80:F:81:82:83:84:85:86:87:88:89:90:F:91:92:93:94:95:96:97:98:99:100:
Cells: 100000 KeptAddr:100 AlwaysKeptAddr:626
Checking Memory and all cells ..........
System 19272k:19272k Appl 17121k/1943k Malloc 3704k/0k Valloc 15360k/1943k Pages 3830/10 Regions 30:30
                  Current:       Max:
BytesSystem:        19272k     19272k
BytesSbrk:           3912k      3912k
BytesMmap:          15360k     15360k
BytesFromMalloc:     3704k      3711k
BytesFromValloc:    15360k     15360k
PagesAlloc:          3830       3832 
RegionsAlloc:          30         30 
                     Used:     Avail:
BytesAppl:          17121k      1943k
BytesMalloc:         3704k         0k
BytesValloc:        13416k      1943k
Pages:               3830         10
 SizeW  Blocks  UPages  FBlocks UBlocks Sticky
*506    1   36  0   36
*253    2   27  2   52
*168    3   7   4   17
 126    4   126 1   503
T       44  0   176
 101    5   67  6   329
T       31  4   151
 84 6   74  6   438
T       62  7   365
*72 7   5   8   27
 63 8   123 2   982
T       52  8   408
*56 9   6   8   46
 50 10  94  6   934
T       46  9   451
*46 11  4   11  33
*42 12  4   10  38
 38 13  122 15  1571
T       81  8   1045
*36 14  3   9   33
*33 15  3   11  34
*31 16  5   12  68
*29 17  2   2   32
 28 18  72  20  1276
T       29  3   519
*26 19  3   19  38
*25 20  2   4   36
 24 21  56  17  1159
T       56  8   1168
*23 22  2   10  34
*22 23  2   13  33
*21 24  2   5   43
 20 25  25  10  615
T       36  3   897
*19 26  2   20  32
 18 28  22  23  593
T       36  11  997
*17 29  2   7   51
 16 31  75  21  2304
T       45  23  1372
*15 33  5   32  133
 14 36  69  33  2451
T       77  10  2762
*13 38  4   11  141
 12 42  60  5   2515
T       84  13  3515
*11 46  4   31  153
 10 50  26  11  1289
T       43  11  2139
 9  56  24  56  1288
T       39  51  2133
 8  63  74  62  4600
T       35  6   2199
 7  72  71  35  5077
T       25  69  1731
 6  84  62  56  5152
T       11  48  876
 5  101 52  48  5204
T       9   20  889
 4  126 41  122 5044
T       8   52  956
 3  168 32  115 5261
 2  253 21  151 5162
 1  506 11  40  5526
*2042   -4  2   0   2
*1530   -3  4   0   4
*1018   -2  27  0   27
T506    1   147 0   147
T253    2   80  1   159
T168    3   58  7   167
T2554   -5  2   0   2
T2042   -4  14  0   14
T1530   -3  14  0   14
T1018   -2  85  0   85
S1530   -3  4   0   4
S23 22  4   45  43
S17 29  2   25  33
S19 26  3   37  41
S46 11  6   34  32
S1018   -2  18  0   18
S25 20  3   25  35
S42 12  5   30  30
S168    3   13  18  21
S253    2   20  12  28
S31 16  9   85  59
S36 14  2   14  14
S26 19  3   18  39
S72 7   7   27  22
S2042   -4  5   0   5
S506    1   30  0   30
S56 9   11  47  52
S33 15  4   11  49
S50 10  30  165 135
S18 28  9   124 128
S22 23  2   20  26
S101    5   30  68  82
S84 6   24  62  82
S38 13  40  296 224
S24 21  17  205 152
S15 33  8   100 164
S9  56  11  338 278
S126    4   53  88  124
S63 8   47  196 180
S29 17  4   37  31
S20 25  8   88  112
S11 46  7   160 162
S21 24  3   29  43
S28 18  28  292 212
S16 31  32  570 422
S10 50  13  378 272
S14 36  31  692 424
S13 38  8   177 127
S12 42  25  596 454
S6  84  33  1604    1168
S7  72  36  1463    1129
S4  126 22  1577    1195
S3  168 16  1520    1168
S5  101 28  1724    1104
S8  63  45  1684    1151
S1  506 6   1622    1414
S2  253 9   1137    1140
----------------------------------------
                3585    18902   99611
omtTestErrors: Start
!!!expect omError_MemoryCorrupted
***omError_MemoryCorrupted: memory corrupted
 occured at:  ra=0x406023
+++ok  omError_MemoryCorrupted

!!!expect omError_NullAddr
***omError_NullAddr: addr is NULL
 occured at:  ra=0x4068b6
+++ok  omError_NullAddr

!!!expect omError_InvalidRangeAddr
***omError_InvalidRangeAddr: addr not in valid range
 occured at:  ra=0x40688b
  occured for (invalid) addr: 0x7f3ffa650000 (error=5)
+++ok  omError_InvalidRangeAddr

!!!expect omError_FalseAddr
---missed omError_FalseAddr

!!!expect omError_FalseAddrOrMemoryCorrupted
***omError_FalseAddrOrMemoryCorrupted: addr not as returned by omalloc or memory corrupted
 occured at:  ra=0x406573
 occured for addr:0x7f3ff9a56e40 size:48 allocated at  ra=0x40514b
+++ok  omError_FalseAddrOrMemoryCorrupted

!!!expect omError_WrongSize
***omError_WrongSize: wrong size specification of addr
 occured at:  ra=0x4060e9
 occured for addr:0x7f3ffa5d8090 size:8 specified size:1009
***omError_WrongSize: wrong size specification of addr
 occured at:  ra=0x406943
 occured for addr:0x7f3ff9a56e38 size:48 specified size:50 allocated at  ra=0x40514b
***omError_WrongSize: wrong size specification of addr
 occured at:  ra=0x4069c1
 occured for addr:0x7f3ffa5d8090 size:8 specified size:7
+++ok  omError_WrongSize

!!!expect omError_FreedAddr
***omError_FreedAddr: addr had previosuly been freed
 occured at:  ra=0x4067e3
 occured for addr:0x7f3ff9810030 size:1008
***omError_FreedAddr: addr had previosuly been freed
 occured at:  ra=0x406b08
 occured for addr:0x7f3ff9a79990 size:24***omError_FreedAddr: addr had previosuly been freed
 occured at:  ra=0x406b81
 occured for addr:0x7f3ff9bc7e90 size:24+++ok  omError_FreedAddr

!!!expect omError_FreedAddrOrMemoryCorrupted
***omError_FreedAddrOrMemoryCorrupted: addr had previosuly been freed  or memory corrupted
 occured at:  ra=0x406737
 occured for addr:0x7f3ffa5d8090 size:8
+++ok  omError_FreedAddrOrMemoryCorrupted

!!!expect omError_WrongBin
***omError_WrongBin: addr is not from given Bin
 occured at:  ra=0x4066b8
 occured for addr:0x7f3ffa5d8090 size:8 specified bin is of size:1008
+++ok  omError_WrongBin

!!!expect omError_UnknownBin
***omError_UnknownBin: given Bin is unknown
 occured at:  ra=0x406650
 occured for addr:0x7f3ffa5d8090 size:8
+++ok  omError_UnknownBin

!!!expect omError_NotBinAddr
***omError_NotBinAddr: addr is not a BinAddr
 occured at:  ra=0x4065dd
 occured for addr:0x7f3ff970c048 size:8120 allocated at  ra=0x40514b
+++ok  omError_NotBinAddr

!!!expect omError_UnalignedAddr
***omError_UnalignedAddr: addr is unaligned
 occured at:  ra=0x406573
  occured for (invalid) addr: 0x7f3ffa5d8091 (error=14)
+++ok  omError_UnalignedAddr

!!!expect omError_NullSizeAlloc
***omError_NullSizeAlloc: alloc of size 0
 occured at:  ra=0x4064e9
***omError_NullSizeAlloc: alloc of size 0
 occured at:  ra=0x40650a
+++ok  omError_NullSizeAlloc

!!!expect omError_ListCycleError
***omError_ListCycleError: list has cycles
 occured at:  ra=(nil)
+++ok  omError_ListCycleError

!!!expect omError_SortedListError
***omError_SortedListError: sorted list is unsorted
 occured at:  ra=(nil)
+++ok  omError_SortedListError

!!!expect omError_KeptAddrListCorrupted
***omError_KeptAddrListCorrupted: list of kept addresses are corrupted
 occured at:  ra=0x4063e4
+++ok  omError_KeptAddrListCorrupted

!!!expect omError_FreePattern
***omError_FreePattern: written into freed memory
 occured at:  ra=0x406385
 occured for addr:0x7f3ff9a56e10 size:48+++ok  omError_FreePattern

!!!expect omError_BackPattern
***omError_BackPattern: written after end of addr
 occured at:  ra=0x4062f8
 occured for addr:0x7f3ff9db35b8 size:16 allocated at  ra=0x404d38
+++ok  omError_BackPattern

!!!expect omError_FrontPattern
***omError_FrontPattern: written to front of addr
 occured at:  ra=0x406277
 occured for addr:0x7f3ff9f2f3b8 size:48 allocated at  ra=0x404ced
+++ok  omError_FrontPattern

!!!expect omError_NotString
***omError_NotString: string not null terminated
 occured at:  ra=0x4068d4
 occured for (invalid) addr: (nil) (error=4)
+++ok  omError_NotString

!!!expect omError_StickyBin
+++ok  omError_StickyBin

omtTestErrors: Summary: missed = 1

System 2228k:19272k Appl 0k/0k Malloc 0k/0k Valloc 0k/0k Pages 0/0 Regions 0:30
                  Current:       Max:
BytesSystem:         2228k     19272k
BytesSbrk:           2228k      3912k
BytesMmap:              0k     15360k
BytesFromMalloc:        0k      3711k
BytesFromValloc:        0k     15360k
PagesAlloc:             0       3832 
RegionsAlloc:           0         30 
                     Used:     Avail:
BytesAppl:              0k         0k
BytesMalloc:            0k         0k
BytesValloc:            0k         0k
Pages:                  0          0
UsedAddrs Summary: UsedBlocks:0  TotalSize:0

omtTest Summary: ***FAILED***errors:0, missed_errors:1, used_regions:0, seed=1317251095
FAIL: omtTest-g

Linux, 64bit (dilbert):

!!!expect omError_FalseAddr
---missed omError_FalseAddr

fail to build Singular.desktop on FreeBSD...

22:09:59][Step 4/8] Making all in redhat
[22:09:59][Step 4/8] make: don't know how to make ./Singular.desktop. Stop
[22:09:59][Step 4/8] Making all in desktop
[22:09:59][Step 4/8] *** Error code 1
[22:09:59][Step 4/8]
[22:09:59][Step 4/8] Stop in /.amd_mnt/billbo/host/s/cratch/TC/ssynkopia/work/440eb740fbcfde8/BUILD.
[22:09:59][Step 4/8] *** Error code 1
[22:09:59][Step 4/8]
[22:09:59][Step 4/8] Stop in /.amd_mnt/billbo/host/s/cratch/TC/ssynkopia/work/440eb740fbcfde8/BUILD.
[22:10:00][Step 4/8] Process exited with code 1
[22:10:00][Step 4/8] Step Build::Make (Command Line) failed

standard::hilbring() changes basering (and thus options; is this by intention?

standard::hilbring() changes basering (and thus options);
is this by intention?

Here is an example:

option();
option("warn") ;
LIB("ehv.lib");
 example primdecEHV;
option();

Here is the output;

> option();
//options: redefine loadLib usage prompt warn
> option("warn") ;
> LIB("ehv.lib");
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/ehv.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/normal.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/reesclos.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/locnormal.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/modstd.lib (4.0.0.0,Dec_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/parallel.lib (4.0.0.0,Dec_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/tasks.lib (4.0.0.0,Dec_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/resources.lib (4.0.0.0,Dec_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/hnoether.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/primitiv.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/presolve.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/primdec.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/absfact.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/triang.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/sing.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/algebra.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/matrix.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/nctools.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/inout.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/random.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/poly.lib (4.0.0.0,Jun_2013)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/elim.lib (4.0.0.1,Jan_2014)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/general.lib (4.0.0.1,Jan_2014)
// ** loaded /home/agag/kroeker/Projects/lipmanresolve/Singular-spielwiese/BUILD/Singular/LIB/ring.lib (4.0.0.0,Jun_2013)
>  example primdecEHV;
// proc primdecEHV from lib ehv.lib
EXAMPLE:
  ring  r = 0,(x,y,z),dp;
  poly  p = z2+1;
  poly  q = z3+2;
  ideal i = p*q^2,y-z2;
  list pr = primdecEHV(i);
// ** option changed in proc hilbRing from standard.lib
 +redTail +redThrough
// ** option changed in proc testIdeal from normal.lib
 -redTail -redThrough
// ** option changed in proc hilbRing from standard.lib
 +redTail +redThrough
// ** option changed in proc hilbRing from standard.lib
 +redTail +redThrough
// ** option changed in proc hilbRing from standard.lib
 +redTail +redThrough
  pr;
[1]:
   [1]:
      _[1]=z2-y
      _[2]=y4+y3+4y2z+4yz+4y+4
   [2]:
      _[1]=z2-y
      _[2]=y2z+yz+2y+2
      _[3]=y3+y2+2yz+2z

> option();
//options: redTail redThrough intStrategy redefine loadLib usage prompt warn

Singular 4.0.0: Install aliases for singular man page

Currently, "make install" installs a man page for "singular". But this man page actually documents the binaries "Singular", "ESingular" and "TSingular". By custom, man page names should match the name of the binary. In the case of a single man page documenting manual commands, symlinks can be used.

Hence, it would be nice if "make install" could be augmented to install the three appropriate symlinks from @prefix@/share/man/man1/singular.1 to @prefix@/share/man/man1/TSingular.1 etc. (OK, for "Singular" there is the problem that on OS X, the filesystem is by default case insensitive... but at least TSingular and ESingular should be no problem)

Issue with change_cost, solve_IP, toric_ideal: help broken after install

Using Singular 4.0.0, I did a "make && make install" (on Mac OS X 10.8.5, though I doubt this matter).

Afterwards, I got these errors when running several of the binaries installed by singular:

$ toric_ideal --help
toric_ideal.hlp: No such file or directory
$ change_cost --help
change_cost.hlp: No such file or directory
$ solve_IP --help
solve_IP.hlp: No such file or directory

There are two possible explanations for this I see:

  1. These tools should not have been installed by make install in the first place.
  2. The .hlp files should have been installed, and the tools are buggy.

Resolving this in case 1 is of course easy. In case 2, there are probably two things that need to be done. First, these .hlp files:

./IntegerProgramming/change_cost.hlp
./IntegerProgramming/solve_IP.hlp
./IntegerProgramming/toric_ideal.hlp

need to be installed in a suitable location, say @prefix@/share/doc/singular

Secondly, the very simplistic code for displaying help in these tools needs to be augmented. Right now, it looks like this:

    system("less change_cost.hlp");

Ignoring the fact that "less" might not even be installed (and not even "more"), it is clear that for an installed version, a path to change_cost.hlp must be specified. I could elaborate on this, but you are probably already aware of all the implications (and if not, I'll be happy to discuss it further, if requested).

bug in eigenval

On input:

1/2,0,    0,    0,   0,0,     0,    0,    0,   0,     -1/2,
0,  13/10,0,    0,   0,0,     0,    0,    0,   -75/16,0,   
0,  0,    11/10,0,   0,0,     0,    0,    -1/4,0,     0,   
0,  0,    0,    9/10,0,0,     0,    0,    0,   0,     0,   
-1, 0,    0,    0,   1,0,     0,    0,    0,   0,     0,   
0,  0,    0,    0,   0,7/10,  0,    0,    0,   0,     0,   
0,  0,    0,    0,   0,-75/16,13/10,0,    0,   0,     0,   
0,  0,    0,    -1/4,0,0,     0,    11/10,0,   0,     0,   
0,  0,    0,    0,   0,0,     0,    0,    9/10,0,     0,   
0,  0,    0,    0,   0,0,     0,    0,    0,   7/10,  0,   
0,  0,    0,    0,   0,0,     0,    0,    0,   0,     1/2 

eigenvals from linalg.lib returns this:

[1]:
   _[1]=1/2
   _[2]=7/10
   _[3]=9/10
   _[4]=1
   _[5]=11/10
   _[6]=13/10
[2]:
   2,2,2,1,2,2

However, if system("with","eigenval")== 1 this wrong result is returned:

[1]:
   _[1]=0
   _[2]=1/2
   _[3]=7/10
   _[4]=9/10
   _[5]=11/10
   _[6]=13/10
[2]:
   3,1,1,1,1,1

Warnings in recent spielwiese (caused by autoconf config.h header conflicts)

Since today, compiling Singular yields tons of warnings:

../omalloc/omConfig.h:159:9: warning: 'PACKAGE_STRING' macro redefined
#define PACKAGE_STRING "omalloc 0.9.6"
        ^
../singularconfig.h:282:9: note: previous definition is here
#define PACKAGE_STRING "singular 4.0.0"

Worse, these even appear after installing, when compiling code that uses liibsingular:

/usr/include/omalloc/omConfig.h:150:9: warning: 'PACKAGE' macro redefined
#define PACKAGE "omalloc"
        ^
/usr/include/singular/libpolysconfig.h:271:9: note: previous definition is here
#define PACKAGE "libpolys"
        ^

or

/Users/mhorn/Projekte/GAP/repos/pkg/libsing.git/singular/dst/include/omalloc/omConfig.h:153:9: warning: 'PACKAGE_BUGREPORT' macro redefined
#define PACKAGE_BUGREPORT ""
        ^
/Users/mhorn/Projekte/GAP/gap.gitifyhg/bin/x86_64-apple-darwin12.5.0-gcc-default64/config.h:345:9: note: previous definition is here
#define PACKAGE_BUGREPORT "[email protected]"
        ^

desktop/Makefile.am needs GNU sed, does not work with Apple SED

On Mac OS X systems that don't have GNU sed installed (which is standard), "make" runs into an error; the problem is that desktop/Makefile.am uses sed, but it uses some GNU sed specific extensions not supported by Apple sed.

It would be nice if that could be fixed.

eliminate()-bug in Spielwiese or in trunk?

Hello,

something is fishy with 'eliminate' ; below is an example for which eliminate() in Spielwiese seems to return different result in comparison to Singular-3.1.5 (and earlier)

///////////////////////////////////////////

ring r = integer,(u,v,w,t),dp;
ideal J = 3vt, ut, 12w3t, -8wt+8w, -5u2t+5u2, -u2wt+u2w, -v5t+v5;
ideal e = eliminate(J,t);
e;

// Singular 3.1.5 output:
//e[1]=24vw
//e[2]=8uw
//e[3]=5u2
//e[4]=24w3
//e[5]=u2w
//e[6]=3v5
//e[7]=uv5

// Spielwiese output:
//e[1]=24vw
//e[2]=8uw
//e[3]=5u2
//e[4]=24w3
//e[5]=u2w
//e[6]=3v5
//e[7]=uv5w
//e[8]=u2v5

The outputs are not equivalent:

ideal e1 = 24vw,8uw,5u2,24w3,u2w,3v5,uv5;
ideal e2 = 24vw,8uw,5u2,24w3,u2w,3v5,uv5w,u2v5;
reduce( std(e1),std(e2) );
//[1]=0
//
[2]=0
//[3]=0
//
[4]=0
//[5]=0
//
[6]=0
//_[7]=uv5

reduce( std(e2),std(e1) );
//[1]=0
//
[2]=0
//[3]=0
//
[4]=0
//[5]=0
//
[6]=0
//[7]=0
//
[8]=0

By the way, which regression tests should I run for Spielwiese?

Thanks,

Jakob

Versioning: use semantic versioning? Or at least don't introduce breaking changes when going from version X.Y to X.Yp1

I discovered that 4.0.0p1 has some radical (and rather non-minor, non-"patchlevel") changes in it. In particular, anything linked against 4.0.0 won't work with 4.0.0p1 and vice versa.

One of these major changes is that several shared libraries got dropped or merged, and e.g. libSingular changed its location; moreover, the filenames changed; and worst of all (from the perspective of a binary package maintainer, at least), the compatibility version information was completely removed, dropping the shared libraries from 1.0.0 to 0.0.0.

I was wondering if that was deliberate; and whether you have any plans for restoring versioning the libraries, and / or what your policy on backwards compatibility is. E.g. should I expect a binary linked against Singular 4.0.0p1 to still work with 4.0.1? Or is it indeed the case that every version (including minor and patchlevel versions) may break binary backwards compatibility (just as the transition 4.0.0 -> 4.0.0p1 did)?

The latter would be a bit unfortunate, as it would make it rather hard to maintain binary packages for anything depending on libSingular. It would mean that whenever updating Singular, one has to e.g. rebuild libsing, and anything else using Singular. In that case, I'd probably prefer to simply disable shared libraries and static link everything (this would increase binary sizes, but at least avoid strange bugs caused by library version mismatches).

issue with qslimgb

ring R  = (0,v),(x,y,u),dp; qring Q = std(x2-y3);
ideal i = (-v2)*u2+(v+1)*u+1;

groebner(i); // _[1]=(-v2)*u2+(v+1)*u+1
qslimgb(i); // <---------- HERE
// _[1]=(-v2)*u2+(v+1)*u+1
// _[2]=y3-x2  // <---------- HERE!!!!

std bug in Spielwiese

In Spielwiese I get a wrong answer for std for the following example:

ring r = integer,(v,w,t),dp;
ideal J = 2v, wt, vt-3v;
std(J);

//[1]=2v
//
[2]=wt
//_[3]=vt-3v

The output seems wrong, because (w*v) is missing
( S( wt, vt-3v) = 3wv )

buggy intersect

Consider the following setting:

 ring R = (0,a,dt,dx),(t,x),(c,lp(2));
 ideal N1 = 1;
 ideal M2 = (a*dt)*t*x^2+(2*dx)*t*x+(-a*dt)*t+(-2*dx)*x;
 // or 2nd variant:M2 = (2*a*dt+dx)*t*x+(-2*a*dt+dx)*t+(-dx)*x+(-dx)

then

intersect(M2,N1);
_[1]=(a*dt)*t*x^2+(2*dx)*t*x+(-a*dt)*t+(-2*dx)*x
 // or (2*a*dt+dx)*t*x+(-2*a*dt+dx)*t+(-dx)*x+(-dx) for the 2nd variant

intersect(module(M2), module(N1)); // <------ HERE!!!!????
 _[1]=[(-a*dt)*t*x^2+(-2*dx)*t*x+(a*dt)*t+(2*dx)*x]
 // or [(-2*a*dt-dx)*t*x+(2*a*dt-dx)*t+(dx)*x+(dx)] for the 2nd variant

I would expect that intersect(module(M2), module(N1)) to be the same as
module(intersect(M2,N1)).
In these particular examples one does NOT need to do anything at all
(since N1 == 1!!).

Why do they differ by sign?

The source of these error are Manual/visualize.tst and Manual/errormap.tst
tests, whose output would change the sign if the result of intersect would not change.

This issue can be reproduced on snork with Singular 3-1-4 (32+ 64) + and Singular-n which is 3-1-5.
Also it seems to be like this with current SW.

TODO: HAVE_STATIC

set/put/unset HAVE_STATIC to config.h depending on configure options (--enable-static/--enable-shared??)

the shared libraries shipped by singular are underlinked

A simple example with libcoeffs.so:

ldd libcoeffs.so
        linux-vdso.so.1 (0x00007fffa02d4000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6 (0x00007f9d58f10000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f9d58c1c000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f9d58875000)
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libgcc_s.so.1 (0x00007f9d5865f000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f9d5948b000)

but if we ask for relocations:

ldd -r libcoeffs.so
        linux-vdso.so.1 (0x00007fff0eedf000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6 (0x00007fb0a2068000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fb0a1d74000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fb0a19cd000)
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libgcc_s.so.1 (0x00007fb0a17b7000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fb0a25e3000)
undefined symbol: om_BinPageIndicies    (./libcoeffs.so)
undefined symbol: om_Size2Bin   (./libcoeffs.so)
undefined symbol: om_MaxBinPageIndex    (./libcoeffs.so)
undefined symbol: om_MinBinPageIndex    (./libcoeffs.so)
undefined symbol: __gmpz_cmp    (./libcoeffs.so)
undefined symbol: __gmpz_mul    (./libcoeffs.so)
undefined symbol: __gmpf_clear  (./libcoeffs.so)
undefined symbol: __gmpz_mul_ui (./libcoeffs.so)
undefined symbol: __gmpf_get_str        (./libcoeffs.so)
undefined symbol: omAlloc0Large (./libcoeffs.so)
undefined symbol: _ZN13CanonicalFormaSERKS_     (./libcoeffs.so)
undefined symbol: _omGetSpecBin (./libcoeffs.so)
undefined symbol: __gmpf_cmp    (./libcoeffs.so)
undefined symbol: __gmpz_init_set_si    (./libcoeffs.so)
undefined symbol: _ZNK13CanonicalForm6intvalEv  (./libcoeffs.so)
undefined symbol: _ZN5ArrayI13CanonicalFormED1Ev        (./libcoeffs.so)
undefined symbol: __gmpz_set_ui (./libcoeffs.so)
undefined symbol: _Z10StringSetSPKc     (./libcoeffs.so)
undefined symbol: _ZN13CanonicalFormaSEi        (./libcoeffs.so)
undefined symbol: __gmpf_pow_ui (./libcoeffs.so)
undefined symbol: __gmpf_init_set       (./libcoeffs.so)
undefined symbol: __gmpz_cmpabs_ui      (./libcoeffs.so)
undefined symbol: _ZN5ArrayI13CanonicalFormEC1Ei        (./libcoeffs.so)
undefined symbol: __gmpf_sub    (./libcoeffs.so)
undefined symbol: __gmpz_gcd    (./libcoeffs.so)
undefined symbol: _Z7make_cfP12__mpz_structS0_b (./libcoeffs.so)
undefined symbol: __gmpf_div    (./libcoeffs.so)
undefined symbol: __gmpf_sub_ui (./libcoeffs.so)
undefined symbol: _ZNK13CanonicalForm5isOneEv   (./libcoeffs.so)
undefined symbol: __gmpf_set_str        (./libcoeffs.so)
undefined symbol: _Z17setCharacteristici        (./libcoeffs.so)
undefined symbol: _Z7feFopenPKcS0_Pcss  (./libcoeffs.so)
undefined symbol: __gmpf_add_ui (./libcoeffs.so)
undefined symbol: omDoRealloc   (./libcoeffs.so)
undefined symbol: __gmpz_add    (./libcoeffs.so)
undefined symbol: __gmpf_init_set_d     (./libcoeffs.so)
undefined symbol: __gmpf_abs    (./libcoeffs.so)
undefined symbol: __gmpz_pow_ui (./libcoeffs.so)
undefined symbol: __gmpz_set    (./libcoeffs.so)
undefined symbol: __gmpz_sizeinbase     (./libcoeffs.so)
undefined symbol: omAllocLarge  (./libcoeffs.so)
undefined symbol: WarnS (./libcoeffs.so)
undefined symbol: Werror        (./libcoeffs.so)
undefined symbol: _Z12StringAppendPKcz  (./libcoeffs.so)
undefined symbol: omFreeToPageFault     (./libcoeffs.so)
undefined symbol: __gmpz_fdiv_r_ui      (./libcoeffs.so)
undefined symbol: _ZN13CanonicalFormC1ERKS_     (./libcoeffs.so)
undefined symbol: __gmpz_divexact       (./libcoeffs.so)
undefined symbol: __gmpf_add    (./libcoeffs.so)
undefined symbol: __gmpf_sqrt   (./libcoeffs.so)
undefined symbol: __gmpz_fdiv_q (./libcoeffs.so)
undefined symbol: __gmpz_set_d  (./libcoeffs.so)
undefined symbol: _Z17initCanonicalFormv        (./libcoeffs.so)
undefined symbol: _Z15gmp_denominatorRK13CanonicalFormP12__mpz_struct   (./libcoeffs.so)
undefined symbol: Print (./libcoeffs.so)
undefined symbol: __gmpz_get_si (./libcoeffs.so)
undefined symbol: __gmpf_init   (./libcoeffs.so)
undefined symbol: __gmpf_set_z  (./libcoeffs.so)
undefined symbol: __gmpz_fdiv_q_ui      (./libcoeffs.so)
undefined symbol: _ZN6intvecC1Eiii      (./libcoeffs.so)
undefined symbol: _ZN13CanonicalFormC1Ev        (./libcoeffs.so)
undefined symbol: __gmpz_fdiv_ui        (./libcoeffs.so)
undefined symbol: __gmpz_and    (./libcoeffs.so)
undefined symbol: __gmpf_get_d  (./libcoeffs.so)
undefined symbol: _Z13convertback62Pci  (./libcoeffs.so)
undefined symbol: _ZN13CanonicalFormC1EP10InternalCF    (./libcoeffs.so)
undefined symbol: _Z7make_cfP12__mpz_struct     (./libcoeffs.so)
undefined symbol: __gmpf_set_d  (./libcoeffs.so)
undefined symbol: __gmpz_fdiv_qr        (./libcoeffs.so)
undefined symbol: _Z13gmp_numeratorRK13CanonicalFormP12__mpz_struct     (./libcoeffs.so)
undefined symbol: __gmpz_set_si (./libcoeffs.so)
undefined symbol: _Z4eatiPKcPi  (./libcoeffs.so)
undefined symbol: __gmpz_get_str        (./libcoeffs.so)
undefined symbol: _Z16chineseRemainderRK5ArrayI13CanonicalFormES3_RS0_S4_       (./libcoeffs.so)
undefined symbol: __gmpz_tdiv_qr        (./libcoeffs.so)
undefined symbol: __gmpz_divisible_p    (./libcoeffs.so)
undefined symbol: WerrorS       (./libcoeffs.so)
undefined symbol: _ZN13CanonicalFormD1Ev        (./libcoeffs.so)
undefined symbol: __gmpz_sub_ui (./libcoeffs.so)
undefined symbol: __gmpz_powm_ui        (./libcoeffs.so)
undefined symbol: PrintS        (./libcoeffs.so)
undefined symbol: omSizeWOfAddr (./libcoeffs.so)
undefined symbol: __gmpf_set_prec       (./libcoeffs.so)
undefined symbol: __gmpf_mul    (./libcoeffs.so)
undefined symbol: __gmpz_init_set       (./libcoeffs.so)
undefined symbol: __gmpz_sub    (./libcoeffs.so)
undefined symbol: __gmpz_tdiv_q (./libcoeffs.so)
undefined symbol: _ZNK5ArrayI13CanonicalFormEixEi       (./libcoeffs.so)
undefined symbol: __gmpz_mul_si (./libcoeffs.so)
undefined symbol: __gmpz_init   (./libcoeffs.so)
undefined symbol: __gmpz_lcm    (./libcoeffs.so)
undefined symbol: __gmpf_set_default_prec       (./libcoeffs.so)
undefined symbol: __gmpz_init_set_ui    (./libcoeffs.so)
undefined symbol: __gmpf_set    (./libcoeffs.so)
undefined symbol: __gmpz_set_str        (./libcoeffs.so)
undefined symbol: __gmpz_cmp_si (./libcoeffs.so)
undefined symbol: _Z2Oni        (./libcoeffs.so)
undefined symbol: __gmpz_gcd_ui (./libcoeffs.so)
undefined symbol: _ZNK13CanonicalForm3denEv     (./libcoeffs.so)
undefined symbol: _Z18gf_tab_numdigits62i       (./libcoeffs.so)
undefined symbol: _ZN13CanonicalFormC1Ei        (./libcoeffs.so)
undefined symbol: __gmpz_cmp_ui (./libcoeffs.so)
undefined symbol: __gmpf_neg    (./libcoeffs.so)
undefined symbol: _Z13StringAppendSPKc  (./libcoeffs.so)
undefined symbol: __gmpz_invert (./libcoeffs.so)
undefined symbol: omFreeLarge   (./libcoeffs.so)
undefined symbol: __gmpz_mod    (./libcoeffs.so)
undefined symbol: __gmpz_clear  (./libcoeffs.so)
undefined symbol: omAllocBinFromFullPage        (./libcoeffs.so)
undefined symbol: __gmpz_gcdext (./libcoeffs.so)
undefined symbol: __gmpz_add_ui (./libcoeffs.so)

So it looks like it should have been linked to at least omalloc, ntl and gmp at a glance. All libraries systematically miss something with the exception of libomaaloc.

question and suggestion related to HAVE_CONFIG_H

Hello,

1.why this 'safeguard' HAVE_CONFIG_H was introduced?

This causes problems when using factory as building block in a different project.
(when including headers from factory, the compiler complains about
Please include this config header only if HAVE_CONFIG_H was defined)

  1. what about renaming config.h to factory_config.h and
    HAVE_CONFIG_H to HAVE_FACTORY_CONFIG_H or similar to reduce the probability of name collisions?

Thanks.

implicit multiplication in rings with parameters

> ring r = (0,a),(A),dp;
// ** redefining r **
> r;
//   characteristic : 0
//   1 parameter    : a 
//   minpoly        : 0
//   number of vars : 1
//        block   1 : ordering dp
//                  : names    A
//        block   2 : ordering C
> 2*a;
(2a)
> 2*A;
2*A
> 2a;
(2a)
> 2A; // BUG!
0

this works:

> ring p = 0,x,dp;
> 2x;
2x

direct use of p_Procs->.... (not from libpolys/polys/monomials/p_polys.h)

libpolys/polys/sparsmat.cc: p = currRing->p_Procs->pp_Mult_Coeff_mm_DivSelectMult(p, m, a, b,
libpolys/polys/kbuckets.cc: p1 = r->p_Procs->pp_Mult_mm_Noether(p1, m, spNoether, l1, r, last);
libpolys/polys/kbuckets.cc: p1 = r->p_Procs->pp_Mult_mm(p1, m, r, last);
libpolys/polys/kbuckets.cc: p1 = r->p_Procs->pp_Mult_mm(p1, m, r, last);
libpolys/polys/kbuckets.h: bucket->bucket_ring->p_Procs->p_kBucketSetLm(bucket);

kernel/kInline.h: pNext(_p) = tailRing->p_Procs->p_Minus_mm_Mult_qq(pNext(_p), m, q,
kernel/kspoly.cc: a2 = tailRing->p_Procs->pp_Mult_mm_Noether(a2, m2, spNoether, l2, tailRing,last);
kernel/kspoly.cc: a2 = tailRing->p_Procs->pp_Mult_mm(a2, m2, tailRing,last);
kernel/kutil.cc: pSigMult = currRing->p_Procs->pp_Mult_mm(pSigMult,m1,currRing,last);
kernel/kutil.cc: sSigMult = currRing->p_Procs->pp_Mult_mm(sSigMult,m2,currRing,last);

Q: should one really use corresponding wrappers from libpolys/polys/monomials/p_polys.h instead!?

ps: i changed kernel/kInline.h wrt p_Mult_nn

Two functions missing from table.h?

Among the warnings I get when compiling Singular are these two:

iparith.cc:5336:16: warning: unused function 'jjmpDetBareiss' [-Wunused-function]
static BOOLEAN jjmpDetBareiss(leftv res, leftv v)
               ^
iparith.cc:5373:16: warning: unused function 'jjsyMinBase' [-Wunused-function]
static BOOLEAN jjsyMinBase(leftv res, leftv v)
               ^
2 warnings generated.

Indeed, a quick check shows that neither function is referenced from table.h, unlike all the other functions next to them in iparith.c. So perhaps were either forgotten there; or they are obsolete and can be removed?

spielwiese: factory won't compile without ntl:

In the spielwiese branch, factory won't compile without ntl:

dreyer@psl454:/tmp/dreyer/SingularSources/factory> make -j4
make  all-am                                               
make[1]: Entering directory `/tmp/dreyer/SingularSources/factory'
g++ -DHAVE_CONFIG_H -I. -I. -I./.. -I. -I./.. -I.     -O3 -fomit-frame-pointer --no-rtti --no-exceptions  -O2 -fomit-frame-pointer -fno-rtti -fno-exceptions -MT libfactory_a-cf_factor.o -MD -MP -MF .deps/libfactory_a-cf_factor.Tpo -c -o libfactory_a-cf_factor.o `test -f 'cf_factor.cc' || echo './'`cf_factor.cc                                                                         
g++ -DHAVE_CONFIG_H -I. -I. -I./.. -I. -I./.. -I.     -O3 -fomit-frame-pointer --no-rtti --no-exceptions  -O2 -fomit-frame-pointer -fno-rtti -fno-exceptions -MT libfactory_a-cf_gcd.o -MD -MP -MF .deps/libfactory_a-cf_gcd.Tpo -c -o libfactory_a-cf_gcd.o `test -f 'cf_gcd.cc' || echo './'`cf_gcd.cc                                                                                        
g++ -DHAVE_CONFIG_H -I. -I. -I./.. -I. -I./.. -I.     -O3 -fomit-frame-pointer --no-rtti --no-exceptions  -O2 -fomit-frame-pointer -fno-rtti -fno-exceptions -MT libfactory_a-facBivar.o -MD -MP -MF .deps/libfactory_a-facBivar.Tpo -c -o libfactory_a-facBivar.o `test -f 'facBivar.cc' || echo './'`facBivar.cc                                                                              
g++ -DHAVE_CONFIG_H -I. -I. -I./.. -I. -I./.. -I.     -O3 -fomit-frame-pointer --no-rtti --no-exceptions  -O2 -fomit-frame-pointer -fno-rtti -fno-exceptions -MT libfactory_a-facFactorize.o -MD -MP -MF .deps/libfactory_a-facFactorize.Tpo -c -o libfactory_a-facFactorize.o `test -f 'facFactorize.cc' || echo './'`facFactorize.cc                                                          
In file included from facBivar.cc:22:                                                                                           
facBivar.h: In function ‘CFList ratBiSqrfFactorize(const CanonicalForm&, const Variable&)’:                                     
facBivar.h:52: error: ‘factorize’ was not declared in this scope                                                                
facBivar.h:72: error: ‘mat_ZZ’ was not declared in this scope                                                                   
facBivar.h:72: error: expected `;' before ‘M’                                                                                   
facBivar.h:73: error: ‘vec_ZZ’ was not declared in this scope                                                                   
facBivar.h:73: error: expected `;' before ‘S’                                                                                   
facBivar.h:74: error: ‘M’ was not declared in this scope                                                                        
facBivar.h:74: error: ‘S’ was not declared in this scope                                                                        
In file included from cf_factor.cc:27:                                                                                          
facFqFactorize.h: In function ‘CFList FpSqrfFactorize(const CanonicalForm&)’:                                                   
facFqFactorize.h:47: error: ‘FpBiSqrfFactorize’ was not declared in this scope                                                  
facFqFactorize.h: In function ‘CFList FqSqrfFactorize(const CanonicalForm&, const Variable&)’:                                  
facFqFactorize.h:65: error: ‘FqBiSqrfFactorize’ was not declared in this scope                                                  
facFqFactorize.h: In function ‘CFList GFSqrfFactorize(const CanonicalForm&)’:                                                   
facFqFactorize.h:84: error: ‘GFBiSqrfFactorize’ was not declared in this scope                                                  
facFqFactorize.h: In function ‘CFFList FpFactorize(const CanonicalForm&)’:                                                      
facFqFactorize.h:101: error: ‘FpBiFactorize’ was not declared in this scope                                                     
facBivar.h: In function ‘CFFList ratBiFactorize(const CanonicalForm&, const Variable&)’:                                        
facBivar.h:106: error: ‘factorize’ was not declared in this scope                                                               
facBivar.h:125: error: ‘mat_ZZ’ was not declared in this scope                                                                  
facBivar.h:125: error: expected `;' before ‘M’                                                                                  
facBivar.h:126: error: ‘vec_ZZ’ was not declared in this scope                                                                  
facBivar.h:126: error: expected `;' before ‘S’                                                                                  
facBivar.h:127: error: ‘M’ was not declared in this scope                                                                       
facBivar.h:127: error: ‘S’ was not declared in this scope                                                                       
facFqSquarefree.h:87: error: too few arguments to function ‘CanonicalForm sqrfPart(const CanonicalForm&, CanonicalForm&, const Variable&)’                                                                                                                      
facBivar.h:128: error: at this point in file                                                                                    
cf_gcd.cc: In function ‘bool gcd_test_one(const CanonicalForm&, const CanonicalForm&, bool)’:                                   
cf_gcd.cc:94: error: ‘gf_name’ was not declared in this scope                                                                   
cf_gcd.cc:96: error: ‘gf_name’ was not declared in this scope                                                                   
cf_gcd.cc:111: error: ‘zz_p’ has not been declared                                                                              
cf_gcd.cc:118: error: ‘zz_pX’ was not declared in this scope                                                                    
cf_gcd.cc:118: error: expected `;' before ‘NTLIrredpoly’                                                                        
cf_gcd.cc:119: error: ‘NTLIrredpoly’ was not declared in this scope                                                             
cf_gcd.cc:119: error: ‘BuildIrred’ was not declared in this scope                                                               
cf_gcd.cc:120: error: ‘convertNTLzzpX2CF’ was not declared in this scope                                                        
cf_gcd.cc:125: error: ‘zz_pX’ was not declared in this scope                                                                    
cf_gcd.cc:125: error: expected `;' before ‘NTLIrredpoly’                                                                        
cf_gcd.cc:126: error: ‘NTLIrredpoly’ was not declared in this scope                                                             
cf_gcd.cc:126: error: ‘BuildIrred’ was not declared in this scope                                                               
cf_gcd.cc:127: error: ‘convertNTLzzpX2CF’ was not declared in this scope                                                        
facFqFactorize.h: In function ‘CFFList FqFactorize(const CanonicalForm&, const Variable&)’:                                     
facFqFactorize.h:148: error: ‘FqBiFactorize’ was not declared in this scope                                                     
cf_gcd.cc:135: error: ‘zz_p’ has not been declared                                                                              
cf_gcd.cc:140: error: ‘zz_pX’ was not declared in this scope                                                                    
cf_gcd.cc:140: error: expected `;' before ‘NTLIrredpoly’                                                                        
cf_gcd.cc:141: error: ‘NTLIrredpoly’ was not declared in this scope                                                             
cf_gcd.cc:141: error: ‘BuildIrred’ was not declared in this scope                                                               
cf_gcd.cc:142: error: ‘convertNTLzzpX2CF’ was not declared in this scope                                                        
cf_gcd.cc:196: error: ‘gf_name’ was not declared in this scope                                                                  
facBivar.cc: In function ‘CFList biFactorize(const CanonicalForm&, const Variable&)’:                                           
facBivar.cc:93: error: ‘bCommonDen’ was not declared in this scope                                                              
facBivar.cc:101: error: ‘factorize’ was not declared in this scope                                                              
facBivar.cc:103: error: ‘factorize’ was not declared in this scopecf_gcd.cc:219: error: ‘gf_name’ was not declared in this scope

facFqFactorize.h: In function ‘CFFList GFFactorize(const CanonicalForm&)’:
facFqFactorize.h:196: error: ‘GFBiFactorize’ was not declared in this scopecf_gcd.cc:229: error: ‘gf_name’ was not declared in this scope                                                                                                                       

facBivar.cc:127: error: ‘factorize’ was not declared in this scope
facBivar.cc:133: error: ‘factorize’ was not declared in this scope
facBivar.cc:142: error: ‘factorize’ was not declared in this scope
facBivar.cc:148: error: ‘factorize’ was not declared in this scope
facBivar.cc:179: error: ‘factorize’ was not declared in this scope
facBivar.cc:181: error: ‘factorize’ was not declared in this scope
facBivar.cc:227: error: ‘factorize’ was not declared in this scope
facBivar.cc:229: error: ‘factorize’ was not declared in this scope
facBivar.cc:237: error: ‘factorize’ was not declared in this scope
facBivar.cc:239: error: ‘factorize’ was not declared in this scope
In file included from facFactorize.h:20,                          
                 from cf_factor.cc:31:                            
facBivar.h: In function ‘CFList ratBiSqrfFactorize(const CanonicalForm&, const Variable&)’:
facBivar.h:72: error: ‘mat_ZZ’ was not declared in this scope                              
facBivar.h:72: error: expected `;' before ‘M’                                              
facBivar.h:73: error: ‘vec_ZZ’ was not declared in this scope                              
facBivar.h:73: error: expected `;' before ‘S’                                              
facBivar.h:74: error: ‘M’ was not declared in this scope                                   
facBivar.h:74: error: ‘S’ was not declared in this scope                                   
facBivar.h: In function ‘CFFList ratBiFactorize(const CanonicalForm&, const Variable&)’:   
facBivar.h:125: error: ‘mat_ZZ’ was not declared in this scope                             
facBivar.h:125: error: expected `;' before ‘M’                                             
facBivar.h:126: error: ‘vec_ZZ’ was not declared in this scope                             
facBivar.h:126: error: expected `;' before ‘S’                                             
facBivar.h:127: error: ‘M’ was not declared in this scope                                  
facBivar.h:127: error: ‘S’ was not declared in this scope                                  
In file included from facFactorize.h:20,                                                   
                 from facFactorize.cc:22:                                                  
facBivar.h: In function ‘CFList ratBiSqrfFactorize(const CanonicalForm&, const Variable&)’:
facBivar.h:52: error: ‘factorize’ was not declared in this scope                           
make[1]: *** [libfactory_a-facBivar.o] Fehler 1                                            
make[1]: *** Warte auf noch nicht beendete Prozesse...                                     
facBivar.h:72: error: ‘mat_ZZ’ was not declared in this scope                              
facBivar.h:72: error: expected `;' before ‘M’                                              
facBivar.h:73: error: ‘vec_ZZ’ was not declared in this scope                              
facBivar.h:73: error: expected `;' before ‘S’                                              
facBivar.h:74: error: ‘M’ was not declared in this scope                                   
facBivar.h:74: error: ‘S’ was not declared in this scope                                   
facBivar.h: In function ‘CFFList ratBiFactorize(const CanonicalForm&, const Variable&)’:   
facBivar.h:106: error: ‘factorize’ was not declared in this scope                          
facBivar.h:125: error: ‘mat_ZZ’ was not declared in this scope                             
facBivar.h:125: error: expected `;' before ‘M’                                             
facBivar.h:126: error: ‘vec_ZZ’ was not declared in this scope                             
facBivar.h:126: error: expected `;' before ‘S’                                             
facBivar.h:127: error: ‘M’ was not declared in this scope                                  
facBivar.h:127: error: ‘S’ was not declared in this scope                                  
facFqSquarefree.h:87: error: too few arguments to function ‘CanonicalForm sqrfPart(const CanonicalForm&, CanonicalForm&, const Variable&)’                                                                                                                      
facBivar.h:128: error: at this point in file                                                                                    
In file included from facFactorize.cc:22:                                                                                       
facFqSquarefree.h: In function ‘CFFList ratFactorize(const CanonicalForm&, const Variable&)’:                                   
facFqSquarefree.h:87: error: too few arguments to function ‘CanonicalForm sqrfPart(const CanonicalForm&, CanonicalForm&, const Variable&)’                                                                                                                      
facFactorize.h:68: error: at this point in file
In file included from facFactorize.cc:23:
facFqFactorize.h: In function ‘CFList FpSqrfFactorize(const CanonicalForm&)’:
facFqFactorize.h:47: error: ‘FpBiSqrfFactorize’ was not declared in this scope
facFqFactorize.h: In function ‘CFList FqSqrfFactorize(const CanonicalForm&, const Variable&)’:
facFqFactorize.h:65: error: ‘FqBiSqrfFactorize’ was not declared in this scope
facFqFactorize.h: In function ‘CFList GFSqrfFactorize(const CanonicalForm&)’:
facFqFactorize.h:84: error: ‘GFBiSqrfFactorize’ was not declared in this scope
facFqFactorize.h: In function ‘CFFList FpFactorize(const CanonicalForm&)’:
facFqFactorize.h:101: error: ‘FpBiFactorize’ was not declared in this scope
facFqFactorize.h: In function ‘CFFList FqFactorize(const CanonicalForm&, const Variable&)’:
facFqFactorize.h:148: error: ‘FqBiFactorize’ was not declared in this scope
facFqFactorize.h: In function ‘CFFList GFFactorize(const CanonicalForm&)’:
facFqFactorize.h:196: error: ‘GFBiFactorize’ was not declared in this scope
make[1]: *** [libfactory_a-cf_gcd.o] Fehler 1
facFactorize.cc: In function ‘int testFactors(const CanonicalForm&, const CFList&, CanonicalForm&, CFList&, CFFList*&, CFList&)’:
facFactorize.cc:152: error: ‘sqrFree’ was not declared in this scope
make[1]: *** [libfactory_a-cf_factor.o] Fehler 1
facFactorize.cc: In function ‘CFList multiFactorize(const CanonicalForm&, const Variable&)’:
facFactorize.cc:475: error: ‘factorize’ was not declared in this scope
facFactorize.cc:526: error: ‘factorize’ was not declared in this scope
make[1]: *** [libfactory_a-facFactorize.o] Fehler 1
make[1]: Leaving directory `/tmp/dreyer/SingularSources/factory'
make: *** [all] Fehler 2

HOWTO-libsingular enhancement

Since spielweise (in contrast to master branch) builds perfectly in other directories than the source folder,
the documentation should prevent the user from that bad habit and suggest
to build the project elsewere:

E.G. in the HOWTO-spielwiese

instead of

./confugure

suggest

./autogen.sh
mkdir BUILD && cd BUILD && ../configure

autoconf error: AC_CONFIG_GOOGLE_PERFTOOLS

This is with Sources_Singular_4.0.0 on SuSE Linux 12.3 with the latest autoconf-2.69:

~/Sources-Singular_4.0.0> aclocal
~/Sources-Singular_4.0.0> aclocal
~/Sources-Singular_4.0.0> autoconf
configure.ac:66: error: possibly undefined macro: AC_CONFIG_GOOGLE_PERFTOOLS
  If this token and others are legitimate, please use m4_pattern_allow.
  See the Autoconf documentation.
~/Sources-Singular_4.0.0> autoconf --version
autoconf (GNU Autoconf) 2.69

testing of normal(), genus(), sat(), elim(), minAssGTZ(), radical()

In our package 'lipmanresolve' we use several kernel and library functions from Singular, see https://docs.google.com/spreadsheet/ccc?key=0Ap41yoku4dBTdGtyQ0p3QW4xSE5Pc29zME16QlFwanc#gid=0

During the development and tests we observed various minor and major bugs
in our package and in Singular code as well (some bugs are fixed, some not)

Since we have limited ressources,
we request the Singular team to write parameter checks (e.g. using ASSUME) and test at least extensively
normal(), sat(), elim(), minAssGTZ(), radical(), normalP(), normalC()
for all supported rings
by

  • trying random examples
  • checking special cases
  • result comparison with other CAS (e.g. Magma/Macaulay2). Using sage may be helpful to automate this.
  • and appropriate other test strategies.

Remark:
If several issues will be found in same function , then very likely a code review is indicated.

Thanks,

Jakob

Singular 4.0.0 is missing documentation

With previous Singular releases, there used to be a separate -share tarball which contained the manual and various help files, making it possible to view the documentation online.

This seems to be not anymore the case with 4.0.0 :/. Not nice (and I'd like to request it being re-added), but if that was an intentional decision of the Singular team, I am sure you had good reasons for it...

But there are other ramifications that look like a bug. For example, starting ESingular displays an error message: it is looking for a file @prefix@/share/info/singular.hlp which used to be provided by the -share tarball -- now I can't find a trace of it in the Singular 4.0.0 tarball. And "make && make install" neither builds it nor installs it.

So, something is fishy there...

Rename Singular/Sources repository to Singular/Singular?

The Singular source repository is rather unusual in that it is called Singular/Sources. This has undesirable effects, e.g. my clone of it is called fingolfin/Sources, making it hard to recognize what is in there.

A rename only requires a few clicks: simply go to https://github.com/Singular/Sources/settings, change the project name, click "rename" -- it even sets up redirects for the Wiki etc., see https://help.github.com/articles/renaming-a-repository

The main drawback is that everybody who has a clone of the repository needs to adjust. So one will want to do it during a "slow" time. When the rename happens, it then should suffice everybody to enter the equivalent of this command in their clones:

git remote set-url origin https://github.com/Singular/Singular.git

factory and libfac release 3.1.7 is not functional

factory and libfac release 3.1.7 is not functional
to test this , there should be no factory and libfac installed.
Also the version numbers are not updated.

got factory and libfac from:
ftp://www.mathematik.uni-kl.de/pub/Math/Singular/

test for omGetBackTrace segfaults on Mac OS X

The configure script of omalloc checks for omGetBackTrace:
``checking whether omGetBackTrace works... no`

This check segfaults hard on Mac OS X. As a result, if you have setup your system to show crash reports in a dialog (as many developers do), every time you reconfigure singular, you see this crash report.

It would be nice if this could be avoided. E.g. by not running the test on Mac OS X in the first place, or (preferably) by replacing the test with one that does not segfault, even in case of a failure.

This was tested with 4.0.0 and e5ba1d1

NEW BROKEN TESTS (int/%)

The tests
Manual/imageLattice.tst, Manual/int_operations.tst, Manual/integralSection.tst Manual/preimageLattice.tst
are broken after Hans's commit 6993c83: "fix: mod -> %, removed INTMOD_CMD (from master)"

Minor glitch with libresources

So I installed Singular 4.0.0 on Mac OS X 10.8.5 (working on updating my Fink package of Singular). Doing that, I noticed a minor oddity in one of the shared libraries installed by Singular: The install_name of libresources.*.dylib is @prefix@/lib//libresources.0.dylib (notice the double slash). For all other installed libs, it is fine. For reference, here is the list of all installed .dylibs with their install_name and compatibility version (taken straight from my Fink .info file):

    %p/lib/libfactory.0.dylib 1.0.0 %n (>= 4.0.0-1)
    %p/lib/libomalloc.0.dylib 1.0.0 %n (>= 4.0.0-1)
    %p/lib//libresources.0.dylib 1.0.0 %n (>= 4.0.0-1)
    %p/lib/singular/libcoeffs.0.dylib 1.0.0 %n (>= 4.0.0-1)
    %p/lib/singular/libkernel.0.dylib 1.0.0 %n (>= 4.0.0-1)
    %p/lib/singular/libmisc.0.dylib 1.0.0 %n (>= 4.0.0-1)
    %p/lib/singular/libnumeric.0.dylib 1.0.0 %n (>= 4.0.0-1)
    %p/lib/singular/libpolys.0.dylib 1.0.0 %n (>= 4.0.0-1)
    %p/lib/singular/libreporter.0.dylib 1.0.0 %n (>= 4.0.0-1)
    %p/lib/singular/libSingular.0.dylib 1.0.0 %n (>= 4.0.0-1)

This is probably harmless, but changing it could lead to compatibility issues, so I think it would be best to get it fixed ASAP, say in 4.0.1. If needed, I could try to find out what is causing this, but my hope is that one of you will spot the cause much quicker than me (being more familiar with the Singular build system and all :-).

qring bug leads to segfault

Hello,

following code leads to a segfault in qring, ( error fixed in trunk,
http://www.singular.uni-kl.de:8002/trac/changeset/15566)

////////////////////////////////////////
ring r = integer,(x),dp;
ideal i=0;
qring q=i; // => segfault
////////////////////////////////////////

Patch proposal for spielwiese:

--- Spielwiese/libpolys/polys/simpleideals.cc 2012-07-12 16:24:57.000000000 +0200
+++ Spielwiese/libpolys/polys/simpleideals.cc 2013-01-21 14:09:55.000000000 +0100
@@ -83,7 +83,7 @@ int id_PosConstant(ideal id, const ring
int k;
for (k = IDELEMS(id)-1; k>=0; k--)
{

  • if (p_LmIsConstantComp(id->m[k], r) == TRUE)
  • if ((id->m[k]!=NULL) && (p_LmIsConstantComp(id->m[k], r) == TRUE))
    return k;
    }
    return -1;

Best,

Jakob

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.