{
  "schema_version": 1,
  "release": "1.9.2",
  "capabilities": [
    {
      "family": "scalar_special_functions",
      "unit": "MathBase.Precision",
      "entry_points": ["GammaLn", "Beta", "BetaInc", "Erf", "NormalCDF", "StudentT"],
      "maturity": "stable",
      "scalars": ["double"],
      "shapes": ["scalar"],
      "complexity": "function-dependent scalar iteration",
      "accuracy": "GammaLn 3e-15 relative; Beta up to 2e-13 relative on the published scale fixture; BetaInc 2e-14 relative/2e-15 absolute on ordinary fixtures",
      "docs": "docs/MathBase.md",
      "tests": "tests/TestMathBase.pas",
      "limitations": ["StudentT helper accepts x >= 0 only", "tested corpus budgets are not universal worst-case proofs"]
    },
    {
      "family": "small_dense_value_arithmetic",
      "unit": "AlgebraLib.DenseMatrices",
      "entry_points": ["TSmallSingleMatrix2", "TSmallDoubleMatrix2", "TSmallSingleComplexMatrix2", "TSmallComplexMatrix2"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["2x2", "batch_of_2x2"],
      "complexity": "O(1), allocation-free per value operation",
      "accuracy": "declared scalar precision",
      "docs": "docs/TypedDenseMatrices.md",
      "tests": "tests/TestDenseMatrices.pas",
      "limitations": ["2x2 only", "batch iteration is explicit"]
    },
    {
      "family": "typed_dense_storage",
      "unit": "AlgebraLib.DenseMatrices",
      "entry_points": ["IDenseSingleMatrix", "IDenseDoubleMatrix", "IDenseSingleComplexMatrix", "IDenseComplexMatrix"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["dense_row_major", "strided_view"],
      "complexity": "O(rows*cols) allocation and copy",
      "accuracy": "exact storage; explicit scalar conversion",
      "docs": "docs/TypedDenseMatrices.md",
      "example": "examples/15_typed_dense_solve.pas",
      "tests": "tests/TestDenseMatrices.pas",
      "limitations": ["dense only", "no implicit broadcasting"]
    },
    {
      "family": "typed_dense_kernels",
      "unit": "AlgebraLib.DenseKernels",
      "entry_points": ["CopyInto", "Add", "Subtract", "ElementWiseMultiply", "Scale", "Axpy", "Apply", "Transpose", "Conjugate", "ConjugateTranspose", "Multiply", "MultiplyBlockedInto", "MultiplyAutoInto", "SelectedMultiplyPath", "Sum", "Dot", "Norm2"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["dense", "strided_view"],
      "complexity": "matrix multiplication O(m*k*n)",
      "accuracy": "compensated sums; single paths accumulate in double",
      "docs": "docs/TypedDenseMatrices.md",
      "example": "examples/15_typed_dense_solve.pas",
      "benchmark": "benchmarks/BenchmarkRunner.lpr",
      "tests": "tests/TestDenseMatrices.pas",
      "limitations": ["portable scalar oracle plus deterministic serial blocked traversal", "no parallel or SIMD dispatch", "finite inputs required"]
    },
    {
      "family": "typed_direct_solve",
      "unit": "AlgebraLib.DenseSolvers",
      "entry_points": ["Solve", "SolveWithInfo", "SolvePositiveDefinite", "FactorLU", "FactorCholesky"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["square_coefficients", "one_or_many_rhs"],
      "complexity": "factor O(n^3), solve O(n^2*r)",
      "accuracy": "precision-relative pivot checks and residual tests",
      "docs": "docs/DenseLinearAlgebra.md",
      "example": "examples/15_typed_dense_solve.pas",
      "benchmark": "benchmarks/BenchmarkRunner.lpr",
      "tests": "tests/TestDenseMatrices.pas; tests/TestDenseDecompositions.pas",
      "limitations": ["square systems only", "no sparse factors"]
    },
    {
      "family": "typed_triangular_solve",
      "unit": "AlgebraLib.DenseDecompositions",
      "entry_points": ["SolveTriangular"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["square_coefficients", "one_or_many_rhs"],
      "complexity": "solve O(n^2*r)",
      "accuracy": "precision- and scale-relative diagonal checks; residual fixtures",
      "docs": "docs/DenseLinearAlgebra.md",
      "tests": "tests/TestDenseDecompositions.pas",
      "limitations": ["dense lower/upper factors only"]
    },
    {
      "family": "typed_qr_least_squares",
      "unit": "AlgebraLib.DenseDecompositions",
      "entry_points": ["FactorQR", "FactorPivotedQR", "LeastSquares", "RankRevealingLeastSquares"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["tall", "square", "one_or_many_rhs"],
      "complexity": "factor O(m*n^2), solve O(m*n*r+n^2*r)",
      "accuracy": "normalized reconstruction, orthogonality, residual, pivot, and rank budgets by scalar precision",
      "docs": "docs/DenseLinearAlgebra.md",
      "example": "examples/16_dense_solver_selection.pas",
      "benchmark": "benchmarks/BenchmarkRunner.lpr",
      "tests": "tests/TestDenseDecompositions.pas",
      "limitations": ["m >= n", "rank-deficient CPQR solve is basic, not minimum norm"]
    },
    {
      "family": "typed_compact_svd_minimum_norm",
      "unit": "AlgebraLib.DenseDecompositions",
      "entry_points": ["FactorSVD", "MinimumNormSolve"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["tall", "square", "wide", "one_or_many_rhs"],
      "complexity": "one-sided Jacobi O(sweeps*m*n^2)",
      "accuracy": "descending singular values, reconstruction, unitarity, rank, and minimum-norm residual budgets",
      "docs": "docs/DenseLinearAlgebra.md",
      "example": "examples/16_dense_solver_selection.pas",
      "benchmark": "benchmarks/BenchmarkRunner.lpr",
      "tests": "tests/TestDenseDecompositions.pas",
      "limitations": ["full compact SVD only", "no truncated or randomized SVD"]
    },
    {
      "family": "typed_symmetric_hermitian_eigensystem",
      "unit": "AlgebraLib.DenseDecompositions",
      "entry_points": ["FactorSymmetricEigen", "FactorHermitianEigen"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["square_symmetric", "square_hermitian"],
      "complexity": "cyclic Jacobi O(sweeps*n^3)",
      "accuracy": "ascending eigenvalues, eigenpair residual, orthogonality/unitarity, repeated and clustered spectrum fixtures",
      "docs": "docs/DenseLinearAlgebra.md",
      "example": "examples/16_dense_solver_selection.pas",
      "benchmark": "benchmarks/BenchmarkRunner.lpr",
      "tests": "tests/TestDenseDecompositions.pas",
      "limitations": ["full symmetric/Hermitian eigensystems only", "no nonsymmetric, generalized, or partial eigensystems"]
    },
    {
      "family": "interpolation_and_approximation",
      "unit": "NumericsLib.Interpolation",
      "entry_points": ["TBarycentricInterpolator", "Rational", "TCubicInterpolator", "TCubicSplineInterpolator", "TGridSurface", "InverseDistance", "TScatteredInterpolator"],
      "maturity": "stable",
      "scalars": ["double"],
      "shapes": ["one_dimensional_knots", "rectangular_grid", "scattered_2d"],
      "complexity": "local evaluation O(log n); barycentric O(n); dense RBF/thin-plate construction O(n^3)",
      "accuracy": "knot reproduction, spline derivative/integral, monotonicity, planar-grid, and exact-node reference tests",
      "docs": "docs/NumericalModelling.md",
      "example": "examples/17_numerical_modelling.pas",
      "tests": "tests/TestNumericalModelling.pas",
      "limitations": ["evaluation clamps outside knot ranges", "dense scattered methods target small data sets"]
    },
    {
      "family": "differentiation_and_derivative_checking",
      "unit": "NumericsLib.Differentiation",
      "entry_points": ["Gradient", "Jacobian", "Hessian", "ComplexStepGradient", "TDual", "AutoGradient", "AutoJacobian", "CheckGradient", "CheckJacobian"],
      "maturity": "stable",
      "scalars": ["double", "dual_double"],
      "shapes": ["scalar", "vector", "dense_jacobian_hessian"],
      "complexity": "forward/central finite differences O(n) callback evaluations; full gradient AD O(n) seeded evaluations",
      "accuracy": "analytic, central numerical, and forward-AD smooth-reference agreement",
      "docs": "docs/NumericalModelling.md",
      "tests": "tests/TestNumericalModelling.pas",
      "limitations": ["forward mode only", "complex-step callbacks must be analytic and preserve the imaginary perturbation", "dual elementary function catalogue is explicit"]
    },
    {
      "family": "numerical_modelling",
      "unit": "NumericsLib.Modelling",
      "entry_points": ["IntegrateAdaptive", "IntegrateImproper", "IntegrateCubature", "IntegrateQuasiMonteCarlo", "IntegrateMonteCarlo", "FitLinearBasis", "FitPolynomial", "FitNonlinear", "FitNonlinearAuto", "SolveSystem", "SolveSystemAuto", "SolvePolynomial", "SolveODE"],
      "maturity": "stable",
      "scalars": ["double"],
      "shapes": ["scalar_integral", "dense_fit", "vector_system", "vector_initial_value_ode"],
      "complexity": "algorithm and tolerance dependent; dense fit/system steps up to O(n^3)",
      "accuracy": "published quadrature, fit, root, ODE dense-output, and event budgets",
      "docs": "docs/NumericalModelling.md",
      "example": "examples/17_numerical_modelling.pas",
      "tests": "tests/TestNumericalModelling.pas",
      "limitations": ["non-stiff explicit ODE only; no mass matrices", "tensor cubature is capped and intended for low dimensions", "Monte Carlo and Halton error values are estimates, not proofs"]
    },
    {
      "family": "diagnostic_nonlinear_and_linear_optimization",
      "unit": "OptimizationLib.Optimization",
      "entry_points": ["TOptimizationOptions", "TOptimizationWorkspace", "NonlinearConjugateGradient", "BoundedLBFGS", "BoundedLBFGSWithWorkspace", "TrustRegion", "LBFGSAuto", "MultiStart", "SolveConstrained", "ExplorePareto", "SimplexLP"],
      "maturity": "stable",
      "scalars": ["double"],
      "shapes": ["objective_vector", "smooth_constraints", "multiple_starts", "multiple_objectives", "dense_linear_program"],
      "complexity": "iteration, callback, history, constraint, and tableau-size dependent",
      "accuracy": "scaled/bounded/ill-conditioned objectives, cancellation/limits, warm start, feasibility, Pareto, and infeasible/unbounded LP fixtures",
      "docs": "docs/OptimizationLib.md",
      "example": "examples/17_numerical_modelling.pas",
      "tests": "tests/TestOptimizationLib.pas",
      "limitations": ["local smooth solvers do not prove global optimality", "weighted-sum Pareto exploration can miss non-convex fronts", "LP variables are non-negative and constraints use Ax <= b"]
    },
    {
      "family": "dense_convex_optimization",
      "unit": "OptimizationLib.Convex",
      "entry_points": ["SolveQuadraticProgram", "SolveSecondOrderConeProgram"],
      "maturity": "stable",
      "scalars": ["double"],
      "shapes": ["dense_convex_qp", "dense_affine_second_order_cones"],
      "complexity": "convexity/equality checks O(n^3); iterative projection/barrier work model dependent",
      "accuracy": "constrained QP and unit-cone objective/feasibility references",
      "docs": "docs/ConvexOptimization.md",
      "example": "examples/18_convex_optimization.pas",
      "tests": "tests/TestNumericalModelling.pas",
      "limitations": ["dense continuous models only", "SOCP requires a strictly feasible start", "unbounded certificate is limited to unconstrained QP recession directions", "no general cone infeasibility certificate"]
    },
    {
      "family": "shared_iteration_diagnostics",
      "unit": "MathBase.Iteration",
      "entry_points": ["TIterationStatus", "IterationStatusName"],
      "maturity": "stable",
      "scalars": [],
      "shapes": ["result_status"],
      "complexity": "O(1)",
      "accuracy": "not applicable",
      "docs": "docs/NumericalModelling.md",
      "tests": "tests/TestNumericalModelling.pas",
      "limitations": ["algorithms report only statuses applicable to their mathematical model"]
    },
    {
      "family": "explicit_local_random_state",
      "unit": "MathBase.Random",
      "entry_points": ["TLocalRandom", "TRandomState", "Seeded", "Split", "GetState", "SetState"],
      "maturity": "stable",
      "scalars": ["uint64", "double", "single"],
      "shapes": ["scalar_stream", "four_word_state"],
      "complexity": "O(1) per generated value and O(1) stored state",
      "accuracy": "xoshiro256** transition and SplitMix64 seed fixtures; replay and split determinism tests",
      "docs": "docs/AppliedNumerics.md",
      "example": "examples/20_interchange_replay.pas",
      "tests": "tests/TestAppliedNumerics.pas",
      "limitations": ["not cryptographic", "sequence contract is algorithm- and version-specific", "one mutable generator must not be shared concurrently"]
    },
    {
      "family": "streaming_descriptive_statistics",
      "unit": "StatsLib.Streaming",
      "entry_points": ["TOnlineStatistics", "Add", "AddWeighted", "Merge"],
      "maturity": "stable",
      "scalars": ["double"],
      "shapes": ["scalar_stream"],
      "complexity": "O(1) per observation, O(1) retained state",
      "accuracy": "weighted Welford/PeBay updates compared with batch references and merge-order fixtures",
      "docs": "docs/AppliedNumerics.md",
      "example": "examples/19_applied_data_pipeline.pas",
      "benchmark": "benchmarks/BenchmarkRunner.lpr",
      "tests": "tests/TestAppliedNumerics.pas",
      "limitations": ["moments through variance only", "non-finite handling is explicitly reject or ignore", "caller synchronizes shared mutable records"]
    },
    {
      "family": "applied_dsp",
      "unit": "EngineeringLib.DSP",
      "entry_points": ["TDSPKit", "Transform", "TransformBatch", "RealTransform", "Transform2D", "Convolve", "Correlate", "TOverlapAddConvolver", "TOverlapSaveConvolver", "Welch", "ShortTimeFourierTransform", "AnalyticSignal", "CrossSpectrum", "HaarTransform", "TStreamingFIR", "TStreamingBiquad"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["one_dimensional_signal", "dense_complex_2d", "bounded_stream_block"],
      "complexity": "radix-2/Bluestein transforms O(n log n); direct convolution O(n*m); FFT/block convolution O(L log L); streaming FIR O(block*m)",
      "accuracy": "DFT-oracle, batch/round-trip, direct/FFT/overlap convolution, spectral-bin, Haar, and block-equivalence fixtures with scalar-specific tolerances",
      "docs": "docs/AppliedNumerics.md",
      "example": "examples/19_applied_data_pipeline.pas",
      "benchmark": "benchmarks/BenchmarkRunner.lpr",
      "tests": "tests/TestAppliedNumerics.pas",
      "limitations": ["finite inputs only", "overlap/FIR state is bounded by taps", "biquad retains two delay values", "equiripple and advanced IIR design plus wavelet packets remain open"]
    },
    {
      "family": "typed_data_analysis",
      "unit": "MLLib.Analysis",
      "entry_points": ["TAnalysisKit", "PCA", "KMeansPlusPlus", "CreateValidationSplit", "KFoldAssignments", "FitStandardization", "FitBinaryLDA", "HierarchicalCluster", "CutHierarchy", "FitClassificationForest", "FitRegressionForest", "PredictForestClasses", "PredictForestValues", "TKDTree"],
      "maturity": "stable",
      "scalars": ["double"],
      "shapes": ["rows_as_observations", "columns_as_features", "low_dimensional_neighbour_index"],
      "complexity": "PCA uses dense SVD; k-means O(iterations*n*k*d); hierarchy baseline O(n^3); forest cost is tree/data/depth dependent; exact KD-tree query has O(n) worst case",
      "accuracy": "shared dense-factor oracle, leakage-safe fitted transforms, deterministic clustering/splits/forests, OOB/importance, classifier and brute-force-neighbour fixtures",
      "docs": "docs/AppliedNumerics.md",
      "example": "examples/19_applied_data_pipeline.pas",
      "benchmark": "benchmarks/BenchmarkRunner.lpr",
      "tests": "tests/TestAppliedNumerics.pas",
      "limitations": ["dense in-memory double data", "impurity importance is biased toward continuous/high-cardinality features", "KD tree is intended for exact low-dimensional queries", "no survival or factor-analysis API"]
    },
    {
      "family": "linear_gaussian_state_space",
      "unit": "TimeSeriesLib.StateSpace",
      "entry_points": ["TScalarKalmanConfiguration", "TScalarKalmanFilter", "TMultivariateKalmanConfiguration", "TMultivariateKalmanFilter", "Process", "Forecast"],
      "maturity": "stable",
      "scalars": ["double"],
      "shapes": ["scalar_measurement_stream", "dense_multivariate_measurement_stream"],
      "complexity": "scalar O(1) per measurement; multivariate uses dense factor/solve work per measurement; O(steps) returned series storage",
      "accuracy": "closed-form scalar and dense multivariate innovation/covariance references, likelihood, replay, forecast, and failure-atomicity fixtures",
      "docs": "docs/AppliedNumerics.md",
      "example": "examples/19_applied_data_pipeline.pas",
      "tests": "tests/TestAppliedNumerics.pas",
      "limitations": ["time-invariant linear-Gaussian models only", "no missing-value, control, smoothing, or parameter-estimation support", "caller synchronizes shared mutable records"]
    },
    {
      "family": "numerical_interchange",
      "unit": "MathBase.Interchange",
      "entry_points": ["ComplexToInvariant", "DenseMatrixToInvariant", "WriteDelimitedMatrix", "WriteMatrixMarket", "WriteSparseMatrixMarket", "ReadSparseMatrixMarketDouble", "ReadSparseMatrixMarketComplex", "SaveBinary", "SaveSparseBinary", "LoadDoubleMatrixBinary", "LoadSparseSingleBinary", "LoadSparseDoubleBinary", "LoadSparseSingleComplexBinary", "LoadSparseComplexBinary", "DEFAULT_MAX_INTERCHANGE_ELEMENTS", "DEFAULT_MAX_SPARSE_DIMENSION", "SaveRandomStateBinary", "Summarize", "Describe", "TValueMetadata"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex", "uint64_state"],
      "shapes": ["vector", "dense_matrix", "compressed_sparse_matrix", "four_word_random_state"],
      "complexity": "O(elements) encoding, validation, and copy",
      "accuracy": "round-trip fixtures preserve binary scalar/storage metadata and double/complex/state values; text is invariant and round-trip formatted",
      "docs": "docs/Interchange.md",
      "example": "examples/20_interchange_replay.pas; examples/22_sparse_end_to_end.pas",
      "tests": "tests/TestAppliedNumerics.pas; tests/TestSparseInterchange.pas",
      "limitations": ["binary format is little-endian version 1", "Matrix Market sparse subset is coordinate double-real/double-complex general with no duplicate or explicit-zero entries", "sparse loads independently cap stored nonzeros and each shape axis before shape-sized allocation; both defaults are 16,000,000", "factor/decomposition persistence is not shipped"]
    },
    {
      "family": "advanced_dsp_design_and_wavelets",
      "maturity": "unsupported",
      "scalars": [],
      "limitations": ["Haar analysis/synthesis is stable; equiripple and Chebyshev/elliptic/Bessel design plus broader wavelets/wavelet packets remain conditional and unqualified"]
    },
    {
      "family": "statistical_inference_and_regression",
      "unit": "StatsLib.Inference",
      "entry_points": ["TNormalDistribution", "TExponentialDistribution", "TBinomialDistribution", "EstimateNormal", "EstimateExponential", "EstimateGamma", "EstimateBinomial", "OneSampleT", "PairedT", "WelchT", "OneWayANOVA", "ChiSquareContingency", "MannWhitneyU", "AdjustBonferroni", "AdjustBenjaminiHochberg", "FitOLS", "FitLogistic"],
      "maturity": "stable",
      "scalars": ["double"],
      "shapes": ["scalar_distribution", "sample_vector", "dense_design_matrix", "contingency_table"],
      "complexity": "distribution operations scalar/iterative; tests linear or sort-based; OLS/logistic use dense factor/solve work",
      "accuracy": "distribution identities/round trips, seeded sampling, analytic fixtures, SVD rank diagnostics, and separated-logistic status tests",
      "docs": "docs/StatsLib.md",
      "example": "examples/21_release_1_8_workflows.pas",
      "tests": "tests/TestAppliedNumerics.pas",
      "limitations": ["portable approximate p-values and confidence intervals", "binary logistic only", "survival/factor analysis and robust covariance families remain conditional"]
    },
    {
      "family": "conditional_data_science_extensions",
      "maturity": "unsupported",
      "scalars": [],
      "limitations": ["survival analysis, factor analysis, robust covariance, gradient boosting, and broader forecasting workflows were not activated because prerequisite numerical validation was not available"]
    },
    {
      "family": "selected_model_persistence",
      "unit": "InterchangeLib.Models",
      "entry_points": ["SaveCubicSpline", "LoadCubicSpline", "SaveStreamingFIR", "LoadStreamingFIR", "SaveStandardization", "LoadStandardization", "SaveScalarKalman", "LoadScalarKalman"],
      "maturity": "stable",
      "scalars": ["double"],
      "shapes": ["cubic_spline", "streaming_fir", "standardization_model", "scalar_kalman_state"],
      "complexity": "O(serialized elements) encoding, validation, and copy",
      "accuracy": "version/kind/CRC/resource-cap/corruption and behavioral round-trip fixtures",
      "docs": "docs/Interchange.md",
      "example": "examples/21_release_1_8_workflows.pas",
      "tests": "tests/TestAppliedNumerics.pas",
      "limitations": ["little-endian adapter format version 1", "no decomposition, forest, arbitrary graph, or multivariate Kalman persistence"]
    },
    {
      "family": "bounded_mathematical_expressions",
      "unit": "MathBase.Expressions",
      "entry_points": ["TExpressionValue", "TExpressionSymbol", "TExpressionLimits", "TExpressionEvaluator.Evaluate"],
      "maturity": "stable",
      "scalars": ["double"],
      "shapes": ["scalar", "vector", "dense_matrix"],
      "complexity": "bounded by explicit text, depth, operation, and element limits",
      "accuracy": "scalar/vector/matrix oracle, immutable binding, resource-limit, malformed-input, and non-finite tests",
      "docs": "docs/Interchange.md",
      "example": "examples/21_release_1_8_workflows.pas",
      "tests": "tests/TestAppliedNumerics.pas",
      "limitations": ["no vector/matrix literals; bind them as symbols", "no assignment, loops, recursion, I/O, process, environment, network, or callbacks"]
    },
    {
      "family": "parallel_and_simd_numerical_dispatch",
      "maturity": "unsupported",
      "scalars": [],
      "limitations": ["1.9 provides portable dense and sparse serial oracles; stable thread-pool and SIMD sparse dispatch remain open"]
    },
    {
      "family": "bessel_elliptic_exponential_integral",
      "maturity": "unsupported",
      "scalars": [],
      "limitations": ["no stable public implementation in the 1.9 line"]
    },
    {
      "family": "typed_sparse_linear_algebra",
      "unit": "AlgebraLib.SparseMatrices",
      "entry_points": ["ISparseSingleMatrix", "ISparseDoubleMatrix", "ISparseSingleComplexMatrix", "ISparseComplexMatrix", "TSparseSingleMatrix", "TSparseDoubleMatrix", "TSparseSingleComplexMatrix", "TSparseComplexMatrix", "TSparseSingleTripletBuilder", "TSparseDoubleTripletBuilder", "TSparseSingleComplexTripletBuilder", "TSparseComplexTripletBuilder", "TStructuredSingleMatrix", "TStructuredDoubleMatrix", "TStructuredSingleComplexMatrix", "TStructuredComplexMatrix"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["csr", "csc", "diagonal", "tridiagonal", "general_band"],
      "complexity": "O(k log k) triplet construction; O(nonzeros*rhs) sparse/dense product; no implicit dense shape allocation",
      "accuracy": "four-scalar dense-oracle products, arithmetic, transpose, duplicate, zero-policy, and canonical-validation fixtures",
      "docs": "docs/SparseLinearAlgebra.md",
      "example": "examples/22_sparse_end_to_end.pas",
      "benchmark": "benchmarks/BenchmarkRunner.lpr",
      "tests": "tests/TestSparseMatrices.pas",
      "limitations": ["immutable compressed storage", "sparse products may create mathematical fill", "sparse interchange uses independent caller nonzero and per-axis dimension caps", "parallel, SIMD, GPU, distributed, and out-of-core paths are not shipped"]
    },
    {
      "family": "typed_iterative_matrix_free_linear_algebra",
      "unit": "AlgebraLib.LinearOperators; AlgebraLib.IterativeSolvers",
      "entry_points": ["ILinearSingleOperator", "ILinearDoubleOperator", "ILinearSingleComplexOperator", "ILinearComplexOperator", "IMatrixFreeSingleAction", "IMatrixFreeDoubleAction", "IMatrixFreeSingleComplexAction", "IMatrixFreeComplexAction", "TLinearSolveOptions", "TLinearSolveDiagnostics", "TSingleIterativeSolver", "TDoubleIterativeSolver", "TSingleComplexIterativeSolver", "TComplexIterativeSolver", "TSinglePreconditioner", "TDoublePreconditioner", "TSingleComplexPreconditioner", "TComplexPreconditioner"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["square_system", "rectangular_least_squares", "stored_operator", "matrix_free_operator"],
      "complexity": "operator-product and iteration dependent; GMRES O(n*restart+restart^2), other solver workspaces O(rows+cols)",
      "accuracy": "all five methods execute for all four scalars; ordinary/adjoint typed-dense oracles, inconsistent least-squares normal-residual convergence, refresh/progress, success/limit/cancel/breakdown, all preconditioner families, and workspace lifecycle fixtures",
      "docs": "docs/SparseLinearAlgebra.md",
      "example": "examples/22_sparse_end_to_end.pas",
      "benchmark": "benchmarks/BenchmarkRunner.lpr",
      "tests": "tests/TestIterativeSolvers.pas",
      "limitations": ["caller supplies symmetry/definiteness model", "LSQR has no preconditioner in 1.9", "no block or flexible Krylov variants"]
    },
    {
      "family": "typed_structured_and_sparse_direct_solve",
      "unit": "AlgebraLib.StructuredSolvers",
      "entry_points": ["TSingleStructuredSolver", "TDoubleStructuredSolver", "TSingleComplexStructuredSolver", "TComplexStructuredSolver", "IStructuredSingleDirectFactor", "IStructuredDoubleDirectFactor", "IStructuredSingleComplexDirectFactor", "IStructuredComplexDirectFactor", "ISparseSingleLUFactor", "ISparseDoubleLUFactor", "ISparseSingleComplexLUFactor", "ISparseComplexLUFactor"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["square_tridiagonal", "square_band", "square_csr", "one_or_many_rhs"],
      "complexity": "tridiagonal O(n); band factor O(n*bandwidth^2); sparse natural-order work and storage depend on actual fill",
      "accuracy": "all tridiagonal/band/sparse-LU families execute for all four scalars with typed-dense residual, pivot/singularity, multiple-RHS, snapshot/reuse/alias/concurrency/failure, and fill-diagnostic fixtures",
      "docs": "docs/SparseLinearAlgebra.md",
      "tests": "tests/TestStructuredSolvers.pas",
      "limitations": ["general band factor uses no pivoting", "sparse LU uses natural ordering with row pivoting and no fill-reducing symbolic analysis"]
    },
    {
      "family": "typed_partial_spectral_linear_algebra",
      "unit": "AlgebraLib.PartialEigensystems",
      "entry_points": ["TSpectralOptions", "TSpectralResult", "TSinglePartialEigenSolver", "TDoublePartialEigenSolver", "TSingleComplexPartialEigenSolver", "TComplexPartialEigenSolver"],
      "maturity": "stable",
      "scalars": ["single", "double", "single_complex", "double_complex"],
      "shapes": ["square_operator", "selected_eigenpairs"],
      "complexity": "operator-product dependent with O(n*krylov+krylov^2) retained storage",
      "accuracy": "deterministic largest-magnitude eigenvalue/eigenvector residual fixtures across real/complex and single/double paths, including single-complex execution",
      "docs": "docs/SparseLinearAlgebra.md",
      "tests": "tests/TestPartialEigensystems.pas",
      "limitations": ["largest magnitude only", "no shift-invert, interior, generalized, Schur, or polynomial eigensystems", "real Arnoldi restart projects complex Ritz vectors to their real part"]
    },
    {
      "family": "remaining_advanced_spectral_linear_algebra",
      "maturity": "unsupported",
      "scalars": [],
      "limitations": ["full nonsymmetric, generalized, polynomial, Schur, interior-target, and shift-invert eigensystems remain deferred"]
    }
  ]
}
