|
|
|
|
|
by celrod
1244 days ago
|
|
I've noticed that R often defaults to much higher tolerances than Julia, even when it's wrappers to the same C library, like cubature. R cubature[0]: 1e-5
Cubature.jl [1]: 1e-8 The difference for NLopt in R vs Julia is smaller.
`NLopt.DEFAULT_OPTIONS`[2] in Julia shows `1e-7` for `ftol_rel`, `xtol_rel`, and `constrtol_abs`, while in R `xtol_rel` is `1e-6` and the others are `0.0`[3].
So, the options at least aren't the same with nlopt.
Anyway, I always recommend confirming that you're comparing the same settings. And of course, in Julia, you'll probably want to `JET.report_opt` your function and fix and glaring performance issues. NLopt seems like it may be a bit of an exception, but I noticed this is pretty common pattern elsewhere, uniroot[4] being another example, with eps()^(1/4) default tolerance, far higher than Julia root solvers will use. [0] https://cran.r-project.org/web/packages/cubature/cubature.pd...
[1] https://github.com/JuliaMath/Cubature.jl
[2] https://github.com/JuliaOpt/NLopt.jl/blob/6ade25740362895bbf...
[3] https://cran.r-project.org/web/packages/nloptr/nloptr.pdf
[4] https://www.rdocumentation.org/packages/stats/versions/3.6.2... |
|