ULSAlgorithms 1.1.0-g3e5595996d
High-performance exact and heuristic algorithms for uncapacitated lot sizing
Loading...
Searching...
No Matches
SolverDiscoveryReport.cs
Go to the documentation of this file.
2
3/// <summary>
4/// Complete availability snapshot for all built-in solver adapters.
5/// </summary>
6public sealed class SolverDiscoveryReport
7{
8 private readonly SolverAvailabilityInfo[] _solvers;
9
10 /// <summary>Initializes a discovery report.</summary>
12 IEnumerable<SolverAvailabilityInfo> solvers)
13 {
14 ArgumentNullException.ThrowIfNull(solvers);
15 _solvers = solvers.ToArray();
16 }
17
18 /// <summary>
19 /// Gets solver availability in the standard CPLEX → Gurobi → Xpress → CBC
20 /// order.
21 /// </summary>
22 public IReadOnlyList<SolverAvailabilityInfo> Solvers =>
23 _solvers;
24
25 /// <summary>Gets only currently usable solvers.</summary>
26 public IReadOnlyList<SolverAvailabilityInfo> UsableSolvers =>
27 _solvers
28 .Where(
29 static solver =>
30 solver.IsUsable)
31 .ToArray();
32
33 /// <summary>Gets whether at least one solver is usable.</summary>
34 public bool HasUsableSolver =>
35 _solvers.Any(
36 static solver =>
37 solver.IsUsable);
38}
Describes solver availability and the installation selected by an adapter.
IReadOnlyList< SolverAvailabilityInfo > UsableSolvers
Gets only currently usable solvers.
SolverDiscoveryReport(IEnumerable< SolverAvailabilityInfo > solvers)
Initializes a discovery report.
IReadOnlyList< SolverAvailabilityInfo > Solvers
Gets solver availability in the standard CPLEX → Gurobi → Xpress → CBC order.
bool HasUsableSolver
Gets whether at least one solver is usable.