algebraic-solving / msolve Goto Github PK
View Code? Open in Web Editor NEWLibrary for Polynomial System Solving through Algebraic Methods
Home Page: https://msolve.lip6.fr
License: GNU General Public License v2.0
Library for Polynomial System Solving through Algebraic Methods
Home Page: https://msolve.lip6.fr
License: GNU General Public License v2.0
currently with -g 1/2 -v 2
one sees
deg sel pairs mat density new data time(rd) in sec (real|cpu)
------------------------------------------------------------------------------------------------------
in the header, and while some of it can be guessed, some are totally cryptic.
This is how I think about it:
msolve (both 0.5.0 and latest commit ddfb9e1) says that the following system has no solution (it has a solution 92, since the equations have a nontrivial GCD)
x
251
-68*x^2+34*x-107,
104*x^2+122*x+72
This system was obtained by minifying an issue happening when trying to solve an exercise on larger systems of multivariate quadratic equations generated to have known solutions.
See below various examples of pseudo-random systems with known solutions where msolve fails:
mq_2_1.txt => known solution 92
mq_5_2.txt => known solution (158, 196)
mq_8_3.txt => solution (217, 70, 166)
mq_20_5.txt => solution (200, 5, 86, 211, 203)
mq_38_10.txt => solution (12, 59, 44, 208, 12, 210, 212, 116, 106, 148)
mq_41_18.txt => solution (10, 66, 180, 181, 165, 74, 94, 139, 29, 170, 141, 11, 111, 19, 47, 34, 209, 189)
mq_44_21.txt => known solution, non-unique (0, 0, 0, 170, 117, 195, 29, 32, 172, 99, 207, 55, 171, 182, 113, 208, 104, 90, 137, 175, 22)
Also, removing a few random equations from mq_8_3 makes msolve crash:
x0,x1,x2
251
54*x0^2-106*x0*x1+47*x1^2-92*x0*x2+35*x1*x2-118*x2^2-125*x0-73*x1+14*x2+104,
35*x0^2-35*x0*x1-28*x1^2+121*x0*x2+122*x1*x2-90*x2^2+110*x0+58*x1-85*x2-8,
71*x0^2-x0*x1-41*x1^2+82*x0*x2+90*x1*x2-87*x2^2-100*x0+67*x1+36*x2+122,
21*x0^2-71*x0*x1+55*x0*x2+19*x1*x2-81*x2^2+89*x0+67*x1-12*x2+17
zsh: segmentation fault (core dumped) msolve -f zzz
Same with mq_20_5:
x0,x1,x2,x3,x4
251
-91*x0^2-21*x0*x1+86*x1^2-57*x0*x2+87*x1*x2+5*x2^2-93*x0*x3-98*x1*x3-75*x2*x3+44*x3^2-68*x0*x4-34*x1*x4-111*x2*x4-76*x3*x4+88*x4^2-101*x0+90*x1-26*x2+101*x3-111*x4+75,
12*x0^2+122*x0*x1-57*x1^2-96*x0*x2+125*x1*x2+94*x2^2+37*x0*x3+100*x1*x3+20*x2*x3+119*x3^2+73*x0*x4+87*x1*x4-79*x2*x4-52*x3*x4+11*x4^2-83*x0-52*x1-34*x2+55*x3+39*x4-37,
121*x0^2-33*x0*x1-11*x1^2+120*x0*x2-29*x1*x2-83*x2^2+8*x0*x3+109*x1*x3+9*x2*x3+28*x3^2+19*x0*x4+59*x1*x4+104*x2*x4-33*x3*x4-25*x4^2+23*x0+16*x1-69*x2-77*x3+49*x4+45,
28*x0^2-102*x0*x1-86*x1^2-34*x0*x2-23*x1*x2+37*x2^2+99*x0*x3-121*x1*x3+31*x2*x3+22*x3^2-40*x0*x4+37*x1*x4-52*x2*x4+29*x3*x4-28*x4^2-47*x0+13*x1-91*x2-23*x3-52*x4-87,
60*x0^2-108*x0*x1-25*x1^2-7*x0*x2+89*x1*x2-58*x2^2+18*x0*x3+32*x1*x3-113*x2*x3-55*x3^2+111*x0*x4-63*x1*x4-35*x2*x4+50*x3*x4+95*x4^2-57*x0+113*x1-15*x2+77*x3-49*x4-89,
-120*x0^2-106*x0*x1+74*x1^2-33*x0*x2+103*x1*x2+87*x2^2-86*x0*x3-69*x1*x3+39*x2*x3-29*x3^2+86*x0*x4-63*x1*x4+103*x2*x4+85*x3*x4+70*x4^2+82*x0-68*x1+36*x2-15*x3+x4-41
Some of the tests are are failing and hanging on 32-bit architectures, possibly due to using long
(which is only 32 bits instead of 64 on these architectures).
For example (from https://buildd.debian.org/status/fetch.php?pkg=msolve&arch=i386&ver=0.5.0-1&stamp=1688586254&raw=0):
make check-TESTS
make[3]: Entering directory '/<<PKGBUILDDIR>>'
make[4]: Entering directory '/<<PKGBUILDDIR>>'
PASS: fglm_build_matrixn_radical_shape-31
PASS: neogb_io
PASS: fglm_build_matrixn_nonradical_shape-31
PASS: fglm_build_matrixn_nonradical_radicalshape-31
FAIL: test/diff/diff_elim-qq.sh
PASS: test/diff/diff_elim-31.sh
PASS: test/diff/diff_F4SAT-31.sh
FAIL: test/diff/diff_kat6-31.sh
FAIL: test/diff/diff_eco11-31.sh
E: Build killed with signal TERM after 150 minutes of inactivity
See also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1040774.
Currently releases only package the version-controlled source files. However, the standard is to also provide tarballs with ./configure
etc present (these are automatically produced by make dist
, to you just need to run this and upload the resulting tarball to release (click "edit release").
Now for SageMath we need to create such tarballs ourselves...
I cannot see anything on this in the docs, although I guess it corresponds to the monomial order used.
Can this be documented?
I'm getting the following build error for the amd64 build of the Debian package for 0.6.2 (full build log)
PASS: test/diff/diff_nonradical_shape-qq.sh
PASS: test/diff/diff_eco11-31.sh
E: Build killed with signal TERM after 150 minutes of inactivity
The only test that didn't appear in the log was diff_reals_dim0-chgvar.sh
, and removing it fixes the problem.
Hi,
Is msolve
still available via Oscar? I tried the latest version of 0.11.2 and msolve
does not show as a command.
Thanks!
I am using MAC with M1 chip.
Since apple's gcc seems to have issue with gmp, I was able to build with
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/lib
./autogen.sh
./configure CC=gcc-12 CFLAGS=-I/opt/homebrew/include
make
After that the single-thread calculation works fine, but the multithread calculation returns
zsh: segmentation fault ./msolve -t 4 -f in.ms -o out.ms
The comment in interfaces/msolve-to-maple-file-interface.mpl
msolve/interfaces/msolve-to-maple-file-interface.mpl
Lines 21 to 24 in 07c7cb2
is not accurate, as the sed command does work for macOS users with GNU sed, which is common for Nix users in a build environment:
$ sed --version
sed: illegal option -- -
usage: sed script [-Ealnru] [-i extension] [file ...]
sed [-Ealnu] [-i extension] [-e script] ... [-f script_file] ... [file ...]
$ nix develop github:NixOS/nixpkgs/nixos-unstable#hello
$ sed --version
sed (GNU sed) 4.9
Copyright (C) 2022 Free Software Foundation, Inc.
Instead, it would be nice to detect if sed is BSD or GNU at runtime, for example
# BSD sed
> ssystem("sed --version");
[1, ""]
# GNU sed
> ssystem("sed --version");
[0, "sed (GNU sed) 4.9
Copyright (C) 2022 Free Software Foundation, Inc.
..."]
A natural extension would be to combine interfaces/msolve-to-maple-file-interface-macos.mpl
into interfaces/msolve-to-maple-file-interface.mpl
, since their logic differs little.
make install does not install the include/neogb/*.h files
The following file crashes msolve:
x,y,z
257
0,
x*x+y*y+z*z,
x+y+z,
x+y*z
Zero polynomials are not forbidden according to the README.
The issue happened while using Sage after substituting numerical values into a polynomial system.
% ./msolve -f mini -P 1
AddressSanitizer:DEADLYSIGNAL
=================================================================
==1377530==ERROR: AddressSanitizer: SEGV on unknown address (pc 0x7f33f722bbd6 bp 0x7ffd08854ed0 sp 0x7ffd08854d80 T0)
==1377530==The signal is caused by a READ memory access.
==1377530==Hint: this fault was caused by a dereference of a high value address (see register values below). Disassemble the provided pc to learn which register was used.
#0 0x7f33f722bbd6 in import_input_data (/tmp/msolve/src/neogb/.libs/libneogb-0.5.0.so+0x82bd6) (BuildId: 2be063c67d42a6ff905764b3bf2a9f481a8b8bf2)
#1 0x557bf1ad1ad8 in msolve_trace_qq (/tmp/msolve/.libs/msolve+0x4cad8) (BuildId: e7c6c61f288cced0a2dc2cd7692a6431914aaca4)
#2 0x557bf1adbfe8 in real_msolve_qq (/tmp/msolve/.libs/msolve+0x56fe8) (BuildId: e7c6c61f288cced0a2dc2cd7692a6431914aaca4)
#3 0x557bf1ae159e in core_msolve (/tmp/msolve/.libs/msolve+0x5c59e) (BuildId: e7c6c61f288cced0a2dc2cd7692a6431914aaca4)
#4 0x557bf1aecf4c in main (/tmp/msolve/.libs/msolve+0x67f4c) (BuildId: e7c6c61f288cced0a2dc2cd7692a6431914aaca4)
#5 0x7f33f5b4c84f (/usr/lib/libc.so.6+0x2384f) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
#6 0x7f33f5b4c909 in __libc_start_main (/usr/lib/libc.so.6+0x23909) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
#7 0x557bf1a91d24 in _start (/tmp/msolve/.libs/msolve+0xcd24) (BuildId: e7c6c61f288cced0a2dc2cd7692a6431914aaca4)
To be able to correctly use the library, msolve should be installing headers - currently it does not, as I noticed while working on #63
Compiling outside the source directory doesn't seem to work, probably due to something minor:
$ ls
AUTHORS autogen.sh configure.ac COPYING doc INSTALL interfaces m4 Makefile.am README.md src test
$ mkdir build
$ cd build/
$ ../autogen.sh
autoreconf: export WARNINGS=
autoreconf: error: 'configure.ac' is required
You can still do autoreconf -vif ..
or something like that, but that leaves some files in the source directory.
After installing msolve 0.6.3, I noticed that msolve.h
and msolve-data.h
were installed in two distinct locations:
$ ls -R /usr/include/msolve
/usr/include/msolve:
msolve msolve-data.h msolve.h neogb
/usr/include/msolve/msolve:
msolve-data.h msolve.h
/usr/include/msolve/neogb:
basis.h engine.h f4sat.h io.h meta_data.h nf.h sort_r.h update.h
data.h f4.h hash.h libneogb.h modular.h sba.h tools.h
I believe the ones in /usr/include/msolve
are coming from nobase_include_HEADERS
in include/Makefile.am and the ones in /usr/include/msolve/msolve
are coming from libmsolve_la_HEADERS
in src/msolve/Makefile.am.
Also, the headers in /usr/include/msolve
don't work, since they're looking for the neogb headers in the wrong place. Suppose I try compiling this simple program:
#include <msolve/msolve.h>
int main(void)
{
return 0;
}
Then I get the following:
In file included from /usr/include/msolve/msolve.h:24,
from foo.c:1:
/usr/include/msolve/msolve-data.h:25:10: fatal error: ../neogb/data.h: No such file or directory
25 | #include "../neogb/data.h"
| ^~~~~~~~~~~~~~~~~
compilation terminated.
Hello,
I am using msolve to compute Groebner bases.
For parsing the output basis, it can be useful for me if the formats of the output over a finite field and over the rationals would be similar.
Currently, for the rationals, there seems to be no preamble:
$ msolve -g 2 -f input_qq -o output_qq
$ cat output_qq
[x+1
]:
but there is one for the finite fields
$ msolve -g 2 -f input_ff -o output_ff
$ cat output_ff
#Reduced Groebner basis for input in characteristic 11
#for variable order x, y, z
#w.r.t. grevlex monomial ordering
#consisting of 1 elements:
[1*x^1+1]:
The files input_qq
and input_ff
contain the following:
x, y, z
0
x + 1
and
x, y, z
11
x + 1
When compiling a simple C program with #include <msolve/msolve/msolve.h>
, I get the following compile errors:
$ gcc foo.c
In file included from foo.c:2:
/usr/include/msolve/msolve/msolve.h:28:9: error: unknown type name ‘param_t’; did you mean ‘mpz_param_t’?
28 | param_t **nmod_param,
| ^~~~~~~
| mpz_param_t
/usr/include/msolve/msolve/msolve.h:48:9: error: unknown type name ‘param_t’; did you mean ‘mpz_param_t’?
48 | param_t **nmod_param,
| ^~~~~~~
| mpz_param_t
/usr/include/msolve/msolve/msolve.h:89:9: error: unknown type name ‘param_t’; did you mean ‘mpz_param_t’?
89 | param_t **nmod_param,
| ^~~~~~~
| mpz_param_t
/usr/include/msolve/msolve/msolve.h:93:9: error: unknown type name ‘interval’
93 | interval **real_roots_ptr,
| ^~~~~~~~
/usr/include/msolve/msolve/msolve.h:134:9: error: unknown type name ‘param_t’; did you mean ‘mpz_param_t’?
134 | param_t **paramp,
| ^~~~~~~
| mpz_param_t
/usr/include/msolve/msolve/msolve.h:137:9: error: unknown type name ‘interval’
137 | interval **real_roots_ptr,
| ^~~~~~~~
Is there another header that should be included?
First of all thanks for open-sourcing your work, it is very appreciated! 💯
On a regular basis, I have trouble with the formatting of the input file. For example, the following equation system seems just fine for me:
a, b, s, lamA, lamB
0
0.4750117565367643 + lamA * 0.05698810324224207 - b * 14.145271207860723 + b*s * 1.0878512413314014 - a * 0.9823487845322446 - a*s * 9.840557894587773,
0.24620471651887643 - lamA * 0.030110441242706842 + b * 0.0 + b*s * 0.0 + a * 0.0 + a*s * 0.0,
0.18477765545456737 - lamA * 1 - b * 0.9823487845322446 - b*s * 9.840557894587773 + a * 14.145271207860723 - a*s * 1.0878512413314014,
0.4750117565367643 + lamB * 0.05698810324224207 - b * 7.824159668166666 + b*s * 1.0878512413314014 - a * 0.9783577693832235 - a*s * 9.840557894587773,
0.24620471651887643 - lamB * 0.030110441242706842 + b * 0.0 + b*s * 0.0 + a * 0.0 + a*s * 0.0,
0.18477765545456737 - lamB * 1 - b * 0.9783577693832235 - b*s * 9.840557894587773 + a * 7.824159668166666 - a*s * 1.0878512413314014,
a^2 + b^2 - 1
However, the solution returned by msolve
a, b, s, lamA, lamB = 0.8392867552141612, -0.5436890126920764, 1.8392867552141612, 1.8392867552141612, 1.8392867552141612
is wrong. Interestingly, the solution is correct for the Gröbner basis system computed by msolve
lamA-1*lamB,
a-1*lamB+1,
lamB^2+b-1*lamB-1,
s*lamB+b-1*s-1,
b*lamB+s-1*lamB+1,
s^2+b-1*lamB-1,
b*s+1,
b^2-1*b-1*lamB+1
As of now, it seems that there are two possible problems. Either
If the issue is the second problem: Could you please describe what the error is my problem formulation is? Perhaps it would be nice to have a small section in the readme where the required format is described in more detail. For example, it took a while until I figured out that the problem formulation should not include division (/). Thanks!
The URL in the link text is correct, but clicking the link fails.
I just uploaded msolve 0.6.6 to Debian, and one of the tests is failing during the 64-bit PowerPC build:
FAIL: test/diff/diff_mq_2_1.sh
==============================
Warning: this part of the code has not been tested intensively
Something should be checked
3c3
< 2,
---
> 1,
7,8c7,8
< [[2,
< [20, 6, 1]],
---
> [[1,
> [159, 1]],
FAIL test/diff/diff_mq_2_1.sh (exit status: 42)
Hello,
I compile msolve from the latest commit ea859ac, and run the command msolve -g 2 -c 0 -f input.txt -o output.txt
.
After about 10 minutes I get Segmentation fault.
upd: this is x86-64 Intel Xeon Gold 6130.
The content of input.txt is
x2_7, x3_6, x13_6, x10_6, x2_6, x5_6, x1_6, x8_6, x4_6, x3_5, x14_5, x13_5, x11_5, x10_5, x2_5, x12_5, x7_5, x5_5, x1_5, x8_5, x9_5, x6_5, x4_5, x3_4, x14_4, x13_4, x11_4, x10_4, x2_4, x12_4, x7_4, x5_4, x1_4, x8_4, x9_4, x6_4, x4_4, x3_3, x14_3, x13_3, x11_3, x10_3, x2_3, x12_3, x7_3, x5_3, x1_3, x8_3, x9_3, x6_3, x4_3, x3_2, x14_2, x13_2, x11_2, x10_2, x2_2, x12_2, x7_2, x5_2, x1_2, x8_2, x9_2, x6_2, x4_2, x3_1, x14_1, x13_1, x11_1, x10_1, x2_1, x12_1, x7_1, x5_1, x1_1, x8_1, x9_1, x6_1, x4_1, x3_0, x14_0, x13_0, x11_0, x10_0, x2_0, x12_0, x7_0, x5_0, x1_0, x8_0, x9_0, x6_0, x4_0, z_aux, k_prod_0, k_deg_0, k1_0, k3_0, t1_0, t2_0, k2_0, i1_0, c5_0, c_4a_0, i_1a_0, c_3a_0, e_2a_0
1073741827
1073741826*x3_0 + 1073741826*x2_0 + 1073741826*x1_0 + 1029971849,
607579857*x2_0*x8_0^2*k2_0 + x3_0*k_deg_0 + 1073741826*x2_0*k3_0 + x3_1,
x1_0*k_deg_0 + 466161970*x1_0*k1_0 + x1_1 + 1073741826*k_prod_0,
466161970*x2_0*x8_0^2*k2_0 + 1073741826*x4_0^2*t1_0 + 1073741826*x5_0^2*t2_0 + x13_0*x2_0 + 429496731*x10_0*x2_0 + x2_0*k_deg_0 + 607579857*x1_0*k1_0 + x2_0*k3_0 + x2_1,
1073741826*x12_0 + 367396831,
x12_0*c_3a_0 + x12_1 + 171134583*x7_0,
1073741826*x2_0 + 678833355,
1073741826*x9_0 + 816456985,
x9_1 + 171134583*x7_0 + 531287456*x9_0,
1073741826*x13_0 + 1073741826*x10_0 + 1064138947,
536870913*x10_0*x6_0^2 + 1073741826*x14_0^2*e_2a_0 + x13_0*x2_0 + x13_1 + 670809469*x13_0,
536870914*x10_0*x6_0^2 + 409632507*x11_0^2 + 429496731*x10_0*x2_0 + 1073741826*x12_0*c_4a_0 + x10_0*i_1a_0 + x10_1 + 132821864*x10_0,
1073741826*x7_0 + 547041998,
536870914*x11_0^2*x7_0 + 1073741822*x6_0^2*i1_0 + x7_1,
1073741826*x3_1 + 1073741826*x2_1 + 1073741826*x1_1 + 74066639,
x1_1*k_deg_0 + 466161970*x1_1*k1_0 + 818327100*x1_0*k1_0 + x1_2,
607579857*x8_1^2*x2_0*k2_0 + 607579857*x2_1*x8_0^2*k2_0 + 255414727*x2_0*x8_0^2*k2_0 + x3_1*k_deg_0 + 1073741826*x2_1*k3_0 + x3_2,
466161970*x8_1^2*x2_0*k2_0 + 466161970*x2_1*x8_0^2*k2_0 + 818327100*x2_0*x8_0^2*k2_0 + 1073741826*x4_1^2*t1_0 + 1073741826*x5_1^2*t2_0 + x2_1*x13_0 + 429496731*x2_1*x10_0 + x13_1*x2_0 + 429496731*x10_1*x2_0 + x2_1*k_deg_0 + 607579857*x1_1*k1_0 + 255414727*x1_0*k1_0 + x2_1*k3_0 + x2_2,
x4_0^2*t1_0 + x4_1^2 + 644245096*x10_0*x2_0,
x8_0^2*c5_0^3 + x8_1^2 + 536870913*x9_0,
x5_0^2*t2_0 + x5_1^2 + 1073741826*x13_0*x2_0,
1073741826*x12_1 + 66120491,
x12_1*c_3a_0 + x12_2 + 171134583*x7_1,
1073741826*x2_1 + 540368852,
1073741826*x13_1 + 1073741826*x10_1 + 586811099,
536870913*x6_1^2*x10_0 + 536870913*x10_1*x6_0^2 + 1073741826*x14_1^2*e_2a_0 + x2_1*x13_0 + x13_1*x2_0 + x13_2 + 670809469*x13_1,
536870914*x6_1^2*x10_0 + 536870914*x10_1*x6_0^2 + 409632507*x11_1^2 + 429496731*x2_1*x10_0 + 429496731*x10_1*x2_0 + 1073741826*x12_1*c_4a_0 + x10_1*i_1a_0 + x10_2 + 132821864*x10_1,
536870914*x10_0*x6_0^2 + 1073741826*x5_0^2*t2_0 + x6_0^2*i1_0 + x6_1^2 + 402932358*x13_0,
536870914*x11_0^2*x7_0 + x11_1^2 + 99321119*x11_0^2 + 1073741822*x10_0*i_1a_0,
536870913*x11_0^2*x7_0 + 5*x14_0^2*e_2a_0 + x14_1^2,
1073741826*x7_1 + 444984338,
536870914*x7_1*x11_0^2 + 536870914*x11_1^2*x7_0 + 1073741822*x6_1^2*i1_0 + x7_2,
1073741826*x3_2 + 1073741826*x2_2 + 1073741826*x1_2 + 28909455,
141417887*x2_1*x8_1^2*k2_0 + 607579857*x8_2^2*x2_0*k2_0 + 510829454*x8_1^2*x2_0*k2_0 + 607579857*x2_2*x8_0^2*k2_0 + 510829454*x2_1*x8_0^2*k2_0 + 526236431*x2_0*x8_0^2*k2_0 + x3_2*k_deg_0 + 1073741826*x2_2*k3_0 + x3_3,
x1_2*k_deg_0 + 466161970*x1_2*k1_0 + 562912373*x1_1*k1_0 + 547505396*x1_0*k1_0 + x1_3,
932323940*x2_1*x8_1^2*k2_0 + 466161970*x8_2^2*x2_0*k2_0 + 562912373*x8_1^2*x2_0*k2_0 + 466161970*x2_2*x8_0^2*k2_0 + 562912373*x2_1*x8_0^2*k2_0 + 547505396*x2_0*x8_0^2*k2_0 + 1073741826*x4_2^2*t1_0 + 1073741826*x5_2^2*t2_0 + 2*x13_1*x2_1 + 858993462*x10_1*x2_1 + x2_2*x13_0 + 429496731*x2_2*x10_0 + x13_2*x2_0 + 429496731*x10_2*x2_0 + x2_2*k_deg_0 + 607579857*x1_2*k1_0 + 510829454*x1_1*k1_0 + 526236431*x1_0*k1_0 + x2_2*k3_0 + x2_3,
x4_1^2*t1_0 + x4_2^2 + 644245096*x2_1*x10_0 + 644245096*x10_1*x2_0,
x5_1^2*t2_0 + x5_2^2 + 1073741826*x2_1*x13_0 + 1073741826*x13_1*x2_0,
x8_1^2*c5_0^3 + x8_2^2 + 536870913*x9_1,
1073741826*x2_2 + 17580111,
1073741826*x13_2 + 1073741826*x10_2 + 356099907,
x10_1*x6_1^2 + 536870914*x6_2^2*x10_0 + 536870914*x10_2*x6_0^2 + 409632507*x11_2^2 + 858993462*x10_1*x2_1 + 429496731*x2_2*x10_0 + 429496731*x10_2*x2_0 + 1073741826*x12_2*c_4a_0 + x10_2*i_1a_0 + x10_3 + 132821864*x10_2,
1073741826*x10_1*x6_1^2 + 536870913*x6_2^2*x10_0 + 536870913*x10_2*x6_0^2 + 1073741826*x14_2^2*e_2a_0 + 2*x13_1*x2_1 + x2_2*x13_0 + x13_2*x2_0 + x13_3 + 670809469*x13_2,
536870914*x6_1^2*x10_0 + 536870914*x10_1*x6_0^2 + 1073741826*x5_1^2*t2_0 + x6_1^2*i1_0 + x6_2^2 + 402932358*x13_1,
536870913*x7_1*x11_0^2 + 536870913*x11_1^2*x7_0 + 5*x14_1^2*e_2a_0 + x14_2^2,
536870914*x7_1*x11_0^2 + 536870914*x11_1^2*x7_0 + x11_2^2 + 99321119*x11_1^2 + 1073741822*x10_1*i_1a_0,
1073741826*x7_2 + 472429259,
x11_1^2*x7_1 + 536870914*x7_2*x11_0^2 + 536870914*x11_2^2*x7_0 + 1073741822*x6_2^2*i1_0 + x7_3,
1073741826*x3_3 + 1073741826*x2_3 + 1073741826*x1_3 + 442118574,
324744083*x8_2^2*x2_1*k2_0 + 324744083*x2_2*x8_1^2*k2_0 + 614995292*x2_1*x8_1^2*k2_0 + 466161970*x8_3^2*x2_0*k2_0 + 307497646*x8_2^2*x2_0*k2_0 + 568774361*x8_1^2*x2_0*k2_0 + 466161970*x2_3*x8_0^2*k2_0 + 307497646*x2_2*x8_0^2*k2_0 + 568774361*x2_1*x8_0^2*k2_0 + 850129211*x2_0*x8_0^2*k2_0 + 1073741826*x4_3^2*t1_0 + 1073741826*x5_3^2*t2_0 + 3*x2_2*x13_1 + 214748366*x2_2*x10_1 + 3*x13_2*x2_1 + 214748366*x10_2*x2_1 + x2_3*x13_0 + 429496731*x2_3*x10_0 + x13_3*x2_0 + 429496731*x10_3*x2_0 + x2_3*k_deg_0 + 607579857*x1_3*k1_0 + 766244181*x1_2*k1_0 + 504967466*x1_1*k1_0 + 223612616*x1_0*k1_0 + x2_3*k3_0 + x2_4,
x1_3*k_deg_0 + 466161970*x1_3*k1_0 + 307497646*x1_2*k1_0 + 568774361*x1_1*k1_0 + 850129211*x1_0*k1_0 + x1_4,
748997744*x8_2^2*x2_1*k2_0 + 748997744*x2_2*x8_1^2*k2_0 + 458746535*x2_1*x8_1^2*k2_0 + 607579857*x8_3^2*x2_0*k2_0 + 766244181*x8_2^2*x2_0*k2_0 + 504967466*x8_1^2*x2_0*k2_0 + 607579857*x2_3*x8_0^2*k2_0 + 766244181*x2_2*x8_0^2*k2_0 + 504967466*x2_1*x8_0^2*k2_0 + 223612616*x2_0*x8_0^2*k2_0 + x3_3*k_deg_0 + 1073741826*x2_3*k3_0 + x3_4,
x5_2^2*t2_0 + x5_3^2 + 1073741825*x13_1*x2_1 + 1073741826*x2_2*x13_0 + 1073741826*x13_2*x2_0,
x4_2^2*t1_0 + x4_3^2 + 214748365*x10_1*x2_1 + 644245096*x2_2*x10_0 + 644245096*x10_2*x2_0,
x8_2^2*c5_0^3 + x8_3^2 + 536870913*x9_2,
x9_2 + 171134583*x7_1 + 531287456*x9_1,
1073741826*x2_3 + 460851122,
1073741826*x13_3 + 1073741826*x10_3 + 417772175,
536870912*x6_2^2*x10_1 + 536870912*x10_2*x6_1^2 + 536870913*x6_3^2*x10_0 + 536870913*x10_3*x6_0^2 + 1073741826*x14_3^2*e_2a_0 + 3*x2_2*x13_1 + 3*x13_2*x2_1 + x2_3*x13_0 + x13_3*x2_0 + x13_4 + 670809469*x13_3,
536870915*x6_2^2*x10_1 + 536870915*x10_2*x6_1^2 + 536870914*x6_3^2*x10_0 + 536870914*x10_3*x6_0^2 + 409632507*x11_3^2 + 214748366*x2_2*x10_1 + 214748366*x10_2*x2_1 + 429496731*x2_3*x10_0 + 429496731*x10_3*x2_0 + 1073741826*x12_3*c_4a_0 + x10_3*i_1a_0 + x10_4 + 132821864*x10_3,
x12_2*c_3a_0 + x12_3 + 171134583*x7_2,
1073741826*x11_1^2*x7_1 + 536870913*x7_2*x11_0^2 + 536870913*x11_2^2*x7_0 + 5*x14_2^2*e_2a_0 + x14_3^2,
x10_1*x6_1^2 + 536870914*x6_2^2*x10_0 + 536870914*x10_2*x6_0^2 + 1073741826*x5_2^2*t2_0 + x6_2^2*i1_0 + x6_3^2 + 402932358*x13_2,
x11_1^2*x7_1 + 536870914*x7_2*x11_0^2 + 536870914*x11_2^2*x7_0 + x11_3^2 + 99321119*x11_2^2 + 1073741822*x10_2*i_1a_0,
1073741826*x7_3 + 691184029,
536870915*x7_2*x11_1^2 + 536870915*x11_2^2*x7_1 + 536870914*x7_3*x11_0^2 + 536870914*x11_3^2*x7_0 + 1073741822*x6_3^2*i1_0 + x7_4,
1073741826*x3_4 + 1073741826*x2_4 + 1073741826*x1_4 + 680085615,
424253661*x2_2*x8_2^2*k2_0 + 282835774*x8_3^2*x2_1*k2_0 + 917493070*x8_2^2*x2_1*k2_0 + 282835774*x2_3*x8_1^2*k2_0 + 917493070*x2_2*x8_1^2*k2_0 + 946128037*x2_1*x8_1^2*k2_0 + 607579857*x8_4^2*x2_0*k2_0 + 1021658908*x8_3^2*x2_0*k2_0 + 1009934932*x8_2^2*x2_0*k2_0 + 894450464*x8_1^2*x2_0*k2_0 + 607579857*x2_4*x8_0^2*k2_0 + 1021658908*x2_3*x8_0^2*k2_0 + 1009934932*x2_2*x8_0^2*k2_0 + 894450464*x2_1*x8_0^2*k2_0 + 584242468*x2_0*x8_0^2*k2_0 + x3_4*k_deg_0 + 1073741826*x2_4*k3_0 + x3_5,
649488166*x2_2*x8_2^2*k2_0 + 790906053*x8_3^2*x2_1*k2_0 + 156248757*x8_2^2*x2_1*k2_0 + 790906053*x2_3*x8_1^2*k2_0 + 156248757*x2_2*x8_1^2*k2_0 + 127613790*x2_1*x8_1^2*k2_0 + 466161970*x8_4^2*x2_0*k2_0 + 52082919*x8_3^2*x2_0*k2_0 + 63806895*x8_2^2*x2_0*k2_0 + 179291363*x8_1^2*x2_0*k2_0 + 466161970*x2_4*x8_0^2*k2_0 + 52082919*x2_3*x8_0^2*k2_0 + 63806895*x2_2*x8_0^2*k2_0 + 179291363*x2_1*x8_0^2*k2_0 + 489499359*x2_0*x8_0^2*k2_0 + 1073741826*x4_4^2*t1_0 + 1073741826*x5_4^2*t2_0 + 6*x13_2*x2_2 + 429496732*x10_2*x2_2 + 4*x2_3*x13_1 + 644245097*x2_3*x10_1 + 4*x13_3*x2_1 + 644245097*x10_3*x2_1 + x2_4*x13_0 + 429496731*x2_4*x10_0 + x13_4*x2_0 + 429496731*x10_4*x2_0 + x2_4*k_deg_0 + 607579857*x1_4*k1_0 + 1021658908*x1_3*k1_0 + 1009934932*x1_2*k1_0 + 894450464*x1_1*k1_0 + 584242468*x1_0*k1_0 + x2_4*k3_0 + x2_5,
x1_4*k_deg_0 + 466161970*x1_4*k1_0 + 52082919*x1_3*k1_0 + 63806895*x1_2*k1_0 + 179291363*x1_1*k1_0 + 489499359*x1_0*k1_0 + x1_5,
x5_3^2*t2_0 + x5_4^2 + 1073741824*x2_2*x13_1 + 1073741824*x13_2*x2_1 + 1073741826*x2_3*x13_0 + 1073741826*x13_3*x2_0,
x4_3^2*t1_0 + x4_4^2 + 858993461*x2_2*x10_1 + 858993461*x10_2*x2_1 + 644245096*x2_3*x10_0 + 644245096*x10_3*x2_0,
x8_3^2*c5_0^3 + x8_4^2 + 536870913*x9_3,
x9_3 + 171134583*x7_2 + 531287456*x9_2,
1073741826*x2_4 + 10911471,
1073741826*x13_4 + 1073741826*x10_4 + 514805511,
3*x10_2*x6_2^2 + 2*x6_3^2*x10_1 + 2*x10_3*x6_1^2 + 536870914*x6_4^2*x10_0 + 536870914*x10_4*x6_0^2 + 409632507*x11_4^2 + 429496732*x10_2*x2_2 + 644245097*x2_3*x10_1 + 644245097*x10_3*x2_1 + 429496731*x2_4*x10_0 + 429496731*x10_4*x2_0 + 1073741826*x12_4*c_4a_0 + x10_4*i_1a_0 + x10_5 + 132821864*x10_4,
1073741824*x10_2*x6_2^2 + 1073741825*x6_3^2*x10_1 + 1073741825*x10_3*x6_1^2 + 536870913*x6_4^2*x10_0 + 536870913*x10_4*x6_0^2 + 1073741826*x14_4^2*e_2a_0 + 6*x13_2*x2_2 + 4*x2_3*x13_1 + 4*x13_3*x2_1 + x2_4*x13_0 + x13_4*x2_0 + x13_5 + 670809469*x13_4,
536870915*x6_2^2*x10_1 + 536870915*x10_2*x6_1^2 + 536870914*x6_3^2*x10_0 + 536870914*x10_3*x6_0^2 + 1073741826*x5_3^2*t2_0 + x6_3^2*i1_0 + x6_4^2 + 402932358*x13_3,
536870915*x7_2*x11_1^2 + 536870915*x11_2^2*x7_1 + 536870914*x7_3*x11_0^2 + 536870914*x11_3^2*x7_0 + x11_4^2 + 99321119*x11_3^2 + 1073741822*x10_3*i_1a_0,
x12_3*c_3a_0 + x12_4 + 171134583*x7_3,
536870912*x7_2*x11_1^2 + 536870912*x11_2^2*x7_1 + 536870913*x7_3*x11_0^2 + 536870913*x11_3^2*x7_0 + 5*x14_3^2*e_2a_0 + x14_4^2,
1073741826*x7_4 + 20125587,
3*x11_2^2*x7_2 + 2*x7_3*x11_1^2 + 2*x11_3^2*x7_1 + 536870914*x7_4*x11_0^2 + 536870914*x11_4^2*x7_0 + 1073741822*x6_4^2*i1_0 + x7_5,
1073741826*x3_5 + 1073741826*x2_5 + 1073741826*x1_5 + 1028881261,
366652392*x8_3^2*x2_2*k2_0 + 366652392*x2_3*x8_2^2*k2_0 + 927492806*x2_2*x8_2^2*k2_0 + 183326196*x8_4^2*x2_1*k2_0 + 260414595*x8_3^2*x2_1*k2_0 + 319034475*x8_2^2*x2_1*k2_0 + 183326196*x2_4*x8_1^2*k2_0 + 260414595*x2_3*x8_1^2*k2_0 + 319034475*x2_2*x8_1^2*k2_0 + 896456815*x2_1*x8_1^2*k2_0 + 466161970*x8_5^2*x2_0*k2_0 + 870410019*x8_4^2*x2_0*k2_0 + 106344825*x8_3^2*x2_0*k2_0 + 985099321*x8_2^2*x2_0*k2_0 + 300013141*x8_1^2*x2_0*k2_0 + 466161970*x2_5*x8_0^2*k2_0 + 870410019*x2_4*x8_0^2*k2_0 + 106344825*x2_3*x8_0^2*k2_0 + 985099321*x2_2*x8_0^2*k2_0 + 300013141*x2_1*x8_0^2*k2_0 + 1018318053*x2_0*x8_0^2*k2_0 + 1073741826*x4_5^2*t1_0 + 1073741826*x5_5^2*t2_0 + 10*x2_3*x13_2 + 2*x2_3*x10_2 + 10*x13_3*x2_2 + 2*x10_3*x2_2 + 5*x2_4*x13_1 + x2_4*x10_1 + 5*x13_4*x2_1 + x10_4*x2_1 + x2_5*x13_0 + 429496731*x2_5*x10_0 + x13_5*x2_0 + 429496731*x10_5*x2_0 + x2_5*k_deg_0 + 607579857*x1_5*k1_0 + 203331808*x1_4*k1_0 + 967397002*x1_3*k1_0 + 88642506*x1_2*k1_0 + 773728686*x1_1*k1_0 + 55423774*x1_0*k1_0 + x2_5*k3_0 + x2_6,
x1_5*k_deg_0 + 466161970*x1_5*k1_0 + 870410019*x1_4*k1_0 + 106344825*x1_3*k1_0 + 985099321*x1_2*k1_0 + 300013141*x1_1*k1_0 + 1018318053*x1_0*k1_0 + x1_6,
707089435*x8_3^2*x2_2*k2_0 + 707089435*x2_3*x8_2^2*k2_0 + 146249021*x2_2*x8_2^2*k2_0 + 890415631*x8_4^2*x2_1*k2_0 + 813327232*x8_3^2*x2_1*k2_0 + 754707352*x8_2^2*x2_1*k2_0 + 890415631*x2_4*x8_1^2*k2_0 + 813327232*x2_3*x8_1^2*k2_0 + 754707352*x2_2*x8_1^2*k2_0 + 177285012*x2_1*x8_1^2*k2_0 + 607579857*x8_5^2*x2_0*k2_0 + 203331808*x8_4^2*x2_0*k2_0 + 967397002*x8_3^2*x2_0*k2_0 + 88642506*x8_2^2*x2_0*k2_0 + 773728686*x8_1^2*x2_0*k2_0 + 607579857*x2_5*x8_0^2*k2_0 + 203331808*x2_4*x8_0^2*k2_0 + 967397002*x2_3*x8_0^2*k2_0 + 88642506*x2_2*x8_0^2*k2_0 + 773728686*x2_1*x8_0^2*k2_0 + 55423774*x2_0*x8_0^2*k2_0 + x3_5*k_deg_0 + 1073741826*x2_5*k3_0 + x3_6,
x4_4^2*t1_0 + x4_5^2 + 644245095*x10_2*x2_2 + 429496730*x2_3*x10_1 + 429496730*x10_3*x2_1 + 644245096*x2_4*x10_0 + 644245096*x10_4*x2_0,
x5_4^2*t2_0 + x5_5^2 + 1073741821*x13_2*x2_2 + 1073741823*x2_3*x13_1 + 1073741823*x13_3*x2_1 + 1073741826*x2_4*x13_0 + 1073741826*x13_4*x2_0,
x8_4^2*c5_0^3 + x8_5^2 + 536870913*x9_4,
x9_4 + 171134583*x7_3 + 531287456*x9_3,
1073741826*x2_5 + 501093272,
1073741826*x13_5 + 1073741826*x10_5 + 30989325,
1073741822*x6_3^2*x10_2 + 1073741822*x10_3*x6_2^2 + 536870911*x6_4^2*x10_1 + 536870911*x10_4*x6_1^2 + 536870913*x6_5^2*x10_0 + 536870913*x10_5*x6_0^2 + 1073741826*x14_5^2*e_2a_0 + 10*x2_3*x13_2 + 10*x13_3*x2_2 + 5*x2_4*x13_1 + 5*x13_4*x2_1 + x2_5*x13_0 + x13_5*x2_0 + x13_6 + 670809469*x13_5,
5*x6_3^2*x10_2 + 5*x10_3*x6_2^2 + 536870916*x6_4^2*x10_1 + 536870916*x10_4*x6_1^2 + 536870914*x6_5^2*x10_0 + 536870914*x10_5*x6_0^2 + 409632507*x11_5^2 + 2*x2_3*x10_2 + 2*x10_3*x2_2 + x2_4*x10_1 + x10_4*x2_1 + 429496731*x2_5*x10_0 + 429496731*x10_5*x2_0 + 1073741826*x12_5*c_4a_0 + x10_5*i_1a_0 + x10_6 + 132821864*x10_5,
3*x11_2^2*x7_2 + 2*x7_3*x11_1^2 + 2*x11_3^2*x7_1 + 536870914*x7_4*x11_0^2 + 536870914*x11_4^2*x7_0 + x11_5^2 + 99321119*x11_4^2 + 1073741822*x10_4*i_1a_0,
1073741824*x11_2^2*x7_2 + 1073741825*x7_3*x11_1^2 + 1073741825*x11_3^2*x7_1 + 536870913*x7_4*x11_0^2 + 536870913*x11_4^2*x7_0 + 5*x14_4^2*e_2a_0 + x14_5^2,
x12_4*c_3a_0 + x12_5 + 171134583*x7_4,
3*x10_2*x6_2^2 + 2*x6_3^2*x10_1 + 2*x10_3*x6_1^2 + 536870914*x6_4^2*x10_0 + 536870914*x10_4*x6_0^2 + 1073741826*x5_4^2*t2_0 + x6_4^2*i1_0 + x6_5^2 + 402932358*x13_4,
1073741826*x2_6 + 749000943,
733304784*x2_3*x8_3^2*k2_0 + 549978588*x8_4^2*x2_2*k2_0 + 781243785*x8_3^2*x2_2*k2_0 + 549978588*x2_4*x8_2^2*k2_0 + 781243785*x2_3*x8_2^2*k2_0 + 957103425*x2_2*x8_2^2*k2_0 + 649488166*x8_5^2*x2_1*k2_0 + 927492806*x8_4^2*x2_1*k2_0 + 638068950*x8_3^2*x2_1*k2_0 + 541886791*x8_2^2*x2_1*k2_0 + 649488166*x2_5*x8_1^2*k2_0 + 927492806*x2_4*x8_1^2*k2_0 + 638068950*x2_3*x8_1^2*k2_0 + 541886791*x2_2*x8_1^2*k2_0 + 726337019*x2_1*x8_1^2*k2_0 + 466161970*x8_6^2*x2_0*k2_0 + 614995292*x8_5^2*x2_0*k2_0 + 696388151*x8_4^2*x2_0*k2_0 + 896456815*x8_3^2*x2_0*k2_0 + 900039423*x8_2^2*x2_0*k2_0 + 741199183*x8_1^2*x2_0*k2_0 + 466161970*x2_6*x8_0^2*k2_0 + 614995292*x2_5*x8_0^2*k2_0 + 696388151*x2_4*x8_0^2*k2_0 + 896456815*x2_3*x8_0^2*k2_0 + 900039423*x2_2*x8_0^2*k2_0 + 741199183*x2_1*x8_0^2*k2_0 + 926287664*x2_0*x8_0^2*k2_0 + 1073741826*x4_6^2*t1_0 + 1073741826*x5_6^2*t2_0 + 20*x13_3*x2_3 + 4*x10_3*x2_3 + 15*x2_4*x13_2 + 3*x2_4*x10_2 + 15*x13_4*x2_2 + 3*x10_4*x2_2 + 6*x2_5*x13_1 + 429496732*x2_5*x10_1 + 6*x13_5*x2_1 + 429496732*x10_5*x2_1 + x2_6*x13_0 + 429496731*x2_6*x10_0 + x13_6*x2_0 + 429496731*x10_6*x2_0 + x2_6*k_deg_0 + 607579857*x1_6*k1_0 + 458746535*x1_5*k1_0 + 377353676*x1_4*k1_0 + 177285012*x1_3*k1_0 + 173702404*x1_2*k1_0 + 332542644*x1_1*k1_0 + 147454163*x1_0*k1_0 + x2_6*k3_0 + x2_7,
x4_5^2*t1_0 + x4_6^2 + 1073741825*x2_3*x10_2 + 1073741825*x10_3*x2_2 + 1073741826*x2_4*x10_1 + 1073741826*x10_4*x2_1 + 644245096*x2_5*x10_0 + 644245096*x10_5*x2_0,
x5_5^2*t2_0 + x5_6^2 + 1073741817*x2_3*x13_2 + 1073741817*x13_3*x2_2 + 1073741822*x2_4*x13_1 + 1073741822*x13_4*x2_1 + 1073741826*x2_5*x13_0 + 1073741826*x13_5*x2_0,
x8_5^2*c5_0^3 + x8_6^2 + 536870913*x9_5,
x9_5 + 171134583*x7_4 + 531287456*x9_4,
1073741826*x3_6 + 1073741826*x2_6 + 1073741826*x1_6 + 1065558082,
1073741826*x12_2 + 178245876,
1073741826*x12_3 + 10332989,
1073741826*x12_4 + 1051264925,
1073741826*x12_5 + 183840190,
1073741826*x2_7 + 922650416,
1073741826*x9_1 + 662991663,
1073741826*x9_2 + 945328987,
1073741826*x9_3 + 310031740,
1073741826*x9_4 + 783639684,
1073741826*x9_5 + 120331649,
1073741826*x13_6 + 1073741826*x10_6 + 946664105,
1073741826*x7_5 + 115335724,
z_aux + 1073741826
When I solve the following problem
a,b
0
696*a*b^2 - 276*a*b + 260*a - 138*b^2 + 60*b - 65,
696*a^2*b - 138*a^2 - 276*a*b + 60*a + 260*b - 65
I get
[0, [1,[[[85070591730234615865843651857942052864 / 2^128, 85070591730234615865843651857942052864 / 2^128], [1 / 2^2, 1 / 2^2]]]]]:
while all numbers are exactly 1/4. Is that intended, so I am supposed to simplify the radicals myself?
Linux distributions must build for the lowest common denominator CPU. For the Fedora Linux distribution, the original x86_64 is still supported, meaning we cannot build msolve with AVX2 support. Would you consider detecting AVX2 support at runtime instead of at compile time?
One way that could be done is to add this code somewhere in src/neogb:
/* check for AVX2 availability */
#ifdef __amd64__
#include <cpuid.h>
int have_avx2;
static void __attribute__((constructor))
set_avx2_flag(void)
{
unsigned int eax, ebx, ecx, edx;
have_avx2 = __get_cpuid(7, &eax, &ebx, &ecx, &edx) && (ebx & bit_AVX2) != 0;
}
#endif
That works for gcc and clang. If you want to support other compilers, the code might get a little more complex. With have_avx2
available, then code like this:
#ifdef HAVE_AVX2
foo;
#else
bar;
#endif
would be transformed into this:
#ifdef __amd64__
if (have_avx2) {
foo;
} else
#endif
{
bar;
}
On x86_64 platforms, then -mavx could be passed to the compiler always, since the AVX2 code is not executed if __get_cpuid
indicates the CPU doesn't support AVX2. That would let you throw away most or all of several files in the m4 directory.
I can open a PR if you like the idea.
Currently, the libmsolve
and libneogb
libraries are built using the -release
flag for libtool, which generates files like libmsolve-0.6.5.so
. However, the libtool documentation warns:
every release of your package will not be binary compatible with any other release
It might be useful to use the version-info
flag instead and use libtool's library versioning system.
... as reported in https://trac.sagemath.org/ticket/31664#comment:20
This is a regression in 0.6.5 compared to 0.5.0.
With 0.5.0 one has
$ if $(msolve -h >/dev/null); then echo ok; else echo oops; fi
ok
but with 0.6.5, no
$ if $(msolve -h >/dev/null); then echo ok; else echo oops; fi
oops
Found while working on sagemath/sage#37673
File in.ms contains the following:
z1, z2, z3
1073741827
7*z1*z2+5*z2*z3+z3^2+z1+5*z3+10,
7*z3^2-27*z1^2-15*z2^2+59*z3+3*z1,
8*z1^2+13*z1*z3+10*z3^2+z2+z1
Now, typing the following command ./msolve -g 2 -f in.ms -o out.ms
results in Illegal instruction (core dumped)
.
Same result on AMD epic and on Ryzen 7, same with the 0.6.5 release on the website and the 0.6.5-1 in the Arch linux packages.
$ coredumpctl info 19647
PID: 19647 (msolve)
UID: 1000 (votroto)
GID: 1000 (votroto)
Signal: 4 (ILL)
Timestamp: Wed 2024-04-03 14:30:49 CEST (2h 31min ago)
Command Line: msolve -g 1 -f cona.ms -o conagb.ms
Executable: /usr/bin/msolve
Control Group: /user.slice/user-1000.slice/session-2.scope
Unit: session-2.scope
Slice: user-1000.slice
Session: 2
Owner UID: 1000 (votroto)
Boot ID: 8f23e8e8a7a344b1a1c4774af2e2ad34
Machine ID: 0a28cbc9d0c445bba276547b812bd8b2
Hostname: votrotot14
Storage: /var/lib/systemd/coredump/core.msolve.1000.8f23e8e8a7a344b1a1c4774af2e2ad34.19647.1712147449000000.zst (present)
Size on Disk: 297.3K
Message: Process 19647 (msolve) of user 1000 dumped core.
Stack trace of thread 19647:
#0 0x00007b7425ef2816 initialize_basis_hash_table (libneogb-0.6.5.so + 0x8816)
#1 0x00007b7425ef478b initialize_basis (libneogb-0.6.5.so + 0xa78b)
#2 0x00005a5ffe79f6c2 n/a (msolve + 0x286c2)
#3 0x00005a5ffe781dc6 n/a (msolve + 0xadc6)
#4 0x00005a5ffe77c5b8 n/a (msolve + 0x55b8)
#5 0x00007b7424c3bcd0 n/a (libc.so.6 + 0x25cd0)
#6 0x00007b7424c3bd8a __libc_start_main (libc.so.6 + 0x25d8a)
#7 0x00005a5ffe77cde5 n/a (msolve + 0x5de5)
ELF object binary architecture: AMD x86-64
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.