Benchmarks¶
-
sage.misc.benchmark.
SetPartitionsAk
(k)¶ Returns the combinatorial class of set partitions of type A_k.
EXAMPLES:
sage: A3 = SetPartitionsAk(3); A3 Set partitions of {1, ..., 3, -1, ..., -3} sage: A3.first() #random {{1, 2, 3, -1, -3, -2}} sage: A3.last() #random {{-1}, {-2}, {3}, {1}, {-3}, {2}} sage: A3.random_element() #random {{1, 3, -3, -1}, {2, -2}} sage: A3.cardinality() 203 sage: A2p5 = SetPartitionsAk(2.5); A2p5 Set partitions of {1, ..., 3, -1, ..., -3} with 3 and -3 in the same block sage: A2p5.cardinality() 52 sage: A2p5.first() #random {{1, 2, 3, -1, -3, -2}} sage: A2p5.last() #random {{-1}, {-2}, {2}, {3, -3}, {1}} sage: A2p5.random_element() #random {{-1}, {-2}, {3, -3}, {1, 2}}
-
sage.misc.benchmark.
SetPartitionsBk
(k)¶ Returns the combinatorial class of set partitions of type B_k. These are the set partitions where every block has size 2.
EXAMPLES:
sage: B3 = SetPartitionsBk(3); B3 Set partitions of {1, ..., 3, -1, ..., -3} with block size 2 sage: B3.first() #random {{2, -2}, {1, -3}, {3, -1}} sage: B3.last() #random {{1, 2}, {3, -2}, {-3, -1}} sage: B3.random_element() #random {{2, -1}, {1, -3}, {3, -2}} sage: B3.cardinality() 15 sage: B2p5 = SetPartitionsBk(2.5); B2p5 Set partitions of {1, ..., 3, -1, ..., -3} with 3 and -3 in the same block and with block size 2 sage: B2p5.first() #random {{2, -1}, {3, -3}, {1, -2}} sage: B2p5.last() #random {{1, 2}, {3, -3}, {-1, -2}} sage: B2p5.random_element() #random {{2, -2}, {3, -3}, {1, -1}} sage: B2p5.cardinality() 3
-
sage.misc.benchmark.
SetPartitionsIk
(k)¶ Returns the combinatorial class of set partitions of type I_k. These are set partitions with a propagating number of less than k. Note that the identity set partition {{1, -1}, ..., {k, -k}} is not in I_k.
EXAMPLES:
sage: I3 = SetPartitionsIk(3); I3 Set partitions of {1, ..., 3, -1, ..., -3} with propagating number < 3 sage: I3.cardinality() 197 sage: I3.first() #random {{1, 2, 3, -1, -3, -2}} sage: I3.last() #random {{-1}, {-2}, {3}, {1}, {-3}, {2}} sage: I3.random_element() #random {{-1}, {-3, -2}, {2, 3}, {1}} sage: I2p5 = SetPartitionsIk(2.5); I2p5 Set partitions of {1, ..., 3, -1, ..., -3} with 3 and -3 in the same block and propagating number < 3 sage: I2p5.cardinality() 50 sage: I2p5.first() #random {{1, 2, 3, -1, -3, -2}} sage: I2p5.last() #random {{-1}, {-2}, {2}, {3, -3}, {1}} sage: I2p5.random_element() #random {{-1}, {-2}, {1, 3, -3}, {2}}
-
sage.misc.benchmark.
SetPartitionsPRk
(k)¶
-
sage.misc.benchmark.
SetPartitionsPk
(k)¶ Returns the combinatorial class of set partitions of type P_k. These are the planar set partitions.
EXAMPLES:
sage: P3 = SetPartitionsPk(3); P3 Set partitions of {1, ..., 3, -1, ..., -3} that are planar sage: P3.cardinality() 132 sage: P3.first() #random {{1, 2, 3, -1, -3, -2}} sage: P3.last() #random {{-1}, {-2}, {3}, {1}, {-3}, {2}} sage: P3.random_element() #random {{1, 2, -1}, {-3}, {3, -2}} sage: P2p5 = SetPartitionsPk(2.5); P2p5 Set partitions of {1, ..., 3, -1, ..., -3} with 3 and -3 in the same block and that are planar sage: P2p5.cardinality() 42 sage: P2p5.first() #random {{1, 2, 3, -1, -3, -2}} sage: P2p5.last() #random {{-1}, {-2}, {2}, {3, -3}, {1}} sage: P2p5.random_element() #random {{1, 2, 3, -3}, {-1, -2}}
-
sage.misc.benchmark.
SetPartitionsRk
(k)¶
-
sage.misc.benchmark.
SetPartitionsSk
(k)¶ Returns the combinatorial class of set partitions of type S_k. There is a bijection between these set partitions and the permutations of 1, ..., k.
EXAMPLES:
sage: S3 = SetPartitionsSk(3); S3 Set partitions of {1, ..., 3, -1, ..., -3} with propagating number 3 sage: S3.cardinality() 6 sage: S3.list() #random [{{2, -2}, {3, -3}, {1, -1}}, {{1, -1}, {2, -3}, {3, -2}}, {{2, -1}, {3, -3}, {1, -2}}, {{1, -2}, {2, -3}, {3, -1}}, {{1, -3}, {2, -1}, {3, -2}}, {{1, -3}, {2, -2}, {3, -1}}] sage: S3.first() #random {{2, -2}, {3, -3}, {1, -1}} sage: S3.last() #random {{1, -3}, {2, -2}, {3, -1}} sage: S3.random_element() #random {{1, -3}, {2, -1}, {3, -2}} sage: S3p5 = SetPartitionsSk(3.5); S3p5 Set partitions of {1, ..., 4, -1, ..., -4} with 4 and -4 in the same block and propagating number 4 sage: S3p5.cardinality() 6 sage: S3p5.list() #random [{{2, -2}, {3, -3}, {1, -1}, {4, -4}}, {{2, -3}, {1, -1}, {4, -4}, {3, -2}}, {{2, -1}, {3, -3}, {1, -2}, {4, -4}}, {{2, -3}, {1, -2}, {4, -4}, {3, -1}}, {{1, -3}, {2, -1}, {4, -4}, {3, -2}}, {{1, -3}, {2, -2}, {4, -4}, {3, -1}}] sage: S3p5.first() #random {{2, -2}, {3, -3}, {1, -1}, {4, -4}} sage: S3p5.last() #random {{1, -3}, {2, -2}, {4, -4}, {3, -1}} sage: S3p5.random_element() #random {{1, -3}, {2, -2}, {4, -4}, {3, -1}}
-
sage.misc.benchmark.
SetPartitionsTk
(k)¶ Returns the combinatorial class of set partitions of type T_k. These are planar set partitions where every block is of size 2.
EXAMPLES:
sage: T3 = SetPartitionsTk(3); T3 Set partitions of {1, ..., 3, -1, ..., -3} with block size 2 and that are planar sage: T3.cardinality() 5 sage: T3.first() #random {{1, -3}, {2, 3}, {-1, -2}} sage: T3.last() #random {{1, 2}, {3, -1}, {-3, -2}} sage: T3.random_element() #random {{1, -3}, {2, 3}, {-1, -2}} sage: T2p5 = SetPartitionsTk(2.5); T2p5 Set partitions of {1, ..., 3, -1, ..., -3} with 3 and -3 in the same block and with block size 2 and that are planar sage: T2p5.cardinality() 2 sage: T2p5.first() #random {{2, -2}, {3, -3}, {1, -1}} sage: T2p5.last() #random {{1, 2}, {3, -3}, {-1, -2}}
-
sage.misc.benchmark.
bench0
()¶ Run a benchmark.
BENCHMARK:
sage: from sage.misc.benchmark import * sage: print(bench0()[0]) Benchmark 0: Factor the following polynomial over the rational numbers: (x^97+19*x+1)*(x^103-19*x^97+14)*(x^100-1)
-
sage.misc.benchmark.
bench1
()¶ Run a benchmark.
BENCHMARK:
sage: from sage.misc.benchmark import * sage: print(bench1()[0]) Find the Mordell-Weil group of the elliptic curve 5077A using mwrank
-
sage.misc.benchmark.
bench2
()¶ Run a benchmark.
BENCHMARK:
sage: from sage.misc.benchmark import * sage: print(bench2()[0]) Some basic arithmetic with very large Integer numbers: '3^1000001 * 19^100001
-
sage.misc.benchmark.
bench3
()¶ Run a benchmark.
BENCHMARK:
sage: from sage.misc.benchmark import * sage: print(bench3()[0]) Some basic arithmetic with very large Rational numbers: '(2/3)^100001 * (17/19)^100001
-
sage.misc.benchmark.
bench4
()¶ Run a benchmark.
BENCHMARK:
sage: from sage.misc.benchmark import * sage: print(bench4()[0]) Rational polynomial arithmetic using Sage. Compute (x^29+17*x-5)^200.
-
sage.misc.benchmark.
bench5
()¶ Run a benchmark.
BENCHMARK:
sage: from sage.misc.benchmark import * sage: print(bench5()[0]) Rational polynomial arithmetic using Sage. Compute (x^19 - 18*x + 1)^50 one hundred times.
-
sage.misc.benchmark.
bench6
()¶ Run a benchmark.
BENCHMARK:
sage: from sage.misc.benchmark import * sage: print(bench6()[0]) Compute the p-division polynomials of y^2 = x^3 + 37*x - 997 for primes p < 40.
-
sage.misc.benchmark.
bench7
()¶ Run a benchmark.
BENCHMARK:
sage: from sage.misc.benchmark import * sage: print(bench7()[0]) Compute the Mordell-Weil group of y^2 = x^3 + 37*x - 997.
-
sage.misc.benchmark.
benchmark
(n=-1)¶ Run a well-chosen range of Sage commands and record the time it takes for each to run.
INPUT:
- n – int (default: -1) the benchmark number; the default
- of -1 runs all the benchmarks.
OUTPUT:
list – summary of timings for each benchmark. int – if n == -1, also return the total timeEXAMPLE:
sage: from sage.misc.benchmark import * sage: _ = benchmark() Running benchmark 0 Benchmark 0: Factor the following polynomial over the rational numbers: (x^97+19*x+1)*(x^103-19*x^97+14)*(x^100-1) Time: ... seconds Running benchmark 1 Find the Mordell-Weil group of the elliptic curve 5077A using mwrank Time: ... seconds Running benchmark 2 Some basic arithmetic with very large Integer numbers: '3^1000001 * 19^100001 Time: ... seconds Running benchmark 3 Some basic arithmetic with very large Rational numbers: '(2/3)^100001 * (17/19)^100001 Time: ... seconds Running benchmark 4 Rational polynomial arithmetic using Sage. Compute (x^29+17*x-5)^200. Time: ... seconds Running benchmark 5 Rational polynomial arithmetic using Sage. Compute (x^19 - 18*x + 1)^50 one hundred times. Time: ... seconds Running benchmark 6 Compute the p-division polynomials of y^2 = x^3 + 37*x - 997 for primes p < 40. Time: ... seconds Running benchmark 7 Compute the Mordell-Weil group of y^2 = x^3 + 37*x - 997. Time: ... seconds Running benchmark 8