SymbolicML / DynamicQuantities.jl

Efficient and type-stable physical quantities in Julia
https://symbolicml.org/DynamicQuantities.jl/dev/
Apache License 2.0
120 stars 15 forks source link

More improvements to `map` and `similar` on `QuantityArray` #97

Closed MilesCranmer closed 7 months ago

MilesCranmer commented 7 months ago

Fixes:

github-actions[bot] commented 7 months ago

Benchmark Results

main 2c64dc4d64b883... t[main]/t[2c64dc4d64b883...]
Quantity/creation/Quantity(x) 2.8 ± 0.91 ns 3.1 ± 0.01 ns 0.903
Quantity/creation/Quantity(x, length=y) 3.11 ± 0.001 ns 3.11 ± 0.92 ns 1
Quantity/with_numbers/*real 3.1 ± 0.01 ns 3.1 ± 0.01 ns 1
Quantity/with_numbers/^int 8.05 ± 2.2 ns 8.37 ± 2.5 ns 0.963
Quantity/with_numbers/^int * real 8.05 ± 2.2 ns 8.37 ± 2.5 ns 0.963
Quantity/with_quantity/+y 5.27 ± 0.01 ns 5.27 ± 0.01 ns 1
Quantity/with_quantity//y 3.41 ± 0.01 ns 3.11 ± 0.01 ns 1.1
Quantity/with_self/dimension 1.55 ± 0.01 ns 1.55 ± 0.01 ns 1
Quantity/with_self/inv 3.11 ± 0.01 ns 3.11 ± 0.01 ns 1
Quantity/with_self/ustrip 1.56 ± 0.01 ns 1.55 ± 0.01 ns 1.01
QuantityArray/broadcasting/multi_array_of_quantities 0.147 ± 0.14 ms 0.146 ± 0.14 ms 1.01
QuantityArray/broadcasting/multi_normal_array 0.0531 ± 0.0003 ms 0.05 ± 0.0013 ms 1.06
QuantityArray/broadcasting/multi_quantity_array 0.159 ± 0.0007 ms 0.159 ± 0.00095 ms 1
QuantityArray/broadcasting/x^2_array_of_quantities 26.6 ± 2.2 μs 27.7 ± 2.9 μs 0.958
QuantityArray/broadcasting/x^2_normal_array 5.99 ± 0.5 μs 4.78 ± 0.68 μs 1.25
QuantityArray/broadcasting/x^2_quantity_array 6.19 ± 0.38 μs 7.04 ± 0.34 μs 0.879
QuantityArray/broadcasting/x^4_array_of_quantities 0.0787 ± 0.00068 ms 0.0788 ± 0.00067 ms 0.998
QuantityArray/broadcasting/x^4_normal_array 0.0498 ± 0.00019 ms 0.0499 ± 0.00025 ms 0.999
QuantityArray/broadcasting/x^4_quantity_array 0.0654 ± 0.006 ms 0.0592 ± 0.00021 ms 1.1
time_to_load 0.241 ± 0.0039 s 0.246 ± 0.0069 s 0.98

Benchmark Plots

A plot of the benchmark results have been uploaded as an artifact to the workflow run for this PR. Go to "Actions"->"Benchmark a pull request"->[the most recent run]->"Artifacts" (at the bottom).