-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Data validation and invariants #746
Comments
After discussing this with @upsj, here is how I would like to approach this issue:
|
I believe we didn't talk about the actual error reporting so far, I could imagine multiple approaches:
I would favor 1 or 3, since 2 is very limited in what kind of information can be provided. 1. is probably easiest to implement, since it relies on the possibility to nest exceptions for nesting validation failures later on. Kind of like the distinction between exception-type (C++) and optional-type (Rust) error handling. I think we don't necessarily need 4., since this would otherwise require users to rebuild all of Ginkgo in Debug just to be able to figure out which part of their code is failing. Unless of course we call |
Do you require all column indexes within each matrix row to be sorted/ascending or can they be in arbitrary order? I don't see this in the list above. IIRC, Hypre's AMG behaves differently for each ordering (and they require the diagonal entry to be stored first in the row). |
For our algorithms that require the column indices to be sorted, there is usually a factory parameter called |
We had some discussions about specifying and validating data structure invariants, so I'll list them here:
Matrix formats
Solvers
Factorizations
Preconditioners
max_block_size
The text was updated successfully, but these errors were encountered: