@wesselb and I had a discussion about this a while ago, and I completely forgot to raise an issue about it. While FiniteDifferences accuracy for functions of Float64s is as you would expect, other types are a different matter. Of particular concern is Float32 as it's almost certainty the next most used type.
IIRC the issue is an issue of defaults. Specifically this one. float always yields a Float64, and eps(::Float64) is very different from eps(Float32). This changes the step-size calculation here.
If someone has time to look into this it would be greatly appreciated. I'm not entirely sure what the correct solution is, but a good approach to solving it might be
- recap how in principle to set the
eps parameter that is causing the problems (perhaps @wesselb could help here?)
- figure out how to set
eps based on this and make the appropriate changes
- test that it works
@wesselb and I had a discussion about this a while ago, and I completely forgot to raise an issue about it. While
FiniteDifferencesaccuracy for functions ofFloat64s is as you would expect, other types are a different matter. Of particular concern isFloat32as it's almost certainty the next most used type.IIRC the issue is an issue of defaults. Specifically this one.
floatalways yields aFloat64, andeps(::Float64)is very different fromeps(Float32). This changes the step-size calculation here.If someone has time to look into this it would be greatly appreciated. I'm not entirely sure what the correct solution is, but a good approach to solving it might be
epsparameter that is causing the problems (perhaps @wesselb could help here?)epsbased on this and make the appropriate changes