SymbolicML / DynamicExpressions.jl

Ridiculously fast symbolic expressions
https://symbolicml.org/DynamicExpressions.jl/dev
Apache License 2.0
92 stars 12 forks source link

Even faster NaN checks #25

Closed MilesCranmer closed 1 year ago

github-actions[bot] commented 1 year ago

Pull Request Test Coverage Report for Build 4782969121


Totals Coverage Status
Change from base Build 4774460028: -0.07%
Covered Lines: 991
Relevant Lines: 1108

💛 - Coveralls
github-actions[bot] commented 1 year ago

Benchmark Results

master 275eae805ee7c4... t[master]/t[275eae805ee7c4...]
OperatorEnum/ComplexF32/evaluation 0.0363 ± 0.0012 ms 23.5 ± 2.1 μs 1.54
OperatorEnum/ComplexF64/evaluation 0.0387 ± 0.0028 ms 0.0362 ± 0.0026 ms 1.07
OperatorEnum/Float32/derivative 0.137 ± 0.0023 ms 0.134 ± 0.0022 ms 1.03
OperatorEnum/Float32/derivative_turbo 0.166 ± 0.014 ms 0.157 ± 0.002 ms 1.06
OperatorEnum/Float32/evaluation 8.25 ± 0.53 μs 8.48 ± 0.56 μs 0.973
OperatorEnum/Float32/evaluation_turbo 7.34 ± 0.66 μs 7.48 ± 0.76 μs 0.981
OperatorEnum/Float64/derivative 0.203 ± 0.005 ms 0.186 ± 0.0042 ms 1.09
OperatorEnum/Float64/derivative_turbo 0.226 ± 0.0077 ms 0.205 ± 0.0039 ms 1.1
OperatorEnum/Float64/evaluation 12.3 ± 1.2 μs 12.5 ± 1.3 μs 0.984
OperatorEnum/Float64/evaluation_turbo 11.8 ± 1.4 μs 11.5 ± 1.2 μs 1.03
time_to_load 13.1 ± 0.13 s 12.9 ± 0.24 s 1.02

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

MilesCranmer commented 1 year ago

Can have strange behavior due to the @fastmath: https://discourse.julialang.org/t/fastest-way-to-check-for-inf-or-nan-in-an-array/76954/30?u=milescranmer

So perhaps it should do a normal sum on each segment instead (less likely to overflow if its just 64 numbers).