On Monday, 21 October 2019 at 21:09:32 UTC, Peter Jacobs wrote:
On Monday, 21 October 2019 at 20:37:32 UTC, Nicholas Wilson wrote:

What kind of conditions are you wanting to throw exception on? infinities, NaNs, ill conditioning, something else?

As always the best way to check is to mark the function of interest, nothrow take a look at the disassembly and compare to without nothrow. You may also want to look to the optimisation summary that I _think_ you can get LDC to generate.

Our methods take a few short cuts and occasionally step over a stability boundary, so I guess that it may look like ill-conditioning.

The reason I asked that is to see what sort of action you take because there may be better architectures that you can use to handle that kind of change.

For example, you are integrating with some scheme and hit a region of high curvature and need to rollback and change scheme (to either a less coarse time step or better integrator). In which case it may be best to take a page out of databases and use a change-commit kind of approach to short circuit through your calculations and if at the end of your update loop a flag is set that says this update is invalid then retry with another scheme.

Thank you for the explanation and suggestions.

Reply via email to