propagation::Tolerances is a local workaround: ordinary-diffeq exposes a_tol/r_tol as inherent builder methods, so a generic S: Integrator<D> cannot set them.
The trait belongs upstream, where it also covers integrators added later. Written up as roadmap/features/40-tolerances-trait.md in ordinary-diffeq. Delete the local copy once that lands.
Related: roadmap/features/41-runtime-integrator-selection.md covers why the integrator has to be a type parameter rather than a runtime choice. Vern7 as a fixed default is fine here in the meantime.
`propagation::Tolerances` is a local workaround: `ordinary-diffeq` exposes `a_tol`/`r_tol` as inherent builder methods, so a generic `S: Integrator<D>` cannot set them.
The trait belongs upstream, where it also covers integrators added later. Written up as `roadmap/features/40-tolerances-trait.md` in `ordinary-diffeq`. Delete the local copy once that lands.
Related: `roadmap/features/41-runtime-integrator-selection.md` covers why the integrator has to be a type parameter rather than a runtime choice. Vern7 as a fixed default is fine here in the meantime.
connor
added this to the M1 milestone 2026-09-30 12:48:50 -04:00
connor
added the size/S label 2026-09-30 12:48:50 -04:00
Blocked, deliberately. Tolerances is implemented in ordinary-diffeq and matches the spec, but that crate is still at 0.4.0 on crates.io so astrokit cannot see it.
Waiting for 0.4.1 and then 0.5.0, which will carry both roadmap items (40-tolerances-trait.md and 41-runtime-integrator-selection.md). A temporary path dependency was considered and rejected: it would have to come back out before astrokit is published.
0.5.0 bringing runtime integrator selection means this issue should also revisit Accuracy, which currently sets tolerances only because the integrator has to be a type parameter.
Blocked, deliberately. `Tolerances` is implemented in `ordinary-diffeq` and matches the spec, but that crate is still at 0.4.0 on crates.io so astrokit cannot see it.
Waiting for 0.4.1 and then 0.5.0, which will carry both roadmap items (`40-tolerances-trait.md` and `41-runtime-integrator-selection.md`). A temporary path dependency was considered and rejected: it would have to come back out before astrokit is published.
0.5.0 bringing runtime integrator selection means this issue should also revisit `Accuracy`, which currently sets tolerances only because the integrator has to be a type parameter.
Done. ordinary-diffeq 0.5.0 is published with both roadmap items, so the local Tolerances trait and its macro are deleted in favor of the upstream one, which also covers Rosenbrock23 and anything added later.
0.5.0's runtime integrator selection meant Propagation could drop a type parameter: it holds a Method<D> value instead of carrying S: Integrator<D>. method() takes a MethodName rather than changing the type, and method_name() returns it in a form serde reads and writes, which #12's provenance needs — the integrator used to be recordable but not settable from the record.
Accuracy still sets tolerances only. That is now a choice rather than a constraint.
Done. `ordinary-diffeq` 0.5.0 is published with both roadmap items, so the local `Tolerances` trait and its macro are deleted in favor of the upstream one, which also covers `Rosenbrock23` and anything added later.
0.5.0's runtime integrator selection meant `Propagation` could drop a type parameter: it holds a `Method<D>` value instead of carrying `S: Integrator<D>`. `method()` takes a `MethodName` rather than changing the type, and `method_name()` returns it in a form serde reads and writes, which #12's provenance needs — the integrator used to be recordable but not settable from the record.
`Accuracy` still sets tolerances only. That is now a choice rather than a constraint.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
propagation::Tolerancesis a local workaround:ordinary-diffeqexposesa_tol/r_tolas inherent builder methods, so a genericS: Integrator<D>cannot set them.The trait belongs upstream, where it also covers integrators added later. Written up as
roadmap/features/40-tolerances-trait.mdinordinary-diffeq. Delete the local copy once that lands.Related:
roadmap/features/41-runtime-integrator-selection.mdcovers why the integrator has to be a type parameter rather than a runtime choice. Vern7 as a fixed default is fine here in the meantime.Blocked, deliberately.
Tolerancesis implemented inordinary-diffeqand matches the spec, but that crate is still at 0.4.0 on crates.io so astrokit cannot see it.Waiting for 0.4.1 and then 0.5.0, which will carry both roadmap items (
40-tolerances-trait.mdand41-runtime-integrator-selection.md). A temporary path dependency was considered and rejected: it would have to come back out before astrokit is published.0.5.0 bringing runtime integrator selection means this issue should also revisit
Accuracy, which currently sets tolerances only because the integrator has to be a type parameter.Done.
ordinary-diffeq0.5.0 is published with both roadmap items, so the localTolerancestrait and its macro are deleted in favor of the upstream one, which also coversRosenbrock23and anything added later.0.5.0's runtime integrator selection meant
Propagationcould drop a type parameter: it holds aMethod<D>value instead of carryingS: Integrator<D>.method()takes aMethodNamerather than changing the type, andmethod_name()returns it in a form serde reads and writes, which #12's provenance needs — the integrator used to be recordable but not settable from the record.Accuracystill sets tolerances only. That is now a choice rather than a constraint.