Skip to content

ITP implementation beaten by Roots.jl  #501

@tecosaur

Description

@tecosaur

Hello!

I wrote the original code that was developed into the current ITP implementation (#184) and recently for fun thought I'd compare it to what's in Roots.jl using the example problem in https://docs.sciml.ai/SciMLBenchmarksOutput/stable/IntervalNonlinearProblem/simpleintervalrootfind/.

Curiously, it seems like the Roots.jl implementation is ~15% faster. Adding an extra Roots.ITP() argument to find_zero, I find that (using Chairmarks and a Zen2 chip):

julia> @b froots(out, levels, (0.0, 2.0))
81.623 ms (100000 allocs: 15.259 MiB, 10.37% gc time)

julia> @b f(out, levels, (0.0, 2.0))
94.051 ms

From this, I suspect there's some performance on the table with the current implementation. I don't have time to dig into this myself, but thought I might as well let you folk know 🙂.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions