Skip to main content

Module validation

Module validation 

Source
Expand description

Comprehensive input validation for solver operations.

All validation functions run eagerly before any computation begins, ensuring callers receive clear diagnostics instead of mysterious numerical failures or resource exhaustion. Every public function returns ValidationError on failure, which converts into [SolverError::InvalidInput] via From.

§Limits

Hard limits are enforced to prevent denial-of-service through oversized inputs:

ResourceLimitConstant
Nodes (rows)10,000,000MAX_NODES
Edges (nnz)100,000,000MAX_EDGES
Dimension65,536MAX_DIM
Iterations1,000,000MAX_ITERATIONS
Request body10 MiBMAX_BODY_SIZE

Constants§

MAX_BODY_SIZE
Maximum request body size in bytes (10 MiB).
MAX_DIM
Maximum vector/matrix dimension for dense operations.
MAX_EDGES
Maximum number of non-zero entries.
MAX_ITERATIONS
Maximum solver iterations to prevent runaway computation.
MAX_NODES
Maximum number of rows or columns to prevent resource exhaustion.

Functions§

validate_body_size
Validate that a request body does not exceed MAX_BODY_SIZE.
validate_csr_matrix
Validate the structural integrity of a CSR matrix.
validate_output
Validate a solver result after computation completes.
validate_params
Validate solver convergence parameters.
validate_rhs
Validate a right-hand-side vector for a linear solve.
validate_rhs_vector
Validate the right-hand side vector b for compatibility with a matrix.
validate_solver_input
Validate the complete solver input (matrix + rhs + parameters).