[GiNaC-devel] Custom power evaluation
Vladimir Kisil
kisilv at maths.leeds.ac.uk
Fri Oct 27 23:32:21 CEST 2006
Dear Richard and Alexei,
You are very preoccupied with slowdown of GiNac with new
patch. I am including (under the signature) two outputs from "make
check" with standard GiNaC and a patched one: *no obvious difference* in
timing.
>>>>> "RK" == Richard B Kreckel <kreckel at ginac.de> writes:
RK> My point is that with objects as specialized as theta functions
RK> or, equivalently, step functions, many specialized rules
RK> suddenly hold and it does not appear to make much sense adding
RK> virtual functions to the basic class in order to support just a
RK> few of them.
It looks like you missed the point: no new rules are hard-coded
into core GiNaC at all. The two virtual functions allow a user to include
seamless automatic evaluation for *his own specialised* object in
user-defined classes. It is up to the end user to decide which rule if
any he wish to be applied to which object. The price for this freedom
in term of speed is virtually nil.
Best wishes,
Vladimir
--
Vladimir V. Kisil email: kisilv at maths.leeds.ac.uk
-- www: http://maths.leeds.ac.uk/~kisilv/
GiNaC will now run through some basic timings:
timing commutative expansion and substitution.... passed
size: 100 200 400 800
time/s: 0.18 0.72 3.3 15.
timing Laurent series expansion of Gamma function.... passed
order: 20 25 30 35
time/s: 1.6 1.9 6.7 21.
timing determinant of univariate symbolic Vandermonde matrices.... passed
dim: 8x8 10x10 12x12 14x14
time/s: 0.16 0.40 3.5 30.
timing determinant of polyvariate symbolic Toeplitz matrices.... passed
dim: 7x7 8x8 9x9 10x10
time/s: 0.17 0.69 3.0 12.
timing hash map operations.... passed
size: 10000 50000 100000 500000
insert/s: 0.016 0.10 0.23 1.1
find/s: 0.012 0.052 0.11 0.62
erase/s: 0.0080 0.044 0.10 0.52
timing Lewis-Wester test A (divide factorials). passed 0.58s
timing Lewis-Wester test B (sum of rational numbers). passed 0.0034s
timing Lewis-Wester test C (gcd of big integers). passed 0.044s
timing Lewis-Wester test D (normalized sum of rational fcns). passed 0.13s
timing Lewis-Wester test E (normalized sum of rational fcns). passed 0.068s
timing Lewis-Wester test F (gcd of 2-var polys). passed 0.017s
timing Lewis-Wester test G (gcd of 3-var polys). passed 0.51s
timing Lewis-Wester test H (det of 80x80 Hilbert). passed 1.5s
timing Lewis-Wester test I (invert rank 40 Hilbert). passed 0.43s
timing Lewis-Wester test J (check rank 40 Hilbert). passed 0.26s
timing Lewis-Wester test K (invert rank 70 Hilbert). passed 2.9s
timing Lewis-Wester test L (check rank 70 Hilbert). passed 1.5s
timing Lewis-Wester test M1 (26x26 sparse, det). passed 0.058s
timing Lewis-Wester test M2 (101x101 sparse, det) disabled
timing Lewis-Wester test N (poly at rational fcns) disabled
timing Lewis-Wester test O1 (three 15x15 dets)... passed 11.s (average)
timing Lewis-Wester test O2 (Resultant) disabled
timing Lewis-Wester test P (det of sparse rank 101). passed 0.38s
timing Lewis-Wester test P' (det of less sparse rank 101). passed 0.98s
timing Lewis-Wester test Q (charpoly(P)). passed 24.s
timing Lewis-Wester test Q' (charpoly(P')). passed 45.s
timing computation of antipodes in Yukawa theory...... passed 15.s (total)
timing Fateman's polynomial expand benchmark. passed 83.s
PASS: run_times
============================================================================
GiNaC will now run through some basic timings:
timing commutative expansion and substitution.... passed
size: 100 200 400 800
time/s: 0.18 0.73 3.3 15.
timing Laurent series expansion of Gamma function.... passed
order: 20 25 30 35
time/s: 1.6 1.9 6.8 22.
timing determinant of univariate symbolic Vandermonde matrices.... passed
dim: 8x8 10x10 12x12 14x14
time/s: 0.16 0.39 3.5 29.
timing determinant of polyvariate symbolic Toeplitz matrices.... passed
dim: 7x7 8x8 9x9 10x10
time/s: 0.16 0.71 3.0 12.
timing hash map operations.... passed
size: 10000 50000 100000 500000
insert/s: 0.020 0.10 0.22 1.1
find/s: 0.012 0.052 0.11 0.60
erase/s: 0.0080 0.040 0.10 0.50
timing Lewis-Wester test A (divide factorials). passed 0.58s
timing Lewis-Wester test B (sum of rational numbers). passed 0.0036s
timing Lewis-Wester test C (gcd of big integers). passed 0.041s
timing Lewis-Wester test D (normalized sum of rational fcns). passed 0.14s
timing Lewis-Wester test E (normalized sum of rational fcns). passed 0.076s
timing Lewis-Wester test F (gcd of 2-var polys). passed 0.016s
timing Lewis-Wester test G (gcd of 3-var polys). passed 0.54s
timing Lewis-Wester test H (det of 80x80 Hilbert). passed 1.5s
timing Lewis-Wester test I (invert rank 40 Hilbert). passed 0.44s
timing Lewis-Wester test J (check rank 40 Hilbert). passed 0.25s
timing Lewis-Wester test K (invert rank 70 Hilbert). passed 2.9s
timing Lewis-Wester test L (check rank 70 Hilbert). passed 1.5s
timing Lewis-Wester test M1 (26x26 sparse, det). passed 0.064s
timing Lewis-Wester test M2 (101x101 sparse, det) disabled
timing Lewis-Wester test N (poly at rational fcns) disabled
timing Lewis-Wester test O1 (three 15x15 dets)... passed 11.s (average)
timing Lewis-Wester test O2 (Resultant) disabled
timing Lewis-Wester test P (det of sparse rank 101). passed 0.38s
timing Lewis-Wester test P' (det of less sparse rank 101). passed 1.00s
timing Lewis-Wester test Q (charpoly(P)). passed 23.s
timing Lewis-Wester test Q' (charpoly(P')). passed 44.s
timing computation of antipodes in Yukawa theory...... passed 14.s (total)
timing Fateman's polynomial expand benchmark. passed 86.s
PASS: run_times
More information about the GiNaC-devel
mailing list