From 27b8e65a9d4d29b5e53d4b64a7d44be2364f3e72 Mon Sep 17 00:00:00 2001 From: Sasha Demin Date: Fri, 12 Jan 2024 09:47:39 +0100 Subject: [PATCH] upd. benchmarks --- benchmark/benchmark_systems.jl | 50 ++++++++++++++++--- benchmark/generate/benchmark_generators.jl | 2 +- benchmark/one_script_to_run_them_all.jl | 6 +-- benchmark/results/benchmark_result_8.md | 44 ++++++++++++++++ .../results/groebner/benchmark_result_4.md | 50 +++++++++++-------- .../results/groebner/benchmark_result_7.md | 46 +++++++++++++++++ .../results/groebner/benchmark_result_8.md | 44 ++++++++++++++++ .../results/learn_apply/benchmark_result_1.md | 45 +++++++++-------- benchmark/results/maple/benchmark_result_4.md | 40 +++++++-------- benchmark/results/maple/benchmark_result_7.md | 42 ++++++++++++++++ benchmark/results/maple/benchmark_result_8.md | 44 ++++++++++++++++ .../results/msolve/benchmark_result_8.md | 44 ++++++++++++++++ .../results/openf4/benchmark_result_8.md | 44 ++++++++++++++++ .../results/singular/benchmark_result_7.md | 46 +++++++++++++++++ .../results/singular/benchmark_result_8.md | 44 ++++++++++++++++ src/utils/examples.jl | 2 +- 16 files changed, 517 insertions(+), 76 deletions(-) create mode 100644 benchmark/results/benchmark_result_8.md create mode 100644 benchmark/results/groebner/benchmark_result_7.md create mode 100644 benchmark/results/groebner/benchmark_result_8.md create mode 100644 benchmark/results/maple/benchmark_result_7.md create mode 100644 benchmark/results/maple/benchmark_result_8.md create mode 100644 benchmark/results/msolve/benchmark_result_8.md create mode 100644 benchmark/results/openf4/benchmark_result_8.md create mode 100644 benchmark/results/singular/benchmark_result_7.md create mode 100644 benchmark/results/singular/benchmark_result_8.md diff --git a/benchmark/benchmark_systems.jl b/benchmark/benchmark_systems.jl index b994c7db..daab4406 100644 --- a/benchmark/benchmark_systems.jl +++ b/benchmark/benchmark_systems.jl @@ -23,6 +23,8 @@ function get_benchmark_suite(id) benchmark_set_6() elseif id == 7 benchmark_set_7() + elseif id == 8 + benchmark_set_8() end end @@ -71,7 +73,11 @@ function benchmark_set_1() ("reimer 6", Groebner.reimern(6, k=ground_field)), ("reimer 7", Groebner.reimern(7, k=ground_field)), ("reimer 8", Groebner.reimern(8, k=ground_field)), - ("reimer 9", Groebner.reimern(9, k=ground_field)) + ("reimer 9", Groebner.reimern(9, k=ground_field)), + ("chandra 11", Groebner.chandran(11, k=ground_field)), + ("chandra 12", Groebner.chandran(12, k=ground_field)), + ("chandra 13", Groebner.chandran(13, k=ground_field)), + ("chandra 14", Groebner.chandran(14, k=ground_field)) ] (name="Integers modulo 2^30 + 3", field=ground_field, systems=systems) @@ -98,13 +104,19 @@ function benchmark_set_2() ("noon 8", Groebner.noonn(8, k=ground_field)), ("noon 9", Groebner.noonn(9, k=ground_field)), ("noon 10", Groebner.noonn(10, k=ground_field)), + ("noon 11", Groebner.noonn(11, k=ground_field)), ("henrion 5", Groebner.henrion5(k=ground_field)), ("henrion 6", Groebner.henrion6(k=ground_field)), ("henrion 7", Groebner.henrion7(k=ground_field)), + ("henrion 8", Groebner.henrion8(k=ground_field)), ("reimer 6", Groebner.reimern(6, k=ground_field)), ("reimer 7", Groebner.reimern(7, k=ground_field)), ("reimer 8", Groebner.reimern(8, k=ground_field)), - ("reimer 9", Groebner.reimern(9, k=ground_field)) + ("reimer 9", Groebner.reimern(9, k=ground_field)), + ("chandra 11", Groebner.chandran(11, k=ground_field)), + ("chandra 12", Groebner.chandran(12, k=ground_field)), + ("chandra 13", Groebner.chandran(13, k=ground_field)), + ("chandra 14", Groebner.chandran(14, k=ground_field)) ] (name="Integers modulo 1031", field=ground_field, systems=systems) @@ -129,9 +141,11 @@ function benchmark_set_3() ("reimer 6", Groebner.reimern(6, k=ground_field)), ("reimer 7", Groebner.reimern(7, k=ground_field)), ("reimer 8", Groebner.reimern(8, k=ground_field)), - ("chandra 4", Groebner.chandran(4, k=ground_field, ordering=:degrevlex)), - ("chandra 5", Groebner.chandran(5, k=ground_field, ordering=:degrevlex)), - ("chandra 6", Groebner.chandran(6, k=ground_field, ordering=:degrevlex)), + ("chandra 9", Groebner.chandran(9, k=ground_field, ordering=:degrevlex)), + ("chandra 10", Groebner.chandran(10, k=ground_field, ordering=:degrevlex)), + ("chandra 11", Groebner.chandran(11, k=ground_field, ordering=:degrevlex)), + ("chandra 12", Groebner.chandran(12, k=ground_field, ordering=:degrevlex)), + ("chandra 13", Groebner.chandran(13, k=ground_field, ordering=:degrevlex)), ("reimer 7", Groebner.reimern(7, k=ground_field)), ("reimer 8", Groebner.reimern(8, k=ground_field)), ("ipp", Groebner.ipp(k=ground_field, tol=0.0, ordering=:degrevlex)) @@ -175,10 +189,14 @@ end function benchmark_set_7() ground_field = AbstractAlgebra.QQ systems = [ + ("chandra 5", Groebner.chandran(5, ordering=:degrevlex, k=ground_field)), + ("chandra 6", Groebner.chandran(6, ordering=:degrevlex, k=ground_field)), + ("chandra 7", Groebner.chandran(7, ordering=:degrevlex, k=ground_field)), + ("chandra 8", Groebner.chandran(8, ordering=:degrevlex, k=ground_field)), + ("chandra 9", Groebner.chandran(9, ordering=:degrevlex, k=ground_field)), + ("chandra 10", Groebner.chandran(10, ordering=:degrevlex, k=ground_field)), ("chandra 11", Groebner.chandran(11, ordering=:degrevlex, k=ground_field)), ("chandra 12", Groebner.chandran(12, ordering=:degrevlex, k=ground_field)), - ("chandra 13", Groebner.chandran(13, ordering=:degrevlex, k=ground_field)), - ("chandra 14", Groebner.chandran(14, ordering=:degrevlex, k=ground_field)), ("boon", Groebner.boon(ordering=:degrevlex, k=ground_field)), ("rps10", Groebner.rps10(ordering=:degrevlex, k=ground_field)), ("ipp", Groebner.ipp(ordering=:degrevlex, k=ground_field)) @@ -186,3 +204,21 @@ function benchmark_set_7() (name="HC", field=ground_field, systems=systems) end + +function benchmark_set_8() + ground_field = AbstractAlgebra.GF(2^30 + 3) + systems = [ + ("chandra 5", Groebner.chandran(5, ordering=:degrevlex, k=ground_field)), + ("chandra 6", Groebner.chandran(6, ordering=:degrevlex, k=ground_field)), + ("chandra 7", Groebner.chandran(7, ordering=:degrevlex, k=ground_field)), + ("chandra 8", Groebner.chandran(8, ordering=:degrevlex, k=ground_field)), + ("chandra 9", Groebner.chandran(9, ordering=:degrevlex, k=ground_field)), + ("chandra 10", Groebner.chandran(10, ordering=:degrevlex, k=ground_field)), + ("chandra 11", Groebner.chandran(11, ordering=:degrevlex, k=ground_field)), + ("chandra 12", Groebner.chandran(12, ordering=:degrevlex, k=ground_field)), + ("chandra 13", Groebner.chandran(13, ordering=:degrevlex, k=ground_field)), + ("chandra 14", Groebner.chandran(14, ordering=:degrevlex, k=ground_field)) + ] + + (name="HC modulo 2^30 + 3", field=ground_field, systems=systems) +end diff --git a/benchmark/generate/benchmark_generators.jl b/benchmark/generate/benchmark_generators.jl index 207aa3ea..ab8f1559 100644 --- a/benchmark/generate/benchmark_generators.jl +++ b/benchmark/generate/benchmark_generators.jl @@ -66,7 +66,7 @@ function generate_benchmark_source_for_maple( println(buf, "with(Groebner):") println(buf, "with(PolynomialIdeals):") println(buf, "kernelopts(numcpus=1);") - system_repr = join(map(s -> "\t\t" * s, map(repr, system)), ",\n") + system_repr = replace(join(map(s -> "\t\t" * s, map(repr, system)), ",\n"), "//" => "/") vars_repr = join(map(string, gens(ring)), ", ") println(buf, "") println(buf, "runtime := 2^1000:") diff --git a/benchmark/one_script_to_run_them_all.jl b/benchmark/one_script_to_run_them_all.jl index df479498..0528e961 100644 --- a/benchmark/one_script_to_run_them_all.jl +++ b/benchmark/one_script_to_run_them_all.jl @@ -877,15 +877,15 @@ end function check_args(args) backend = args["backend"] @assert backend in ("groebner", "singular", "maple", "openf4", "msolve", "ALL") - if backend == "openf4" && args["suite"] in [3] + if backend == "openf4" && args["suite"] in [3, 7] throw("Running benchmarks over the rationals is not possible for openf4") end - if backend == "msolve" && args["suite"] in [3] && args["validate"] != "no" + if backend == "msolve" && args["suite"] in [3, 7] && args["validate"] != "no" throw( "Validating results for msolve over the rationals is not possible. Use command line option --validate=no" ) end - if backend == "learn_apply" && args in [3] + if backend == "learn_apply" && args in [3, 7] throw("Cannot learn & apply over the rationals") end end diff --git a/benchmark/results/benchmark_result_8.md b/benchmark/results/benchmark_result_8.md new file mode 100644 index 00000000..5d909323 --- /dev/null +++ b/benchmark/results/benchmark_result_8.md @@ -0,0 +1,44 @@ +## Benchmark results + +2024-01-12T09:17:58.879 + +Benchmarked backends: Any["groebner", "maple", "msolve", "openf4", "singular"] + +Benchmark suite: HC modulo 2^30 + 3 + +- Workers: 4 +- Timeout: 1000 s +- Aggregated over: 1 runs + +**All timings in seconds.** + +|Model|groebner|maple|msolve|openf4|singular| +|:----|---|---|---|---|---| +|chandra 5|0.00|0.01|0.02|0.01|0.00| +|chandra 6|0.00|0.01|0.02|0.03|0.00| +|chandra 7|0.00|0.01|0.03|0.03|0.01| +|chandra 8|0.01|0.02|0.04|0.08|0.06| +|chandra 9|0.04|0.05|0.08|0.56|0.40| +|chandra 10|0.32|0.16|0.20|1.70|2.62| +|chandra 11|0.87|0.81|0.95|9.92|23.09| +|chandra 12|4.65|4.55|5.16|71.29|183.02| +|chandra 13|32.91|26.50|33.15|503.61| - | + +*Benchmarking environment:* + +* Total RAM (GiB): 188 +* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz +* Julia version: 1.9.2 + +Versions of the dependencies: + +* Primes : 0.5.5 +* TimerOutputs : 0.5.23 +* PrecompileTools : 1.2.0 +* MultivariatePolynomials : 0.5.3 +* Combinatorics : 1.0.2 +* AbstractAlgebra : 0.34.7 +* Nemo : 0.38.3 +* Atomix : 0.1.0 +* ExprTools : 0.1.10 +* PrettyTables : 2.3.1 diff --git a/benchmark/results/groebner/benchmark_result_4.md b/benchmark/results/groebner/benchmark_result_4.md index 8a8ef3ba..e8d7d260 100644 --- a/benchmark/results/groebner/benchmark_result_4.md +++ b/benchmark/results/groebner/benchmark_result_4.md @@ -1,13 +1,13 @@ ## Benchmark results -2024-01-12T06:08:17.235 +2024-01-12T08:37:44.375 Benchmarked backend: groebner Benchmark suite: SIAN modulo 2^30 + 3 - Workers: 16 -- Timeout: 5000 s +- Timeout: 1000 s - Aggregated over: 1 runs **All timings in seconds.** @@ -16,44 +16,50 @@ Benchmark suite: SIAN modulo 2^30 + 3 |:----|---| |Biohydrogenation|0.00| |Biohydrogenation_with_weights|0.01| -|ChemicalReactionNetwork|0.33| -|ChemicalReactionNetwork_with_weights|0.51| -|Cholera|65.40| -|Cholera_with_weights|69.96| +|COVID_m1|0.65| +|COVID_m1_with_weights|0.19| +|ChemicalReactionNetwork|0.38| +|ChemicalReactionNetwork_with_weights|0.55| +|Cholera|52.40| +|Cholera_with_weights|57.69| |DAISY_ex3|0.00| |DAISY_ex3_with_weights|0.00| |DAISY_mamil3|0.00| |DAISY_mamil3_with_weights|0.00| |DAISY_mamil4|0.32| -|DAISY_mamil4_with_weights|0.34| +|DAISY_mamil4_with_weights|0.31| +|Goodwin| - | +|Goodwin_with_weights|223.73| |HIV|0.01| -|HIV2|3.35| -|HIV2_with_weights|2.58| -|HIV_with_weights|0.01| +|HIV2|3.14| +|HIV2_with_weights|2.16| +|HIV_with_weights|0.03| |LV|0.00| |LV_with_weights|0.00| |Lipolysis|0.00| |Lipolysis_with_weights|0.00| -|NFkB|1629.72| -|NFkB_with_weights|559.35| +|NFkB| - | +|NFkB_with_weights|285.44| |OralGlucose|0.00| |OralGlucose_with_weights|0.00| |Pharm| - | -|Pharm_with_weights|1922.79| +|Pharm_with_weights| - | |SEIR|0.00| -|SEIR2|0.01| -|SEIR2_with_weights|0.05| -|SEIR_with_weights|0.00| -|SIRSForced|0.76| -|SIRSForced_with_weights|0.20| +|SEIR2| - | +|SEIR2_with_weights|0.03| +|SEIRP| - | +|SEIRP_with_weights|34.90| +|SEIR_with_weights| - | +|SIRSForced|0.72| +|SIRSForced_with_weights|0.27| |SIR_R0|0.00| -|SIR_R0_with_weights|0.00| -|SlowFast|0.00| +|SIR_R0_with_weights|0.02| +|SlowFast| - | |SlowFast_with_weights|0.00| -|Treatment|0.01| +|Treatment| - | |Treatment_with_weights|0.03| |Tumor|0.05| -|Tumor_with_weights|0.21| +|Tumor_with_weights|0.18| *Benchmarking environment:* diff --git a/benchmark/results/groebner/benchmark_result_7.md b/benchmark/results/groebner/benchmark_result_7.md new file mode 100644 index 00000000..c3faaaa7 --- /dev/null +++ b/benchmark/results/groebner/benchmark_result_7.md @@ -0,0 +1,46 @@ +## Benchmark results + +2024-01-12T09:04:15.474 + +Benchmarked backend: groebner + +Benchmark suite: HC + +- Workers: 4 +- Timeout: 1200 s +- Aggregated over: 1 runs + +**All timings in seconds.** + +|Model|Total, s| +|:----|---| +|boon|0.01| +|chandra 5|0.01| +|chandra 6|0.04| +|chandra 7|0.22| +|chandra 8|0.44| +|chandra 9|2.52| +|chandra 10|5.07| +|chandra 11|17.69| +|chandra 12|108.19| +|ipp|185.73| +|rps10| - | + +*Benchmarking environment:* + +* Total RAM (GiB): 188 +* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz +* Julia version: 1.9.2 + +Versions of the dependencies: + +* Primes : 0.5.5 +* TimerOutputs : 0.5.23 +* PrecompileTools : 1.2.0 +* MultivariatePolynomials : 0.5.3 +* Combinatorics : 1.0.2 +* AbstractAlgebra : 0.34.7 +* Nemo : 0.38.3 +* Atomix : 0.1.0 +* ExprTools : 0.1.10 +* PrettyTables : 2.3.1 diff --git a/benchmark/results/groebner/benchmark_result_8.md b/benchmark/results/groebner/benchmark_result_8.md new file mode 100644 index 00000000..0b1821d2 --- /dev/null +++ b/benchmark/results/groebner/benchmark_result_8.md @@ -0,0 +1,44 @@ +## Benchmark results + +2024-01-12T08:50:04.619 + +Benchmarked backend: groebner + +Benchmark suite: HC modulo 2^30 + 3 + +- Workers: 4 +- Timeout: 1000 s +- Aggregated over: 1 runs + +**All timings in seconds.** + +|Model|Total, s| +|:----|---| +|chandra 5|0.00| +|chandra 6|0.00| +|chandra 7|0.00| +|chandra 8|0.01| +|chandra 9|0.04| +|chandra 10|0.32| +|chandra 11|0.87| +|chandra 12|4.65| +|chandra 13|32.91| + +*Benchmarking environment:* + +* Total RAM (GiB): 188 +* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz +* Julia version: 1.9.2 + +Versions of the dependencies: + +* Primes : 0.5.5 +* TimerOutputs : 0.5.23 +* PrecompileTools : 1.2.0 +* MultivariatePolynomials : 0.5.3 +* Combinatorics : 1.0.2 +* AbstractAlgebra : 0.34.7 +* Nemo : 0.38.3 +* Atomix : 0.1.0 +* ExprTools : 0.1.10 +* PrettyTables : 2.3.1 diff --git a/benchmark/results/learn_apply/benchmark_result_1.md b/benchmark/results/learn_apply/benchmark_result_1.md index 5d539c7e..e160dd9d 100644 --- a/benchmark/results/learn_apply/benchmark_result_1.md +++ b/benchmark/results/learn_apply/benchmark_result_1.md @@ -1,43 +1,44 @@ ## Benchmark results -2024-01-11T10:13:26.466 +2024-01-12T08:36:22.358 Benchmarked backend: learn_apply Benchmark suite: Integers modulo 2^30 + 3 - Workers: 8 -- Timeout: 1800 s +- Timeout: 5400 s - Aggregated over: 1 runs **All timings in seconds.** |Model|F4, s|Learn, s|Apply, s|Apply 4x, s| -|-----|---|---|---|---| -|cyclic 7|0.08|0.21|0.03|0.05| -|cyclic 8|1.26|4.13|0.55|0.77| -|cyclic 9| - | - | - | - | +|:----|---|---|---|---| +|cyclic 7|0.12|0.19|0.03|0.06| +|cyclic 8|1.44|4.01|0.58|0.75| +|cyclic 9|104.46|643.68|73.29|245.08| |cyclic 10| - | - | - | - | |dummy|0.00|0.00|0.00|0.00| -|eco 11|0.37|1.16|0.19|0.27| -|eco 12|2.80|12.12|1.11|1.89| -|eco 13|14.62|106.86|4.41|6.30| -|eco 14| - | - | - | - | +|eco 11|0.37|1.16|0.16|0.28| +|eco 12|2.80|12.76|1.19|1.91| +|eco 13|10.69|133.29|4.89|7.66| +|eco 14|124.62|833.97|66.71|100.08| |henrion 5|0.00|0.00|0.00|0.00| -|henrion 6|0.08|0.06|0.02|0.06| -|henrion 7|2.67|7.92|1.11|1.70| +|henrion 6|0.07|0.07|0.02|0.05| +|henrion 7|3.08|9.28|1.05|1.98| |henrion 8| - | - | - | - | -|katsura 10|0.92|5.34|0.35|0.74| -|katsura 11|9.96|113.54|3.65|6.17| -|katsura 12| - | - | - | - | +|katsura 10|0.78|5.30|0.31|0.58| +|katsura 11|5.46|74.63|3.36|6.33| +|katsura 12|56.40|592.94|24.49|36.21| |katsura 13| - | - | - | - | -|noon 7|0.17|0.30|0.04|0.08| -|noon 8|1.99|2.02|0.33|0.58| -|noon 9|20.80|19.38|1.74|3.55| -|noon 10|164.54|139.06|10.37|25.71| -|reimer 6|0.06|0.08|0.07|0.02| -|reimer 7|1.19|1.74|0.11|0.28| -|reimer 8|30.14|84.51|2.60|4.25| +|noon 7|0.25|0.24|0.04|0.12| +|noon 8|2.05|2.07|0.34|0.74| +|noon 9|15.37|16.85|1.54|2.87| +|noon 10|189.33|194.49|11.82|27.34| +|noon 11| - | - | - | - | +|reimer 6|0.05|0.17|0.01|0.02| +|reimer 7|1.30|1.91|0.18|0.26| +|reimer 8|19.21|58.04|2.55|3.99| |reimer 9| - | - | - | - | *Benchmarking environment:* diff --git a/benchmark/results/maple/benchmark_result_4.md b/benchmark/results/maple/benchmark_result_4.md index 10930383..ba2efbe1 100644 --- a/benchmark/results/maple/benchmark_result_4.md +++ b/benchmark/results/maple/benchmark_result_4.md @@ -1,13 +1,13 @@ ## Benchmark results -2024-01-12T07:58:42.929 +2024-01-12T08:15:25.284 Benchmarked backend: maple Benchmark suite: SIAN modulo 2^30 + 3 - Workers: 16 -- Timeout: 30 s +- Timeout: 3600 s - Aggregated over: 1 runs **All timings in seconds.** @@ -18,46 +18,46 @@ Benchmark suite: SIAN modulo 2^30 + 3 |Biohydrogenation_with_weights|0.01| |COVID_m1|0.72| |COVID_m1_with_weights|0.14| -|ChemicalReactionNetwork|0.29| -|ChemicalReactionNetwork_with_weights|0.24| -|Cholera| - | -|Cholera_with_weights| - | +|ChemicalReactionNetwork|0.27| +|ChemicalReactionNetwork_with_weights|0.23| +|Cholera|42.16| +|Cholera_with_weights|46.12| |DAISY_ex3|0.01| |DAISY_ex3_with_weights|0.01| |DAISY_mamil3|0.01| |DAISY_mamil3_with_weights|0.01| -|DAISY_mamil4|0.43| -|DAISY_mamil4_with_weights|0.45| -|Goodwin| - | -|Goodwin_with_weights| - | +|DAISY_mamil4|0.42| +|DAISY_mamil4_with_weights|0.43| +|Goodwin|822.12| +|Goodwin_with_weights|146.60| |HIV|0.02| -|HIV2|3.13| -|HIV2_with_weights|1.41| +|HIV2|3.01| +|HIV2_with_weights|1.38| |HIV_with_weights|0.01| |LV|0.01| |LV_with_weights|0.01| |Lipolysis|0.01| |Lipolysis_with_weights|0.01| -|NFkB| - | -|NFkB_with_weights| - | +|NFkB|314.56| +|NFkB_with_weights|163.44| |OralGlucose|0.01| |OralGlucose_with_weights|0.01| |Pharm| - | -|Pharm_with_weights| - | +|Pharm_with_weights|438.33| |SEIR|0.01| |SEIR2|0.03| -|SEIR2_with_weights|0.04| -|SEIRP| - | -|SEIRP_with_weights|20.44| +|SEIR2_with_weights|0.03| +|SEIRP|85.14| +|SEIRP_with_weights|19.86| |SEIR_with_weights|0.01| -|SIRSForced|0.70| +|SIRSForced|0.74| |SIRSForced_with_weights|0.13| |SIR_R0|0.01| |SIR_R0_with_weights|0.01| |SlowFast|0.01| |SlowFast_with_weights|0.01| |Treatment|0.01| -|Treatment_with_weights|0.01| +|Treatment_with_weights|0.02| |Tumor|0.05| |Tumor_with_weights|0.03| diff --git a/benchmark/results/maple/benchmark_result_7.md b/benchmark/results/maple/benchmark_result_7.md new file mode 100644 index 00000000..a4a8fa5e --- /dev/null +++ b/benchmark/results/maple/benchmark_result_7.md @@ -0,0 +1,42 @@ +## Benchmark results + +2024-01-12T08:36:25.401 + +Benchmarked backend: maple + +Benchmark suite: HC + +- Workers: 4 +- Timeout: 1000 s +- Aggregated over: 1 runs + +**All timings in seconds.** + +|Model|Total, s| +|:----|---| +|boon|0.01| +|chandra 5|0.07| +|chandra 6|0.13| +|chandra 7|0.36| +|chandra 8|1.40| +|ipp| - | +|rps10| - | + +*Benchmarking environment:* + +* Total RAM (GiB): 188 +* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz +* Julia version: 1.9.2 + +Versions of the dependencies: + +* Primes : 0.5.5 +* TimerOutputs : 0.5.23 +* PrecompileTools : 1.2.0 +* MultivariatePolynomials : 0.5.3 +* Combinatorics : 1.0.2 +* AbstractAlgebra : 0.34.7 +* Nemo : 0.38.3 +* Atomix : 0.1.0 +* ExprTools : 0.1.10 +* PrettyTables : 2.3.1 diff --git a/benchmark/results/maple/benchmark_result_8.md b/benchmark/results/maple/benchmark_result_8.md new file mode 100644 index 00000000..429d5cdd --- /dev/null +++ b/benchmark/results/maple/benchmark_result_8.md @@ -0,0 +1,44 @@ +## Benchmark results + +2024-01-12T09:07:56.319 + +Benchmarked backend: maple + +Benchmark suite: HC modulo 2^30 + 3 + +- Workers: 4 +- Timeout: 1000 s +- Aggregated over: 1 runs + +**All timings in seconds.** + +|Model|Total, s| +|:----|---| +|chandra 5|0.01| +|chandra 6|0.01| +|chandra 7|0.01| +|chandra 8|0.02| +|chandra 9|0.05| +|chandra 10|0.16| +|chandra 11|0.81| +|chandra 12|4.55| +|chandra 13|26.50| + +*Benchmarking environment:* + +* Total RAM (GiB): 188 +* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz +* Julia version: 1.9.2 + +Versions of the dependencies: + +* Primes : 0.5.5 +* TimerOutputs : 0.5.23 +* PrecompileTools : 1.2.0 +* MultivariatePolynomials : 0.5.3 +* Combinatorics : 1.0.2 +* AbstractAlgebra : 0.34.7 +* Nemo : 0.38.3 +* Atomix : 0.1.0 +* ExprTools : 0.1.10 +* PrettyTables : 2.3.1 diff --git a/benchmark/results/msolve/benchmark_result_8.md b/benchmark/results/msolve/benchmark_result_8.md new file mode 100644 index 00000000..1e84e828 --- /dev/null +++ b/benchmark/results/msolve/benchmark_result_8.md @@ -0,0 +1,44 @@ +## Benchmark results + +2024-01-12T09:08:59.948 + +Benchmarked backend: msolve + +Benchmark suite: HC modulo 2^30 + 3 + +- Workers: 4 +- Timeout: 1000 s +- Aggregated over: 1 runs + +**All timings in seconds.** + +|Model|Total, s| +|:----|---| +|chandra 5|0.02| +|chandra 6|0.02| +|chandra 7|0.03| +|chandra 8|0.04| +|chandra 9|0.08| +|chandra 10|0.20| +|chandra 11|0.95| +|chandra 12|5.16| +|chandra 13|33.15| + +*Benchmarking environment:* + +* Total RAM (GiB): 188 +* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz +* Julia version: 1.9.2 + +Versions of the dependencies: + +* Primes : 0.5.5 +* TimerOutputs : 0.5.23 +* PrecompileTools : 1.2.0 +* MultivariatePolynomials : 0.5.3 +* Combinatorics : 1.0.2 +* AbstractAlgebra : 0.34.7 +* Nemo : 0.38.3 +* Atomix : 0.1.0 +* ExprTools : 0.1.10 +* PrettyTables : 2.3.1 diff --git a/benchmark/results/openf4/benchmark_result_8.md b/benchmark/results/openf4/benchmark_result_8.md new file mode 100644 index 00000000..60653708 --- /dev/null +++ b/benchmark/results/openf4/benchmark_result_8.md @@ -0,0 +1,44 @@ +## Benchmark results + +2024-01-12T09:17:56.545 + +Benchmarked backend: openf4 + +Benchmark suite: HC modulo 2^30 + 3 + +- Workers: 4 +- Timeout: 1000 s +- Aggregated over: 1 runs + +**All timings in seconds.** + +|Model|Total, s| +|:----|---| +|chandra 5|0.01| +|chandra 6|0.03| +|chandra 7|0.03| +|chandra 8|0.08| +|chandra 9|0.56| +|chandra 10|1.70| +|chandra 11|9.92| +|chandra 12|71.29| +|chandra 13|503.61| + +*Benchmarking environment:* + +* Total RAM (GiB): 188 +* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz +* Julia version: 1.9.2 + +Versions of the dependencies: + +* Primes : 0.5.5 +* TimerOutputs : 0.5.23 +* PrecompileTools : 1.2.0 +* MultivariatePolynomials : 0.5.3 +* Combinatorics : 1.0.2 +* AbstractAlgebra : 0.34.7 +* Nemo : 0.38.3 +* Atomix : 0.1.0 +* ExprTools : 0.1.10 +* PrettyTables : 2.3.1 diff --git a/benchmark/results/singular/benchmark_result_7.md b/benchmark/results/singular/benchmark_result_7.md new file mode 100644 index 00000000..2579e822 --- /dev/null +++ b/benchmark/results/singular/benchmark_result_7.md @@ -0,0 +1,46 @@ +## Benchmark results + +2024-01-12T09:24:27.518 + +Benchmarked backend: singular + +Benchmark suite: HC + +- Workers: 4 +- Timeout: 1200 s +- Aggregated over: 1 runs + +**All timings in seconds.** + +|Model|Total, s| +|:----|---| +|boon|0.00| +|chandra 5|0.00| +|chandra 6|0.01| +|chandra 7|0.13| +|chandra 8|0.59| +|chandra 9|3.14| +|chandra 10| - | +|chandra 11| - | +|chandra 12| - | +|ipp| - | +|rps10| - | + +*Benchmarking environment:* + +* Total RAM (GiB): 188 +* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz +* Julia version: 1.9.2 + +Versions of the dependencies: + +* Primes : 0.5.5 +* TimerOutputs : 0.5.23 +* PrecompileTools : 1.2.0 +* MultivariatePolynomials : 0.5.3 +* Combinatorics : 1.0.2 +* AbstractAlgebra : 0.34.7 +* Nemo : 0.38.3 +* Atomix : 0.1.0 +* ExprTools : 0.1.10 +* PrettyTables : 2.3.1 diff --git a/benchmark/results/singular/benchmark_result_8.md b/benchmark/results/singular/benchmark_result_8.md new file mode 100644 index 00000000..7022bf2b --- /dev/null +++ b/benchmark/results/singular/benchmark_result_8.md @@ -0,0 +1,44 @@ +## Benchmark results + +2024-01-12T09:07:27.279 + +Benchmarked backend: singular + +Benchmark suite: HC modulo 2^30 + 3 + +- Workers: 4 +- Timeout: 1000 s +- Aggregated over: 1 runs + +**All timings in seconds.** + +|Model|Total, s| +|:----|---| +|chandra 5|0.00| +|chandra 6|0.00| +|chandra 7|0.01| +|chandra 8|0.06| +|chandra 9|0.40| +|chandra 10|2.62| +|chandra 11|23.09| +|chandra 12|183.02| +|chandra 13| - | + +*Benchmarking environment:* + +* Total RAM (GiB): 188 +* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz +* Julia version: 1.9.2 + +Versions of the dependencies: + +* Primes : 0.5.5 +* TimerOutputs : 0.5.23 +* PrecompileTools : 1.2.0 +* MultivariatePolynomials : 0.5.3 +* Combinatorics : 1.0.2 +* AbstractAlgebra : 0.34.7 +* Nemo : 0.38.3 +* Atomix : 0.1.0 +* ExprTools : 0.1.10 +* PrettyTables : 2.3.1 diff --git a/src/utils/examples.jl b/src/utils/examples.jl index 0ee1905a..2b7582d0 100644 --- a/src/utils/examples.jl +++ b/src/utils/examples.jl @@ -462,7 +462,7 @@ end function rps10(; tol=0, np=AbstractAlgebra, k=np.QQ, ordering=:lex) _, (g1, g2, g3, p1, p2, p3, q0, q1, q2, q3) = np.polynomial_ring(k, ["g1", "g2", "g3", "p1", "p2", "p3", "q0", "q1", "q2", "q3",], ordering=ordering) equations = [ - -rationalize(BigInt, rationalize(BigInt, 0.1279703687075118, tol=tol), tol=tol)*g1^2 - rationalize(BigInt, rationalize(BigInt, 0.48596123125526264, tol=tol), tol=tol)*g1*g2 + rationalize(BigInt, 0.30699556370717496, tol=tol)*g2^2 + rationalize(BigInt, 0.3778977698527674, tol=tol)*g1*g3 - rationalize(BigInt, 0.23404544076569642, tol=tol)*g2*g3 + rationalize(BigInt, 0.01563626178508072, tol=tol)*g3^2 + rationalize(BigInt, 0.327228678790004, tol=tol)*g1^2*p1 + rationalize(BigInt, 0.8426829275672494, tol=tol)*g1*g2*p1 + rationalize(BigInt, 0.6075645757034159, tol=tol)*g2^2*p1 - rationalize(BigInt, 1.1371405598667543, tol=tol)*g1*g3*p1 + rationalize(BigInt, 0.229293271620915, tol=tol)*g2*g3*p1 - rationalize(BigInt, 0.21948911177437957, tol=tol)*g3^2*p1 - rationalize(BigInt, 0.2075154964282774, tol=tol)*g1^2*p1^2 - rationalize(BigInt, 0.37702968479068544, tol=tol)*g1*g2*p1^2 - rationalize(BigInt, 0.16688906819159421, tol=tol)*g2^2*p1^2 + rationalize(BigInt, 0.7986954318323025, tol=tol)*g1*g3*p1^2 + rationalize(BigInt, 0.866826144775651, tol=tol)*g2*g3*p1^2 + rationalize(BigInt, 0.37440456461987165, tol=tol)*g3^2*p1^2 + rationalize(BigInt, 1.5614616440131446, tol=tol)*g1^2*p2 - rationalize(BigInt, 1.7388380675822595, tol=tol)*g1*g2*p2 + rationalize(BigInt, 0.06790915713070725, tol=tol)*g2^2*p2 - rationalize(BigInt, 0.4309121044684771, tol=tol)*g1*g3*p2 + rationalize(BigInt, 0.9086272006283425, tol=tol)*g2*g3*p2 - rationalize(BigInt, 0.2764931751394603, tol=tol)*g3^2*p2 - rationalize(BigInt, 1.8163349832174116, tol=tol)*g1^2*p1*p2 - rationalize(BigInt, 0.9167144057621401, tol=tol)*g1*g2*p1*p2 + rationalize(BigInt, 1.0203368504488892, tol=tol)*g2^2*p1*p2 - rationalize(BigInt, 0.23194646823111892, tol=tol)*g1*g3*p1*p2 + rationalize(BigInt, 0.539670777307627, tol=tol)*g2*g3*p1*p2 + rationalize(BigInt, 0.7959981327685224, tol=tol)*g3^2*p1*p2 + rationalize(BigInt, 0.08717268867521591, tol=tol)*g1^2*p2^2 + rationalize(BigInt, 0.9504154644263471, tol=tol)*g1*g2*p2^2 - rationalize(BigInt, 0.48206756571420756, tol=tol)*g2^2*p2^2 - rationalize(BigInt, 1.065062423127697, tol=tol)*g1*g3*p2^2 + rationalize(BigInt, 0.1209952909274163, tol=tol)*g2*g3*p2^2 + rationalize(BigInt, 0.3948948770389917, tol=tol)*g3^2*p2^2 + rationalize(BigInt, 0.289766299873838, tol=tol)*g1^2*p3 - rationalize(BigInt, 1.2778927965251532, tol=tol)*g1*g2*p3 + rationalize(BigInt, 0.9087896778886251, tol=tol)*g2^2*p3 - rationalize(BigInt, 0.5812612591154215, tol=tol)*g1*g3*p3 - rationalize(BigInt, 0.7595904624983555, tol=tol)*g2*g3*p3 + rationalize(BigInt, 0.5084892760496751, tol=tol)*g3^2*p3 - rationalize(BigInt, 0.3268802641947883, tol=tol)*g1^2*p1*p3 + rationalize(BigInt, 0.657630238424344, tol=tol)*g1*g2*p1*p3 + rationalize(BigInt, 1.1093919363972093, tol=tol)*g2^2*p1*p3 + rationalize(BigInt, 0.4551393419480071, tol=tol)*g1*g3*p1*p3 + rationalize(BigInt, 1.8553852513069364, tol=tol)*g2*g3*p1*p3 - rationalize(BigInt, 0.7825116722024211, tol=tol)*g3^2*p1*p3 + rationalize(BigInt, 0.5810469298461638, tol=tol)*g1^2*p2*p3 - rationalize(BigInt, 1.1557382363783264, tol=tol)*g1*g2*p2*p3 - rationalize(BigInt, 0.11367961187637783, tol=tol)*g2^2*p2*p3 + rationalize(BigInt, 1.7077140933509898, tol=tol)*g1*g3*p2*p3 - rationalize(BigInt, 0.36547942767108677, tol=tol)*g2*g3*p2*p3 - rationalize(BigInt, 0.4673673179697859, tol=tol)*g3^2*p2*p3 + rationalize(BigInt, 0.12034280775306151, tol=tol)*g1^2*p3^2 - rationalize(BigInt, 0.5733857796356615, tol=tol)*g1*g2*p3^2 + rationalize(BigInt, 0.6489566339058018, tol=tol)*g2^2*p3^2 + rationalize(BigInt, 0.2663669912953945, tol=tol)*g1*g3*p3^2 - rationalize(BigInt, 0.9878214357030672, tol=tol)*g2*g3*p3^2 - rationalize(BigInt, 0.7692994416588633, tol=tol)*g3^2*p3^2 - rationalize(BigInt, 0.19466145678474384, tol=tol)*q0 - rationalize(BigInt, 0.7153041427190404, tol=tol)*p1*q0 - rationalize(BigInt, 1.3528776260043915, tol=tol)*p2*q0 - rationalize(BigInt, 1.7070452538121381, tol=tol)*p3*q0 - rationalize(BigInt, 1.0516635822669562, tol=tol)*q1 + rationalize(BigInt, 1.2244185478631853, tol=tol)*p1*q1 - rationalize(BigInt, 0.05844567698552443, tol=tol)*p2*q1 - rationalize(BigInt, 0.37706149953585283, tol=tol)*p3*q1 + rationalize(BigInt, 0.580102254517945, tol=tol)*q2 + rationalize(BigInt, 1.2898860704586343, tol=tol)*p1*q2 - rationalize(BigInt, 0.6655948497180294, tol=tol)*p2*q2 + rationalize(BigInt, 0.697758704890495, tol=tol)*p3*q2 - rationalize(BigInt, 0.042921436747585445, tol=tol)*q3 + rationalize(BigInt, 0.5172073855756967, tol=tol)*p1*q3 + rationalize(BigInt, 0.6917094054122289, tol=tol)*p2*q3 - rationalize(BigInt, 1.4579672250860476, tol=tol)*p3*q3, + -rationalize(BigInt, 0.1279703687075118, tol=tol)*g1^2 - rationalize(BigInt, 0.48596123125526264, tol=tol)*g1*g2 + rationalize(BigInt, 0.30699556370717496, tol=tol)*g2^2 + rationalize(BigInt, 0.3778977698527674, tol=tol)*g1*g3 - rationalize(BigInt, 0.23404544076569642, tol=tol)*g2*g3 + rationalize(BigInt, 0.01563626178508072, tol=tol)*g3^2 + rationalize(BigInt, 0.327228678790004, tol=tol)*g1^2*p1 + rationalize(BigInt, 0.8426829275672494, tol=tol)*g1*g2*p1 + rationalize(BigInt, 0.6075645757034159, tol=tol)*g2^2*p1 - rationalize(BigInt, 1.1371405598667543, tol=tol)*g1*g3*p1 + rationalize(BigInt, 0.229293271620915, tol=tol)*g2*g3*p1 - rationalize(BigInt, 0.21948911177437957, tol=tol)*g3^2*p1 - rationalize(BigInt, 0.2075154964282774, tol=tol)*g1^2*p1^2 - rationalize(BigInt, 0.37702968479068544, tol=tol)*g1*g2*p1^2 - rationalize(BigInt, 0.16688906819159421, tol=tol)*g2^2*p1^2 + rationalize(BigInt, 0.7986954318323025, tol=tol)*g1*g3*p1^2 + rationalize(BigInt, 0.866826144775651, tol=tol)*g2*g3*p1^2 + rationalize(BigInt, 0.37440456461987165, tol=tol)*g3^2*p1^2 + rationalize(BigInt, 1.5614616440131446, tol=tol)*g1^2*p2 - rationalize(BigInt, 1.7388380675822595, tol=tol)*g1*g2*p2 + rationalize(BigInt, 0.06790915713070725, tol=tol)*g2^2*p2 - rationalize(BigInt, 0.4309121044684771, tol=tol)*g1*g3*p2 + rationalize(BigInt, 0.9086272006283425, tol=tol)*g2*g3*p2 - rationalize(BigInt, 0.2764931751394603, tol=tol)*g3^2*p2 - rationalize(BigInt, 1.8163349832174116, tol=tol)*g1^2*p1*p2 - rationalize(BigInt, 0.9167144057621401, tol=tol)*g1*g2*p1*p2 + rationalize(BigInt, 1.0203368504488892, tol=tol)*g2^2*p1*p2 - rationalize(BigInt, 0.23194646823111892, tol=tol)*g1*g3*p1*p2 + rationalize(BigInt, 0.539670777307627, tol=tol)*g2*g3*p1*p2 + rationalize(BigInt, 0.7959981327685224, tol=tol)*g3^2*p1*p2 + rationalize(BigInt, 0.08717268867521591, tol=tol)*g1^2*p2^2 + rationalize(BigInt, 0.9504154644263471, tol=tol)*g1*g2*p2^2 - rationalize(BigInt, 0.48206756571420756, tol=tol)*g2^2*p2^2 - rationalize(BigInt, 1.065062423127697, tol=tol)*g1*g3*p2^2 + rationalize(BigInt, 0.1209952909274163, tol=tol)*g2*g3*p2^2 + rationalize(BigInt, 0.3948948770389917, tol=tol)*g3^2*p2^2 + rationalize(BigInt, 0.289766299873838, tol=tol)*g1^2*p3 - rationalize(BigInt, 1.2778927965251532, tol=tol)*g1*g2*p3 + rationalize(BigInt, 0.9087896778886251, tol=tol)*g2^2*p3 - rationalize(BigInt, 0.5812612591154215, tol=tol)*g1*g3*p3 - rationalize(BigInt, 0.7595904624983555, tol=tol)*g2*g3*p3 + rationalize(BigInt, 0.5084892760496751, tol=tol)*g3^2*p3 - rationalize(BigInt, 0.3268802641947883, tol=tol)*g1^2*p1*p3 + rationalize(BigInt, 0.657630238424344, tol=tol)*g1*g2*p1*p3 + rationalize(BigInt, 1.1093919363972093, tol=tol)*g2^2*p1*p3 + rationalize(BigInt, 0.4551393419480071, tol=tol)*g1*g3*p1*p3 + rationalize(BigInt, 1.8553852513069364, tol=tol)*g2*g3*p1*p3 - rationalize(BigInt, 0.7825116722024211, tol=tol)*g3^2*p1*p3 + rationalize(BigInt, 0.5810469298461638, tol=tol)*g1^2*p2*p3 - rationalize(BigInt, 1.1557382363783264, tol=tol)*g1*g2*p2*p3 - rationalize(BigInt, 0.11367961187637783, tol=tol)*g2^2*p2*p3 + rationalize(BigInt, 1.7077140933509898, tol=tol)*g1*g3*p2*p3 - rationalize(BigInt, 0.36547942767108677, tol=tol)*g2*g3*p2*p3 - rationalize(BigInt, 0.4673673179697859, tol=tol)*g3^2*p2*p3 + rationalize(BigInt, 0.12034280775306151, tol=tol)*g1^2*p3^2 - rationalize(BigInt, 0.5733857796356615, tol=tol)*g1*g2*p3^2 + rationalize(BigInt, 0.6489566339058018, tol=tol)*g2^2*p3^2 + rationalize(BigInt, 0.2663669912953945, tol=tol)*g1*g3*p3^2 - rationalize(BigInt, 0.9878214357030672, tol=tol)*g2*g3*p3^2 - rationalize(BigInt, 0.7692994416588633, tol=tol)*g3^2*p3^2 - rationalize(BigInt, 0.19466145678474384, tol=tol)*q0 - rationalize(BigInt, 0.7153041427190404, tol=tol)*p1*q0 - rationalize(BigInt, 1.3528776260043915, tol=tol)*p2*q0 - rationalize(BigInt, 1.7070452538121381, tol=tol)*p3*q0 - rationalize(BigInt, 1.0516635822669562, tol=tol)*q1 + rationalize(BigInt, 1.2244185478631853, tol=tol)*p1*q1 - rationalize(BigInt, 0.05844567698552443, tol=tol)*p2*q1 - rationalize(BigInt, 0.37706149953585283, tol=tol)*p3*q1 + rationalize(BigInt, 0.580102254517945, tol=tol)*q2 + rationalize(BigInt, 1.2898860704586343, tol=tol)*p1*q2 - rationalize(BigInt, 0.6655948497180294, tol=tol)*p2*q2 + rationalize(BigInt, 0.697758704890495, tol=tol)*p3*q2 - rationalize(BigInt, 0.042921436747585445, tol=tol)*q3 + rationalize(BigInt, 0.5172073855756967, tol=tol)*p1*q3 + rationalize(BigInt, 0.6917094054122289, tol=tol)*p2*q3 - rationalize(BigInt, 1.4579672250860476, tol=tol)*p3*q3, rationalize(BigInt, 0.16011034303688113, tol=tol)*g1^2 - rationalize(BigInt, 0.9005468824403076, tol=tol)*g1*g2 - rationalize(BigInt, 0.3519015838689263, tol=tol)*g2^2 + rationalize(BigInt, 0.5202586158306898, tol=tol)*g1*g3 + rationalize(BigInt, 0.908682123022068, tol=tol)*g2*g3 - rationalize(BigInt, 0.4464562170645777, tol=tol)*g3^2 - rationalize(BigInt, 0.13844524415679324, tol=tol)*g1^2*p1 + rationalize(BigInt, 1.5568085644333742, tol=tol)*g1*g2*p1 + rationalize(BigInt, 1.6863862382239232, tol=tol)*g2^2*p1 - rationalize(BigInt, 1.7409458121154344, tol=tol)*g1*g3*p1 - rationalize(BigInt, 0.13872356093602894, tol=tol)*g2*g3*p1 - rationalize(BigInt, 0.5159047084859331, tol=tol)*g3^2*p1 - rationalize(BigInt, 0.2741643484200128, tol=tol)*g1^2*p1^2 - rationalize(BigInt, 0.34212012775550327, tol=tol)*g1*g2*p1^2 - rationalize(BigInt, 0.07542436599114127, tol=tol)*g2^2*p1^2 + rationalize(BigInt, 0.37458987278720324, tol=tol)*g1*g3*p1^2 + rationalize(BigInt, 0.4782561996467687, tol=tol)*g2*g3*p1^2 + rationalize(BigInt, 0.3495887144111541, tol=tol)*g3^2*p1^2 + rationalize(BigInt, 0.41377445473869573, tol=tol)*g1^2*p2 - rationalize(BigInt, 1.5789383736211624, tol=tol)*g1*g2*p2 + rationalize(BigInt, 1.268319517294935, tol=tol)*g2^2*p2 + rationalize(BigInt, 0.6163793667190677, tol=tol)*g1*g3*p2 - rationalize(BigInt, 0.43374574206406646, tol=tol)*g2*g3*p2 - rationalize(BigInt, 0.2061458017243186, tol=tol)*g3^2*p2 + rationalize(BigInt, 0.14555549639831628, tol=tol)*g1^2*p1*p2 - rationalize(BigInt, 1.1674745895517964, tol=tol)*g1*g2*p1*p2 - rationalize(BigInt, 0.9428064489876502, tol=tol)*g2^2*p1*p2 + rationalize(BigInt, 0.0024916775818734295, tol=tol)*g1*g3*p1*p2 + rationalize(BigInt, 0.5291621555283466, tol=tol)*g2*g3*p1*p2 + rationalize(BigInt, 0.7972509525893339, tol=tol)*g3^2*p1*p2 + rationalize(BigInt, 0.1807885464109201, tol=tol)*g1^2*p2^2 + rationalize(BigInt, 0.9404541869824675, tol=tol)*g1*g2*p2^2 - rationalize(BigInt, 0.5780030515551372, tol=tol)*g2^2*p2^2 - rationalize(BigInt, 1.0257418447585547, tol=tol)*g1*g3*p2^2 + rationalize(BigInt, 0.09251778173989315, tol=tol)*g2*g3*p2^2 + rationalize(BigInt, 0.39721450514421713, tol=tol)*g3^2*p2^2 + rationalize(BigInt, 0.40272988912109214, tol=tol)*g1^2*p3 - rationalize(BigInt, 0.8272484673958682, tol=tol)*g1*g2*p3 + rationalize(BigInt, 1.057139636924469, tol=tol)*g2^2*p3 - rationalize(BigInt, 0.12353226665002319, tol=tol)*g1*g3*p3 - rationalize(BigInt, 2.5741855761862396, tol=tol)*g2*g3*p3 + rationalize(BigInt, 1.560474007685759, tol=tol)*g3^2*p3 - rationalize(BigInt, 0.6150996832616941, tol=tol)*g1^2*p1*p3 + rationalize(BigInt, 0.09937192239106099, tol=tol)*g1*g2*p1*p3 + rationalize(BigInt, 0.8226042775491553, tol=tol)*g2^2*p1*p3 + rationalize(BigInt, 0.4732438203631739, tol=tol)*g1*g3*p1*p3 + rationalize(BigInt, 1.6946050580334677, tol=tol)*g2*g3*p1*p3 - rationalize(BigInt, 0.20750459428746135, tol=tol)*g3^2*p1*p3 + rationalize(BigInt, 0.7556396990592089, tol=tol)*g1^2*p2*p3 - rationalize(BigInt, 1.412614951501404, tol=tol)*g1*g2*p2*p3 - rationalize(BigInt, 0.09676545515565128, tol=tol)*g2^2*p2*p3 - rationalize(BigInt, 0.9781576342585658, tol=tol)*g1*g3*p2*p3 + rationalize(BigInt, 2.5006617995144724, tol=tol)*g2*g3*p2*p3 - rationalize(BigInt, 0.6588742439035575, tol=tol)*g3^2*p2*p3 + rationalize(BigInt, 0.09337580200909272, tol=tol)*g1^2*p3^2 - rationalize(BigInt, 0.5983340592269643, tol=tol)*g1*g2*p3^2 + rationalize(BigInt, 0.6534274175462785, tol=tol)*g2^2*p3^2 + rationalize(BigInt, 0.6511519719713513, tol=tol)*g1*g3*p3^2 - rationalize(BigInt, 0.5707739813866619, tol=tol)*g2*g3*p3^2 - rationalize(BigInt, 0.7468032195553712, tol=tol)*g3^2*p3^2 + rationalize(BigInt, 0.6382474578966228, tol=tol)*q0 - rationalize(BigInt, 1.032036285581197, tol=tol)*p1*q0 - rationalize(BigInt, 1.4759481703093122, tol=tol)*p2*q0 - rationalize(BigInt, 3.0203435337313205, tol=tol)*p3*q0 - rationalize(BigInt, 0.22812438675350769, tol=tol)*q1 - rationalize(BigInt, 0.2157590670168509, tol=tol)*p1*q1 - rationalize(BigInt, 0.1270558344695696, tol=tol)*p2*q1 - rationalize(BigInt, 0.5148593639524484, tol=tol)*p3*q1 + rationalize(BigInt, 1.3667793800860086, tol=tol)*q2 - rationalize(BigInt, 0.06171123442924746, tol=tol)*p1*q2 - rationalize(BigInt, 0.7314954155886625, tol=tol)*p2*q2 + rationalize(BigInt, 0.7189348075213543, tol=tol)*p3*q2 - rationalize(BigInt, 0.902118536026858, tol=tol)*q3 + rationalize(BigInt, 0.43214823742186254, tol=tol)*p1*q3 + rationalize(BigInt, 0.6677624868260497, tol=tol)*p2*q3 + rationalize(BigInt, 0.5162571144422815, tol=tol)*p3*q3, rationalize(BigInt, 0.20816475809219404, tol=tol)*g1^2 - rationalize(BigInt, 0.44624795696445435, tol=tol)*g1*g2 + rationalize(BigInt, 0.1573457781818856, tol=tol)*g2^2 + rationalize(BigInt, 0.2432511536576595, tol=tol)*g1*g3 - rationalize(BigInt, 0.4587424991969163, tol=tol)*g2*g3 - rationalize(BigInt, 0.048748564896809544, tol=tol)*g3^2 - rationalize(BigInt, 0.542424299098038, tol=tol)*g1^2*p1 + rationalize(BigInt, 0.412606879197033, tol=tol)*g1*g2*p1 + rationalize(BigInt, 0.026228493490255755, tol=tol)*g2^2*p1 - rationalize(BigInt, 0.7135454436169615, tol=tol)*g1*g3*p1 + rationalize(BigInt, 0.38566725023570736, tol=tol)*g2*g3*p1 + rationalize(BigInt, 0.06641935708182738, tol=tol)*g3^2*p1 + rationalize(BigInt, 0.1946156279601214, tol=tol)*g1^2*p1^2 + rationalize(BigInt, 1.0726514255671113, tol=tol)*g1*g2*p1^2 - rationalize(BigInt, 0.29746151974577967, tol=tol)*g2^2*p1^2 + rationalize(BigInt, 0.3474150051655493, tol=tol)*g1*g3*p1^2 + rationalize(BigInt, 1.5662794253637933, tol=tol)*g2*g3*p1^2 + rationalize(BigInt, 0.10284589178565828, tol=tol)*g3^2*p1^2 + rationalize(BigInt, 0.8655281158446179, tol=tol)*g1^2*p2 - rationalize(BigInt, 1.4227007533612923, tol=tol)*g1*g2*p2 - rationalize(BigInt, 0.3561608986253729, tol=tol)*g2^2*p2 - rationalize(BigInt, 0.7002053827479838, tol=tol)*g1*g3*p2 + rationalize(BigInt, 0.1451263721376322, tol=tol)*g2*g3*p2 - rationalize(BigInt, 0.4446427929457582, tol=tol)*g3^2*p2 - rationalize(BigInt, 0.35089234105147404, tol=tol)*g1^2*p1*p2 - rationalize(BigInt, 1.8637325747105546, tol=tol)*g1*g2*p1*p2 - rationalize(BigInt, 0.7643910878410862, tol=tol)*g2^2*p1*p2 + rationalize(BigInt, 0.7421389633104346, tol=tol)*g1*g3*p1*p2 + rationalize(BigInt, 0.8043890896223826, tol=tol)*g2*g3*p1*p2 + rationalize(BigInt, 1.1152834288925604, tol=tol)*g3^2*p1*p2 - rationalize(BigInt, 0.05058692105297476, tol=tol)*g1^2*p2^2 - rationalize(BigInt, 0.8545531093164939, tol=tol)*g1*g2*p2^2 - rationalize(BigInt, 0.25045809562785276, tol=tol)*g2^2*p2^2 - rationalize(BigInt, 1.482438556873845, tol=tol)*g1*g3*p2^2 - rationalize(BigInt, 0.2760311985894717, tol=tol)*g2*g3*p2^2 + rationalize(BigInt, 0.30104501668082756, tol=tol)*g3^2*p2^2 + rationalize(BigInt, 0.41615153726461007, tol=tol)*g1^2*p3 - rationalize(BigInt, 1.6031132124173149, tol=tol)*g1*g2*p3 + rationalize(BigInt, 1.1652768530802575, tol=tol)*g2^2*p3 + rationalize(BigInt, 0.1236694347662175, tol=tol)*g1*g3*p3 - rationalize(BigInt, 0.033510271732486586, tol=tol)*g2*g3*p3 + rationalize(BigInt, 0.6625023868605743, tol=tol)*g3^2*p3 - rationalize(BigInt, 0.06941899872446193, tol=tol)*g1^2*p1*p3 - rationalize(BigInt, 0.5612725019588681, tol=tol)*g1*g2*p1*p3 + rationalize(BigInt, 1.4835363108262836, tol=tol)*g2^2*p1*p3 - rationalize(BigInt, 0.8310204341509994, tol=tol)*g1*g3*p1*p3 + rationalize(BigInt, 1.3650887611787323, tol=tol)*g2*g3*p1*p3 - rationalize(BigInt, 1.4141173121018216, tol=tol)*g3^2*p1*p3 - rationalize(BigInt, 0.2915853970368523, tol=tol)*g1^2*p2*p3 - rationalize(BigInt, 1.2521117933146961, tol=tol)*g1*g2*p2*p3 + rationalize(BigInt, 0.38706376702247, tol=tol)*g2^2*p2*p3 + rationalize(BigInt, 1.2309129178715645, tol=tol)*g1*g3*p2*p3 + rationalize(BigInt, 2.001338697637118, tol=tol)*g2*g3*p2*p3 - rationalize(BigInt, 0.09547836998561768, tol=tol)*g3^2*p2*p3 - rationalize(BigInt, 0.14402870690714664, tol=tol)*g1^2*p3^2 - rationalize(BigInt, 0.2180983162506176, tol=tol)*g1*g2*p3^2 + rationalize(BigInt, 0.5479196153736324, tol=tol)*g2^2*p3^2 + rationalize(BigInt, 1.1350235517082958, tol=tol)*g1*g3*p3^2 - rationalize(BigInt, 1.2902482267743214, tol=tol)*g2*g3*p3^2 - rationalize(BigInt, 0.40389090846648584, tol=tol)*g3^2*p3^2 - rationalize(BigInt, 0.31676197137727014, tol=tol)*q0 + rationalize(BigInt, 0.44977644852595483, tol=tol)*p1*q0 - rationalize(BigInt, 0.06472442427348668, tol=tol)*p2*q0 - rationalize(BigInt, 2.2439307772054415, tol=tol)*p3*q0 - rationalize(BigInt, 0.5547165223690258, tol=tol)*q1 + rationalize(BigInt, 0.23831878651082344, tol=tol)*p1*q1 + rationalize(BigInt, 0.031977776730485255, tol=tol)*p2*q1 + rationalize(BigInt, 0.16687455406564522, tol=tol)*p3*q1 + rationalize(BigInt, 0.9423377906275198, tol=tol)*q2 + rationalize(BigInt, 1.376589178886685, tol=tol)*p1*q2 + rationalize(BigInt, 0.5306523901876015, tol=tol)*p2*q2 + rationalize(BigInt, 0.4754891181933043, tol=tol)*p3*q2 + rationalize(BigInt, 0.09673230093655334, tol=tol)*q3 + rationalize(BigInt, 0.0892904130224598, tol=tol)*p1*q3 + rationalize(BigInt, 0.943551163213123, tol=tol)*p2*q3 - rationalize(BigInt, 1.2527250130712726, tol=tol)*p3*q3, -rationalize(BigInt, 0.04095049824628835, tol=tol)*g1^2 + rationalize(BigInt, 0.043116025511842154, tol=tol)*g1*g2 + rationalize(BigInt, 0.003940499198786224, tol=tol)*g2^2 + rationalize(BigInt, 0.7629770334036455, tol=tol)*g1*g3 - rationalize(BigInt, 0.8492350760146794, tol=tol)*g2*g3 - rationalize(BigInt, 0.2784174783424625, tol=tol)*g3^2 + rationalize(BigInt, 0.4281444292173086, tol=tol)*g1^2*p1 - rationalize(BigInt, 0.8828960936117035, tol=tol)*g1*g2*p1 + rationalize(BigInt, 0.5676682886279524, tol=tol)*g2^2*p1 - rationalize(BigInt, 1.3924527881029736, tol=tol)*g1*g3*p1 - rationalize(BigInt, 0.08671339002537767, tol=tol)*g2*g3*p1 - rationalize(BigInt, 0.7256104095984146, tol=tol)*g3^2*p1 - rationalize(BigInt, 0.5422313181564682, tol=tol)*g1^2*p1^2 + rationalize(BigInt, 0.4871946471731439, tol=tol)*g1*g2*p1^2 + rationalize(BigInt, 0.33193585698170985, tol=tol)*g2^2*p1^2 - rationalize(BigInt, 0.10273772900088107, tol=tol)*g1*g3*p1^2 + rationalize(BigInt, 0.6624874115365778, tol=tol)*g2*g3*p1^2 + rationalize(BigInt, 0.21029546117475836, tol=tol)*g3^2*p1^2 + rationalize(BigInt, 1.1356911567255628, tol=tol)*g1^2*p2 - rationalize(BigInt, 1.222100685178249, tol=tol)*g1*g2*p2 - rationalize(BigInt, 0.09334002143332033, tol=tol)*g2^2*p2 - rationalize(BigInt, 1.6524959396527132, tol=tol)*g1*g3*p2 + rationalize(BigInt, 1.5569725124184146, tol=tol)*g2*g3*p2 + rationalize(BigInt, 0.7669386068453008, tol=tol)*g3^2*p2 - rationalize(BigInt, 1.5587675264538823, tol=tol)*g1^2*p1*p2 - rationalize(BigInt, 1.1317581527003464, tol=tol)*g1*g2*p1*p2 + rationalize(BigInt, 0.01829080736739283, tol=tol)*g2^2*p1*p2 + rationalize(BigInt, 1.0020439814840232, tol=tol)*g1*g3*p1*p2 + rationalize(BigInt, 0.7984049760283556, tol=tol)*g2*g3*p1*p2 + rationalize(BigInt, 1.5404767190864894, tol=tol)*g3^2*p1*p2 + rationalize(BigInt, 0.4331904808414006, tol=tol)*g1^2*p2^2 - rationalize(BigInt, 0.1389285705830233, tol=tol)*g1*g2*p2^2 - rationalize(BigInt, 0.012183710127155694, tol=tol)*g2^2*p2^2 - rationalize(BigInt, 0.23769385136664706, tol=tol)*g1*g3*p2^2 + rationalize(BigInt, 0.24382837068218804, tol=tol)*g2*g3*p2^2 - rationalize(BigInt, 0.4210067707142449, tol=tol)*g3^2*p2^2 + rationalize(BigInt, 0.21198555697618326, tol=tol)*g1^2*p3 - rationalize(BigInt, 0.01647709154129892, tol=tol)*g1*g2*p3 - rationalize(BigInt, 0.18945218115272705, tol=tol)*g2^2*p3 + rationalize(BigInt, 0.77528301920843, tol=tol)*g1*g3*p3 - rationalize(BigInt, 2.0514046696465, tol=tol)*g2*g3*p3 + rationalize(BigInt, 0.10432028494512646, tol=tol)*g3^2*p3 - rationalize(BigInt, 0.1676311045685404, tol=tol)*g1^2*p1*p3 - rationalize(BigInt, 1.325546381572095, tol=tol)*g1*g2*p1*p3 + rationalize(BigInt, 0.8078478514339609, tol=tol)*g2^2*p1*p3 - rationalize(BigInt, 0.9669176278885212, tol=tol)*g1*g3*p1*p3 - rationalize(BigInt, 0.36872926793739896, tol=tol)*g2*g3*p1*p3 - rationalize(BigInt, 0.6402167468654205, tol=tol)*g3^2*p1*p3 + rationalize(BigInt, 0.6297207100844667, tol=tol)*g1^2*p2*p3 - rationalize(BigInt, 2.067771321161895, tol=tol)*g1*g2*p2*p3 - rationalize(BigInt, 0.17862819697751522, tol=tol)*g2^2*p2*p3 + rationalize(BigInt, 0.020391323549034297, tol=tol)*g1*g3*p2*p3 + rationalize(BigInt, 2.777563669744398, tol=tol)*g2*g3*p2*p3 - rationalize(BigInt, 0.45109251310695153, tol=tol)*g3^2*p2*p3 + rationalize(BigInt, 0.10904083731506761, tol=tol)*g1^2*p3^2 - rationalize(BigInt, 0.3482660765901206, tol=tol)*g1*g2*p3^2 - rationalize(BigInt, 0.31975214685455416, tol=tol)*g2^2*p3^2 + rationalize(BigInt, 0.34043158036752813, tol=tol)*g1*g3*p3^2 - rationalize(BigInt, 0.9063157822187657, tol=tol)*g2*g3*p3^2 + rationalize(BigInt, 0.21071130953948652, tol=tol)*g3^2*p3^2 + rationalize(BigInt, 0.31542747738996463, tol=tol)*q0 - rationalize(BigInt, 0.27020230824684643, tol=tol)*p1*q0 - rationalize(BigInt, 1.8092897421375431, tol=tol)*p2*q0 - rationalize(BigInt, 0.12685366076858268, tol=tol)*p3*q0 - rationalize(BigInt, 0.9721054060313574, tol=tol)*q1 + rationalize(BigInt, 1.4332583965298273, tol=tol)*p1*q1 - rationalize(BigInt, 0.3658292969614953, tol=tol)*p2*q1 - rationalize(BigInt, 0.458292808629767, tol=tol)*p3*q1 + rationalize(BigInt, 1.1057480001700448, tol=tol)*q2 + rationalize(BigInt, 0.649216154064302, tol=tol)*p1*q2 + rationalize(BigInt, 0.1435470147844548, tol=tol)*p2*q2 + rationalize(BigInt, 1.8049686045262234, tol=tol)*p3*q2 + rationalize(BigInt, 0.3619641675513017, tol=tol)*q3 + rationalize(BigInt, 1.0386298649000567, tol=tol)*p1*q3 - rationalize(BigInt, 0.2739870731830222, tol=tol)*p2*q3 - rationalize(BigInt, 0.38992289294835114, tol=tol)*p3*q3,