JuliaAlgebra / MultivariatePolynomials.jl

Multivariate polynomials interface
https://juliaalgebra.github.io/MultivariatePolynomials.jl/stable/
Other
135 stars 27 forks source link

Add flatten_variable #238

Closed blegat closed 1 year ago

blegat commented 1 year ago

Part of https://github.com/JuliaAlgebra/MultivariatePolynomials.jl/issues/194

Int64

Benchmark 0

Before

Time Alloc Memory
SIMDPolynomials 376.346 ns 8 400 bytes
DynamicPolynomials 6.153 μs 196 10.81 KiB
TypedPolynomials 165.017 ns 4 336 bytes

After

Time Alloc Memory
SIMDPolynomials 358.810 ns 8 400 bytes
DynamicPolynomials 6.579 μs 196 10.81 KiB
TypedPolynomials 170.237 ns 4 336 bytes

Benchmark 1

Before

Time Alloc Memory
SIMDPolynomials 129.194 μs 1904 2.10 MiB
DynamicPolynomials 1.067 ms 24046 3.28 MiB
TypedPolynomials 118.609 μs 1125 2.25 MiB

After

Time Alloc Memory
SIMDPolynomials 132.809 μs 1904 2.10 MiB
DynamicPolynomials 1.166 ms 24080 3.28 MiB
TypedPolynomials 124.154 μs 1125 2.25 MiB

Benchmark 2

Before

Time Alloc Memory
SIMDPolynomials 4.766 μs 266 44.00 KiB
DynamicPolynomials 53.152 μs 1983 161.02 KiB
TypedPolynomials 5.725 μs 191 74.66 KiB

After

Time Alloc Memory
SIMDPolynomials 4.770 μs 263 43.88 KiB
DynamicPolynomials 55.238 μs 1967 160.36 KiB
TypedPolynomials 5.576 μs 188 74.64 KiB

Benchmark 3

Before

Time Alloc Memory
SIMDPolynomials 690.351 μs 31375 17.62 MiB
DynamicPolynomials 5.755 ms 156579 25.83 MiB
TypedPolynomials 378.289 μs 6438 25.03 MiB

After

Time Alloc Memory
SIMDPolynomials 677.469 μs 31351 17.62 MiB
DynamicPolynomials 6.198 ms 156645 25.84 MiB
TypedPolynomials 372.314 μs 6414 25.02 MiB

BigInt

Benchmark 0

Before

Time Alloc Memory
SIMDPolynomials 908.128 ns 42 1008 bytes
DynamicPolynomials 6.748 μs 236 11.50 KiB
TypedPolynomials 716.375 ns 38 944 bytes

After

Time Alloc Memory
SIMDPolynomials 931.929 ns 42 1008 bytes
DynamicPolynomials 6.983 μs 236 11.50 KiB
TypedPolynomials 724.700 ns 38 944 bytes

Benchmark 1

Before

Time Alloc Memory
SIMDPolynomials 424.879 μs 14864 1.93 MiB
DynamicPolynomials 1.139 ms 35376 3.06 MiB
TypedPolynomials 433.056 μs 13983 2.08 MiB

After

Time Alloc Memory
SIMDPolynomials 438.317 μs 14864 1.93 MiB
DynamicPolynomials 1.216 ms 35406 3.07 MiB
TypedPolynomials 430.715 μs 13983 2.08 MiB

Benchmark 2

Before

Time Alloc Memory
SIMDPolynomials 9.612 μs 422 46.88 KiB
DynamicPolynomials 58.479 μs 2187 165.34 KiB
TypedPolynomials 12.317 μs 314 76.76 KiB

After

Time Alloc Memory
SIMDPolynomials 9.882 μs 419 46.76 KiB
DynamicPolynomials 61.901 μs 2167 164.78 KiB
TypedPolynomials 12.040 μs 311 76.74 KiB

Benchmark 3

Before

Time Alloc Memory
SIMDPolynomials 2.589 ms 82097 18.48 MiB
DynamicPolynomials 7.164 ms 202267 26.71 MiB
TypedPolynomials 3.188 ms 57112 25.88 MiB

After

Time Alloc Memory
SIMDPolynomials 2.633 ms 82073 18.48 MiB
DynamicPolynomials 7.521 ms 202263 26.72 MiB
TypedPolynomials 3.141 ms 57088 25.88 MiB

Rational{BigInt}

Benchmark 0

Before

Time Alloc Memory
SIMDPolynomials 2.933 μs 225 5.48 KiB
DynamicPolynomials 7.901 μs 390 15.22 KiB
TypedPolynomials 2.741 μs 221 5.42 KiB

After

Time Alloc Memory
SIMDPolynomials 3.026 μs 225 5.48 KiB
DynamicPolynomials 8.217 μs 390 15.22 KiB
TypedPolynomials 2.861 μs 221 5.42 KiB

Benchmark 1

Before

Time Alloc Memory
SIMDPolynomials 1.592 ms 76435 4.21 MiB
DynamicPolynomials 2.240 ms 89947 5.31 MiB
TypedPolynomials 1.604 ms 75715 4.37 MiB

After

Time Alloc Memory
SIMDPolynomials 1.673 ms 76435 4.21 MiB
DynamicPolynomials 2.346 ms 89963 5.32 MiB
TypedPolynomials 1.679 ms 75715 4.37 MiB

Benchmark 2

Before

Time Alloc Memory
SIMDPolynomials 18.604 μs 1009 79.30 KiB
DynamicPolynomials 70.529 μs 2888 201.93 KiB
TypedPolynomials 20.573 μs 897 109.32 KiB

After

Time Alloc Memory
SIMDPolynomials 18.776 μs 1006 79.23 KiB
DynamicPolynomials 75.952 μs 2847 200.82 KiB
TypedPolynomials 20.142 μs 894 109.32 KiB

Benchmark 3

Before

Time Alloc Memory
SIMDPolynomials 6.390 ms 242294 31.12 MiB
DynamicPolynomials 11.422 ms 339474 38.81 MiB
TypedPolynomials 7.774 ms 215247 38.58 MiB

After

Time Alloc Memory
SIMDPolynomials 6.140 ms 242270 31.12 MiB
DynamicPolynomials 12.206 ms 339036 38.81 MiB
TypedPolynomials 7.747 ms 215223 38.57 MiB