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

feat: export FixedRational #132

Closed MilesCranmer closed 2 months ago

MilesCranmer commented 2 months ago

This internal type is a very stable part of DynamicQuantities so I would like to export it so users can more easily change the default bits.

Also it will make printing slightly less verbose as dimensions would be Dimensions{FixedRational{...}} rather than Dimensions{DynamicQuantities.FixedRational{...}}.

github-actions[bot] commented 2 months ago

Benchmark Results

main fe1b5a444dc769... main/fe1b5a444dc769...
Quantity/creation/Quantity(x) 2.79 ± 0 ns 2.79 ± 0 ns 1
Quantity/creation/Quantity(x, length=y) 3.41 ± 0.01 ns 3.41 ± 0.01 ns 1
Quantity/with_numbers/*real 3.1 ± 0.01 ns 3.1 ± 0.01 ns 1
Quantity/with_numbers/^int 8.05 ± 1.9 ns 8.37 ± 2.2 ns 0.963
Quantity/with_numbers/^int * real 8.37 ± 1.9 ns 8.05 ± 1.9 ns 1.04
Quantity/with_quantity/+y 4.05 ± 0.001 ns 4.04 ± 0.001 ns 1
Quantity/with_quantity//y 3.11 ± 0.001 ns 3.11 ± 0.001 ns 1
Quantity/with_self/dimension 3.1 ± 0.01 ns 2.79 ± 0.009 ns 1.11
Quantity/with_self/inv 3.11 ± 0.001 ns 3.11 ± 0.001 ns 1
Quantity/with_self/ustrip 2.79 ± 0.009 ns 2.79 ± 0.01 ns 1
QuantityArray/broadcasting/multi_array_of_quantities 0.143 ± 0.0007 ms 0.149 ± 0.00095 ms 0.958
QuantityArray/broadcasting/multi_normal_array 0.0529 ± 0.00028 ms 0.0498 ± 0.00016 ms 1.06
QuantityArray/broadcasting/multi_quantity_array 0.158 ± 0.00095 ms 0.155 ± 0.00073 ms 1.02
QuantityArray/broadcasting/x^2_array_of_quantities 23.1 ± 2.3 μs 23.8 ± 2.1 μs 0.972
QuantityArray/broadcasting/x^2_normal_array 4.64 ± 0.86 μs 5.7 ± 0.6 μs 0.814
QuantityArray/broadcasting/x^2_quantity_array 6.98 ± 0.33 μs 6.99 ± 0.26 μs 0.999
QuantityArray/broadcasting/x^4_array_of_quantities 0.079 ± 0.00091 ms 0.0789 ± 0.00072 ms 1
QuantityArray/broadcasting/x^4_normal_array 0.0498 ± 0.00018 ms 0.0499 ± 0.00023 ms 0.998
QuantityArray/broadcasting/x^4_quantity_array 0.05 ± 0.00019 ms 0.0501 ± 0.00022 ms 0.997
time_to_load 0.13 ± 0.00047 s 0.129 ± 0.0014 s 1.01

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).