Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
solve_info.hpp
Go to the documentation of this file.
1#pragma once
2
5#if UNI20_HAS_MPREAL
7#endif
8
9#include <cstddef>
10#include <optional>
11
12namespace uni20::linalg
13{
14
29
41{
46 std::optional<std::size_t> pivot = {};
47
49 [[nodiscard]] bool succeeded() const noexcept { return this->status == SolveStatus::success; }
50};
51
61template <uni20::Real Real> struct SolveOptions
62{
65};
66
67} // namespace uni20::linalg
Concept for real scalar types (float, double, etc.).
Definition scalar_concepts.hpp:69
Definition linalg/async.hpp:28
SolveStatus
Numerical outcome of a square solve, LU factorization, condition estimate or log-determinant.
Definition solve_info.hpp:17
@ success
Finite output was produced, or the problem was an empty no-op.
@ singular
An exactly zero elimination pivot was found.
@ small_pivot
A nonzero pivot failed the requested relative threshold.
Diagnostics written by a completed numerical attempt, independent of dispatch.
Definition solve_info.hpp:41
std::optional< std::size_t > pivot
Zero-based elimination column, present only for singular or small-pivot outcomes.
Definition solve_info.hpp:46
SolveStatus status
Definition solve_info.hpp:42
bool succeeded() const noexcept
Report successful completion of the numerical operation.
Definition solve_info.hpp:49
Real-scalar pivot policy for a square linear solve.
Definition solve_info.hpp:62
Real relative_pivot_tolerance
Reject nonzero pivots at or below this fraction of the original maximum entry magnitude.
Definition solve_info.hpp:64