{
  "schema_version": 3,
  "release": "1.10.0",
  "decision_release": "1.9.3",
  "generated_by": "tools/update_api_snapshot.py",
  "identity": [
    "unit",
    "owner",
    "kind",
    "name",
    "signature"
  ],
  "classification_notes": {
    "recommended": "curated common 2.0 path with a concise checked example",
    "advanced": "stable application path shown after the common route",
    "compatibility": "maintained 1.x surface with a replacement or explicit retain decision",
    "experimental": "not covered by the stable compatibility promise",
    "implementation": "generic specialization support; use a named application facade"
  },
  "compatibility_notes": {
    "legacy-dense-matrix": "The typed replacement is not a cast: convert with TDenseDoubleMatrix.FromIMatrix or ToIMatrix, which deep-copies. Typed storage uses SizeInt shapes, explicit kernels/factors/results, and documented views instead of the combined mutable IMatrix method surface.",
    "legacy-sparse-matrix": "TSparseDoubleMatrix constructs canonical CSR/CSC values returned as ISparseDoubleMatrix. TMatrixKitSparse remains an IMatrix-compatible mutable representation; conversion must enumerate/copy and must not be treated as a zero-copy CSR cast.",
    "focused-bond-alias-unit": "Retain FinanceLib.Bonds as a focused entry unit. Its public names are exact aliases of TFinanceKit, EFinanceError, and TFinanceKit amortization types, so retaining it has no numerical or ownership difference.",
    "focused-npv-alias-unit": "Retain FinanceLib.NPV as a focused entry unit. Its public names are exact aliases of TFinanceKit, EFinanceError, and TDoubleArray, so retaining it has no numerical or ownership difference.",
    "pressure-facade-alias": "TPressureKit remains a supported exact alias of EngineeringLib.FluidDynamics.TFluidDynamicsKit. The 1.9.7 rehearsal confirmed identical behavior, defaults, ownership, exceptions, numerical results, and dependency-neutral in-place packaging; new cross-fluid code may prefer the common facade, but no deprecation is approved.",
    "pressure-error-alias": "EPressureError remains a supported exact alias of EngineeringLib.Common.EFluidDynamicsError. The 1.9.7 rehearsal confirmed exception identity and dependency-neutral in-place packaging; no deprecation is approved.",
    "velocity-facade-alias": "TVelocityKit remains a supported exact alias of EngineeringLib.FluidDynamics.TFluidDynamicsKit. The 1.9.7 rehearsal confirmed identical behavior, defaults, ownership, exceptions, numerical results, and dependency-neutral in-place packaging; new cross-fluid code may prefer the common facade, but no deprecation is approved.",
    "velocity-error-alias": "EVelocityError remains a supported exact alias of EngineeringLib.Common.EFluidDynamicsError. The 1.9.7 rehearsal confirmed exception identity and dependency-neutral in-place packaging; no deprecation is approved."
  },
  "unresolved_decisions": [],
  "units": [
    {
      "unit": "AlgebraLib.DenseDecompositions",
      "source": "src/AlgebraLib.DenseDecompositions.pas",
      "classification_summary": {
        "advanced": 62,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 53,
        "recommended": 0
      },
      "interface_sha256": "22c91ef478349504453ef2986593b25d3ce45c8daeac4bd10cb71f66652a2f95",
      "declarations": [
        {
          "owner": null,
          "name": "FactorHermitianEigen",
          "kind": "function",
          "signature": "function FactorHermitianEigen(const A:IDenseComplexMatrix):IDenseComplexHermitianEigen",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorHermitianEigen",
          "kind": "function",
          "signature": "function FactorHermitianEigen(const A:IDenseSingleComplexMatrix):IDenseSingleComplexHermitianEigen",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorPivotedQR",
          "kind": "function",
          "signature": "function FactorPivotedQR(const A:IDenseComplexMatrix;const Tolerance:Double=-1.0):IDenseComplexQR",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorPivotedQR",
          "kind": "function",
          "signature": "function FactorPivotedQR(const A:IDenseDoubleMatrix;const Tolerance:Double=-1.0):IDenseDoubleQR",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorPivotedQR",
          "kind": "function",
          "signature": "function FactorPivotedQR(const A:IDenseSingleComplexMatrix;const Tolerance:Double=-1.0):IDenseSingleComplexQR",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorPivotedQR",
          "kind": "function",
          "signature": "function FactorPivotedQR(const A:IDenseSingleMatrix;const Tolerance:Double=-1.0):IDenseSingleQR",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorQR",
          "kind": "function",
          "signature": "function FactorQR(const A:IDenseComplexMatrix;const Tolerance:Double=-1.0):IDenseComplexQR",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorQR",
          "kind": "function",
          "signature": "function FactorQR(const A:IDenseDoubleMatrix;const Tolerance:Double=-1.0):IDenseDoubleQR",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorQR",
          "kind": "function",
          "signature": "function FactorQR(const A:IDenseSingleComplexMatrix;const Tolerance:Double=-1.0):IDenseSingleComplexQR",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorQR",
          "kind": "function",
          "signature": "function FactorQR(const A:IDenseSingleMatrix;const Tolerance:Double=-1.0):IDenseSingleQR",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorSVD",
          "kind": "function",
          "signature": "function FactorSVD(const A:IDenseComplexMatrix;const Tolerance:Double=-1.0):IDenseComplexSVD",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorSVD",
          "kind": "function",
          "signature": "function FactorSVD(const A:IDenseDoubleMatrix;const Tolerance:Double=-1.0):IDenseDoubleSVD",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorSVD",
          "kind": "function",
          "signature": "function FactorSVD(const A:IDenseSingleComplexMatrix;const Tolerance:Double=-1.0):IDenseSingleComplexSVD",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorSVD",
          "kind": "function",
          "signature": "function FactorSVD(const A:IDenseSingleMatrix;const Tolerance:Double=-1.0):IDenseSingleSVD",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorSymmetricEigen",
          "kind": "function",
          "signature": "function FactorSymmetricEigen(const A:IDenseDoubleMatrix):IDenseDoubleSymmetricEigen",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorSymmetricEigen",
          "kind": "function",
          "signature": "function FactorSymmetricEigen(const A:IDenseSingleMatrix):IDenseSingleSymmetricEigen",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseComplexHermitianEigen",
          "kind": "type",
          "signature": "IDenseComplexHermitianEigen=specialize IDenseHermitianEigenFactorization<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseComplexQR",
          "kind": "type",
          "signature": "IDenseComplexQR=specialize IDenseQRFactorization<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseComplexSVD",
          "kind": "type",
          "signature": "IDenseComplexSVD=specialize IDenseSVDFactorization<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseDoubleQR",
          "kind": "type",
          "signature": "IDenseDoubleQR=specialize IDenseQRFactorization<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseDoubleSVD",
          "kind": "type",
          "signature": "IDenseDoubleSVD=specialize IDenseSVDFactorization<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseDoubleSymmetricEigen",
          "kind": "type",
          "signature": "IDenseDoubleSymmetricEigen=specialize IDenseHermitianEigenFactorization<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseHermitianEigenFactorization",
          "kind": "interface",
          "signature": "generic IDenseHermitianEigenFactorization<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "IDenseQRFactorization",
          "kind": "interface",
          "signature": "generic IDenseQRFactorization<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "IDenseSingleComplexHermitianEigen",
          "kind": "type",
          "signature": "IDenseSingleComplexHermitianEigen=specialize IDenseHermitianEigenFactorization<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseSingleComplexQR",
          "kind": "type",
          "signature": "IDenseSingleComplexQR=specialize IDenseQRFactorization<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseSingleComplexSVD",
          "kind": "type",
          "signature": "IDenseSingleComplexSVD=specialize IDenseSVDFactorization<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseSingleQR",
          "kind": "type",
          "signature": "IDenseSingleQR=specialize IDenseQRFactorization<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseSingleSVD",
          "kind": "type",
          "signature": "IDenseSingleSVD=specialize IDenseSVDFactorization<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseSingleSymmetricEigen",
          "kind": "type",
          "signature": "IDenseSingleSymmetricEigen=specialize IDenseHermitianEigenFactorization<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseSVDFactorization",
          "kind": "interface",
          "signature": "generic IDenseSVDFactorization<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "LeastSquares",
          "kind": "function",
          "signature": "function LeastSquares(const A,B:IDenseComplexMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LeastSquares",
          "kind": "function",
          "signature": "function LeastSquares(const A,B:IDenseDoubleMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LeastSquares",
          "kind": "function",
          "signature": "function LeastSquares(const A,B:IDenseSingleComplexMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LeastSquares",
          "kind": "function",
          "signature": "function LeastSquares(const A,B:IDenseSingleMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MinimumNormSolve",
          "kind": "function",
          "signature": "function MinimumNormSolve(const A,B:IDenseComplexMatrix;out Diagnostics:TDenseSolveDiagnostics;const Tolerance:Double=-1.0):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MinimumNormSolve",
          "kind": "function",
          "signature": "function MinimumNormSolve(const A,B:IDenseDoubleMatrix;out Diagnostics:TDenseSolveDiagnostics;const Tolerance:Double=-1.0):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MinimumNormSolve",
          "kind": "function",
          "signature": "function MinimumNormSolve(const A,B:IDenseSingleComplexMatrix;out Diagnostics:TDenseSolveDiagnostics;const Tolerance:Double=-1.0):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MinimumNormSolve",
          "kind": "function",
          "signature": "function MinimumNormSolve(const A,B:IDenseSingleMatrix;out Diagnostics:TDenseSolveDiagnostics;const Tolerance:Double=-1.0):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "RankRevealingLeastSquares",
          "kind": "function",
          "signature": "function RankRevealingLeastSquares(const A,B:IDenseComplexMatrix;out Diagnostics:TDenseSolveDiagnostics;const Tolerance:Double=-1.0):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "RankRevealingLeastSquares",
          "kind": "function",
          "signature": "function RankRevealingLeastSquares(const A,B:IDenseDoubleMatrix;out Diagnostics:TDenseSolveDiagnostics;const Tolerance:Double=-1.0):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "RankRevealingLeastSquares",
          "kind": "function",
          "signature": "function RankRevealingLeastSquares(const A,B:IDenseSingleComplexMatrix;out Diagnostics:TDenseSolveDiagnostics;const Tolerance:Double=-1.0):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "RankRevealingLeastSquares",
          "kind": "function",
          "signature": "function RankRevealingLeastSquares(const A,B:IDenseSingleMatrix;out Diagnostics:TDenseSolveDiagnostics;const Tolerance:Double=-1.0):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolveTriangular",
          "kind": "function",
          "signature": "function SolveTriangular(const A,B:IDenseComplexMatrix;const Triangle:TDenseTriangle;const Transpose:TDenseTranspose=dtNoTranspose;const Diagonal:TDenseDiagonal=ddNonUnit):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolveTriangular",
          "kind": "function",
          "signature": "function SolveTriangular(const A,B:IDenseDoubleMatrix;const Triangle:TDenseTriangle;const Transpose:TDenseTranspose=dtNoTranspose;const Diagonal:TDenseDiagonal=ddNonUnit):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolveTriangular",
          "kind": "function",
          "signature": "function SolveTriangular(const A,B:IDenseSingleComplexMatrix;const Triangle:TDenseTriangle;const Transpose:TDenseTranspose=dtNoTranspose;const Diagonal:TDenseDiagonal=ddNonUnit):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolveTriangular",
          "kind": "function",
          "signature": "function SolveTriangular(const A,B:IDenseSingleMatrix;const Triangle:TDenseTriangle;const Transpose:TDenseTranspose=dtNoTranspose;const Diagonal:TDenseDiagonal=ddNonUnit):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDenseDiagonal",
          "kind": "type",
          "signature": "TDenseDiagonal=(ddNonUnit,ddUnit)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDenseSolveDiagnostics",
          "kind": "record",
          "signature": "TDenseSolveDiagnostics=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDenseTranspose",
          "kind": "type",
          "signature": "TDenseTranspose=(dtNoTranspose,dtTranspose,dtConjugateTranspose)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDenseTriangle",
          "kind": "type",
          "signature": "TDenseTriangle=(dtLower,dtUpper)",
          "classification": "advanced"
        },
        {
          "owner": "IDenseHermitianEigenFactorization",
          "name": "Converged",
          "kind": "property",
          "signature": "property Converged:Boolean read GetConverged",
          "classification": "implementation"
        },
        {
          "owner": "IDenseHermitianEigenFactorization",
          "name": "Eigenvalues",
          "kind": "property",
          "signature": "property Eigenvalues:TDoubleArray read GetEigenvalues",
          "classification": "implementation"
        },
        {
          "owner": "IDenseHermitianEigenFactorization",
          "name": "Eigenvectors",
          "kind": "property",
          "signature": "property Eigenvectors:specialize IDenseMatrix<T> read GetEigenvectors",
          "classification": "implementation"
        },
        {
          "owner": "IDenseHermitianEigenFactorization",
          "name": "GetConverged",
          "kind": "function",
          "signature": "function GetConverged:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "IDenseHermitianEigenFactorization",
          "name": "GetEigenvalues",
          "kind": "function",
          "signature": "function GetEigenvalues:TDoubleArray",
          "classification": "implementation"
        },
        {
          "owner": "IDenseHermitianEigenFactorization",
          "name": "GetEigenvectors",
          "kind": "function",
          "signature": "function GetEigenvectors:specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseHermitianEigenFactorization",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseHermitianEigenFactorization",
          "name": "GetSweeps",
          "kind": "function",
          "signature": "function GetSweeps:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseHermitianEigenFactorization",
          "name": "Size",
          "kind": "property",
          "signature": "property Size:SizeInt read GetSize",
          "classification": "implementation"
        },
        {
          "owner": "IDenseHermitianEigenFactorization",
          "name": "Sweeps",
          "kind": "property",
          "signature": "property Sweeps:SizeInt read GetSweeps",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "Cols",
          "kind": "property",
          "signature": "property Cols:SizeInt read GetCols",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "ConditionIndicator",
          "kind": "property",
          "signature": "property ConditionIndicator:Double read GetConditionIndicator",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "GetConditionIndicator",
          "kind": "function",
          "signature": "function GetConditionIndicator:Double",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "GetIsColumnPivoted",
          "kind": "function",
          "signature": "function GetIsColumnPivoted:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "GetNumericalRank",
          "kind": "function",
          "signature": "function GetNumericalRank:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "GetPermutation",
          "kind": "function",
          "signature": "function GetPermutation:TSizeIntArray",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "GetQ",
          "kind": "function",
          "signature": "function GetQ:specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "GetR",
          "kind": "function",
          "signature": "function GetR:specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "GetTolerance",
          "kind": "function",
          "signature": "function GetTolerance:Double",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "IsColumnPivoted",
          "kind": "property",
          "signature": "property IsColumnPivoted:Boolean read GetIsColumnPivoted",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "NumericalRank",
          "kind": "property",
          "signature": "property NumericalRank:SizeInt read GetNumericalRank",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "Permutation",
          "kind": "property",
          "signature": "property Permutation:TSizeIntArray read GetPermutation",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "Q",
          "kind": "property",
          "signature": "property Q:specialize IDenseMatrix<T> read GetQ",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "R",
          "kind": "property",
          "signature": "property R:specialize IDenseMatrix<T> read GetR",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "Rows",
          "kind": "property",
          "signature": "property Rows:SizeInt read GetRows",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "SolveLeastSquares",
          "kind": "function",
          "signature": "function SolveLeastSquares(const B:specialize IDenseMatrix<T>):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "SolveLeastSquaresWithInfo",
          "kind": "function",
          "signature": "function SolveLeastSquaresWithInfo(const B:specialize IDenseMatrix<T>;out Diagnostics:TDenseSolveDiagnostics):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseQRFactorization",
          "name": "Tolerance",
          "kind": "property",
          "signature": "property Tolerance:Double read GetTolerance",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "Cols",
          "kind": "property",
          "signature": "property Cols:SizeInt read GetCols",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "ConditionIndicator",
          "kind": "property",
          "signature": "property ConditionIndicator:Double read GetConditionIndicator",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "GetConditionIndicator",
          "kind": "function",
          "signature": "function GetConditionIndicator:Double",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "GetNumericalRank",
          "kind": "function",
          "signature": "function GetNumericalRank:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "GetSingularValues",
          "kind": "function",
          "signature": "function GetSingularValues:TDoubleArray",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "GetSweeps",
          "kind": "function",
          "signature": "function GetSweeps:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "GetTolerance",
          "kind": "function",
          "signature": "function GetTolerance:Double",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "GetU",
          "kind": "function",
          "signature": "function GetU:specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "GetV",
          "kind": "function",
          "signature": "function GetV:specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "NumericalRank",
          "kind": "property",
          "signature": "property NumericalRank:SizeInt read GetNumericalRank",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "Rows",
          "kind": "property",
          "signature": "property Rows:SizeInt read GetRows",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "SingularValues",
          "kind": "property",
          "signature": "property SingularValues:TDoubleArray read GetSingularValues",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "SolveMinimumNorm",
          "kind": "function",
          "signature": "function SolveMinimumNorm(const B:specialize IDenseMatrix<T>):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "SolveMinimumNormWithInfo",
          "kind": "function",
          "signature": "function SolveMinimumNormWithInfo(const B:specialize IDenseMatrix<T>;out Diagnostics:TDenseSolveDiagnostics):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "Sweeps",
          "kind": "property",
          "signature": "property Sweeps:SizeInt read GetSweeps",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "Tolerance",
          "kind": "property",
          "signature": "property Tolerance:Double read GetTolerance",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "U",
          "kind": "property",
          "signature": "property U:specialize IDenseMatrix<T> read GetU",
          "classification": "implementation"
        },
        {
          "owner": "IDenseSVDFactorization",
          "name": "V",
          "kind": "property",
          "signature": "property V:specialize IDenseMatrix<T> read GetV",
          "classification": "implementation"
        },
        {
          "owner": "TDenseDiagonal",
          "name": "ddNonUnit",
          "kind": "enum-value",
          "signature": "ddNonUnit",
          "classification": "advanced"
        },
        {
          "owner": "TDenseDiagonal",
          "name": "ddUnit",
          "kind": "enum-value",
          "signature": "ddUnit",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSolveDiagnostics",
          "name": "BackwardError",
          "kind": "field",
          "signature": "BackwardError:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSolveDiagnostics",
          "name": "ConditionIndicator",
          "kind": "field",
          "signature": "ConditionIndicator:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSolveDiagnostics",
          "name": "IsRankDeficient",
          "kind": "field",
          "signature": "IsRankDeficient:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSolveDiagnostics",
          "name": "Method",
          "kind": "field",
          "signature": "Method:string",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSolveDiagnostics",
          "name": "NumericalRank",
          "kind": "field",
          "signature": "NumericalRank:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSolveDiagnostics",
          "name": "ResidualNorm",
          "kind": "field",
          "signature": "ResidualNorm:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSolveDiagnostics",
          "name": "Tolerance",
          "kind": "field",
          "signature": "Tolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDenseTranspose",
          "name": "dtConjugateTranspose",
          "kind": "enum-value",
          "signature": "dtConjugateTranspose",
          "classification": "advanced"
        },
        {
          "owner": "TDenseTranspose",
          "name": "dtNoTranspose",
          "kind": "enum-value",
          "signature": "dtNoTranspose",
          "classification": "advanced"
        },
        {
          "owner": "TDenseTranspose",
          "name": "dtTranspose",
          "kind": "enum-value",
          "signature": "dtTranspose",
          "classification": "advanced"
        },
        {
          "owner": "TDenseTriangle",
          "name": "dtLower",
          "kind": "enum-value",
          "signature": "dtLower",
          "classification": "advanced"
        },
        {
          "owner": "TDenseTriangle",
          "name": "dtUpper",
          "kind": "enum-value",
          "signature": "dtUpper",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "AlgebraLib.DenseKernels",
      "source": "src/AlgebraLib.DenseKernels.pas",
      "classification_summary": {
        "advanced": 108,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "ca15637537ad37e7208ba46c575c7b2ced1bc22a2b64b86441c0927be0e80870",
      "declarations": [
        {
          "owner": null,
          "name": "Add",
          "kind": "function",
          "signature": "function Add(const A,B:IDenseComplexMatrix):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Add",
          "kind": "function",
          "signature": "function Add(const A,B:IDenseDoubleMatrix):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Add",
          "kind": "function",
          "signature": "function Add(const A,B:IDenseSingleComplexMatrix):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Add",
          "kind": "function",
          "signature": "function Add(const A,B:IDenseSingleMatrix):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "AddInto",
          "kind": "procedure",
          "signature": "procedure AddInto(const A,B,Destination:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "AddInto",
          "kind": "procedure",
          "signature": "procedure AddInto(const A,B,Destination:IDenseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "AddInto",
          "kind": "procedure",
          "signature": "procedure AddInto(const A,B,Destination:IDenseSingleComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "AddInto",
          "kind": "procedure",
          "signature": "procedure AddInto(const A,B,Destination:IDenseSingleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Apply",
          "kind": "function",
          "signature": "function Apply(const A:IDenseComplexMatrix;const Operation:TComplexUnaryKernel):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Apply",
          "kind": "function",
          "signature": "function Apply(const A:IDenseDoubleMatrix;const Operation:TDoubleUnaryKernel):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Apply",
          "kind": "function",
          "signature": "function Apply(const A:IDenseSingleComplexMatrix;const Operation:TSingleComplexUnaryKernel):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Apply",
          "kind": "function",
          "signature": "function Apply(const A:IDenseSingleMatrix;const Operation:TSingleUnaryKernel):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ApplyInto",
          "kind": "procedure",
          "signature": "procedure ApplyInto(const A,Destination:IDenseComplexMatrix;const Operation:TComplexUnaryKernel)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ApplyInto",
          "kind": "procedure",
          "signature": "procedure ApplyInto(const A,Destination:IDenseDoubleMatrix;const Operation:TDoubleUnaryKernel)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ApplyInto",
          "kind": "procedure",
          "signature": "procedure ApplyInto(const A,Destination:IDenseSingleComplexMatrix;const Operation:TSingleComplexUnaryKernel)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ApplyInto",
          "kind": "procedure",
          "signature": "procedure ApplyInto(const A,Destination:IDenseSingleMatrix;const Operation:TSingleUnaryKernel)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Axpy",
          "kind": "function",
          "signature": "function Axpy(const Alpha:Double;const X,Y:IDenseDoubleMatrix):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Axpy",
          "kind": "function",
          "signature": "function Axpy(const Alpha:Single;const X,Y:IDenseSingleMatrix):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Axpy",
          "kind": "function",
          "signature": "function Axpy(const Alpha:TComplex;const X,Y:IDenseComplexMatrix):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Axpy",
          "kind": "function",
          "signature": "function Axpy(const Alpha:TSingleComplex;const X,Y:IDenseSingleComplexMatrix):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "AxpyInto",
          "kind": "procedure",
          "signature": "procedure AxpyInto(const Alpha:Double;const X,Y,Destination:IDenseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "AxpyInto",
          "kind": "procedure",
          "signature": "procedure AxpyInto(const Alpha:Single;const X,Y,Destination:IDenseSingleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "AxpyInto",
          "kind": "procedure",
          "signature": "procedure AxpyInto(const Alpha:TComplex;const X,Y,Destination:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "AxpyInto",
          "kind": "procedure",
          "signature": "procedure AxpyInto(const Alpha:TSingleComplex;const X,Y,Destination:IDenseSingleComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Conjugate",
          "kind": "function",
          "signature": "function Conjugate(const A:IDenseComplexMatrix):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Conjugate",
          "kind": "function",
          "signature": "function Conjugate(const A:IDenseSingleComplexMatrix):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConjugateInto",
          "kind": "procedure",
          "signature": "procedure ConjugateInto(const A,Destination:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConjugateInto",
          "kind": "procedure",
          "signature": "procedure ConjugateInto(const A,Destination:IDenseSingleComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConjugateTranspose",
          "kind": "function",
          "signature": "function ConjugateTranspose(const A:IDenseComplexMatrix):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConjugateTranspose",
          "kind": "function",
          "signature": "function ConjugateTranspose(const A:IDenseSingleComplexMatrix):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConjugateTransposeInto",
          "kind": "procedure",
          "signature": "procedure ConjugateTransposeInto(const A,Destination:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConjugateTransposeInto",
          "kind": "procedure",
          "signature": "procedure ConjugateTransposeInto(const A,Destination:IDenseSingleComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CopyInto",
          "kind": "procedure",
          "signature": "procedure CopyInto(const A,Destination:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CopyInto",
          "kind": "procedure",
          "signature": "procedure CopyInto(const A,Destination:IDenseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CopyInto",
          "kind": "procedure",
          "signature": "procedure CopyInto(const A,Destination:IDenseSingleComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CopyInto",
          "kind": "procedure",
          "signature": "procedure CopyInto(const A,Destination:IDenseSingleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DENSE_MULTIPLY_AUTO_THRESHOLD",
          "kind": "constant",
          "signature": "DENSE_MULTIPLY_AUTO_THRESHOLD=131072",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DENSE_MULTIPLY_BLOCK_SIZE",
          "kind": "constant",
          "signature": "DENSE_MULTIPLY_BLOCK_SIZE=32",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Dot",
          "kind": "function",
          "signature": "function Dot(const A,B:IDenseComplexMatrix):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Dot",
          "kind": "function",
          "signature": "function Dot(const A,B:IDenseDoubleMatrix):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Dot",
          "kind": "function",
          "signature": "function Dot(const A,B:IDenseSingleComplexMatrix):TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Dot",
          "kind": "function",
          "signature": "function Dot(const A,B:IDenseSingleMatrix):Single",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DotConjugate",
          "kind": "function",
          "signature": "function DotConjugate(const A,B:IDenseComplexMatrix):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DotConjugate",
          "kind": "function",
          "signature": "function DotConjugate(const A,B:IDenseSingleComplexMatrix):TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ElementWiseMultiply",
          "kind": "function",
          "signature": "function ElementWiseMultiply(const A,B:IDenseComplexMatrix):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ElementWiseMultiply",
          "kind": "function",
          "signature": "function ElementWiseMultiply(const A,B:IDenseDoubleMatrix):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ElementWiseMultiply",
          "kind": "function",
          "signature": "function ElementWiseMultiply(const A,B:IDenseSingleComplexMatrix):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ElementWiseMultiply",
          "kind": "function",
          "signature": "function ElementWiseMultiply(const A,B:IDenseSingleMatrix):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ElementWiseMultiplyInto",
          "kind": "procedure",
          "signature": "procedure ElementWiseMultiplyInto(const A,B,Destination:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ElementWiseMultiplyInto",
          "kind": "procedure",
          "signature": "procedure ElementWiseMultiplyInto(const A,B,Destination:IDenseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ElementWiseMultiplyInto",
          "kind": "procedure",
          "signature": "procedure ElementWiseMultiplyInto(const A,B,Destination:IDenseSingleComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ElementWiseMultiplyInto",
          "kind": "procedure",
          "signature": "procedure ElementWiseMultiplyInto(const A,B,Destination:IDenseSingleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Multiply",
          "kind": "function",
          "signature": "function Multiply(const A,B:IDenseComplexMatrix):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Multiply",
          "kind": "function",
          "signature": "function Multiply(const A,B:IDenseDoubleMatrix):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Multiply",
          "kind": "function",
          "signature": "function Multiply(const A,B:IDenseSingleComplexMatrix):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Multiply",
          "kind": "function",
          "signature": "function Multiply(const A,B:IDenseSingleMatrix):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyAutoInto",
          "kind": "procedure",
          "signature": "procedure MultiplyAutoInto(const A,B,Destination:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyAutoInto",
          "kind": "procedure",
          "signature": "procedure MultiplyAutoInto(const A,B,Destination:IDenseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyAutoInto",
          "kind": "procedure",
          "signature": "procedure MultiplyAutoInto(const A,B,Destination:IDenseSingleComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyAutoInto",
          "kind": "procedure",
          "signature": "procedure MultiplyAutoInto(const A,B,Destination:IDenseSingleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyBlockedInto",
          "kind": "procedure",
          "signature": "procedure MultiplyBlockedInto(const A,B,Destination:IDenseComplexMatrix;const BlockSize:SizeInt=DENSE_MULTIPLY_BLOCK_SIZE)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyBlockedInto",
          "kind": "procedure",
          "signature": "procedure MultiplyBlockedInto(const A,B,Destination:IDenseDoubleMatrix;const BlockSize:SizeInt=DENSE_MULTIPLY_BLOCK_SIZE)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyBlockedInto",
          "kind": "procedure",
          "signature": "procedure MultiplyBlockedInto(const A,B,Destination:IDenseSingleComplexMatrix;const BlockSize:SizeInt=DENSE_MULTIPLY_BLOCK_SIZE)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyBlockedInto",
          "kind": "procedure",
          "signature": "procedure MultiplyBlockedInto(const A,B,Destination:IDenseSingleMatrix;const BlockSize:SizeInt=DENSE_MULTIPLY_BLOCK_SIZE)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyInto",
          "kind": "procedure",
          "signature": "procedure MultiplyInto(const A,B,Destination:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyInto",
          "kind": "procedure",
          "signature": "procedure MultiplyInto(const A,B,Destination:IDenseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyInto",
          "kind": "procedure",
          "signature": "procedure MultiplyInto(const A,B,Destination:IDenseSingleComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MultiplyInto",
          "kind": "procedure",
          "signature": "procedure MultiplyInto(const A,B,Destination:IDenseSingleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Norm2",
          "kind": "function",
          "signature": "function Norm2(const A:IDenseComplexMatrix):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Norm2",
          "kind": "function",
          "signature": "function Norm2(const A:IDenseDoubleMatrix):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Norm2",
          "kind": "function",
          "signature": "function Norm2(const A:IDenseSingleComplexMatrix):Single",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Norm2",
          "kind": "function",
          "signature": "function Norm2(const A:IDenseSingleMatrix):Single",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Scale",
          "kind": "function",
          "signature": "function Scale(const A:IDenseComplexMatrix;const Scalar:TComplex):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Scale",
          "kind": "function",
          "signature": "function Scale(const A:IDenseDoubleMatrix;const Scalar:Double):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Scale",
          "kind": "function",
          "signature": "function Scale(const A:IDenseSingleComplexMatrix;const Scalar:TSingleComplex):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Scale",
          "kind": "function",
          "signature": "function Scale(const A:IDenseSingleMatrix;const Scalar:Single):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ScaleInto",
          "kind": "procedure",
          "signature": "procedure ScaleInto(const A,Destination:IDenseComplexMatrix;const Scalar:TComplex)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ScaleInto",
          "kind": "procedure",
          "signature": "procedure ScaleInto(const A,Destination:IDenseDoubleMatrix;const Scalar:Double)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ScaleInto",
          "kind": "procedure",
          "signature": "procedure ScaleInto(const A,Destination:IDenseSingleComplexMatrix;const Scalar:TSingleComplex)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ScaleInto",
          "kind": "procedure",
          "signature": "procedure ScaleInto(const A,Destination:IDenseSingleMatrix;const Scalar:Single)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SelectedMultiplyPath",
          "kind": "function",
          "signature": "function SelectedMultiplyPath(const Rows,InnerDimension,Columns:SizeInt):TDenseMultiplyPath",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Subtract",
          "kind": "function",
          "signature": "function Subtract(const A,B:IDenseComplexMatrix):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Subtract",
          "kind": "function",
          "signature": "function Subtract(const A,B:IDenseDoubleMatrix):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Subtract",
          "kind": "function",
          "signature": "function Subtract(const A,B:IDenseSingleComplexMatrix):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Subtract",
          "kind": "function",
          "signature": "function Subtract(const A,B:IDenseSingleMatrix):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SubtractInto",
          "kind": "procedure",
          "signature": "procedure SubtractInto(const A,B,Destination:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SubtractInto",
          "kind": "procedure",
          "signature": "procedure SubtractInto(const A,B,Destination:IDenseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SubtractInto",
          "kind": "procedure",
          "signature": "procedure SubtractInto(const A,B,Destination:IDenseSingleComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SubtractInto",
          "kind": "procedure",
          "signature": "procedure SubtractInto(const A,B,Destination:IDenseSingleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Sum",
          "kind": "function",
          "signature": "function Sum(const A:IDenseComplexMatrix):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Sum",
          "kind": "function",
          "signature": "function Sum(const A:IDenseDoubleMatrix):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Sum",
          "kind": "function",
          "signature": "function Sum(const A:IDenseSingleComplexMatrix):TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Sum",
          "kind": "function",
          "signature": "function Sum(const A:IDenseSingleMatrix):Single",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexUnaryKernel",
          "kind": "type",
          "signature": "TComplexUnaryKernel=function(const Value:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDenseMultiplyPath",
          "kind": "type",
          "signature": "TDenseMultiplyPath=(dmpPortable,dmpBlocked)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDoubleUnaryKernel",
          "kind": "type",
          "signature": "TDoubleUnaryKernel=function(const Value:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Transpose",
          "kind": "function",
          "signature": "function Transpose(const A:IDenseComplexMatrix):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Transpose",
          "kind": "function",
          "signature": "function Transpose(const A:IDenseDoubleMatrix):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Transpose",
          "kind": "function",
          "signature": "function Transpose(const A:IDenseSingleComplexMatrix):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Transpose",
          "kind": "function",
          "signature": "function Transpose(const A:IDenseSingleMatrix):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TransposeInto",
          "kind": "procedure",
          "signature": "procedure TransposeInto(const A,Destination:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TransposeInto",
          "kind": "procedure",
          "signature": "procedure TransposeInto(const A,Destination:IDenseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TransposeInto",
          "kind": "procedure",
          "signature": "procedure TransposeInto(const A,Destination:IDenseSingleComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TransposeInto",
          "kind": "procedure",
          "signature": "procedure TransposeInto(const A,Destination:IDenseSingleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleComplexUnaryKernel",
          "kind": "type",
          "signature": "TSingleComplexUnaryKernel=function(const Value:TSingleComplex):TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleUnaryKernel",
          "kind": "type",
          "signature": "TSingleUnaryKernel=function(const Value:Single):Single",
          "classification": "advanced"
        },
        {
          "owner": "TDenseMultiplyPath",
          "name": "dmpBlocked",
          "kind": "enum-value",
          "signature": "dmpBlocked",
          "classification": "advanced"
        },
        {
          "owner": "TDenseMultiplyPath",
          "name": "dmpPortable",
          "kind": "enum-value",
          "signature": "dmpPortable",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "AlgebraLib.DenseMatrices",
      "source": "src/AlgebraLib.DenseMatrices.pas",
      "classification_summary": {
        "advanced": 54,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 28,
        "recommended": 7
      },
      "interface_sha256": "61b095e413bd523943bd018682ac9d2f70c26954eff820786583013822eb5d23",
      "declarations": [
        {
          "owner": null,
          "name": "ConvertToComplex",
          "kind": "function",
          "signature": "function ConvertToComplex(const Matrix:IDenseDoubleMatrix):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConvertToComplex",
          "kind": "function",
          "signature": "function ConvertToComplex(const Matrix:IDenseSingleMatrix):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConvertToDouble",
          "kind": "function",
          "signature": "function ConvertToDouble(const Matrix:IDenseSingleMatrix):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConvertToDoubleComplex",
          "kind": "function",
          "signature": "function ConvertToDoubleComplex(const Matrix:IDenseSingleComplexMatrix):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConvertToReal",
          "kind": "function",
          "signature": "function ConvertToReal(const Matrix:IDenseComplexMatrix):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConvertToReal",
          "kind": "function",
          "signature": "function ConvertToReal(const Matrix:IDenseSingleComplexMatrix):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConvertToSingle",
          "kind": "function",
          "signature": "function ConvertToSingle(const Matrix:IDenseDoubleMatrix):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ConvertToSingleComplex",
          "kind": "function",
          "signature": "function ConvertToSingleComplex(const Matrix:IDenseComplexMatrix):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DENSE_ALIGNMENT",
          "kind": "constant",
          "signature": "DENSE_ALIGNMENT=32",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DenseInterfaceCast",
          "kind": "function",
          "signature": "generic function DenseInterfaceCast<S,T>(const Matrix:specialize IDenseMatrix<S>):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "EDenseMatrixError",
          "kind": "type",
          "signature": "EDenseMatrixError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseComplexMatrix",
          "kind": "type",
          "signature": "IDenseComplexMatrix=specialize IDenseMatrix<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseDoubleMatrix",
          "kind": "type",
          "signature": "IDenseDoubleMatrix=specialize IDenseMatrix<Double>",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "IDenseMatrix",
          "kind": "interface",
          "signature": "generic IDenseMatrix<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "IDenseSingleComplexMatrix",
          "kind": "type",
          "signature": "IDenseSingleComplexMatrix=specialize IDenseMatrix<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseSingleMatrix",
          "kind": "type",
          "signature": "IDenseSingleMatrix=specialize IDenseMatrix<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexMatrixArray",
          "kind": "type",
          "signature": "TComplexMatrixArray=array of array of TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDenseComplexMatrix",
          "kind": "class",
          "signature": "TDenseComplexMatrix=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDenseDoubleMatrix",
          "kind": "class",
          "signature": "TDenseDoubleMatrix=class",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TDenseShape",
          "kind": "record",
          "signature": "TDenseShape=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDenseSingleComplexMatrix",
          "kind": "class",
          "signature": "TDenseSingleComplexMatrix=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDenseSingleMatrix",
          "kind": "class",
          "signature": "TDenseSingleMatrix=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToArray",
          "kind": "function",
          "signature": "function ToArray(const Matrix:IDenseComplexMatrix):TComplexMatrixArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToArray",
          "kind": "function",
          "signature": "function ToArray(const Matrix:IDenseDoubleMatrix):TMatrixArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToArray",
          "kind": "function",
          "signature": "function ToArray(const Matrix:IDenseSingleComplexMatrix):TSingleComplexMatrixArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToArray",
          "kind": "function",
          "signature": "function ToArray(const Matrix:IDenseSingleMatrix):TSingleMatrixArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToIMatrix",
          "kind": "function",
          "signature": "function ToIMatrix(const Matrix:IDenseDoubleMatrix):IMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToVector",
          "kind": "function",
          "signature": "function ToVector(const Matrix:IDenseComplexMatrix):TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToVector",
          "kind": "function",
          "signature": "function ToVector(const Matrix:IDenseDoubleMatrix):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToVector",
          "kind": "function",
          "signature": "function ToVector(const Matrix:IDenseSingleComplexMatrix):TSingleComplexArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToVector",
          "kind": "function",
          "signature": "function ToVector(const Matrix:IDenseSingleMatrix):TSingleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleComplexMatrixArray",
          "kind": "type",
          "signature": "TSingleComplexMatrixArray=array of array of TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleMatrixArray",
          "kind": "type",
          "signature": "TSingleMatrixArray=array of array of Single",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSizeIntArray",
          "kind": "type",
          "signature": "TSizeIntArray=array of SizeInt",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSmallComplexMatrix2",
          "kind": "type",
          "signature": "TSmallComplexMatrix2=specialize TSmallDenseMatrix2<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSmallComplexMatrix2Batch",
          "kind": "type",
          "signature": "TSmallComplexMatrix2Batch=array of TSmallComplexMatrix2",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSmallDenseMatrix2",
          "kind": "record",
          "signature": "generic TSmallDenseMatrix2<T>=record",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSmallDoubleMatrix2",
          "kind": "type",
          "signature": "TSmallDoubleMatrix2=specialize TSmallDenseMatrix2<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSmallDoubleMatrix2Batch",
          "kind": "type",
          "signature": "TSmallDoubleMatrix2Batch=array of TSmallDoubleMatrix2",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSmallSingleComplexMatrix2",
          "kind": "type",
          "signature": "TSmallSingleComplexMatrix2=specialize TSmallDenseMatrix2<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSmallSingleComplexMatrix2Batch",
          "kind": "type",
          "signature": "TSmallSingleComplexMatrix2Batch=array of TSmallSingleComplexMatrix2",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSmallSingleMatrix2",
          "kind": "type",
          "signature": "TSmallSingleMatrix2=specialize TSmallDenseMatrix2<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSmallSingleMatrix2Batch",
          "kind": "type",
          "signature": "TSmallSingleMatrix2Batch=array of TSmallSingleMatrix2",
          "classification": "advanced"
        },
        {
          "owner": "IDenseMatrix",
          "name": "Clone",
          "kind": "function",
          "signature": "function Clone:specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "Cols",
          "kind": "property",
          "signature": "property Cols:SizeInt read GetCols",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "ColumnView",
          "kind": "function",
          "signature": "function ColumnView(const Col:SizeInt):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "DataPointer",
          "kind": "property",
          "signature": "property DataPointer:Pointer read GetDataPointer",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "DiagonalView",
          "kind": "function",
          "signature": "function DiagonalView(const Offset:SizeInt=0):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "GetDataPointer",
          "kind": "function",
          "signature": "function GetDataPointer:Pointer",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "GetIsContiguous",
          "kind": "function",
          "signature": "function GetIsContiguous:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "GetStorageIdentity",
          "kind": "function",
          "signature": "function GetStorageIdentity:Pointer",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "GetValue",
          "kind": "function",
          "signature": "function GetValue(const Row,Col:SizeInt):T",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "IsContiguous",
          "kind": "property",
          "signature": "property IsContiguous:Boolean read GetIsContiguous",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "Rows",
          "kind": "property",
          "signature": "property Rows:SizeInt read GetRows",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "RowView",
          "kind": "function",
          "signature": "function RowView(const Row:SizeInt):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "SetValue",
          "kind": "procedure",
          "signature": "procedure SetValue(const Row,Col:SizeInt;const Value:T)",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "StorageIdentity",
          "kind": "property",
          "signature": "property StorageIdentity:Pointer read GetStorageIdentity",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "Values",
          "kind": "property",
          "signature": "property Values[const Row,Col:SizeInt]:T read GetValue write SetValue",
          "classification": "implementation"
        },
        {
          "owner": "IDenseMatrix",
          "name": "View",
          "kind": "function",
          "signature": "function View(const StartRow,StartCol,RowCount,ColCount:SizeInt):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TDenseComplexMatrix",
          "name": "FromArray",
          "kind": "function",
          "signature": "class function FromArray(const Values:TComplexMatrixArray):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDenseComplexMatrix",
          "name": "FromValues",
          "kind": "function",
          "signature": "class function FromValues(const Rows,Cols:SizeInt;const Values:array of TComplex):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDenseComplexMatrix",
          "name": "FromVector",
          "kind": "function",
          "signature": "class function FromVector(const Values:TComplexArray;const AsColumn:Boolean=True):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDenseComplexMatrix",
          "name": "Zeros",
          "kind": "function",
          "signature": "class function Zeros(const Rows,Cols:SizeInt):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDenseDoubleMatrix",
          "name": "FromArray",
          "kind": "function",
          "signature": "class function FromArray(const Values:TMatrixArray):IDenseDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TDenseDoubleMatrix",
          "name": "FromIMatrix",
          "kind": "function",
          "signature": "class function FromIMatrix(const Values:IMatrix):IDenseDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TDenseDoubleMatrix",
          "name": "FromValues",
          "kind": "function",
          "signature": "class function FromValues(const Rows,Cols:SizeInt;const Values:array of Double):IDenseDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TDenseDoubleMatrix",
          "name": "FromVector",
          "kind": "function",
          "signature": "class function FromVector(const Values:TDoubleArray;const AsColumn:Boolean=True):IDenseDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TDenseDoubleMatrix",
          "name": "Zeros",
          "kind": "function",
          "signature": "class function Zeros(const Rows,Cols:SizeInt):IDenseDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TDenseShape",
          "name": "Cols",
          "kind": "field",
          "signature": "Cols:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TDenseShape",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const ARows,ACols:SizeInt):TDenseShape",
          "classification": "advanced"
        },
        {
          "owner": "TDenseShape",
          "name": "ElementCount",
          "kind": "function",
          "signature": "function ElementCount:SizeUInt",
          "classification": "advanced"
        },
        {
          "owner": "TDenseShape",
          "name": "Rows",
          "kind": "field",
          "signature": "Rows:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSingleComplexMatrix",
          "name": "FromArray",
          "kind": "function",
          "signature": "class function FromArray(const Values:TSingleComplexMatrixArray):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSingleComplexMatrix",
          "name": "FromValues",
          "kind": "function",
          "signature": "class function FromValues(const Rows,Cols:SizeInt;const Values:array of TSingleComplex):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSingleComplexMatrix",
          "name": "FromVector",
          "kind": "function",
          "signature": "class function FromVector(const Values:TSingleComplexArray;const AsColumn:Boolean=True):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSingleComplexMatrix",
          "name": "Zeros",
          "kind": "function",
          "signature": "class function Zeros(const Rows,Cols:SizeInt):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSingleMatrix",
          "name": "FromArray",
          "kind": "function",
          "signature": "class function FromArray(const Values:TSingleMatrixArray):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSingleMatrix",
          "name": "FromValues",
          "kind": "function",
          "signature": "class function FromValues(const Rows,Cols:SizeInt;const Values:array of Single):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSingleMatrix",
          "name": "FromVector",
          "kind": "function",
          "signature": "class function FromVector(const Values:TSingleArray;const AsColumn:Boolean=True):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDenseSingleMatrix",
          "name": "Zeros",
          "kind": "function",
          "signature": "class function Zeros(const Rows,Cols:SizeInt):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TSmallDenseMatrix2",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const A,B:specialize TSmallDenseMatrix2<T>):specialize TSmallDenseMatrix2<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSmallDenseMatrix2",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const A:specialize TSmallDenseMatrix2<T>;const Scalar:T):specialize TSmallDenseMatrix2<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSmallDenseMatrix2",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const Scalar:T;const A:specialize TSmallDenseMatrix2<T>):specialize TSmallDenseMatrix2<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSmallDenseMatrix2",
          "name": "+",
          "kind": "operator",
          "signature": "class operator +(const A,B:specialize TSmallDenseMatrix2<T>):specialize TSmallDenseMatrix2<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSmallDenseMatrix2",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A,B:specialize TSmallDenseMatrix2<T>):specialize TSmallDenseMatrix2<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSmallDenseMatrix2",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const M00,M01,M10,M11:T):specialize TSmallDenseMatrix2<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSmallDenseMatrix2",
          "name": "Values",
          "kind": "property",
          "signature": "property Values[const Row,Col:SizeInt]:T read GetValue",
          "classification": "implementation"
        }
      ]
    },
    {
      "unit": "AlgebraLib.DenseSolvers",
      "source": "src/AlgebraLib.DenseSolvers.pas",
      "classification_summary": {
        "advanced": 27,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 26,
        "recommended": 1
      },
      "interface_sha256": "482a32d391f57762787cced31b47957a20d27322cede4d4d24d432c499d53b1e",
      "declarations": [
        {
          "owner": null,
          "name": "FactorCholesky",
          "kind": "function",
          "signature": "function FactorCholesky(const A:IDenseComplexMatrix):IDenseComplexCholesky",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorCholesky",
          "kind": "function",
          "signature": "function FactorCholesky(const A:IDenseDoubleMatrix):IDenseDoubleCholesky",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorCholesky",
          "kind": "function",
          "signature": "function FactorCholesky(const A:IDenseSingleComplexMatrix):IDenseSingleComplexCholesky",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorCholesky",
          "kind": "function",
          "signature": "function FactorCholesky(const A:IDenseSingleMatrix):IDenseSingleCholesky",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorLU",
          "kind": "function",
          "signature": "function FactorLU(const A:IDenseComplexMatrix):IDenseComplexLU",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorLU",
          "kind": "function",
          "signature": "function FactorLU(const A:IDenseDoubleMatrix):IDenseDoubleLU",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorLU",
          "kind": "function",
          "signature": "function FactorLU(const A:IDenseSingleComplexMatrix):IDenseSingleComplexLU",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "FactorLU",
          "kind": "function",
          "signature": "function FactorLU(const A:IDenseSingleMatrix):IDenseSingleLU",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseCholeskyFactorization",
          "kind": "interface",
          "signature": "generic IDenseCholeskyFactorization<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "IDenseComplexCholesky",
          "kind": "type",
          "signature": "IDenseComplexCholesky=specialize IDenseCholeskyFactorization<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseComplexLU",
          "kind": "type",
          "signature": "IDenseComplexLU=specialize IDenseLUFactorization<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseDoubleCholesky",
          "kind": "type",
          "signature": "IDenseDoubleCholesky=specialize IDenseCholeskyFactorization<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseDoubleLU",
          "kind": "type",
          "signature": "IDenseDoubleLU=specialize IDenseLUFactorization<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseLUFactorization",
          "kind": "interface",
          "signature": "generic IDenseLUFactorization<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "IDenseSingleCholesky",
          "kind": "type",
          "signature": "IDenseSingleCholesky=specialize IDenseCholeskyFactorization<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseSingleComplexCholesky",
          "kind": "type",
          "signature": "IDenseSingleComplexCholesky=specialize IDenseCholeskyFactorization<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseSingleComplexLU",
          "kind": "type",
          "signature": "IDenseSingleComplexLU=specialize IDenseLUFactorization<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDenseSingleLU",
          "kind": "type",
          "signature": "IDenseSingleLU=specialize IDenseLUFactorization<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Solve",
          "kind": "function",
          "signature": "function Solve(const A,B:IDenseComplexMatrix):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Solve",
          "kind": "function",
          "signature": "function Solve(const A,B:IDenseDoubleMatrix):IDenseDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "Solve",
          "kind": "function",
          "signature": "function Solve(const A,B:IDenseSingleComplexMatrix):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Solve",
          "kind": "function",
          "signature": "function Solve(const A,B:IDenseSingleMatrix):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolvePositiveDefinite",
          "kind": "function",
          "signature": "function SolvePositiveDefinite(const A,B:IDenseComplexMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolvePositiveDefinite",
          "kind": "function",
          "signature": "function SolvePositiveDefinite(const A,B:IDenseDoubleMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolvePositiveDefinite",
          "kind": "function",
          "signature": "function SolvePositiveDefinite(const A,B:IDenseSingleComplexMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolvePositiveDefinite",
          "kind": "function",
          "signature": "function SolvePositiveDefinite(const A,B:IDenseSingleMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolveWithInfo",
          "kind": "function",
          "signature": "function SolveWithInfo(const A,B:IDenseComplexMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolveWithInfo",
          "kind": "function",
          "signature": "function SolveWithInfo(const A,B:IDenseDoubleMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolveWithInfo",
          "kind": "function",
          "signature": "function SolveWithInfo(const A,B:IDenseSingleComplexMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SolveWithInfo",
          "kind": "function",
          "signature": "function SolveWithInfo(const A,B:IDenseSingleMatrix;out Diagnostics:TDenseSolveDiagnostics):IDenseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "IDenseCholeskyFactorization",
          "name": "ConditionIndicator",
          "kind": "property",
          "signature": "property ConditionIndicator:Double read GetConditionIndicator",
          "classification": "implementation"
        },
        {
          "owner": "IDenseCholeskyFactorization",
          "name": "GetConditionIndicator",
          "kind": "function",
          "signature": "function GetConditionIndicator:Double",
          "classification": "implementation"
        },
        {
          "owner": "IDenseCholeskyFactorization",
          "name": "GetL",
          "kind": "function",
          "signature": "function GetL:specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseCholeskyFactorization",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseCholeskyFactorization",
          "name": "L",
          "kind": "property",
          "signature": "property L:specialize IDenseMatrix<T> read GetL",
          "classification": "implementation"
        },
        {
          "owner": "IDenseCholeskyFactorization",
          "name": "Size",
          "kind": "property",
          "signature": "property Size:SizeInt read GetSize",
          "classification": "implementation"
        },
        {
          "owner": "IDenseCholeskyFactorization",
          "name": "Solve",
          "kind": "function",
          "signature": "function Solve(const B:specialize IDenseMatrix<T>):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseCholeskyFactorization",
          "name": "SolveWithInfo",
          "kind": "function",
          "signature": "function SolveWithInfo(const B:specialize IDenseMatrix<T>;out Diagnostics:TDenseSolveDiagnostics):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "ConditionIndicator",
          "kind": "property",
          "signature": "property ConditionIndicator:Double read GetConditionIndicator",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "GetConditionIndicator",
          "kind": "function",
          "signature": "function GetConditionIndicator:Double",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "GetIsIllConditioned",
          "kind": "function",
          "signature": "function GetIsIllConditioned:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "GetL",
          "kind": "function",
          "signature": "function GetL:specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "GetPermutation",
          "kind": "function",
          "signature": "function GetPermutation:TSizeIntArray",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "GetPivotRatio",
          "kind": "function",
          "signature": "function GetPivotRatio:Double",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "GetU",
          "kind": "function",
          "signature": "function GetU:specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "IsIllConditioned",
          "kind": "property",
          "signature": "property IsIllConditioned:Boolean read GetIsIllConditioned",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "L",
          "kind": "property",
          "signature": "property L:specialize IDenseMatrix<T> read GetL",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "Permutation",
          "kind": "property",
          "signature": "property Permutation:TSizeIntArray read GetPermutation",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "PivotRatio",
          "kind": "property",
          "signature": "property PivotRatio:Double read GetPivotRatio",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "Size",
          "kind": "property",
          "signature": "property Size:SizeInt read GetSize",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "Solve",
          "kind": "function",
          "signature": "function Solve(const B:specialize IDenseMatrix<T>):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "SolveWithInfo",
          "kind": "function",
          "signature": "function SolveWithInfo(const B:specialize IDenseMatrix<T>;out Diagnostics:TDenseSolveDiagnostics):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "IDenseLUFactorization",
          "name": "U",
          "kind": "property",
          "signature": "property U:specialize IDenseMatrix<T> read GetU",
          "classification": "implementation"
        }
      ]
    },
    {
      "unit": "AlgebraLib.Determinants",
      "source": "src/AlgebraLib.Determinants.pas",
      "classification_summary": {
        "advanced": 1,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "3b6da7a77613265189df699e0f9d987a1a10d43e6f0aaf0435792e15645dbe8d",
      "declarations": [
        {
          "owner": null,
          "name": "TIterSolverMethod",
          "kind": "type",
          "signature": "TIterSolverMethod=TIterativeMethod",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "AlgebraLib.IterativeSolvers",
      "source": "src/AlgebraLib.IterativeSolvers.pas",
      "classification_summary": {
        "advanced": 55,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 28,
        "recommended": 0
      },
      "interface_sha256": "6079df3e3fc24477a6d09573fc833accce9e52e52b8cab87e7ac614fd4d15707",
      "declarations": [
        {
          "owner": null,
          "name": "EIterativeSolverError",
          "kind": "type",
          "signature": "EIterativeSolverError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IIterationMonitor",
          "kind": "interface",
          "signature": "IIterationMonitor=interface",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexIterativeSolver",
          "kind": "type",
          "signature": "TComplexIterativeSolver=specialize TIterativeSolver<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexIterativeWorkspace",
          "kind": "type",
          "signature": "TComplexIterativeWorkspace=specialize TIterativeWorkspace<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexLinearSolveResult",
          "kind": "type",
          "signature": "TComplexLinearSolveResult=specialize TLinearSolveResult<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDoubleIterativeSolver",
          "kind": "type",
          "signature": "TDoubleIterativeSolver=specialize TIterativeSolver<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDoubleIterativeWorkspace",
          "kind": "type",
          "signature": "TDoubleIterativeWorkspace=specialize TIterativeWorkspace<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDoubleLinearSolveResult",
          "kind": "type",
          "signature": "TDoubleLinearSolveResult=specialize TLinearSolveResult<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TIterativeMethod",
          "kind": "type",
          "signature": "TIterativeMethod=(imConjugateGradient,imMINRES,imGMRES,imBiCGSTAB,imLSQR)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TIterativeSolver",
          "kind": "class",
          "signature": "generic TIterativeSolver<T>=class",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TIterativeVector",
          "kind": "type",
          "signature": "generic TIterativeVector<T>=array of T",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TIterativeVectorList",
          "kind": "type",
          "signature": "generic TIterativeVectorList<T>=array of specialize TIterativeVector<T>",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TIterativeWorkspace",
          "kind": "class",
          "signature": "generic TIterativeWorkspace<T>=class",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TLinearBreakdownReason",
          "kind": "type",
          "signature": "TLinearBreakdownReason=(lbrNone,lbrNonFiniteValue,lbrZeroDenominator,lbrNonPositiveCurvature,lbrNonPositivePreconditioner,lbrArnoldiInvariantSubspace,lbrLanczosBreakdown)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLinearSolveDiagnostics",
          "kind": "record",
          "signature": "TLinearSolveDiagnostics=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLinearSolveOptions",
          "kind": "record",
          "signature": "TLinearSolveOptions=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLinearSolveResult",
          "kind": "record",
          "signature": "generic TLinearSolveResult<T>=record",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSingleComplexIterativeSolver",
          "kind": "type",
          "signature": "TSingleComplexIterativeSolver=specialize TIterativeSolver<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleComplexIterativeWorkspace",
          "kind": "type",
          "signature": "TSingleComplexIterativeWorkspace=specialize TIterativeWorkspace<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleComplexLinearSolveResult",
          "kind": "type",
          "signature": "TSingleComplexLinearSolveResult=specialize TLinearSolveResult<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleIterativeSolver",
          "kind": "type",
          "signature": "TSingleIterativeSolver=specialize TIterativeSolver<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleIterativeWorkspace",
          "kind": "type",
          "signature": "TSingleIterativeWorkspace=specialize TIterativeWorkspace<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleLinearSolveResult",
          "kind": "type",
          "signature": "TSingleLinearSolveResult=specialize TLinearSolveResult<Single>",
          "classification": "advanced"
        },
        {
          "owner": "IIterationMonitor",
          "name": "ReportProgress",
          "kind": "procedure",
          "signature": "procedure ReportProgress(const Method:TIterativeMethod;const Iteration,ProductCount:SizeInt;const ResidualNorm,StoppingThreshold:Double)",
          "classification": "advanced"
        },
        {
          "owner": "IIterationMonitor",
          "name": "ShouldCancel",
          "kind": "function",
          "signature": "function ShouldCancel:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TIterativeMethod",
          "name": "imBiCGSTAB",
          "kind": "enum-value",
          "signature": "imBiCGSTAB",
          "classification": "advanced"
        },
        {
          "owner": "TIterativeMethod",
          "name": "imConjugateGradient",
          "kind": "enum-value",
          "signature": "imConjugateGradient",
          "classification": "advanced"
        },
        {
          "owner": "TIterativeMethod",
          "name": "imGMRES",
          "kind": "enum-value",
          "signature": "imGMRES",
          "classification": "advanced"
        },
        {
          "owner": "TIterativeMethod",
          "name": "imLSQR",
          "kind": "enum-value",
          "signature": "imLSQR",
          "classification": "advanced"
        },
        {
          "owner": "TIterativeMethod",
          "name": "imMINRES",
          "kind": "enum-value",
          "signature": "imMINRES",
          "classification": "advanced"
        },
        {
          "owner": "TIterativeSolver",
          "name": "BiCGSTAB",
          "kind": "function",
          "signature": "class function BiCGSTAB(const A:TOperator;const B:TDense;const Options:TLinearSolveOptions;const Preconditioner:TPreconditioner=nil):TResult",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeSolver",
          "name": "BiCGSTABInto",
          "kind": "function",
          "signature": "class function BiCGSTABInto(const A:TOperator;const B,Solution:TDense;const Workspace:TWorkspace;const Options:TLinearSolveOptions;const Preconditioner:TPreconditioner=nil):TLinearSolveDiagnostics",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeSolver",
          "name": "ConjugateGradient",
          "kind": "function",
          "signature": "class function ConjugateGradient(const A:TOperator;const B:TDense;const Options:TLinearSolveOptions;const Preconditioner:TPreconditioner=nil):TResult",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeSolver",
          "name": "ConjugateGradientInto",
          "kind": "function",
          "signature": "class function ConjugateGradientInto(const A:TOperator;const B,Solution:TDense;const Workspace:TWorkspace;const Options:TLinearSolveOptions;const Preconditioner:TPreconditioner=nil):TLinearSolveDiagnostics",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeSolver",
          "name": "GMRES",
          "kind": "function",
          "signature": "class function GMRES(const A:TOperator;const B:TDense;const Options:TLinearSolveOptions;const Preconditioner:TPreconditioner=nil):TResult",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeSolver",
          "name": "GMRESInto",
          "kind": "function",
          "signature": "class function GMRESInto(const A:TOperator;const B,Solution:TDense;const Workspace:TWorkspace;const Options:TLinearSolveOptions;const Preconditioner:TPreconditioner=nil):TLinearSolveDiagnostics",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeSolver",
          "name": "LSQR",
          "kind": "function",
          "signature": "class function LSQR(const A:TOperator;const B:TDense;const Options:TLinearSolveOptions):TResult",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeSolver",
          "name": "LSQRInto",
          "kind": "function",
          "signature": "class function LSQRInto(const A:TOperator;const B,Solution:TDense;const Workspace:TWorkspace;const Options:TLinearSolveOptions):TLinearSolveDiagnostics",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeSolver",
          "name": "MINRES",
          "kind": "function",
          "signature": "class function MINRES(const A:TOperator;const B:TDense;const Options:TLinearSolveOptions;const Preconditioner:TPreconditioner=nil):TResult",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeSolver",
          "name": "MINRESInto",
          "kind": "function",
          "signature": "class function MINRESInto(const A:TOperator;const B,Solution:TDense;const Workspace:TWorkspace;const Options:TLinearSolveOptions;const Preconditioner:TPreconditioner=nil):TLinearSolveDiagnostics",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeWorkspace",
          "name": "Basis",
          "kind": "function",
          "signature": "function Basis(const Index:SizeInt):specialize TIterativeVector<T>",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeWorkspace",
          "name": "BeginUse",
          "kind": "procedure",
          "signature": "procedure BeginUse",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeWorkspace",
          "name": "Cols",
          "kind": "property",
          "signature": "property Cols:SizeInt read FCols",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeWorkspace",
          "name": "Destroy",
          "kind": "destructor",
          "signature": "destructor Destroy",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeWorkspace",
          "name": "EndUse",
          "kind": "procedure",
          "signature": "procedure EndUse",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeWorkspace",
          "name": "GetH",
          "kind": "function",
          "signature": "function GetH(const Row,Col:SizeInt):T",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeWorkspace",
          "name": "Prepare",
          "kind": "procedure",
          "signature": "procedure Prepare(const Rows,Cols,RestartSize:SizeInt)",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeWorkspace",
          "name": "RestartSize",
          "kind": "property",
          "signature": "property RestartSize:SizeInt read FRestart",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeWorkspace",
          "name": "Rows",
          "kind": "property",
          "signature": "property Rows:SizeInt read FRows",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeWorkspace",
          "name": "SetH",
          "kind": "procedure",
          "signature": "procedure SetH(const Row,Col:SizeInt;const Value:T)",
          "classification": "implementation"
        },
        {
          "owner": "TIterativeWorkspace",
          "name": "Vector",
          "kind": "function",
          "signature": "function Vector(const Index:SizeInt):specialize TIterativeVector<T>",
          "classification": "implementation"
        },
        {
          "owner": "TLinearBreakdownReason",
          "name": "lbrArnoldiInvariantSubspace",
          "kind": "enum-value",
          "signature": "lbrArnoldiInvariantSubspace",
          "classification": "advanced"
        },
        {
          "owner": "TLinearBreakdownReason",
          "name": "lbrLanczosBreakdown",
          "kind": "enum-value",
          "signature": "lbrLanczosBreakdown",
          "classification": "advanced"
        },
        {
          "owner": "TLinearBreakdownReason",
          "name": "lbrNone",
          "kind": "enum-value",
          "signature": "lbrNone",
          "classification": "advanced"
        },
        {
          "owner": "TLinearBreakdownReason",
          "name": "lbrNonFiniteValue",
          "kind": "enum-value",
          "signature": "lbrNonFiniteValue",
          "classification": "advanced"
        },
        {
          "owner": "TLinearBreakdownReason",
          "name": "lbrNonPositiveCurvature",
          "kind": "enum-value",
          "signature": "lbrNonPositiveCurvature",
          "classification": "advanced"
        },
        {
          "owner": "TLinearBreakdownReason",
          "name": "lbrNonPositivePreconditioner",
          "kind": "enum-value",
          "signature": "lbrNonPositivePreconditioner",
          "classification": "advanced"
        },
        {
          "owner": "TLinearBreakdownReason",
          "name": "lbrZeroDenominator",
          "kind": "enum-value",
          "signature": "lbrZeroDenominator",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "AchievedRelativeResidual",
          "kind": "field",
          "signature": "AchievedRelativeResidual:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "BreakdownReason",
          "kind": "field",
          "signature": "BreakdownReason:TLinearBreakdownReason",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "ConvergenceConfirmed",
          "kind": "field",
          "signature": "ConvergenceConfirmed:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "FinalNormalResidualNorm",
          "kind": "field",
          "signature": "FinalNormalResidualNorm:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "FinalResidualNorm",
          "kind": "field",
          "signature": "FinalResidualNorm:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "InitialNormalResidualNorm",
          "kind": "field",
          "signature": "InitialNormalResidualNorm:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "InitialResidualNorm",
          "kind": "field",
          "signature": "InitialResidualNorm:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "Iterations",
          "kind": "field",
          "signature": "Iterations:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "Method",
          "kind": "field",
          "signature": "Method:TIterativeMethod",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "ProductCount",
          "kind": "field",
          "signature": "ProductCount:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "RequestedTolerance",
          "kind": "field",
          "signature": "RequestedTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "ResidualConfirmed",
          "kind": "field",
          "signature": "ResidualConfirmed:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "ResidualRefreshCount",
          "kind": "field",
          "signature": "ResidualRefreshCount:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveDiagnostics",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveOptions",
          "name": "AbsoluteTolerance",
          "kind": "field",
          "signature": "AbsoluteTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveOptions",
          "name": "BreakdownTolerance",
          "kind": "field",
          "signature": "BreakdownTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveOptions",
          "name": "ConfirmConvergence",
          "kind": "field",
          "signature": "ConfirmConvergence:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveOptions",
          "name": "Default",
          "kind": "function",
          "signature": "class function Default:TLinearSolveOptions",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveOptions",
          "name": "MaxIterations",
          "kind": "field",
          "signature": "MaxIterations:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveOptions",
          "name": "Monitor",
          "kind": "field",
          "signature": "Monitor:IIterationMonitor",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveOptions",
          "name": "RelativeTolerance",
          "kind": "field",
          "signature": "RelativeTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveOptions",
          "name": "ResidualRefresh",
          "kind": "field",
          "signature": "ResidualRefresh:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveOptions",
          "name": "RestartSize",
          "kind": "field",
          "signature": "RestartSize:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TLinearSolveResult",
          "name": "Diagnostics",
          "kind": "field",
          "signature": "Diagnostics:TLinearSolveDiagnostics",
          "classification": "implementation"
        },
        {
          "owner": "TLinearSolveResult",
          "name": "Solution",
          "kind": "field",
          "signature": "Solution:specialize IDenseMatrix<T>",
          "classification": "implementation"
        }
      ]
    },
    {
      "unit": "AlgebraLib.LinearOperators",
      "source": "src/AlgebraLib.LinearOperators.pas",
      "classification_summary": {
        "advanced": 31,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 116,
        "recommended": 0
      },
      "interface_sha256": "abbab8d8456e9a2e07bdecfed5dee1f8f8afd88a35806aadeb95f300808e1db4",
      "declarations": [
        {
          "owner": null,
          "name": "ELinearOperatorError",
          "kind": "type",
          "signature": "ELinearOperatorError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "EPreconditionerError",
          "kind": "type",
          "signature": "EPreconditionerError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IComplexPreconditioner",
          "kind": "type",
          "signature": "IComplexPreconditioner=specialize IPreconditioner<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IDoublePreconditioner",
          "kind": "type",
          "signature": "IDoublePreconditioner=specialize IPreconditioner<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ILinearComplexOperator",
          "kind": "type",
          "signature": "ILinearComplexOperator=specialize ILinearOperator<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ILinearDoubleOperator",
          "kind": "type",
          "signature": "ILinearDoubleOperator=specialize ILinearOperator<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ILinearOperator",
          "kind": "interface",
          "signature": "generic ILinearOperator<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "ILinearSingleComplexOperator",
          "kind": "type",
          "signature": "ILinearSingleComplexOperator=specialize ILinearOperator<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ILinearSingleOperator",
          "kind": "type",
          "signature": "ILinearSingleOperator=specialize ILinearOperator<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IMatrixFreeAction",
          "kind": "interface",
          "signature": "generic IMatrixFreeAction<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "IMatrixFreeComplexAction",
          "kind": "type",
          "signature": "IMatrixFreeComplexAction=specialize IMatrixFreeAction<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IMatrixFreeDoubleAction",
          "kind": "type",
          "signature": "IMatrixFreeDoubleAction=specialize IMatrixFreeAction<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IMatrixFreeSingleAction",
          "kind": "type",
          "signature": "IMatrixFreeSingleAction=specialize IMatrixFreeAction<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IMatrixFreeSingleComplexAction",
          "kind": "type",
          "signature": "IMatrixFreeSingleComplexAction=specialize IMatrixFreeAction<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IPreconditioner",
          "kind": "interface",
          "signature": "generic IPreconditioner<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "ISingleComplexPreconditioner",
          "kind": "type",
          "signature": "ISingleComplexPreconditioner=specialize IPreconditioner<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ISinglePreconditioner",
          "kind": "type",
          "signature": "ISinglePreconditioner=specialize IPreconditioner<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexLinearOperator",
          "kind": "type",
          "signature": "TComplexLinearOperator=specialize TLinearOperatorFactory<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexPreconditioner",
          "kind": "type",
          "signature": "TComplexPreconditioner=specialize TPreconditionerFactory<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDenseLinearOperator",
          "kind": "class",
          "signature": "generic TDenseLinearOperator<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TDiagonalPreconditioner",
          "kind": "class",
          "signature": "generic TDiagonalPreconditioner<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TDoubleLinearOperator",
          "kind": "type",
          "signature": "TDoubleLinearOperator=specialize TLinearOperatorFactory<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDoublePreconditioner",
          "kind": "type",
          "signature": "TDoublePreconditioner=specialize TPreconditionerFactory<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TIC0Preconditioner",
          "kind": "class",
          "signature": "generic TIC0Preconditioner<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TIdentityPreconditioner",
          "kind": "class",
          "signature": "generic TIdentityPreconditioner<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TILU0Preconditioner",
          "kind": "class",
          "signature": "generic TILU0Preconditioner<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TLinearOperatorFactory",
          "kind": "class",
          "signature": "generic TLinearOperatorFactory<T>=class",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TLinearOperatorOwnership",
          "kind": "type",
          "signature": "TLinearOperatorOwnership=(looRetainedImmutable,looRetainedMutable,looDelegated)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLinearScalar",
          "kind": "class",
          "signature": "generic TLinearScalar<T>=class",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TMatrixFreeLinearOperator",
          "kind": "class",
          "signature": "generic TMatrixFreeLinearOperator<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TPreconditionerFactory",
          "kind": "class",
          "signature": "generic TPreconditionerFactory<T>=class",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TPreconditionerKind",
          "kind": "type",
          "signature": "TPreconditionerKind=(pkIdentity,pkDiagonal,pkIncompleteCholesky,pkILU0)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleComplexLinearOperator",
          "kind": "type",
          "signature": "TSingleComplexLinearOperator=specialize TLinearOperatorFactory<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleComplexPreconditioner",
          "kind": "type",
          "signature": "TSingleComplexPreconditioner=specialize TPreconditionerFactory<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleLinearOperator",
          "kind": "type",
          "signature": "TSingleLinearOperator=specialize TLinearOperatorFactory<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSinglePreconditioner",
          "kind": "type",
          "signature": "TSinglePreconditioner=specialize TPreconditionerFactory<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseLinearOperator",
          "kind": "class",
          "signature": "generic TSparseLinearOperator<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TStructuredLinearOperator",
          "kind": "class",
          "signature": "generic TStructuredLinearOperator<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "Apply",
          "kind": "procedure",
          "signature": "procedure Apply(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "ApplyAdjoint",
          "kind": "procedure",
          "signature": "procedure ApplyAdjoint(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "Cols",
          "kind": "property",
          "signature": "property Cols:SizeInt read GetCols",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "GetIsReentrant",
          "kind": "function",
          "signature": "function GetIsReentrant:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "GetOwnership",
          "kind": "function",
          "signature": "function GetOwnership:TLinearOperatorOwnership",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "IsReentrant",
          "kind": "property",
          "signature": "property IsReentrant:Boolean read GetIsReentrant",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "Ownership",
          "kind": "property",
          "signature": "property Ownership:TLinearOperatorOwnership read GetOwnership",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "Rows",
          "kind": "property",
          "signature": "property Rows:SizeInt read GetRows",
          "classification": "implementation"
        },
        {
          "owner": "ILinearOperator",
          "name": "ScalarKind",
          "kind": "property",
          "signature": "property ScalarKind:TSparseScalarKind read GetScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "IMatrixFreeAction",
          "name": "Apply",
          "kind": "procedure",
          "signature": "procedure Apply(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "IMatrixFreeAction",
          "name": "ApplyAdjoint",
          "kind": "procedure",
          "signature": "procedure ApplyAdjoint(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "IMatrixFreeAction",
          "name": "GetIsReentrant",
          "kind": "function",
          "signature": "function GetIsReentrant:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "IMatrixFreeAction",
          "name": "IsReentrant",
          "kind": "property",
          "signature": "property IsReentrant:Boolean read GetIsReentrant",
          "classification": "implementation"
        },
        {
          "owner": "IPreconditioner",
          "name": "Apply",
          "kind": "procedure",
          "signature": "procedure Apply(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "IPreconditioner",
          "name": "GetIsReentrant",
          "kind": "function",
          "signature": "function GetIsReentrant:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "IPreconditioner",
          "name": "GetKind",
          "kind": "function",
          "signature": "function GetKind:TPreconditionerKind",
          "classification": "implementation"
        },
        {
          "owner": "IPreconditioner",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "IPreconditioner",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IPreconditioner",
          "name": "IsReentrant",
          "kind": "property",
          "signature": "property IsReentrant:Boolean read GetIsReentrant",
          "classification": "implementation"
        },
        {
          "owner": "IPreconditioner",
          "name": "Kind",
          "kind": "property",
          "signature": "property Kind:TPreconditionerKind read GetKind",
          "classification": "implementation"
        },
        {
          "owner": "IPreconditioner",
          "name": "ScalarKind",
          "kind": "property",
          "signature": "property ScalarKind:TSparseScalarKind read GetScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "IPreconditioner",
          "name": "Size",
          "kind": "property",
          "signature": "property Size:SizeInt read GetSize",
          "classification": "implementation"
        },
        {
          "owner": "TDenseLinearOperator",
          "name": "Apply",
          "kind": "procedure",
          "signature": "procedure Apply(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TDenseLinearOperator",
          "name": "ApplyAdjoint",
          "kind": "procedure",
          "signature": "procedure ApplyAdjoint(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TDenseLinearOperator",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Matrix:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TDenseLinearOperator",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TDenseLinearOperator",
          "name": "GetIsReentrant",
          "kind": "function",
          "signature": "function GetIsReentrant:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TDenseLinearOperator",
          "name": "GetOwnership",
          "kind": "function",
          "signature": "function GetOwnership:TLinearOperatorOwnership",
          "classification": "implementation"
        },
        {
          "owner": "TDenseLinearOperator",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TDenseLinearOperator",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TDiagonalPreconditioner",
          "name": "Apply",
          "kind": "procedure",
          "signature": "procedure Apply(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TDiagonalPreconditioner",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Diagonal:array of T;const PivotTolerance:Double)",
          "classification": "implementation"
        },
        {
          "owner": "TDiagonalPreconditioner",
          "name": "GetIsReentrant",
          "kind": "function",
          "signature": "function GetIsReentrant:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TDiagonalPreconditioner",
          "name": "GetKind",
          "kind": "function",
          "signature": "function GetKind:TPreconditionerKind",
          "classification": "implementation"
        },
        {
          "owner": "TDiagonalPreconditioner",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TDiagonalPreconditioner",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TIC0Preconditioner",
          "name": "Apply",
          "kind": "procedure",
          "signature": "procedure Apply(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TIC0Preconditioner",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Matrix:specialize ISparseMatrix<T>;const PivotTolerance:Double)",
          "classification": "implementation"
        },
        {
          "owner": "TIC0Preconditioner",
          "name": "GetIsReentrant",
          "kind": "function",
          "signature": "function GetIsReentrant:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TIC0Preconditioner",
          "name": "GetKind",
          "kind": "function",
          "signature": "function GetKind:TPreconditionerKind",
          "classification": "implementation"
        },
        {
          "owner": "TIC0Preconditioner",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TIC0Preconditioner",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TIdentityPreconditioner",
          "name": "Apply",
          "kind": "procedure",
          "signature": "procedure Apply(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TIdentityPreconditioner",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const ASize:SizeInt)",
          "classification": "implementation"
        },
        {
          "owner": "TIdentityPreconditioner",
          "name": "GetIsReentrant",
          "kind": "function",
          "signature": "function GetIsReentrant:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TIdentityPreconditioner",
          "name": "GetKind",
          "kind": "function",
          "signature": "function GetKind:TPreconditionerKind",
          "classification": "implementation"
        },
        {
          "owner": "TIdentityPreconditioner",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TIdentityPreconditioner",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TILU0Preconditioner",
          "name": "Apply",
          "kind": "procedure",
          "signature": "procedure Apply(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TILU0Preconditioner",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Matrix:specialize ISparseMatrix<T>;const PivotTolerance:Double)",
          "classification": "implementation"
        },
        {
          "owner": "TILU0Preconditioner",
          "name": "GetIsReentrant",
          "kind": "function",
          "signature": "function GetIsReentrant:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TILU0Preconditioner",
          "name": "GetKind",
          "kind": "function",
          "signature": "function GetKind:TPreconditionerKind",
          "classification": "implementation"
        },
        {
          "owner": "TILU0Preconditioner",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TILU0Preconditioner",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TLinearOperatorFactory",
          "name": "FromDense",
          "kind": "function",
          "signature": "class function FromDense(const Matrix:specialize IDenseMatrix<T>):specialize ILinearOperator<T>",
          "classification": "implementation"
        },
        {
          "owner": "TLinearOperatorFactory",
          "name": "FromSparse",
          "kind": "function",
          "signature": "class function FromSparse(const Matrix:specialize ISparseMatrix<T>):specialize ILinearOperator<T>",
          "classification": "implementation"
        },
        {
          "owner": "TLinearOperatorFactory",
          "name": "FromStructured",
          "kind": "function",
          "signature": "class function FromStructured(const Matrix:specialize IStructuredMatrix<T>):specialize ILinearOperator<T>",
          "classification": "implementation"
        },
        {
          "owner": "TLinearOperatorFactory",
          "name": "MatrixFree",
          "kind": "function",
          "signature": "class function MatrixFree(const Rows,Cols:SizeInt;const Action:specialize IMatrixFreeAction<T>):specialize ILinearOperator<T>",
          "classification": "implementation"
        },
        {
          "owner": "TLinearOperatorOwnership",
          "name": "looDelegated",
          "kind": "enum-value",
          "signature": "looDelegated",
          "classification": "advanced"
        },
        {
          "owner": "TLinearOperatorOwnership",
          "name": "looRetainedImmutable",
          "kind": "enum-value",
          "signature": "looRetainedImmutable",
          "classification": "advanced"
        },
        {
          "owner": "TLinearOperatorOwnership",
          "name": "looRetainedMutable",
          "kind": "enum-value",
          "signature": "looRetainedMutable",
          "classification": "advanced"
        },
        {
          "owner": "TLinearScalar",
          "name": "AbsSquared",
          "kind": "function",
          "signature": "class function AbsSquared(const Value:T):Double",
          "classification": "implementation"
        },
        {
          "owner": "TLinearScalar",
          "name": "Conjugate",
          "kind": "function",
          "signature": "class function Conjugate(const Value:T):T",
          "classification": "implementation"
        },
        {
          "owner": "TLinearScalar",
          "name": "FromDouble",
          "kind": "function",
          "signature": "class function FromDouble(const Value:Double):T",
          "classification": "implementation"
        },
        {
          "owner": "TLinearScalar",
          "name": "ImaginaryPart",
          "kind": "function",
          "signature": "class function ImaginaryPart(const Value:T):Double",
          "classification": "implementation"
        },
        {
          "owner": "TLinearScalar",
          "name": "IsFinite",
          "kind": "function",
          "signature": "class function IsFinite(const Value:T):Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TLinearScalar",
          "name": "Kind",
          "kind": "function",
          "signature": "class function Kind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TLinearScalar",
          "name": "Magnitude",
          "kind": "function",
          "signature": "class function Magnitude(const Value:T):Double",
          "classification": "implementation"
        },
        {
          "owner": "TLinearScalar",
          "name": "One",
          "kind": "function",
          "signature": "class function One:T",
          "classification": "implementation"
        },
        {
          "owner": "TLinearScalar",
          "name": "RealPart",
          "kind": "function",
          "signature": "class function RealPart(const Value:T):Double",
          "classification": "implementation"
        },
        {
          "owner": "TLinearScalar",
          "name": "ValidateApplyShapes",
          "kind": "procedure",
          "signature": "class procedure ValidateApplyShapes(const Input,Destination:specialize IDenseMatrix<T>;const InputRows,OutputRows:SizeInt;const Operation:string)",
          "classification": "implementation"
        },
        {
          "owner": "TLinearScalar",
          "name": "ValidatePreconditionerVector",
          "kind": "procedure",
          "signature": "class procedure ValidatePreconditionerVector(const Input,Destination:specialize IDenseMatrix<T>;const Size:SizeInt;const Operation:string)",
          "classification": "implementation"
        },
        {
          "owner": "TLinearScalar",
          "name": "Zero",
          "kind": "function",
          "signature": "class function Zero:T",
          "classification": "implementation"
        },
        {
          "owner": "TMatrixFreeLinearOperator",
          "name": "Apply",
          "kind": "procedure",
          "signature": "procedure Apply(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TMatrixFreeLinearOperator",
          "name": "ApplyAdjoint",
          "kind": "procedure",
          "signature": "procedure ApplyAdjoint(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TMatrixFreeLinearOperator",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Rows,Cols:SizeInt;const Action:specialize IMatrixFreeAction<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TMatrixFreeLinearOperator",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TMatrixFreeLinearOperator",
          "name": "GetIsReentrant",
          "kind": "function",
          "signature": "function GetIsReentrant:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TMatrixFreeLinearOperator",
          "name": "GetOwnership",
          "kind": "function",
          "signature": "function GetOwnership:TLinearOperatorOwnership",
          "classification": "implementation"
        },
        {
          "owner": "TMatrixFreeLinearOperator",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TMatrixFreeLinearOperator",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TPreconditionerFactory",
          "name": "Diagonal",
          "kind": "function",
          "signature": "class function Diagonal(const Values:array of T;const PivotTolerance:Double=1.0e-14):specialize IPreconditioner<T>",
          "classification": "implementation"
        },
        {
          "owner": "TPreconditionerFactory",
          "name": "Identity",
          "kind": "function",
          "signature": "class function Identity(const Size:SizeInt):specialize IPreconditioner<T>",
          "classification": "implementation"
        },
        {
          "owner": "TPreconditionerFactory",
          "name": "ILU0",
          "kind": "function",
          "signature": "class function ILU0(const Matrix:specialize ISparseMatrix<T>;const PivotTolerance:Double=1.0e-14):specialize IPreconditioner<T>",
          "classification": "implementation"
        },
        {
          "owner": "TPreconditionerFactory",
          "name": "IncompleteCholesky0",
          "kind": "function",
          "signature": "class function IncompleteCholesky0(const Matrix:specialize ISparseMatrix<T>;const PivotTolerance:Double=1.0e-14):specialize IPreconditioner<T>",
          "classification": "implementation"
        },
        {
          "owner": "TPreconditionerFactory",
          "name": "SparseDiagonal",
          "kind": "function",
          "signature": "class function SparseDiagonal(const Matrix:specialize ISparseMatrix<T>;const PivotTolerance:Double=1.0e-14):specialize IPreconditioner<T>",
          "classification": "implementation"
        },
        {
          "owner": "TPreconditionerKind",
          "name": "pkDiagonal",
          "kind": "enum-value",
          "signature": "pkDiagonal",
          "classification": "advanced"
        },
        {
          "owner": "TPreconditionerKind",
          "name": "pkIdentity",
          "kind": "enum-value",
          "signature": "pkIdentity",
          "classification": "advanced"
        },
        {
          "owner": "TPreconditionerKind",
          "name": "pkILU0",
          "kind": "enum-value",
          "signature": "pkILU0",
          "classification": "advanced"
        },
        {
          "owner": "TPreconditionerKind",
          "name": "pkIncompleteCholesky",
          "kind": "enum-value",
          "signature": "pkIncompleteCholesky",
          "classification": "advanced"
        },
        {
          "owner": "TSparseLinearOperator",
          "name": "Apply",
          "kind": "procedure",
          "signature": "procedure Apply(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLinearOperator",
          "name": "ApplyAdjoint",
          "kind": "procedure",
          "signature": "procedure ApplyAdjoint(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLinearOperator",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Matrix:specialize ISparseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLinearOperator",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLinearOperator",
          "name": "GetIsReentrant",
          "kind": "function",
          "signature": "function GetIsReentrant:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLinearOperator",
          "name": "GetOwnership",
          "kind": "function",
          "signature": "function GetOwnership:TLinearOperatorOwnership",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLinearOperator",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLinearOperator",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredLinearOperator",
          "name": "Apply",
          "kind": "procedure",
          "signature": "procedure Apply(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredLinearOperator",
          "name": "ApplyAdjoint",
          "kind": "procedure",
          "signature": "procedure ApplyAdjoint(const Input,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredLinearOperator",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Matrix:specialize IStructuredMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredLinearOperator",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredLinearOperator",
          "name": "GetIsReentrant",
          "kind": "function",
          "signature": "function GetIsReentrant:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredLinearOperator",
          "name": "GetOwnership",
          "kind": "function",
          "signature": "function GetOwnership:TLinearOperatorOwnership",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredLinearOperator",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredLinearOperator",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        }
      ]
    },
    {
      "unit": "AlgebraLib.Matrices",
      "source": "src/AlgebraLib.Matrices.pas",
      "classification_summary": {
        "advanced": 39,
        "compatibility": 120,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "9693f80e64fe84df6ddcfa09a97e66e25891f4da323b403e2ea43c7e8824bdba",
      "declarations": [
        {
          "owner": null,
          "name": "BLOCK_SIZE",
          "kind": "constant",
          "signature": "BLOCK_SIZE=64",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DEBUG_MODE",
          "kind": "constant",
          "signature": "DEBUG_MODE=False",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "EMatrixError",
          "kind": "type",
          "signature": "EMatrixError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IMatrix",
          "kind": "interface",
          "signature": "IMatrix=interface",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": null,
          "name": "IMatrix",
          "kind": "type",
          "signature": "IMatrix=interface",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": null,
          "name": "MAX_MULTIPLY_THREADS",
          "kind": "constant",
          "signature": "MAX_MULTIPLY_THREADS=8",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCholeskyDecomposition",
          "kind": "record",
          "signature": "TCholeskyDecomposition=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TEigenDecomposition",
          "kind": "record",
          "signature": "TEigenDecomposition=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TEigenpair",
          "kind": "record",
          "signature": "TEigenpair=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "THREAD_OPERATION_THRESHOLD",
          "kind": "constant",
          "signature": "THREAD_OPERATION_THRESHOLD=262144",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TIterativeMethod",
          "kind": "type",
          "signature": "TIterativeMethod=(imConjugateGradient,imGaussSeidel,imJacobi)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLUDecomposition",
          "kind": "record",
          "signature": "TLUDecomposition=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMatrixArray",
          "kind": "type",
          "signature": "TMatrixArray=array of array of Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMatrixKit",
          "kind": "class",
          "signature": "TMatrixKit=class(TInterfacedObject,IMatrix)",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": null,
          "name": "TMatrixKitSparse",
          "kind": "class",
          "signature": "TMatrixKitSparse=class(TMatrixKit)",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-sparse-matrix",
          "preferred_replacement": "TSparseDoubleMatrix"
        },
        {
          "owner": null,
          "name": "TQRDecomposition",
          "kind": "record",
          "signature": "TQRDecomposition=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseElement",
          "kind": "record",
          "signature": "TSparseElement=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSVD",
          "kind": "record",
          "signature": "TSVD=record",
          "classification": "advanced"
        },
        {
          "owner": "IMatrix",
          "name": "Add",
          "kind": "function",
          "signature": "function Add(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Cholesky",
          "kind": "function",
          "signature": "function Cholesky:TCholeskyDecomposition",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Cols",
          "kind": "property",
          "signature": "property Cols:Integer read GetCols",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Condition",
          "kind": "function",
          "signature": "function Condition:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Correlation",
          "kind": "function",
          "signature": "function Correlation:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Covariance",
          "kind": "function",
          "signature": "function Covariance:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "CrossProduct",
          "kind": "function",
          "signature": "function CrossProduct(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Determinant",
          "kind": "function",
          "signature": "function Determinant:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "DotProduct",
          "kind": "function",
          "signature": "function DotProduct(const Other:IMatrix):Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "EigenDecomposition",
          "kind": "function",
          "signature": "function EigenDecomposition:TEigenDecomposition",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "ElementWiseDivide",
          "kind": "function",
          "signature": "function ElementWiseDivide(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "ElementWiseMultiply",
          "kind": "function",
          "signature": "function ElementWiseMultiply(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Exp",
          "kind": "function",
          "signature": "function Exp:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:Integer",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "GetSubMatrix",
          "kind": "function",
          "signature": "function GetSubMatrix(StartRow,StartCol,NumRows,NumCols:Integer):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "GetValue",
          "kind": "function",
          "signature": "function GetValue(Row,Col:Integer):Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Inverse",
          "kind": "function",
          "signature": "function Inverse:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "IsColumnVector",
          "kind": "function",
          "signature": "function IsColumnVector:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "IsDiagonal",
          "kind": "function",
          "signature": "function IsDiagonal:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "IsOrthogonal",
          "kind": "function",
          "signature": "function IsOrthogonal:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "IsPositiveDefinite",
          "kind": "function",
          "signature": "function IsPositiveDefinite:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "IsPositiveSemidefinite",
          "kind": "function",
          "signature": "function IsPositiveSemidefinite:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "IsRowVector",
          "kind": "function",
          "signature": "function IsRowVector:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "IsSquare",
          "kind": "function",
          "signature": "function IsSquare:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "IsSymmetric",
          "kind": "function",
          "signature": "function IsSymmetric:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "IsTriangular",
          "kind": "function",
          "signature": "function IsTriangular(Upper:Boolean=True):Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "IsVector",
          "kind": "function",
          "signature": "function IsVector:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "LU",
          "kind": "function",
          "signature": "function LU:TLUDecomposition",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Mean",
          "kind": "function",
          "signature": "function Mean(Axis:Integer=-1):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Multiply",
          "kind": "function",
          "signature": "function Multiply(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Normalize",
          "kind": "function",
          "signature": "function Normalize:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "NormFrobenius",
          "kind": "function",
          "signature": "function NormFrobenius:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "NormInf",
          "kind": "function",
          "signature": "function NormInf:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "NormOne",
          "kind": "function",
          "signature": "function NormOne:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Power",
          "kind": "function",
          "signature": "function Power(exponent:Double):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "PowerMethod",
          "kind": "function",
          "signature": "function PowerMethod(MaxIterations:Integer=100;Tolerance:Double=1e-10):TEigenpair",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "PseudoInverse",
          "kind": "function",
          "signature": "function PseudoInverse:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "QR",
          "kind": "function",
          "signature": "function QR:TQRDecomposition",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Rank",
          "kind": "function",
          "signature": "function Rank:Integer",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Rows",
          "kind": "property",
          "signature": "property Rows:Integer read GetRows",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "ScalarMultiply",
          "kind": "function",
          "signature": "function ScalarMultiply(const Scalar:Double):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "SetSubMatrix",
          "kind": "procedure",
          "signature": "procedure SetSubMatrix(StartRow,StartCol:Integer;const SubMatrix:IMatrix)",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "SetValue",
          "kind": "procedure",
          "signature": "procedure SetValue(Row,Col:Integer;const Value:Double)",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "SolveIterative",
          "kind": "function",
          "signature": "function SolveIterative(const B:IMatrix;Method:TIterativeMethod=imConjugateGradient;MaxIterations:Integer=1000;Tolerance:Double=1e-10):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Subtract",
          "kind": "function",
          "signature": "function Subtract(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "SVD",
          "kind": "function",
          "signature": "function SVD:TSVD",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:string",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Trace",
          "kind": "function",
          "signature": "function Trace:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Transpose",
          "kind": "function",
          "signature": "function Transpose:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "IMatrix",
          "name": "Values",
          "kind": "property",
          "signature": "property Values[Row,Col:Integer]:Double read GetValue write SetValue",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "IDenseDoubleMatrix"
        },
        {
          "owner": "TCholeskyDecomposition",
          "name": "L",
          "kind": "field",
          "signature": "L:IMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TCholeskyDecomposition",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:string",
          "classification": "advanced"
        },
        {
          "owner": "TEigenDecomposition",
          "name": "EigenValues",
          "kind": "field",
          "signature": "EigenValues:array of Double",
          "classification": "advanced"
        },
        {
          "owner": "TEigenDecomposition",
          "name": "EigenVectors",
          "kind": "field",
          "signature": "EigenVectors:IMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TEigenDecomposition",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:string",
          "classification": "advanced"
        },
        {
          "owner": "TEigenpair",
          "name": "EigenValue",
          "kind": "field",
          "signature": "EigenValue:Double",
          "classification": "advanced"
        },
        {
          "owner": "TEigenpair",
          "name": "EigenVector",
          "kind": "field",
          "signature": "EigenVector:IMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TEigenpair",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:string",
          "classification": "advanced"
        },
        {
          "owner": "TIterativeMethod",
          "name": "imConjugateGradient",
          "kind": "enum-value",
          "signature": "imConjugateGradient",
          "classification": "advanced"
        },
        {
          "owner": "TIterativeMethod",
          "name": "imGaussSeidel",
          "kind": "enum-value",
          "signature": "imGaussSeidel",
          "classification": "advanced"
        },
        {
          "owner": "TIterativeMethod",
          "name": "imJacobi",
          "kind": "enum-value",
          "signature": "imJacobi",
          "classification": "advanced"
        },
        {
          "owner": "TLUDecomposition",
          "name": "L",
          "kind": "field",
          "signature": "L:IMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TLUDecomposition",
          "name": "P",
          "kind": "field",
          "signature": "P:array of Integer",
          "classification": "advanced"
        },
        {
          "owner": "TLUDecomposition",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:string",
          "classification": "advanced"
        },
        {
          "owner": "TLUDecomposition",
          "name": "U",
          "kind": "field",
          "signature": "U:IMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMatrixKit",
          "name": "Add",
          "kind": "function",
          "signature": "function Add(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Cholesky",
          "kind": "function",
          "signature": "function Cholesky:TCholeskyDecomposition",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Condition",
          "kind": "function",
          "signature": "function Condition:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Correlation",
          "kind": "function",
          "signature": "function Correlation:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Covariance",
          "kind": "function",
          "signature": "function Covariance:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const ARows,ACols:Integer)",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "CreateBandMatrix",
          "kind": "function",
          "signature": "class function CreateBandMatrix(Size,LowerBand,UpperBand:Integer):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "CreateDiagonal",
          "kind": "function",
          "signature": "class function CreateDiagonal(const Diagonal:array of Double):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "CreateFromArray",
          "kind": "function",
          "signature": "class function CreateFromArray(const Data:TMatrixArray):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "CreateHilbert",
          "kind": "function",
          "signature": "class function CreateHilbert(Size:Integer):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "CreateRandom",
          "kind": "function",
          "signature": "class function CreateRandom(Rows,Cols:Integer;Min,Max:Double):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "CreateRandom",
          "kind": "function",
          "signature": "class function CreateRandom(Rows,Cols:Integer;Min,Max:Double;Seed:LongWord):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "CreateSparse",
          "kind": "function",
          "signature": "class function CreateSparse(Rows,Cols:Integer):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "CreateSymmetric",
          "kind": "function",
          "signature": "class function CreateSymmetric(const Data:TMatrixArray):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "CreateToeplitz",
          "kind": "function",
          "signature": "class function CreateToeplitz(const FirstRow,FirstCol:TDoubleArray):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "CreateVandermonde",
          "kind": "function",
          "signature": "class function CreateVandermonde(const Vector:TDoubleArray):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "CrossProduct",
          "kind": "function",
          "signature": "function CrossProduct(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Destroy",
          "kind": "destructor",
          "signature": "destructor Destroy",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Determinant",
          "kind": "function",
          "signature": "function Determinant:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "DotProduct",
          "kind": "function",
          "signature": "function DotProduct(const Other:IMatrix):Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "EigenDecomposition",
          "kind": "function",
          "signature": "function EigenDecomposition:TEigenDecomposition",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "ElementWiseDivide",
          "kind": "function",
          "signature": "function ElementWiseDivide(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "ElementWiseMultiply",
          "kind": "function",
          "signature": "function ElementWiseMultiply(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Exp",
          "kind": "function",
          "signature": "function Exp:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "GetSubMatrix",
          "kind": "function",
          "signature": "function GetSubMatrix(StartRow,StartCol,NumRows,NumCols:Integer):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Identity",
          "kind": "function",
          "signature": "class function Identity(const Size:Integer):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Inverse",
          "kind": "function",
          "signature": "function Inverse:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "IsColumnVector",
          "kind": "function",
          "signature": "function IsColumnVector:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "IsDiagonal",
          "kind": "function",
          "signature": "function IsDiagonal:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "IsOrthogonal",
          "kind": "function",
          "signature": "function IsOrthogonal:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "IsPositiveDefinite",
          "kind": "function",
          "signature": "function IsPositiveDefinite:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "IsPositiveSemidefinite",
          "kind": "function",
          "signature": "function IsPositiveSemidefinite:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "IsRowVector",
          "kind": "function",
          "signature": "function IsRowVector:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "IsSquare",
          "kind": "function",
          "signature": "function IsSquare:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "IsSymmetric",
          "kind": "function",
          "signature": "function IsSymmetric:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "IsTriangular",
          "kind": "function",
          "signature": "function IsTriangular(Upper:Boolean=True):Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "IsVector",
          "kind": "function",
          "signature": "function IsVector:Boolean",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "LU",
          "kind": "function",
          "signature": "function LU:TLUDecomposition",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Mean",
          "kind": "function",
          "signature": "function Mean(Axis:Integer=-1):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Multiply",
          "kind": "function",
          "signature": "function Multiply(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Normalize",
          "kind": "function",
          "signature": "function Normalize:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "NormFrobenius",
          "kind": "function",
          "signature": "function NormFrobenius:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "NormInf",
          "kind": "function",
          "signature": "function NormInf:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "NormOne",
          "kind": "function",
          "signature": "function NormOne:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Ones",
          "kind": "function",
          "signature": "class function Ones(const Rows,Cols:Integer):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Power",
          "kind": "function",
          "signature": "function Power(exponent:Double):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "PowerMethod",
          "kind": "function",
          "signature": "function PowerMethod(MaxIterations:Integer=100;Tolerance:Double=1e-10):TEigenpair",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "PseudoInverse",
          "kind": "function",
          "signature": "function PseudoInverse:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "QR",
          "kind": "function",
          "signature": "function QR:TQRDecomposition",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Rank",
          "kind": "function",
          "signature": "function Rank:Integer",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "ScalarMultiply",
          "kind": "function",
          "signature": "function ScalarMultiply(const Scalar:Double):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "SetSubMatrix",
          "kind": "procedure",
          "signature": "procedure SetSubMatrix(StartRow,StartCol:Integer;const SubMatrix:IMatrix)",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "SolveIterative",
          "kind": "function",
          "signature": "function SolveIterative(const B:IMatrix;Method:TIterativeMethod=imConjugateGradient;MaxIterations:Integer=1000;Tolerance:Double=1e-10):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Subtract",
          "kind": "function",
          "signature": "function Subtract(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "SVD",
          "kind": "function",
          "signature": "function SVD:TSVD",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:string",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Trace",
          "kind": "function",
          "signature": "function Trace:Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Transpose",
          "kind": "function",
          "signature": "function Transpose:IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKit",
          "name": "Zeros",
          "kind": "function",
          "signature": "class function Zeros(const Rows,Cols:Integer):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-dense-matrix",
          "preferred_replacement": "TDenseDoubleMatrix"
        },
        {
          "owner": "TMatrixKitSparse",
          "name": "Add",
          "kind": "function",
          "signature": "function Add(const Other:IMatrix):IMatrix",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-sparse-matrix",
          "preferred_replacement": "TSparseDoubleMatrix"
        },
        {
          "owner": "TMatrixKitSparse",
          "name": "AddElement",
          "kind": "procedure",
          "signature": "procedure AddElement(Row,Col:Integer;Value:Double)",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-sparse-matrix",
          "preferred_replacement": "TSparseDoubleMatrix"
        },
        {
          "owner": "TMatrixKitSparse",
          "name": "CompactStorage",
          "kind": "procedure",
          "signature": "procedure CompactStorage",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-sparse-matrix",
          "preferred_replacement": "TSparseDoubleMatrix"
        },
        {
          "owner": "TMatrixKitSparse",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(Rows,Cols:Integer)",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-sparse-matrix",
          "preferred_replacement": "TSparseDoubleMatrix"
        },
        {
          "owner": "TMatrixKitSparse",
          "name": "Destroy",
          "kind": "destructor",
          "signature": "destructor Destroy",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-sparse-matrix",
          "preferred_replacement": "TSparseDoubleMatrix"
        },
        {
          "owner": "TMatrixKitSparse",
          "name": "GetValue",
          "kind": "function",
          "signature": "function GetValue(Row,Col:Integer):Double",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-sparse-matrix",
          "preferred_replacement": "TSparseDoubleMatrix"
        },
        {
          "owner": "TMatrixKitSparse",
          "name": "SetValue",
          "kind": "procedure",
          "signature": "procedure SetValue(Row,Col:Integer;const Value:Double)",
          "classification": "compatibility",
          "compatibility_decision": "replace",
          "compatibility_note": "legacy-sparse-matrix",
          "preferred_replacement": "TSparseDoubleMatrix"
        },
        {
          "owner": "TQRDecomposition",
          "name": "Q",
          "kind": "field",
          "signature": "Q:IMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TQRDecomposition",
          "name": "R",
          "kind": "field",
          "signature": "R:IMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TQRDecomposition",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:string",
          "classification": "advanced"
        },
        {
          "owner": "TSparseElement",
          "name": "Col",
          "kind": "field",
          "signature": "Col:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TSparseElement",
          "name": "Row",
          "kind": "field",
          "signature": "Row:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TSparseElement",
          "name": "Value",
          "kind": "field",
          "signature": "Value:Double",
          "classification": "advanced"
        },
        {
          "owner": "TSVD",
          "name": "S",
          "kind": "field",
          "signature": "S:IMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TSVD",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:string",
          "classification": "advanced"
        },
        {
          "owner": "TSVD",
          "name": "U",
          "kind": "field",
          "signature": "U:IMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TSVD",
          "name": "V",
          "kind": "field",
          "signature": "V:IMatrix",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "AlgebraLib.PartialEigensystems",
      "source": "src/AlgebraLib.PartialEigensystems.pas",
      "classification_summary": {
        "advanced": 32,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 5,
        "recommended": 0
      },
      "interface_sha256": "c294bce8f96956d913f2a956d9e5b477d09c026826c7db2d8f75f68bb3e26f69",
      "declarations": [
        {
          "owner": null,
          "name": "EPartialEigensystemError",
          "kind": "type",
          "signature": "EPartialEigensystemError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexPartialEigenSolver",
          "kind": "type",
          "signature": "TComplexPartialEigenSolver=specialize TPartialEigenSolver<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexRows",
          "kind": "type",
          "signature": "TComplexRows=array of TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDoublePartialEigenSolver",
          "kind": "type",
          "signature": "TDoublePartialEigenSolver=specialize TPartialEigenSolver<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPartialEigenSolver",
          "kind": "class",
          "signature": "generic TPartialEigenSolver<T>=class",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSingleComplexPartialEigenSolver",
          "kind": "type",
          "signature": "TSingleComplexPartialEigenSolver=specialize TPartialEigenSolver<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSinglePartialEigenSolver",
          "kind": "type",
          "signature": "TSinglePartialEigenSolver=specialize TPartialEigenSolver<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSmallComplexEigen",
          "kind": "class",
          "signature": "TSmallComplexEigen=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSpectralMethod",
          "kind": "type",
          "signature": "TSpectralMethod=(smRestartedLanczos,smRestartedArnoldi)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSpectralOptions",
          "kind": "record",
          "signature": "TSpectralOptions=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSpectralResult",
          "kind": "record",
          "signature": "TSpectralResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSpectralTarget",
          "kind": "type",
          "signature": "TSpectralTarget=(stLargestMagnitude)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSpectralVector",
          "kind": "type",
          "signature": "generic TSpectralVector<T>=array of T",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSpectralVectors",
          "kind": "type",
          "signature": "generic TSpectralVectors<T>=array of specialize TSpectralVector<T>",
          "classification": "implementation"
        },
        {
          "owner": "TPartialEigenSolver",
          "name": "Arnoldi",
          "kind": "function",
          "signature": "class function Arnoldi(const OperatorValue:TOperator;const Options:TSpectralOptions):TSpectralResult",
          "classification": "implementation"
        },
        {
          "owner": "TPartialEigenSolver",
          "name": "Lanczos",
          "kind": "function",
          "signature": "class function Lanczos(const OperatorValue:TOperator;const Options:TSpectralOptions):TSpectralResult",
          "classification": "implementation"
        },
        {
          "owner": "TSmallComplexEigen",
          "name": "Solve",
          "kind": "procedure",
          "signature": "class procedure Solve(const Matrix:TComplexRows;out Eigenvalues:TComplexArray;out Eigenvectors:TComplexRows;const Tolerance:Double=1.0e-13;const MaximumIterations:SizeInt=4000)",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralMethod",
          "name": "smRestartedArnoldi",
          "kind": "enum-value",
          "signature": "smRestartedArnoldi",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralMethod",
          "name": "smRestartedLanczos",
          "kind": "enum-value",
          "signature": "smRestartedLanczos",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralOptions",
          "name": "BreakdownTolerance",
          "kind": "field",
          "signature": "BreakdownTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralOptions",
          "name": "Default",
          "kind": "function",
          "signature": "class function Default:TSpectralOptions",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralOptions",
          "name": "EigenpairCount",
          "kind": "field",
          "signature": "EigenpairCount:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralOptions",
          "name": "KrylovDimension",
          "kind": "field",
          "signature": "KrylovDimension:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralOptions",
          "name": "MaximumRestarts",
          "kind": "field",
          "signature": "MaximumRestarts:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralOptions",
          "name": "StartingSeed",
          "kind": "field",
          "signature": "StartingSeed:QWord",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralOptions",
          "name": "Target",
          "kind": "field",
          "signature": "Target:TSpectralTarget",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralOptions",
          "name": "Tolerance",
          "kind": "field",
          "signature": "Tolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralResult",
          "name": "ConvergedCount",
          "kind": "field",
          "signature": "ConvergedCount:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralResult",
          "name": "Eigenvalues",
          "kind": "field",
          "signature": "Eigenvalues:TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralResult",
          "name": "Eigenvectors",
          "kind": "field",
          "signature": "Eigenvectors:IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralResult",
          "name": "Method",
          "kind": "field",
          "signature": "Method:TSpectralMethod",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralResult",
          "name": "ProductCount",
          "kind": "field",
          "signature": "ProductCount:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralResult",
          "name": "ResidualNorms",
          "kind": "field",
          "signature": "ResidualNorms:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralResult",
          "name": "RestartCount",
          "kind": "field",
          "signature": "RestartCount:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralResult",
          "name": "StartingSeed",
          "kind": "field",
          "signature": "StartingSeed:QWord",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralTarget",
          "name": "stLargestMagnitude",
          "kind": "enum-value",
          "signature": "stLargestMagnitude",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "AlgebraLib.SparseMatrices",
      "source": "src/AlgebraLib.SparseMatrices.pas",
      "classification_summary": {
        "advanced": 37,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 101,
        "recommended": 0
      },
      "interface_sha256": "18c1b6712121b70e343782b4409e715fb6eb1c3edb32b7f0e7661000328705c0",
      "declarations": [
        {
          "owner": null,
          "name": "ESparseMatrixError",
          "kind": "type",
          "signature": "ESparseMatrixError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ISparseComplexMatrix",
          "kind": "type",
          "signature": "ISparseComplexMatrix=specialize ISparseMatrix<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ISparseDoubleMatrix",
          "kind": "type",
          "signature": "ISparseDoubleMatrix=specialize ISparseMatrix<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ISparseMatrix",
          "kind": "interface",
          "signature": "generic ISparseMatrix<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "ISparseSingleComplexMatrix",
          "kind": "type",
          "signature": "ISparseSingleComplexMatrix=specialize ISparseMatrix<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ISparseSingleMatrix",
          "kind": "type",
          "signature": "ISparseSingleMatrix=specialize ISparseMatrix<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IStructuredComplexMatrix",
          "kind": "type",
          "signature": "IStructuredComplexMatrix=specialize IStructuredMatrix<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IStructuredDoubleMatrix",
          "kind": "type",
          "signature": "IStructuredDoubleMatrix=specialize IStructuredMatrix<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IStructuredMatrix",
          "kind": "interface",
          "signature": "generic IStructuredMatrix<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "IStructuredSingleComplexMatrix",
          "kind": "type",
          "signature": "IStructuredSingleComplexMatrix=specialize IStructuredMatrix<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IStructuredSingleMatrix",
          "kind": "type",
          "signature": "IStructuredSingleMatrix=specialize IStructuredMatrix<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseComplexMatrix",
          "kind": "type",
          "signature": "TSparseComplexMatrix=specialize TSparseMatrixFactory<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseComplexTripletBuilder",
          "kind": "type",
          "signature": "TSparseComplexTripletBuilder=specialize TSparseTripletBuilder<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseDoubleMatrix",
          "kind": "type",
          "signature": "TSparseDoubleMatrix=specialize TSparseMatrixFactory<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseDoubleTripletBuilder",
          "kind": "type",
          "signature": "TSparseDoubleTripletBuilder=specialize TSparseTripletBuilder<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseFormat",
          "kind": "type",
          "signature": "TSparseFormat=(sfCSR,sfCSC)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseMatrixFactory",
          "kind": "class",
          "signature": "generic TSparseMatrixFactory<T>=class",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSparseMatrixStorage",
          "kind": "class",
          "signature": "generic TSparseMatrixStorage<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSparseScalarKind",
          "kind": "type",
          "signature": "TSparseScalarKind=(sskSingle,sskDouble,sskSingleComplex,sskComplex)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseSingleComplexMatrix",
          "kind": "type",
          "signature": "TSparseSingleComplexMatrix=specialize TSparseMatrixFactory<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseSingleComplexTripletBuilder",
          "kind": "type",
          "signature": "TSparseSingleComplexTripletBuilder=specialize TSparseTripletBuilder<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseSingleMatrix",
          "kind": "type",
          "signature": "TSparseSingleMatrix=specialize TSparseMatrixFactory<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseSingleTripletBuilder",
          "kind": "type",
          "signature": "TSparseSingleTripletBuilder=specialize TSparseTripletBuilder<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseSizeIntArray",
          "kind": "type",
          "signature": "TSparseSizeIntArray=array of SizeInt",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseStoredZeroPolicy",
          "kind": "type",
          "signature": "TSparseStoredZeroPolicy=(szDrop,szKeep)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseTriplet",
          "kind": "record",
          "signature": "generic TSparseTriplet<T>=record",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSparseTripletArray",
          "kind": "type",
          "signature": "generic TSparseTripletArray<T>=array of specialize TSparseTriplet<T>",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSparseTripletBuilder",
          "kind": "class",
          "signature": "generic TSparseTripletBuilder<T>=class",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSparseValueArray",
          "kind": "type",
          "signature": "generic TSparseValueArray<T>=array of T",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TStructuredComplexMatrix",
          "kind": "type",
          "signature": "TStructuredComplexMatrix=specialize TStructuredMatrixFactory<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TStructuredDoubleMatrix",
          "kind": "type",
          "signature": "TStructuredDoubleMatrix=specialize TStructuredMatrixFactory<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TStructuredMatrixFactory",
          "kind": "class",
          "signature": "generic TStructuredMatrixFactory<T>=class",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TStructuredMatrixKind",
          "kind": "type",
          "signature": "TStructuredMatrixKind=(smDiagonal,smTridiagonal,smBand)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TStructuredMatrixStorage",
          "kind": "class",
          "signature": "generic TStructuredMatrixStorage<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TStructuredSingleComplexMatrix",
          "kind": "type",
          "signature": "TStructuredSingleComplexMatrix=specialize TStructuredMatrixFactory<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TStructuredSingleMatrix",
          "kind": "type",
          "signature": "TStructuredSingleMatrix=specialize TStructuredMatrixFactory<Single>",
          "classification": "advanced"
        },
        {
          "owner": "ISparseMatrix",
          "name": "Cols",
          "kind": "property",
          "signature": "property Cols:SizeInt read GetCols",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "Format",
          "kind": "property",
          "signature": "property Format:TSparseFormat read GetFormat",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "GetFormat",
          "kind": "function",
          "signature": "function GetFormat:TSparseFormat",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "GetInnerIndex",
          "kind": "function",
          "signature": "function GetInnerIndex(const Position:SizeInt):SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "GetNonZeroCount",
          "kind": "function",
          "signature": "function GetNonZeroCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "GetOuterPointer",
          "kind": "function",
          "signature": "function GetOuterPointer(const Position:SizeInt):SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "GetStoredValue",
          "kind": "function",
          "signature": "function GetStoredValue(const Position:SizeInt):T",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "GetStoredZeroPolicy",
          "kind": "function",
          "signature": "function GetStoredZeroPolicy:TSparseStoredZeroPolicy",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "GetValue",
          "kind": "function",
          "signature": "function GetValue(const Row,Col:SizeInt):T",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "NonZeroCount",
          "kind": "property",
          "signature": "property NonZeroCount:SizeInt read GetNonZeroCount",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "Rows",
          "kind": "property",
          "signature": "property Rows:SizeInt read GetRows",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "ScalarKind",
          "kind": "property",
          "signature": "property ScalarKind:TSparseScalarKind read GetScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "StoredZeroPolicy",
          "kind": "property",
          "signature": "property StoredZeroPolicy:TSparseStoredZeroPolicy read GetStoredZeroPolicy",
          "classification": "implementation"
        },
        {
          "owner": "ISparseMatrix",
          "name": "Values",
          "kind": "property",
          "signature": "property Values[const Row,Col:SizeInt]:T read GetValue",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "Cols",
          "kind": "property",
          "signature": "property Cols:SizeInt read GetCols",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "GetKind",
          "kind": "function",
          "signature": "function GetKind:TStructuredMatrixKind",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "GetLowerBandwidth",
          "kind": "function",
          "signature": "function GetLowerBandwidth:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "GetUpperBandwidth",
          "kind": "function",
          "signature": "function GetUpperBandwidth:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "GetValue",
          "kind": "function",
          "signature": "function GetValue(const Row,Col:SizeInt):T",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "Kind",
          "kind": "property",
          "signature": "property Kind:TStructuredMatrixKind read GetKind",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "LowerBandwidth",
          "kind": "property",
          "signature": "property LowerBandwidth:SizeInt read GetLowerBandwidth",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "Rows",
          "kind": "property",
          "signature": "property Rows:SizeInt read GetRows",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "ScalarKind",
          "kind": "property",
          "signature": "property ScalarKind:TSparseScalarKind read GetScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "UpperBandwidth",
          "kind": "property",
          "signature": "property UpperBandwidth:SizeInt read GetUpperBandwidth",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredMatrix",
          "name": "Values",
          "kind": "property",
          "signature": "property Values[const Row,Col:SizeInt]:T read GetValue",
          "classification": "implementation"
        },
        {
          "owner": "TSparseFormat",
          "name": "sfCSC",
          "kind": "enum-value",
          "signature": "sfCSC",
          "classification": "advanced"
        },
        {
          "owner": "TSparseFormat",
          "name": "sfCSR",
          "kind": "enum-value",
          "signature": "sfCSR",
          "classification": "advanced"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "Add",
          "kind": "function",
          "signature": "class function Add(const A,B:specialize ISparseMatrix<T>):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "Column",
          "kind": "function",
          "signature": "class function Column(const A:specialize ISparseMatrix<T>;const ColumnIndex:SizeInt):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "ConjugateTranspose",
          "kind": "function",
          "signature": "class function ConjugateTranspose(const A:specialize ISparseMatrix<T>):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "Convert",
          "kind": "function",
          "signature": "class function Convert(const Matrix:specialize ISparseMatrix<T>;const Format:TSparseFormat):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "FromCSC",
          "kind": "function",
          "signature": "class function FromCSC(const Rows,Cols:SizeInt;const ColumnPointers,RowIndices:array of SizeInt;const Values:array of T;const ZeroPolicy:TSparseStoredZeroPolicy=szDrop):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "FromCSR",
          "kind": "function",
          "signature": "class function FromCSR(const Rows,Cols:SizeInt;const RowPointers,ColumnIndices:array of SizeInt;const Values:array of T;const ZeroPolicy:TSparseStoredZeroPolicy=szDrop):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "FromDense",
          "kind": "function",
          "signature": "class function FromDense(const Matrix:specialize IDenseMatrix<T>;const Format:TSparseFormat=sfCSR;const ZeroPolicy:TSparseStoredZeroPolicy=szDrop):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "FromTriplets",
          "kind": "function",
          "signature": "class function FromTriplets(const Rows,Cols:SizeInt;const TripletRows,TripletCols:array of SizeInt;const TripletValues:array of T;const Format:TSparseFormat=sfCSR;const ZeroPolicy:TSparseStoredZeroPolicy=szDrop):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "Multiply",
          "kind": "function",
          "signature": "class function Multiply(const A,B:specialize ISparseMatrix<T>):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "MultiplyDenseInto",
          "kind": "procedure",
          "signature": "class procedure MultiplyDenseInto(const A:specialize ISparseMatrix<T>;const X,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "Norm2",
          "kind": "function",
          "signature": "class function Norm2(const A:specialize ISparseMatrix<T>):Double",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "Row",
          "kind": "function",
          "signature": "class function Row(const A:specialize ISparseMatrix<T>;const RowIndex:SizeInt):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "Scale",
          "kind": "function",
          "signature": "class function Scale(const A:specialize ISparseMatrix<T>;const Scalar:T):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "ToDense",
          "kind": "function",
          "signature": "class function ToDense(const Matrix:specialize ISparseMatrix<T>):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "Transpose",
          "kind": "function",
          "signature": "class function Transpose(const A:specialize ISparseMatrix<T>):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixFactory",
          "name": "Zeros",
          "kind": "function",
          "signature": "class function Zeros(const Rows,Cols:SizeInt;const Format:TSparseFormat=sfCSR):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "CheckedCount",
          "kind": "function",
          "signature": "class function CheckedCount(const A,B,ElementSize:SizeInt;const Operation:string):SizeUInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Rows,Cols:SizeInt;const Format:TSparseFormat;const Kind:TSparseScalarKind;const Outer,Inner:array of SizeInt;const Values:array of T;const ZeroPolicy:TSparseStoredZeroPolicy)",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "GetFormat",
          "kind": "function",
          "signature": "function GetFormat:TSparseFormat",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "GetInnerIndex",
          "kind": "function",
          "signature": "function GetInnerIndex(const Position:SizeInt):SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "GetNonZeroCount",
          "kind": "function",
          "signature": "function GetNonZeroCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "GetOuterPointer",
          "kind": "function",
          "signature": "function GetOuterPointer(const Position:SizeInt):SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "GetStoredValue",
          "kind": "function",
          "signature": "function GetStoredValue(const Position:SizeInt):T",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "GetStoredZeroPolicy",
          "kind": "function",
          "signature": "function GetStoredZeroPolicy:TSparseStoredZeroPolicy",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "GetValue",
          "kind": "function",
          "signature": "function GetValue(const Row,Col:SizeInt):T",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "RequireIndex",
          "kind": "procedure",
          "signature": "class procedure RequireIndex(const Index,Limit:SizeInt;const Name,Operation:string)",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "ScalarAbsSquared",
          "kind": "function",
          "signature": "class function ScalarAbsSquared(const Value:T;const Kind:TSparseScalarKind):Double",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "ScalarConjugate",
          "kind": "function",
          "signature": "class function ScalarConjugate(const Value:T;const Kind:TSparseScalarKind):T",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "ScalarIsFinite",
          "kind": "function",
          "signature": "class function ScalarIsFinite(const Value:T;const Kind:TSparseScalarKind):Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "ScalarIsZero",
          "kind": "function",
          "signature": "class function ScalarIsZero(const Value:T):Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TSparseMatrixStorage",
          "name": "ScalarKindOf",
          "kind": "function",
          "signature": "class function ScalarKindOf:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TSparseScalarKind",
          "name": "sskComplex",
          "kind": "enum-value",
          "signature": "sskComplex",
          "classification": "advanced"
        },
        {
          "owner": "TSparseScalarKind",
          "name": "sskDouble",
          "kind": "enum-value",
          "signature": "sskDouble",
          "classification": "advanced"
        },
        {
          "owner": "TSparseScalarKind",
          "name": "sskSingle",
          "kind": "enum-value",
          "signature": "sskSingle",
          "classification": "advanced"
        },
        {
          "owner": "TSparseScalarKind",
          "name": "sskSingleComplex",
          "kind": "enum-value",
          "signature": "sskSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": "TSparseStoredZeroPolicy",
          "name": "szDrop",
          "kind": "enum-value",
          "signature": "szDrop",
          "classification": "advanced"
        },
        {
          "owner": "TSparseStoredZeroPolicy",
          "name": "szKeep",
          "kind": "enum-value",
          "signature": "szKeep",
          "classification": "advanced"
        },
        {
          "owner": "TSparseTriplet",
          "name": "Col",
          "kind": "field",
          "signature": "Col:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseTriplet",
          "name": "Row",
          "kind": "field",
          "signature": "Row:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseTriplet",
          "name": "Sequence",
          "kind": "field",
          "signature": "Sequence:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseTriplet",
          "name": "Value",
          "kind": "field",
          "signature": "Value:T",
          "classification": "implementation"
        },
        {
          "owner": "TSparseTripletBuilder",
          "name": "Add",
          "kind": "procedure",
          "signature": "procedure Add(const Row,Col:SizeInt;const Value:T)",
          "classification": "implementation"
        },
        {
          "owner": "TSparseTripletBuilder",
          "name": "Clear",
          "kind": "procedure",
          "signature": "procedure Clear",
          "classification": "implementation"
        },
        {
          "owner": "TSparseTripletBuilder",
          "name": "Cols",
          "kind": "property",
          "signature": "property Cols:SizeInt read FCols",
          "classification": "implementation"
        },
        {
          "owner": "TSparseTripletBuilder",
          "name": "Count",
          "kind": "property",
          "signature": "property Count:SizeInt read FCount",
          "classification": "implementation"
        },
        {
          "owner": "TSparseTripletBuilder",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Rows,Cols:SizeInt)",
          "classification": "implementation"
        },
        {
          "owner": "TSparseTripletBuilder",
          "name": "Rows",
          "kind": "property",
          "signature": "property Rows:SizeInt read FRows",
          "classification": "implementation"
        },
        {
          "owner": "TSparseTripletBuilder",
          "name": "ToCSC",
          "kind": "function",
          "signature": "function ToCSC(const ZeroPolicy:TSparseStoredZeroPolicy=szDrop):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseTripletBuilder",
          "name": "ToCSR",
          "kind": "function",
          "signature": "function ToCSR(const ZeroPolicy:TSparseStoredZeroPolicy=szDrop):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixFactory",
          "name": "Band",
          "kind": "function",
          "signature": "class function Band(const Rows,Cols,LowerBandwidth,UpperBandwidth:SizeInt;const CompactValues:array of T):specialize IStructuredMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixFactory",
          "name": "Diagonal",
          "kind": "function",
          "signature": "class function Diagonal(const Rows,Cols:SizeInt;const DiagonalValues:array of T):specialize IStructuredMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixFactory",
          "name": "MultiplyDenseInto",
          "kind": "procedure",
          "signature": "class procedure MultiplyDenseInto(const A:specialize IStructuredMatrix<T>;const X,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixFactory",
          "name": "ToDense",
          "kind": "function",
          "signature": "class function ToDense(const Matrix:specialize IStructuredMatrix<T>):specialize IDenseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixFactory",
          "name": "ToSparse",
          "kind": "function",
          "signature": "class function ToSparse(const Matrix:specialize IStructuredMatrix<T>;const Format:TSparseFormat=sfCSR):specialize ISparseMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixFactory",
          "name": "Tridiagonal",
          "kind": "function",
          "signature": "class function Tridiagonal(const Lower,DiagonalValues,Upper:array of T):specialize IStructuredMatrix<T>",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixKind",
          "name": "smBand",
          "kind": "enum-value",
          "signature": "smBand",
          "classification": "advanced"
        },
        {
          "owner": "TStructuredMatrixKind",
          "name": "smDiagonal",
          "kind": "enum-value",
          "signature": "smDiagonal",
          "classification": "advanced"
        },
        {
          "owner": "TStructuredMatrixKind",
          "name": "smTridiagonal",
          "kind": "enum-value",
          "signature": "smTridiagonal",
          "classification": "advanced"
        },
        {
          "owner": "TStructuredMatrixStorage",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Rows,Cols,LowerBandwidth,UpperBandwidth:SizeInt;const Kind:TStructuredMatrixKind;const ScalarKind:TSparseScalarKind;const Values:array of T)",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixStorage",
          "name": "GetCols",
          "kind": "function",
          "signature": "function GetCols:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixStorage",
          "name": "GetKind",
          "kind": "function",
          "signature": "function GetKind:TStructuredMatrixKind",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixStorage",
          "name": "GetLowerBandwidth",
          "kind": "function",
          "signature": "function GetLowerBandwidth:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixStorage",
          "name": "GetRows",
          "kind": "function",
          "signature": "function GetRows:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixStorage",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixStorage",
          "name": "GetUpperBandwidth",
          "kind": "function",
          "signature": "function GetUpperBandwidth:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredMatrixStorage",
          "name": "GetValue",
          "kind": "function",
          "signature": "function GetValue(const Row,Col:SizeInt):T",
          "classification": "implementation"
        }
      ]
    },
    {
      "unit": "AlgebraLib.StructuredSolvers",
      "source": "src/AlgebraLib.StructuredSolvers.pas",
      "classification_summary": {
        "advanced": 16,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 74,
        "recommended": 0
      },
      "interface_sha256": "27e137e9cd250b58e2bc2a33d98514aa6d30c74bbefaf993e03a18cde805ad92",
      "declarations": [
        {
          "owner": null,
          "name": "ESparseDirectSolveError",
          "kind": "type",
          "signature": "ESparseDirectSolveError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "EStructuredSolveError",
          "kind": "type",
          "signature": "EStructuredSolveError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ISparseComplexLUFactor",
          "kind": "type",
          "signature": "ISparseComplexLUFactor=specialize ISparseLUFactor<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ISparseDoubleLUFactor",
          "kind": "type",
          "signature": "ISparseDoubleLUFactor=specialize ISparseLUFactor<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ISparseLUFactor",
          "kind": "interface",
          "signature": "generic ISparseLUFactor<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "ISparseSingleComplexLUFactor",
          "kind": "type",
          "signature": "ISparseSingleComplexLUFactor=specialize ISparseLUFactor<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ISparseSingleLUFactor",
          "kind": "type",
          "signature": "ISparseSingleLUFactor=specialize ISparseLUFactor<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IStructuredComplexDirectFactor",
          "kind": "type",
          "signature": "IStructuredComplexDirectFactor=specialize IStructuredDirectFactor<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IStructuredDirectFactor",
          "kind": "interface",
          "signature": "generic IStructuredDirectFactor<T>=interface",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "IStructuredDoubleDirectFactor",
          "kind": "type",
          "signature": "IStructuredDoubleDirectFactor=specialize IStructuredDirectFactor<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IStructuredSingleComplexDirectFactor",
          "kind": "type",
          "signature": "IStructuredSingleComplexDirectFactor=specialize IStructuredDirectFactor<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IStructuredSingleDirectFactor",
          "kind": "type",
          "signature": "IStructuredSingleDirectFactor=specialize IStructuredDirectFactor<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TBandFactor",
          "kind": "class",
          "signature": "generic TBandFactor<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TComplexStructuredSolver",
          "kind": "type",
          "signature": "TComplexStructuredSolver=specialize TStructuredSolverFactory<TComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDoubleStructuredSolver",
          "kind": "type",
          "signature": "TDoubleStructuredSolver=specialize TStructuredSolverFactory<Double>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleComplexStructuredSolver",
          "kind": "type",
          "signature": "TSingleComplexStructuredSolver=specialize TStructuredSolverFactory<TSingleComplex>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleStructuredSolver",
          "kind": "type",
          "signature": "TSingleStructuredSolver=specialize TStructuredSolverFactory<Single>",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSparseFactorRow",
          "kind": "record",
          "signature": "generic TSparseFactorRow<T>=record",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSparseFactorRows",
          "kind": "type",
          "signature": "generic TSparseFactorRows<T>=array of specialize TSparseFactorRow<T>",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSparseLUFactor",
          "kind": "class",
          "signature": "generic TSparseLUFactor<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TSparseOrdering",
          "kind": "type",
          "signature": "TSparseOrdering=(soNatural)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TStructuredSolverFactory",
          "kind": "class",
          "signature": "generic TStructuredSolverFactory<T>=class",
          "classification": "implementation"
        },
        {
          "owner": null,
          "name": "TTridiagonalFactor",
          "kind": "class",
          "signature": "generic TTridiagonalFactor<T>=class(TInterfacedObject,",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "FactorNonZeroCount",
          "kind": "property",
          "signature": "property FactorNonZeroCount:SizeInt read GetFactorNonZeroCount",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "FillNonZeroCount",
          "kind": "property",
          "signature": "property FillNonZeroCount:SizeInt read GetFillNonZeroCount",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "GetFactorNonZeroCount",
          "kind": "function",
          "signature": "function GetFactorNonZeroCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "GetFillNonZeroCount",
          "kind": "function",
          "signature": "function GetFillNonZeroCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "GetInterchangeCount",
          "kind": "function",
          "signature": "function GetInterchangeCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "GetMinimumPivotMagnitude",
          "kind": "function",
          "signature": "function GetMinimumPivotMagnitude:Double",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "GetOrdering",
          "kind": "function",
          "signature": "function GetOrdering:TSparseOrdering",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "GetOriginalNonZeroCount",
          "kind": "function",
          "signature": "function GetOriginalNonZeroCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "InterchangeCount",
          "kind": "property",
          "signature": "property InterchangeCount:SizeInt read GetInterchangeCount",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "MinimumPivotMagnitude",
          "kind": "property",
          "signature": "property MinimumPivotMagnitude:Double read GetMinimumPivotMagnitude",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "Ordering",
          "kind": "property",
          "signature": "property Ordering:TSparseOrdering read GetOrdering",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "OriginalNonZeroCount",
          "kind": "property",
          "signature": "property OriginalNonZeroCount:SizeInt read GetOriginalNonZeroCount",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "ScalarKind",
          "kind": "property",
          "signature": "property ScalarKind:TSparseScalarKind read GetScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "Size",
          "kind": "property",
          "signature": "property Size:SizeInt read GetSize",
          "classification": "implementation"
        },
        {
          "owner": "ISparseLUFactor",
          "name": "SolveInto",
          "kind": "procedure",
          "signature": "procedure SolveInto(const RightHandSide,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "GetInterchangeCount",
          "kind": "function",
          "signature": "function GetInterchangeCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "GetLowerBandwidth",
          "kind": "function",
          "signature": "function GetLowerBandwidth:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "GetMinimumPivotMagnitude",
          "kind": "function",
          "signature": "function GetMinimumPivotMagnitude:Double",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "GetPivotingUsed",
          "kind": "function",
          "signature": "function GetPivotingUsed:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "GetUpperBandwidth",
          "kind": "function",
          "signature": "function GetUpperBandwidth:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "InterchangeCount",
          "kind": "property",
          "signature": "property InterchangeCount:SizeInt read GetInterchangeCount",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "LowerBandwidth",
          "kind": "property",
          "signature": "property LowerBandwidth:SizeInt read GetLowerBandwidth",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "MinimumPivotMagnitude",
          "kind": "property",
          "signature": "property MinimumPivotMagnitude:Double read GetMinimumPivotMagnitude",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "PivotingUsed",
          "kind": "property",
          "signature": "property PivotingUsed:Boolean read GetPivotingUsed",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "ScalarKind",
          "kind": "property",
          "signature": "property ScalarKind:TSparseScalarKind read GetScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "Size",
          "kind": "property",
          "signature": "property Size:SizeInt read GetSize",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "SolveInto",
          "kind": "procedure",
          "signature": "procedure SolveInto(const RightHandSide,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "IStructuredDirectFactor",
          "name": "UpperBandwidth",
          "kind": "property",
          "signature": "property UpperBandwidth:SizeInt read GetUpperBandwidth",
          "classification": "implementation"
        },
        {
          "owner": "TBandFactor",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Matrix:specialize IStructuredMatrix<T>;const PivotTolerance:Double)",
          "classification": "implementation"
        },
        {
          "owner": "TBandFactor",
          "name": "GetInterchangeCount",
          "kind": "function",
          "signature": "function GetInterchangeCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TBandFactor",
          "name": "GetLowerBandwidth",
          "kind": "function",
          "signature": "function GetLowerBandwidth:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TBandFactor",
          "name": "GetMinimumPivotMagnitude",
          "kind": "function",
          "signature": "function GetMinimumPivotMagnitude:Double",
          "classification": "implementation"
        },
        {
          "owner": "TBandFactor",
          "name": "GetPivotingUsed",
          "kind": "function",
          "signature": "function GetPivotingUsed:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TBandFactor",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TBandFactor",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TBandFactor",
          "name": "GetUpperBandwidth",
          "kind": "function",
          "signature": "function GetUpperBandwidth:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TBandFactor",
          "name": "SolveInto",
          "kind": "procedure",
          "signature": "procedure SolveInto(const RightHandSide,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TSparseFactorRow",
          "name": "Columns",
          "kind": "field",
          "signature": "Columns:TSparseSizeIntArray",
          "classification": "implementation"
        },
        {
          "owner": "TSparseFactorRow",
          "name": "Count",
          "kind": "field",
          "signature": "Count:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseFactorRow",
          "name": "Values",
          "kind": "field",
          "signature": "Values:specialize TSparseValueArray<T>",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLUFactor",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Matrix:specialize ISparseMatrix<T>;const PivotTolerance:Double)",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLUFactor",
          "name": "GetFactorNonZeroCount",
          "kind": "function",
          "signature": "function GetFactorNonZeroCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLUFactor",
          "name": "GetFillNonZeroCount",
          "kind": "function",
          "signature": "function GetFillNonZeroCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLUFactor",
          "name": "GetInterchangeCount",
          "kind": "function",
          "signature": "function GetInterchangeCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLUFactor",
          "name": "GetMinimumPivotMagnitude",
          "kind": "function",
          "signature": "function GetMinimumPivotMagnitude:Double",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLUFactor",
          "name": "GetOrdering",
          "kind": "function",
          "signature": "function GetOrdering:TSparseOrdering",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLUFactor",
          "name": "GetOriginalNonZeroCount",
          "kind": "function",
          "signature": "function GetOriginalNonZeroCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLUFactor",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLUFactor",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TSparseLUFactor",
          "name": "SolveInto",
          "kind": "procedure",
          "signature": "procedure SolveInto(const RightHandSide,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        },
        {
          "owner": "TSparseOrdering",
          "name": "soNatural",
          "kind": "enum-value",
          "signature": "soNatural",
          "classification": "advanced"
        },
        {
          "owner": "TStructuredSolverFactory",
          "name": "FactorBand",
          "kind": "function",
          "signature": "class function FactorBand(const Matrix:specialize IStructuredMatrix<T>;const PivotTolerance:Double=1.0e-14):specialize IStructuredDirectFactor<T>",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredSolverFactory",
          "name": "FactorSparseLU",
          "kind": "function",
          "signature": "class function FactorSparseLU(const Matrix:specialize ISparseMatrix<T>;const PivotTolerance:Double=1.0e-14):specialize ISparseLUFactor<T>",
          "classification": "implementation"
        },
        {
          "owner": "TStructuredSolverFactory",
          "name": "FactorTridiagonal",
          "kind": "function",
          "signature": "class function FactorTridiagonal(const Matrix:specialize IStructuredMatrix<T>;const PivotTolerance:Double=1.0e-14):specialize IStructuredDirectFactor<T>",
          "classification": "implementation"
        },
        {
          "owner": "TTridiagonalFactor",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Matrix:specialize IStructuredMatrix<T>;const PivotTolerance:Double)",
          "classification": "implementation"
        },
        {
          "owner": "TTridiagonalFactor",
          "name": "GetInterchangeCount",
          "kind": "function",
          "signature": "function GetInterchangeCount:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TTridiagonalFactor",
          "name": "GetLowerBandwidth",
          "kind": "function",
          "signature": "function GetLowerBandwidth:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TTridiagonalFactor",
          "name": "GetMinimumPivotMagnitude",
          "kind": "function",
          "signature": "function GetMinimumPivotMagnitude:Double",
          "classification": "implementation"
        },
        {
          "owner": "TTridiagonalFactor",
          "name": "GetPivotingUsed",
          "kind": "function",
          "signature": "function GetPivotingUsed:Boolean",
          "classification": "implementation"
        },
        {
          "owner": "TTridiagonalFactor",
          "name": "GetScalarKind",
          "kind": "function",
          "signature": "function GetScalarKind:TSparseScalarKind",
          "classification": "implementation"
        },
        {
          "owner": "TTridiagonalFactor",
          "name": "GetSize",
          "kind": "function",
          "signature": "function GetSize:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TTridiagonalFactor",
          "name": "GetUpperBandwidth",
          "kind": "function",
          "signature": "function GetUpperBandwidth:SizeInt",
          "classification": "implementation"
        },
        {
          "owner": "TTridiagonalFactor",
          "name": "SolveInto",
          "kind": "procedure",
          "signature": "procedure SolveInto(const RightHandSide,Destination:specialize IDenseMatrix<T>)",
          "classification": "implementation"
        }
      ]
    },
    {
      "unit": "AlgebraLib.VectorKernels",
      "source": "src/AlgebraLib.VectorKernels.pas",
      "classification_summary": {
        "advanced": 37,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "d343f85841a63a54dcb0eb12c85432db587def837375ceaf23bfc6c5c482f48e",
      "declarations": [
        {
          "owner": null,
          "name": "EVectorError",
          "kind": "type",
          "signature": "EVectorError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexVector",
          "kind": "type",
          "signature": "TComplexVector=TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TRealVector",
          "kind": "type",
          "signature": "TRealVector=TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TVectorKit",
          "kind": "class",
          "signature": "TVectorKit=class",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Add",
          "kind": "function",
          "signature": "class function Add(const A,B:TComplexVector):TComplexVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Add",
          "kind": "function",
          "signature": "class function Add(const A,B:TRealVector):TRealVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "AddInto",
          "kind": "procedure",
          "signature": "class procedure AddInto(const A,B:TComplexVector;var Destination:TComplexVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "AddInto",
          "kind": "procedure",
          "signature": "class procedure AddInto(const A,B:TRealVector;var Destination:TRealVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Axpy",
          "kind": "function",
          "signature": "class function Axpy(const Alpha:Double;const X,Y:TRealVector):TRealVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Axpy",
          "kind": "function",
          "signature": "class function Axpy(const Alpha:TComplex;const X,Y:TComplexVector):TComplexVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "AxpyInto",
          "kind": "procedure",
          "signature": "class procedure AxpyInto(const Alpha:Double;const X,Y:TRealVector;var Destination:TRealVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "AxpyInto",
          "kind": "procedure",
          "signature": "class procedure AxpyInto(const Alpha:TComplex;const X,Y:TComplexVector;var Destination:TComplexVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Dot",
          "kind": "function",
          "signature": "class function Dot(const A,B:TComplexVector):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Dot",
          "kind": "function",
          "signature": "class function Dot(const A,B:TRealVector):Double",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "DotConjugate",
          "kind": "function",
          "signature": "class function DotConjugate(const A,B:TComplexVector):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "ElementWiseDivide",
          "kind": "function",
          "signature": "class function ElementWiseDivide(const A,B:TRealVector):TRealVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "ElementWiseDivideInto",
          "kind": "procedure",
          "signature": "class procedure ElementWiseDivideInto(const A,B:TRealVector;var Destination:TRealVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "ElementWiseMultiply",
          "kind": "function",
          "signature": "class function ElementWiseMultiply(const A,B:TRealVector):TRealVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "ElementWiseMultiplyInto",
          "kind": "procedure",
          "signature": "class procedure ElementWiseMultiplyInto(const A,B:TRealVector;var Destination:TRealVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Max",
          "kind": "function",
          "signature": "class function Max(const A:TRealVector):Double",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Mean",
          "kind": "function",
          "signature": "class function Mean(const A:TRealVector):Double",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Min",
          "kind": "function",
          "signature": "class function Min(const A:TRealVector):Double",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Norm2",
          "kind": "function",
          "signature": "class function Norm2(const A:TComplexVector):Double",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Norm2",
          "kind": "function",
          "signature": "class function Norm2(const A:TRealVector):Double",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Normalize",
          "kind": "function",
          "signature": "class function Normalize(const A:TComplexVector):TComplexVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Normalize",
          "kind": "function",
          "signature": "class function Normalize(const A:TRealVector):TRealVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "NormalizeInto",
          "kind": "procedure",
          "signature": "class procedure NormalizeInto(const A:TComplexVector;var Destination:TComplexVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "NormalizeInto",
          "kind": "procedure",
          "signature": "class procedure NormalizeInto(const A:TRealVector;var Destination:TRealVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Scale",
          "kind": "function",
          "signature": "class function Scale(const A:TComplexVector;const Scalar:TComplex):TComplexVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Scale",
          "kind": "function",
          "signature": "class function Scale(const A:TRealVector;const Scalar:Double):TRealVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "ScaleInto",
          "kind": "procedure",
          "signature": "class procedure ScaleInto(const A:TComplexVector;const Scalar:TComplex;var Destination:TComplexVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "ScaleInto",
          "kind": "procedure",
          "signature": "class procedure ScaleInto(const A:TRealVector;const Scalar:Double;var Destination:TRealVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Subtract",
          "kind": "function",
          "signature": "class function Subtract(const A,B:TComplexVector):TComplexVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Subtract",
          "kind": "function",
          "signature": "class function Subtract(const A,B:TRealVector):TRealVector",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "SubtractInto",
          "kind": "procedure",
          "signature": "class procedure SubtractInto(const A,B:TComplexVector;var Destination:TComplexVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "SubtractInto",
          "kind": "procedure",
          "signature": "class procedure SubtractInto(const A,B:TRealVector;var Destination:TRealVector)",
          "classification": "advanced"
        },
        {
          "owner": "TVectorKit",
          "name": "Sum",
          "kind": "function",
          "signature": "class function Sum(const A:TRealVector):Double",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "AlgebraLib.Vectors",
      "source": "src/AlgebraLib.Vectors.pas",
      "classification_summary": {
        "advanced": 6,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "f2948879070ad4f48e4505f67e0a3765420e0ca31ff0ab3c6878e666d91c5dc5",
      "declarations": [
        {
          "owner": null,
          "name": "EVectorError",
          "kind": "type",
          "signature": "EVectorError=AlgebraLib.VectorKernels.EVectorError",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IVector",
          "kind": "type",
          "signature": "IVector=IMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexVector",
          "kind": "type",
          "signature": "TComplexVector=TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TRealVector",
          "kind": "type",
          "signature": "TRealVector=TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TVector",
          "kind": "type",
          "signature": "TVector=TMatrixKit",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TVectorKit",
          "kind": "type",
          "signature": "TVectorKit=AlgebraLib.VectorKernels.TVectorKit",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "CombinatoricsLib.Combinatorics",
      "source": "src/CombinatoricsLib.Combinatorics.pas",
      "classification_summary": {
        "advanced": 13,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 30
      },
      "interface_sha256": "4c73ea2e6c68defa6dd2c7f38d1668dcba907b26cb39214b543459652c1b4781",
      "declarations": [
        {
          "owner": null,
          "name": "ECombinatoricsError",
          "kind": "type",
          "signature": "ECombinatoricsError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCombination",
          "kind": "type",
          "signature": "TCombination=array of Integer",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCombinationList",
          "kind": "type",
          "signature": "TCombinationList=array of TCombination",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCombinatoricsKit",
          "kind": "class",
          "signature": "TCombinatoricsKit=class",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TPascalRow",
          "kind": "type",
          "signature": "TPascalRow=array of Int64",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPascalTriangle",
          "kind": "type",
          "signature": "TPascalTriangle=array of TPascalRow",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPermutation",
          "kind": "type",
          "signature": "TPermutation=array of Integer",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPermutationList",
          "kind": "type",
          "signature": "TPermutationList=array of TPermutation",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPrimeFactor",
          "kind": "record",
          "signature": "TPrimeFactor=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPrimeFactorArray",
          "kind": "type",
          "signature": "TPrimeFactorArray=array of TPrimeFactor",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSubset",
          "kind": "type",
          "signature": "TSubset=array of Integer",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSubsetList",
          "kind": "type",
          "signature": "TSubsetList=array of TSubset",
          "classification": "advanced"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "BellNumber",
          "kind": "function",
          "signature": "class function BellNumber(N:Integer):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "CatalanNumber",
          "kind": "function",
          "signature": "class function CatalanNumber(N:Integer):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "Combination",
          "kind": "function",
          "signature": "class function Combination(N,K:Integer):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "Combinations",
          "kind": "function",
          "signature": "class function Combinations(N,K:Integer):TCombinationList",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "DerangementCount",
          "kind": "function",
          "signature": "class function DerangementCount(N:Integer):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "EulerTotient",
          "kind": "function",
          "signature": "class function EulerTotient(N:Int64):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "ExtendedGCD",
          "kind": "function",
          "signature": "class function ExtendedGCD(A,B:Int64;out X,Y:Int64):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "Factorial",
          "kind": "function",
          "signature": "class function Factorial(N:Integer):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "Fibonacci",
          "kind": "function",
          "signature": "class function Fibonacci(N:Integer):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "GCD",
          "kind": "function",
          "signature": "class function GCD(A,B:Int64):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "IsPrime",
          "kind": "function",
          "signature": "class function IsPrime(N:Int64):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "LCM",
          "kind": "function",
          "signature": "class function LCM(A,B:Int64):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "LogCombination",
          "kind": "function",
          "signature": "class function LogCombination(N,K:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "LogFactorial",
          "kind": "function",
          "signature": "class function LogFactorial(N:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "Lucas",
          "kind": "function",
          "signature": "class function Lucas(N:Integer):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "ModInverse",
          "kind": "function",
          "signature": "class function ModInverse(A,M:Int64):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "ModPow",
          "kind": "function",
          "signature": "class function ModPow(A,B,M:Int64):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "Multinomial",
          "kind": "function",
          "signature": "class function Multinomial(N:Integer;const K:TIntegerArray):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "NextPermutation",
          "kind": "function",
          "signature": "class function NextPermutation(var Items:TIntegerArray):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "NextPrime",
          "kind": "function",
          "signature": "class function NextPrime(N:Int64):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "PascalRow",
          "kind": "function",
          "signature": "class function PascalRow(N:Integer):TPascalRow",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "PascalTriangle",
          "kind": "function",
          "signature": "class function PascalTriangle(N:Integer):TPascalTriangle",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "Permutation",
          "kind": "function",
          "signature": "class function Permutation(N,K:Integer):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "Permutations",
          "kind": "function",
          "signature": "class function Permutations(const Items:TIntegerArray):TPermutationList",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "PowerSet",
          "kind": "function",
          "signature": "class function PowerSet(N:Integer):TSubsetList",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "PrimeFactors",
          "kind": "function",
          "signature": "class function PrimeFactors(N:Int64):TPrimeFactorArray",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "Sieve",
          "kind": "function",
          "signature": "class function Sieve(Limit:Int64):TPascalRow",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "StirlingFirst",
          "kind": "function",
          "signature": "class function StirlingFirst(N,K:Integer):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TCombinatoricsKit",
          "name": "StirlingSecond",
          "kind": "function",
          "signature": "class function StirlingSecond(N,K:Integer):Int64",
          "classification": "recommended"
        },
        {
          "owner": "TPrimeFactor",
          "name": "Exponent",
          "kind": "field",
          "signature": "Exponent:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TPrimeFactor",
          "name": "Prime",
          "kind": "field",
          "signature": "Prime:Int64",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "EngineeringLib.Common",
      "source": "src/EngineeringLib.Common.pas",
      "classification_summary": {
        "advanced": 5,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "40da5189dadf272d9bf13848a282b6fdedbafec3a56dda318cb9ede720a7702b",
      "declarations": [
        {
          "owner": null,
          "name": "EEngineeringError",
          "kind": "type",
          "signature": "EEngineeringError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "EFluidDynamicsError",
          "kind": "type",
          "signature": "EFluidDynamicsError=class(EEngineeringError)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ESignalError",
          "kind": "type",
          "signature": "ESignalError=class(EEngineeringError)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "EThermodynamicsError",
          "kind": "type",
          "signature": "EThermodynamicsError=class(EEngineeringError)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "EUnitConversionError",
          "kind": "type",
          "signature": "EUnitConversionError=class(EEngineeringError)",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "EngineeringLib.DSP",
      "source": "src/EngineeringLib.DSP.pas",
      "classification_summary": {
        "advanced": 84,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "b9475b4c6545d2335f86040353cc9ee72c785194b67b0d50d862094d5d27d804",
      "declarations": [
        {
          "owner": null,
          "name": "EDSPError",
          "kind": "type",
          "signature": "EDSPError=class(ESignalError)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TBiquadCoefficients",
          "kind": "record",
          "signature": "TBiquadCoefficients=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexBatch",
          "kind": "type",
          "signature": "TComplexBatch=array of TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TConvolutionMethod",
          "kind": "type",
          "signature": "TConvolutionMethod=(cmAutomatic,cmDirect,cmFFT)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCrossSpectralEstimate",
          "kind": "record",
          "signature": "TCrossSpectralEstimate=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDSPKit",
          "kind": "class",
          "signature": "TDSPKit=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TFFTNormalization",
          "kind": "type",
          "signature": "TFFTNormalization=(fnBackward,fnForward,fnUnitary,fnNone)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TOverlapAddConvolver",
          "kind": "record",
          "signature": "TOverlapAddConvolver=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TOverlapSaveConvolver",
          "kind": "record",
          "signature": "TOverlapSaveConvolver=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleComplexBatch",
          "kind": "type",
          "signature": "TSingleComplexBatch=array of TSingleComplexArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSpectralEstimate",
          "kind": "record",
          "signature": "TSpectralEstimate=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TStreamingBiquad",
          "kind": "record",
          "signature": "TStreamingBiquad=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TStreamingFIR",
          "kind": "record",
          "signature": "TStreamingFIR=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TWindowMetrics",
          "kind": "record",
          "signature": "TWindowMetrics=record",
          "classification": "advanced"
        },
        {
          "owner": "TBiquadCoefficients",
          "name": "A1",
          "kind": "field",
          "signature": "A1:Double",
          "classification": "advanced"
        },
        {
          "owner": "TBiquadCoefficients",
          "name": "A2",
          "kind": "field",
          "signature": "A2:Double",
          "classification": "advanced"
        },
        {
          "owner": "TBiquadCoefficients",
          "name": "B0",
          "kind": "field",
          "signature": "B0:Double",
          "classification": "advanced"
        },
        {
          "owner": "TBiquadCoefficients",
          "name": "B1",
          "kind": "field",
          "signature": "B1:Double",
          "classification": "advanced"
        },
        {
          "owner": "TBiquadCoefficients",
          "name": "B2",
          "kind": "field",
          "signature": "B2:Double",
          "classification": "advanced"
        },
        {
          "owner": "TConvolutionMethod",
          "name": "cmAutomatic",
          "kind": "enum-value",
          "signature": "cmAutomatic",
          "classification": "advanced"
        },
        {
          "owner": "TConvolutionMethod",
          "name": "cmDirect",
          "kind": "enum-value",
          "signature": "cmDirect",
          "classification": "advanced"
        },
        {
          "owner": "TConvolutionMethod",
          "name": "cmFFT",
          "kind": "enum-value",
          "signature": "cmFFT",
          "classification": "advanced"
        },
        {
          "owner": "TCrossSpectralEstimate",
          "name": "Coherence",
          "kind": "field",
          "signature": "Coherence:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TCrossSpectralEstimate",
          "name": "CrossPower",
          "kind": "field",
          "signature": "CrossPower:TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": "TCrossSpectralEstimate",
          "name": "Frequencies",
          "kind": "field",
          "signature": "Frequencies:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "AnalyticSignal",
          "kind": "function",
          "signature": "class function AnalyticSignal(const Input:TDoubleArray):TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "Convolve",
          "kind": "function",
          "signature": "class function Convolve(const A,B:TDoubleArray;const Method:TConvolutionMethod=cmAutomatic):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "Correlate",
          "kind": "function",
          "signature": "class function Correlate(const A,B:TDoubleArray;const Method:TConvolutionMethod=cmAutomatic):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "CrossSpectrum",
          "kind": "function",
          "signature": "class function CrossSpectrum(const A,B:TDoubleArray;const SegmentLength,Overlap:SizeInt;const SampleRate:Double=1.0;const WindowType:TWindowType=wtHann):TCrossSpectralEstimate",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "DesignButterworthLowPass",
          "kind": "function",
          "signature": "class function DesignButterworthLowPass(const NormalizedCutoff:Double):TBiquadCoefficients",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "DFTReference",
          "kind": "function",
          "signature": "class function DFTReference(const Input:TComplexArray;const Inverse:Boolean=False;const Normalization:TFFTNormalization=fnBackward):TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "GetWindowMetrics",
          "kind": "function",
          "signature": "class function GetWindowMetrics(const Window:TDoubleArray):TWindowMetrics",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "HaarTransform",
          "kind": "function",
          "signature": "class function HaarTransform(const Input:TDoubleArray;const Inverse:Boolean=False):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "InverseRealTransform",
          "kind": "function",
          "signature": "class function InverseRealTransform(const Input:TComplexArray;const Normalization:TFFTNormalization=fnBackward):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "Periodogram",
          "kind": "function",
          "signature": "class function Periodogram(const Input:TDoubleArray;const SampleRate:Double=1.0;const WindowType:TWindowType=wtHann):TSpectralEstimate",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "RealTransform",
          "kind": "function",
          "signature": "class function RealTransform(const Input:TDoubleArray;const Normalization:TFFTNormalization=fnBackward):TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "RealTransform",
          "kind": "function",
          "signature": "class function RealTransform(const Input:TSingleArray;const Normalization:TFFTNormalization=fnBackward):TSingleComplexArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "ResampleLinear",
          "kind": "function",
          "signature": "class function ResampleLinear(const Input:TDoubleArray;const OutputLength:SizeInt):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "ResampleRational",
          "kind": "function",
          "signature": "class function ResampleRational(const Input:TDoubleArray;const UpFactor,DownFactor:SizeInt):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "SelectedConvolutionMethod",
          "kind": "function",
          "signature": "class function SelectedConvolutionMethod(const LengthA,LengthB:SizeInt):TConvolutionMethod",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "ShortTimeFourierTransform",
          "kind": "function",
          "signature": "class function ShortTimeFourierTransform(const Input:TDoubleArray;const FrameLength,HopLength:SizeInt;const WindowType:TWindowType=wtHann):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "Transform",
          "kind": "function",
          "signature": "class function Transform(const Input:TComplexArray;const Inverse:Boolean=False;const Normalization:TFFTNormalization=fnBackward):TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "Transform",
          "kind": "function",
          "signature": "class function Transform(const Input:TSingleComplexArray;const Inverse:Boolean=False;const Normalization:TFFTNormalization=fnBackward):TSingleComplexArray",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "Transform2D",
          "kind": "function",
          "signature": "class function Transform2D(const Input:IDenseComplexMatrix;const Inverse:Boolean=False;const Normalization:TFFTNormalization=fnBackward):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "TransformBatch",
          "kind": "function",
          "signature": "class function TransformBatch(const Input:TComplexBatch;const Inverse:Boolean=False;const Normalization:TFFTNormalization=fnBackward):TComplexBatch",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "TransformBatch",
          "kind": "function",
          "signature": "class function TransformBatch(const Input:TSingleComplexBatch;const Inverse:Boolean=False;const Normalization:TFFTNormalization=fnBackward):TSingleComplexBatch",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "TransformInto",
          "kind": "procedure",
          "signature": "class procedure TransformInto(const Input:TComplexArray;var Destination:TComplexArray;const Inverse:Boolean=False;const Normalization:TFFTNormalization=fnBackward)",
          "classification": "advanced"
        },
        {
          "owner": "TDSPKit",
          "name": "Welch",
          "kind": "function",
          "signature": "class function Welch(const Input:TDoubleArray;const SegmentLength,Overlap:SizeInt;const SampleRate:Double=1.0;const WindowType:TWindowType=wtHann):TSpectralEstimate",
          "classification": "advanced"
        },
        {
          "owner": "TFFTNormalization",
          "name": "fnBackward",
          "kind": "enum-value",
          "signature": "fnBackward",
          "classification": "advanced"
        },
        {
          "owner": "TFFTNormalization",
          "name": "fnForward",
          "kind": "enum-value",
          "signature": "fnForward",
          "classification": "advanced"
        },
        {
          "owner": "TFFTNormalization",
          "name": "fnNone",
          "kind": "enum-value",
          "signature": "fnNone",
          "classification": "advanced"
        },
        {
          "owner": "TFFTNormalization",
          "name": "fnUnitary",
          "kind": "enum-value",
          "signature": "fnUnitary",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapAddConvolver",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const Impulse:TDoubleArray;const Method:TConvolutionMethod=cmFFT):TOverlapAddConvolver",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapAddConvolver",
          "name": "Flush",
          "kind": "function",
          "signature": "function Flush:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapAddConvolver",
          "name": "Impulse",
          "kind": "function",
          "signature": "function Impulse:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapAddConvolver",
          "name": "ProcessBlock",
          "kind": "function",
          "signature": "function ProcessBlock(const Input:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapAddConvolver",
          "name": "Reset",
          "kind": "procedure",
          "signature": "procedure Reset",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapAddConvolver",
          "name": "RestoreTail",
          "kind": "procedure",
          "signature": "procedure RestoreTail(const Values:TDoubleArray)",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapAddConvolver",
          "name": "StateSize",
          "kind": "function",
          "signature": "function StateSize:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapAddConvolver",
          "name": "Tail",
          "kind": "function",
          "signature": "function Tail:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapSaveConvolver",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const Impulse:TDoubleArray;const Method:TConvolutionMethod=cmFFT):TOverlapSaveConvolver",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapSaveConvolver",
          "name": "History",
          "kind": "function",
          "signature": "function History:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapSaveConvolver",
          "name": "Impulse",
          "kind": "function",
          "signature": "function Impulse:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapSaveConvolver",
          "name": "ProcessBlock",
          "kind": "function",
          "signature": "function ProcessBlock(const Input:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapSaveConvolver",
          "name": "Reset",
          "kind": "procedure",
          "signature": "procedure Reset",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapSaveConvolver",
          "name": "RestoreHistory",
          "kind": "procedure",
          "signature": "procedure RestoreHistory(const Values:TDoubleArray)",
          "classification": "advanced"
        },
        {
          "owner": "TOverlapSaveConvolver",
          "name": "StateSize",
          "kind": "function",
          "signature": "function StateSize:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralEstimate",
          "name": "Frequencies",
          "kind": "field",
          "signature": "Frequencies:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSpectralEstimate",
          "name": "Power",
          "kind": "field",
          "signature": "Power:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingBiquad",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const Coefficients:TBiquadCoefficients):TStreamingBiquad",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingBiquad",
          "name": "ProcessBlock",
          "kind": "function",
          "signature": "function ProcessBlock(const Input:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingBiquad",
          "name": "Reset",
          "kind": "procedure",
          "signature": "procedure Reset",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingBiquad",
          "name": "Z1",
          "kind": "property",
          "signature": "property Z1:Double read FZ1",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingBiquad",
          "name": "Z2",
          "kind": "property",
          "signature": "property Z2:Double read FZ2",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingFIR",
          "name": "Coefficients",
          "kind": "function",
          "signature": "function Coefficients:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingFIR",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const Coefficients:TDoubleArray):TStreamingFIR",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingFIR",
          "name": "History",
          "kind": "function",
          "signature": "function History:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingFIR",
          "name": "ProcessBlock",
          "kind": "function",
          "signature": "function ProcessBlock(const Input:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingFIR",
          "name": "Reset",
          "kind": "procedure",
          "signature": "procedure Reset",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingFIR",
          "name": "RestoreHistory",
          "kind": "procedure",
          "signature": "procedure RestoreHistory(const Values:TDoubleArray)",
          "classification": "advanced"
        },
        {
          "owner": "TStreamingFIR",
          "name": "StateSize",
          "kind": "function",
          "signature": "function StateSize:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TWindowMetrics",
          "name": "CoherentGain",
          "kind": "field",
          "signature": "CoherentGain:Double",
          "classification": "advanced"
        },
        {
          "owner": "TWindowMetrics",
          "name": "EquivalentNoiseBandwidth",
          "kind": "field",
          "signature": "EquivalentNoiseBandwidth:Double",
          "classification": "advanced"
        },
        {
          "owner": "TWindowMetrics",
          "name": "RMSGain",
          "kind": "field",
          "signature": "RMSGain:Double",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "EngineeringLib.FluidDynamics",
      "source": "src/EngineeringLib.FluidDynamics.pas",
      "classification_summary": {
        "advanced": 0,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 46
      },
      "interface_sha256": "cee0ec867efb769522f50b593be8d0edef2aea915abb08812be928de55fa0a7e",
      "declarations": [
        {
          "owner": null,
          "name": "TFluidDynamicsKit",
          "kind": "class",
          "signature": "TFluidDynamicsKit=class",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "AirDensity",
          "kind": "nested-const",
          "signature": "AirDensity=1.225",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "BernoulliHeight",
          "kind": "function",
          "signature": "class function BernoulliHeight(Density:Double;Pressure1:Double;Velocity1:Double;Height1:Double;Pressure2:Double;Velocity2:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "BernoulliPressure",
          "kind": "function",
          "signature": "class function BernoulliPressure(Density:Double;Pressure1:Double;Velocity1:Double;Height1:Double;Velocity2:Double;Height2:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "BernoulliVelocity",
          "kind": "function",
          "signature": "class function BernoulliVelocity(Density:Double;Pressure1:Double;Velocity1:Double;Height1:Double;Pressure2:Double;Height2:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "BlasiusFrictionFactor",
          "kind": "function",
          "signature": "class function BlasiusFrictionFactor(ReynoldsNumberValue:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "CalculateVolumeFlowRate",
          "kind": "function",
          "signature": "class function CalculateVolumeFlowRate(Area:Double;Velocity:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "ChezyVelocity",
          "kind": "function",
          "signature": "class function ChezyVelocity(ChezyCoefficient:Double;HydraulicRadius:Double;ChannelSlope:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "CriticalDepthRectangular",
          "kind": "function",
          "signature": "class function CriticalDepthRectangular(UnitDischarge:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "DensityWater",
          "kind": "function",
          "signature": "class function DensityWater:Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "DragForce",
          "kind": "function",
          "signature": "class function DragForce(DragCoefficient:Double;Density:Double;Velocity:Double;ReferenceArea:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "DynamicPressure",
          "kind": "function",
          "signature": "class function DynamicPressure(Density:Double;Velocity:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "DynamicViscosityAir",
          "kind": "nested-const",
          "signature": "DynamicViscosityAir=1.81E-5",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "DynamicViscosityWater",
          "kind": "function",
          "signature": "class function DynamicViscosityWater:Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "EulerNumber",
          "kind": "function",
          "signature": "class function EulerNumber(PressureDifference:Double;Density:Double;Velocity:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "FrictionHeadLoss",
          "kind": "function",
          "signature": "class function FrictionHeadLoss(FrictionFactor:Double;Length:Double;Diameter:Double;Velocity:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "FroudeNumber",
          "kind": "function",
          "signature": "class function FroudeNumber(Velocity:Double;CharacteristicLength:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "GravityAcceleration",
          "kind": "nested-const",
          "signature": "GravityAcceleration=9.80665",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "HazenWilliamsHeadLoss",
          "kind": "function",
          "signature": "class function HazenWilliamsHeadLoss(Length:Double;Diameter:Double;FlowRate:Double;CHW:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "IsentropicAreaRatio",
          "kind": "function",
          "signature": "class function IsentropicAreaRatio(MachNumberValue:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "KinematicViscosityAir",
          "kind": "nested-const",
          "signature": "KinematicViscosityAir=1.48E-5",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "KinematicViscosityWater",
          "kind": "function",
          "signature": "class function KinematicViscosityWater:Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "LaminarFrictionFactor",
          "kind": "function",
          "signature": "class function LaminarFrictionFactor(ReynoldsNumberValue:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "LiftForce",
          "kind": "function",
          "signature": "class function LiftForce(LiftCoefficient:Double;Density:Double;Velocity:Double;ReferenceArea:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "MachNumber",
          "kind": "function",
          "signature": "class function MachNumber(Velocity:Double;SpeedOfSound:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "ManningVelocity",
          "kind": "function",
          "signature": "class function ManningVelocity(ManningCoefficient:Double;HydraulicRadius:Double;ChannelSlope:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "MassFlowRate",
          "kind": "function",
          "signature": "class function MassFlowRate(Density:Double;Area:Double;Velocity:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "MassFlowRate",
          "kind": "function",
          "signature": "class function MassFlowRate(Density:Double;VolumeFlowRate:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "NusseltNumber",
          "kind": "function",
          "signature": "class function NusseltNumber(HeatTransferCoefficient:Double;CharacteristicLength:Double;ThermalConductivity:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "OpenChannelFroudeNumber",
          "kind": "function",
          "signature": "class function OpenChannelFroudeNumber(Velocity:Double;Depth:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "PrandtlNumber",
          "kind": "function",
          "signature": "class function PrandtlNumber(DynamicViscosity:Double;SpecificHeat:Double;ThermalConductivity:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "PressureCoefficient",
          "kind": "function",
          "signature": "class function PressureCoefficient(Pressure:Double;FreeStreamPressure:Double;FreeStreamDensity:Double;FreeStreamVelocity:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "PumpHead",
          "kind": "function",
          "signature": "class function PumpHead(PressureDiff:Double;Density:Double;InletVelocity:Double;OutletVelocity:Double;HeightDiff:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "PumpPower",
          "kind": "function",
          "signature": "class function PumpPower(Density:Double;FlowRate:Double;Head:Double;Efficiency:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "PumpSpecificSpeed",
          "kind": "function",
          "signature": "class function PumpSpecificSpeed(RPM:Double;FlowRate:Double;Head:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "ReynoldsNumber",
          "kind": "function",
          "signature": "class function ReynoldsNumber(Density:Double;Velocity:Double;CharacteristicLength:Double;DynamicViscosity:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "ReynoldsNumberKinematic",
          "kind": "function",
          "signature": "class function ReynoldsNumberKinematic(Velocity:Double;CharacteristicLength:Double;KinematicViscosity:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "SpeedOfSound",
          "kind": "function",
          "signature": "class function SpeedOfSound(SpecificHeatRatio:Double;GasConstant:Double;Temperature:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "StagnationPressure",
          "kind": "function",
          "signature": "class function StagnationPressure(StaticPressure:Double;DynamicPressureValue:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "StagnationPressureRatio",
          "kind": "function",
          "signature": "class function StagnationPressureRatio(MachNumberValue:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "StagnationTemperatureRatio",
          "kind": "function",
          "signature": "class function StagnationTemperatureRatio(MachNumberValue:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "StrouhalNumber",
          "kind": "function",
          "signature": "class function StrouhalNumber(Frequency:Double;CharacteristicLength:Double;Velocity:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "TurbinePower",
          "kind": "function",
          "signature": "class function TurbinePower(Efficiency:Double;Density:Double;FlowRate:Double;Head:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "TurbulentFrictionFactor",
          "kind": "function",
          "signature": "class function TurbulentFrictionFactor(ReynoldsNumberValue:Double;RelativeRoughness:Double;Tolerance:Double=1E-6;MaxIterations:Integer=100):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "WaterDensity",
          "kind": "nested-const",
          "signature": "WaterDensity=997.0",
          "classification": "recommended"
        },
        {
          "owner": "TFluidDynamicsKit",
          "name": "WeberNumber",
          "kind": "function",
          "signature": "class function WeberNumber(Density:Double;Velocity:Double;CharacteristicLength:Double;SurfaceTension:Double):Double",
          "classification": "recommended"
        }
      ]
    },
    {
      "unit": "EngineeringLib.Pressure",
      "source": "src/EngineeringLib.Pressure.pas",
      "classification_summary": {
        "advanced": 0,
        "compatibility": 2,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "7ba319719acd1c24c9fd1ec661ddd8f495b2a713b22684740bfdcb788f50aa68",
      "declarations": [
        {
          "owner": null,
          "name": "EPressureError",
          "kind": "type",
          "signature": "EPressureError=EngineeringLib.Common.EFluidDynamicsError",
          "classification": "compatibility",
          "compatibility_decision": "retain",
          "compatibility_note": "pressure-error-alias"
        },
        {
          "owner": null,
          "name": "TPressureKit",
          "kind": "type",
          "signature": "TPressureKit=TFluidDynamicsKit",
          "classification": "compatibility",
          "compatibility_decision": "retain",
          "compatibility_note": "pressure-facade-alias"
        }
      ]
    },
    {
      "unit": "EngineeringLib.Signal",
      "source": "src/EngineeringLib.Signal.pas",
      "classification_summary": {
        "advanced": 25,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "f72fc090374b3768dae2687625113e921622e1c30b028c7b24a79c4415f58d50",
      "declarations": [
        {
          "owner": null,
          "name": "TDoubleArray",
          "kind": "type",
          "signature": "TDoubleArray=MathBase.SharedTypes.TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSignalKit",
          "kind": "class",
          "signature": "TSignalKit=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TWindowType",
          "kind": "type",
          "signature": "TWindowType=(wtRectangular,wtHamming,wtHann,wtBlackman)",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "ApplyFIRFilter",
          "kind": "function",
          "signature": "class function ApplyFIRFilter(const Signal,Coeffs:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "ApplyWindow",
          "kind": "function",
          "signature": "class function ApplyWindow(const InputSignal,Window:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "CalculateFFT",
          "kind": "procedure",
          "signature": "class procedure CalculateFFT(const InputSignal:TDoubleArray;out OutputSpectrum:TComplexArray)",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "CalculateFFT",
          "kind": "procedure",
          "signature": "class procedure CalculateFFT(const InputSignal:TDoubleArray;out OutRealPart,OutImagPart:TDoubleArray)",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "CalculateFFTMagnitudePhase",
          "kind": "procedure",
          "signature": "class procedure CalculateFFTMagnitudePhase(const InputSignal:TDoubleArray;out Magnitude,Phase:TDoubleArray)",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "CalculateIFFT",
          "kind": "procedure",
          "signature": "class procedure CalculateIFFT(const InputSpectrum:TComplexArray;out OutputSignal:TDoubleArray)",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "CalculateIFFT",
          "kind": "procedure",
          "signature": "class procedure CalculateIFFT(const InRealPart,InImagPart:TDoubleArray;out OutputSignal:TDoubleArray)",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "DesignFIRBandPass",
          "kind": "function",
          "signature": "class function DesignFIRBandPass(LowCutoff,HighCutoff:Double;Order:Integer;WindowType:TWindowType=wtHamming):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "DesignFIRBandStop",
          "kind": "function",
          "signature": "class function DesignFIRBandStop(LowCutoff,HighCutoff:Double;Order:Integer;WindowType:TWindowType=wtHamming):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "DesignFIRHighPass",
          "kind": "function",
          "signature": "class function DesignFIRHighPass(CutoffFreq:Double;Order:Integer;WindowType:TWindowType=wtHamming):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "DesignFIRLowPass",
          "kind": "function",
          "signature": "class function DesignFIRLowPass(CutoffFreq:Double;Order:Integer;WindowType:TWindowType=wtHamming):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "FFT",
          "kind": "procedure",
          "signature": "class procedure FFT(var Data:TComplexArray;Inverse:Boolean=False)",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "FFT",
          "kind": "procedure",
          "signature": "class procedure FFT(var RealPart,ImagPart:TDoubleArray;Inverse:Boolean=False)",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "GenerateWindow",
          "kind": "function",
          "signature": "class function GenerateWindow(WindowType:TWindowType;Size:Integer):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "MovingAverage",
          "kind": "function",
          "signature": "class function MovingAverage(const InputSignal:TDoubleArray;WindowSize:Integer):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "RootMeanSquare",
          "kind": "function",
          "signature": "class function RootMeanSquare(const InputSignal:TDoubleArray):Double",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "SignalEnergy",
          "kind": "function",
          "signature": "class function SignalEnergy(const InputSignal:TDoubleArray):Double",
          "classification": "advanced"
        },
        {
          "owner": "TSignalKit",
          "name": "SignalPower",
          "kind": "function",
          "signature": "class function SignalPower(const InputSignal:TDoubleArray):Double",
          "classification": "advanced"
        },
        {
          "owner": "TWindowType",
          "name": "wtBlackman",
          "kind": "enum-value",
          "signature": "wtBlackman",
          "classification": "advanced"
        },
        {
          "owner": "TWindowType",
          "name": "wtHamming",
          "kind": "enum-value",
          "signature": "wtHamming",
          "classification": "advanced"
        },
        {
          "owner": "TWindowType",
          "name": "wtHann",
          "kind": "enum-value",
          "signature": "wtHann",
          "classification": "advanced"
        },
        {
          "owner": "TWindowType",
          "name": "wtRectangular",
          "kind": "enum-value",
          "signature": "wtRectangular",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "EngineeringLib.Thermodynamics",
      "source": "src/EngineeringLib.Thermodynamics.pas",
      "classification_summary": {
        "advanced": 0,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 46
      },
      "interface_sha256": "930001a78df5eb686e412d3fbd03f2d8d3658bbcdbb300307c0a5dd15b69fd81",
      "declarations": [
        {
          "owner": null,
          "name": "TThermodynamicsKit",
          "kind": "class",
          "signature": "TThermodynamicsKit=class",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "AdiabaticPressure",
          "kind": "function",
          "signature": "class function AdiabaticPressure(InitialPressure,InitialVolume,FinalVolume:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "AdiabaticTemperature",
          "kind": "function",
          "signature": "class function AdiabaticTemperature(InitialTemp,InitialVolume,FinalVolume:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "AdiabaticTemperatureFromPressure",
          "kind": "function",
          "signature": "class function AdiabaticTemperatureFromPressure(InitialTemp,InitialPressure,FinalPressure:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "AdiabaticVolume",
          "kind": "function",
          "signature": "class function AdiabaticVolume(InitialPressure,InitialVolume,FinalPressure:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "AvogadroConstant",
          "kind": "nested-const",
          "signature": "AvogadroConstant=6.02214076E23",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "BarToPascal",
          "kind": "function",
          "signature": "class function BarToPascal(Bar:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "BoltzmannConstant",
          "kind": "nested-const",
          "signature": "BoltzmannConstant=1.380649E-23",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "BraytonCycleEfficiency",
          "kind": "function",
          "signature": "class function BraytonCycleEfficiency(PressureRatio:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "CarnotEfficiency",
          "kind": "function",
          "signature": "class function CarnotEfficiency(HotTempK:Double;ColdTempK:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "CelsiusToKelvin",
          "kind": "function",
          "signature": "class function CelsiusToKelvin(TempC:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "CoefficientOfPerformanceHeatPump",
          "kind": "function",
          "signature": "class function CoefficientOfPerformanceHeatPump(HotHeatDelivered:Double;WorkInput:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "CoefficientOfPerformanceRefrigeration",
          "kind": "function",
          "signature": "class function CoefficientOfPerformanceRefrigeration(ColdHeatExtracted:Double;WorkInput:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "CriticalPressureRatio",
          "kind": "function",
          "signature": "class function CriticalPressureRatio(SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "DewPointTemperature",
          "kind": "function",
          "signature": "class function DewPointTemperature(TemperatureC:Double;RelativeHumidityPercent:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "DieselCycleEfficiency",
          "kind": "function",
          "signature": "class function DieselCycleEfficiency(CompressionRatio:Double;CutoffRatio:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "EntropyChangeHeating",
          "kind": "function",
          "signature": "class function EntropyChangeHeating(Mass:Double;SpecificHeatCapacity:Double;InitialTempK:Double;FinalTempK:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "EntropyChangeIsothermalExpansion",
          "kind": "function",
          "signature": "class function EntropyChangeIsothermalExpansion(Moles:Double;InitialVolume:Double;FinalVolume:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "EntropyChangeReversible",
          "kind": "function",
          "signature": "class function EntropyChangeReversible(HeatTransfer:Double;AbsoluteTempK:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "HeatConductionRate",
          "kind": "function",
          "signature": "class function HeatConductionRate(ThermalConductivity:Double;Area:Double;TempDifference:Double;Thickness:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "HeatConvectionRate",
          "kind": "function",
          "signature": "class function HeatConvectionRate(ConvectionCoefficient:Double;Area:Double;TempDifference:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "HeatEnergyChange",
          "kind": "function",
          "signature": "class function HeatEnergyChange(Mass:Double;SpecificHeatCapacity:Double;TempChange:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "HeatOfFusion",
          "kind": "function",
          "signature": "class function HeatOfFusion(Mass:Double;LatentHeatOfFusion:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "HeatOfVaporization",
          "kind": "function",
          "signature": "class function HeatOfVaporization(Mass:Double;LatentHeatOfVaporization:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "HeatRadiationRate",
          "kind": "function",
          "signature": "class function HeatRadiationRate(Emissivity:Double;Area:Double;SurfaceTempK:Double;SurroundingsTempK:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "HumidityRatio",
          "kind": "function",
          "signature": "class function HumidityRatio(VaporPressure:Double;AtmosphericPressure:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "IdealGasConstant",
          "kind": "nested-const",
          "signature": "IdealGasConstant=8.314462618",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "IdealGasMoles",
          "kind": "function",
          "signature": "class function IdealGasMoles(Pressure:Double;Volume:Double;AbsoluteTempK:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "IdealGasPressure",
          "kind": "function",
          "signature": "class function IdealGasPressure(Moles:Double;Volume:Double;AbsoluteTempK:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "IdealGasTemperature",
          "kind": "function",
          "signature": "class function IdealGasTemperature(Pressure:Double;Volume:Double;Moles:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "IdealGasVolume",
          "kind": "function",
          "signature": "class function IdealGasVolume(Moles:Double;Pressure:Double;AbsoluteTempK:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "IsentropicDensityRatio",
          "kind": "function",
          "signature": "class function IsentropicDensityRatio(MachNumber:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "IsentropicPressureRatio",
          "kind": "function",
          "signature": "class function IsentropicPressureRatio(MachNumber:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "IsentropicTemperatureRatio",
          "kind": "function",
          "signature": "class function IsentropicTemperatureRatio(MachNumber:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "KelvinToCelsius",
          "kind": "function",
          "signature": "class function KelvinToCelsius(TempK:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "MachNumberFromPressureRatio",
          "kind": "function",
          "signature": "class function MachNumberFromPressureRatio(PressureRatio:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "MoistAirEnthalpy",
          "kind": "function",
          "signature": "class function MoistAirEnthalpy(TemperatureC:Double;HumidityRatioValue:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "OttoCycleEfficiency",
          "kind": "function",
          "signature": "class function OttoCycleEfficiency(CompressionRatio:Double;SpecificHeatRatio:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "PascalToBar",
          "kind": "function",
          "signature": "class function PascalToBar(Pascal:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "RankineCycleEfficiency",
          "kind": "function",
          "signature": "class function RankineCycleEfficiency(TurbineWorkOutput:Double;PumpWorkInput:Double;HeatInput:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "RelativeHumidity",
          "kind": "function",
          "signature": "class function RelativeHumidity(ActualVaporPressure:Double;SaturatedVaporPressure:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "SaturatedVaporPressure",
          "kind": "function",
          "signature": "class function SaturatedVaporPressure(TemperatureC:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "StandardAtmosphere",
          "kind": "nested-const",
          "signature": "StandardAtmosphere=101325",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "StandardTempK",
          "kind": "nested-const",
          "signature": "StandardTempK=273.15",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "StefanBoltzmannConstant",
          "kind": "nested-const",
          "signature": "StefanBoltzmannConstant=5.670374419E-8",
          "classification": "recommended"
        },
        {
          "owner": "TThermodynamicsKit",
          "name": "ThermalEfficiency",
          "kind": "function",
          "signature": "class function ThermalEfficiency(WorkOutput:Double;HeatInput:Double):Double",
          "classification": "recommended"
        }
      ]
    },
    {
      "unit": "EngineeringLib.UnitConversion",
      "source": "src/EngineeringLib.UnitConversion.pas",
      "classification_summary": {
        "advanced": 144,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 67
      },
      "interface_sha256": "1463bdaa57cb84eb3f3045fb577ed85088f9c1f9c48e8759e60861203383fe4a",
      "declarations": [
        {
          "owner": null,
          "name": "TAngleUnit",
          "kind": "type",
          "signature": "TAngleUnit=(anDegree,anRadian,anGradian,anMinuteOfArc,anSecondOfArc,anRevolution)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TAreaUnit",
          "kind": "type",
          "signature": "TAreaUnit=(auSquareMeter,auSquareKilometer,auHectare,auAre,auSquareMile,auAcre,auSquareYard,auSquareFoot,auSquareInch)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDensityUnit",
          "kind": "type",
          "signature": "TDensityUnit=(deKilogramPerCubicMeter,deGramPerCubicCentimeter,dePoundPerCubicFoot,dePoundPerCubicInch)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TElectricalCurrentUnit",
          "kind": "type",
          "signature": "TElectricalCurrentUnit=(ecAmpere,ecMilliampere,ecMicroampere)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TElectricalPotentialUnit",
          "kind": "type",
          "signature": "TElectricalPotentialUnit=(epVolt,epKilovolt,epMillivolt,epMicrovolt)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TEnergyUnit",
          "kind": "type",
          "signature": "TEnergyUnit=(euJoule,euKilojoule,euCalorie,euKilocalorie,euWattHour,euKilowattHour,euElectronvolt,euBTU,euTherm,euFootPound)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TForceUnit",
          "kind": "type",
          "signature": "TForceUnit=(fuNewton,fuKilonewton,fuPoundForce,fuDyne,fuKilogramForce)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TFrequencyUnit",
          "kind": "type",
          "signature": "TFrequencyUnit=(frHertz,frKilohertz,frMegahertz,frGigahertz,frCyclePerSecond)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLengthUnit",
          "kind": "type",
          "signature": "TLengthUnit=(luMeter,luKilometer,luCentimeter,luMillimeter,luMicrometer,luNanometer,luMile,luYard,luFoot,luInch,luNauticalMile,luAngstrom,luLightYear)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMassUnit",
          "kind": "type",
          "signature": "TMassUnit=(muKilogram,muGram,muMilligram,muMicrogram,muTonne,muPound,muOunce,muStone,muUSton,muImperialTon)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPowerUnit",
          "kind": "type",
          "signature": "TPowerUnit=(puWatt,puKilowatt,puMegawatt,puHorsepower,puBTUPerHour)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPressureUnit",
          "kind": "type",
          "signature": "TPressureUnit=(prPascal,prKilopascal,prBar,prAtmosphere,prTorr,prPSI)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TStringArray",
          "kind": "type",
          "signature": "TStringArray=array of string",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TTemperatureUnit",
          "kind": "type",
          "signature": "TTemperatureUnit=(tpKelvin,tpCelsius,tpFahrenheit,tpRankine,tpReaumur)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TTimeUnit",
          "kind": "type",
          "signature": "TTimeUnit=(tuSecond,tuMinute,tuHour,tuDay,tuWeek,tuMonth,tuYear,tuMillisecond,tuMicrosecond,tuNanosecond)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TUnitConversionKit",
          "kind": "class",
          "signature": "TUnitConversionKit=class",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TUnitType",
          "kind": "type",
          "signature": "TUnitType=(utLength,utMass,utTime,utTemperature,utForce,utEnergy,utPower,utPressure,utVelocity,utArea,utVolume,utAngle,utDensity,utElectricalCurrent,utElectricalPotential,utFrequency)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TVelocityUnit",
          "kind": "type",
          "signature": "TVelocityUnit=(vuMeterPerSecond,vuKilometerPerHour,vuMilePerHour,vuFootPerSecond,vuKnot)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TVolumeUnit",
          "kind": "type",
          "signature": "TVolumeUnit=(voLiter,voCubicMeter,voMilliliter,voCubicCentimeter,voGallonUS,voGallonUK,voFluidOunceUS,voFluidOunceUK,voCubicFoot,voCubicInch)",
          "classification": "advanced"
        },
        {
          "owner": "TAngleUnit",
          "name": "anDegree",
          "kind": "enum-value",
          "signature": "anDegree",
          "classification": "advanced"
        },
        {
          "owner": "TAngleUnit",
          "name": "anGradian",
          "kind": "enum-value",
          "signature": "anGradian",
          "classification": "advanced"
        },
        {
          "owner": "TAngleUnit",
          "name": "anMinuteOfArc",
          "kind": "enum-value",
          "signature": "anMinuteOfArc",
          "classification": "advanced"
        },
        {
          "owner": "TAngleUnit",
          "name": "anRadian",
          "kind": "enum-value",
          "signature": "anRadian",
          "classification": "advanced"
        },
        {
          "owner": "TAngleUnit",
          "name": "anRevolution",
          "kind": "enum-value",
          "signature": "anRevolution",
          "classification": "advanced"
        },
        {
          "owner": "TAngleUnit",
          "name": "anSecondOfArc",
          "kind": "enum-value",
          "signature": "anSecondOfArc",
          "classification": "advanced"
        },
        {
          "owner": "TAreaUnit",
          "name": "auAcre",
          "kind": "enum-value",
          "signature": "auAcre",
          "classification": "advanced"
        },
        {
          "owner": "TAreaUnit",
          "name": "auAre",
          "kind": "enum-value",
          "signature": "auAre",
          "classification": "advanced"
        },
        {
          "owner": "TAreaUnit",
          "name": "auHectare",
          "kind": "enum-value",
          "signature": "auHectare",
          "classification": "advanced"
        },
        {
          "owner": "TAreaUnit",
          "name": "auSquareFoot",
          "kind": "enum-value",
          "signature": "auSquareFoot",
          "classification": "advanced"
        },
        {
          "owner": "TAreaUnit",
          "name": "auSquareInch",
          "kind": "enum-value",
          "signature": "auSquareInch",
          "classification": "advanced"
        },
        {
          "owner": "TAreaUnit",
          "name": "auSquareKilometer",
          "kind": "enum-value",
          "signature": "auSquareKilometer",
          "classification": "advanced"
        },
        {
          "owner": "TAreaUnit",
          "name": "auSquareMeter",
          "kind": "enum-value",
          "signature": "auSquareMeter",
          "classification": "advanced"
        },
        {
          "owner": "TAreaUnit",
          "name": "auSquareMile",
          "kind": "enum-value",
          "signature": "auSquareMile",
          "classification": "advanced"
        },
        {
          "owner": "TAreaUnit",
          "name": "auSquareYard",
          "kind": "enum-value",
          "signature": "auSquareYard",
          "classification": "advanced"
        },
        {
          "owner": "TDensityUnit",
          "name": "deGramPerCubicCentimeter",
          "kind": "enum-value",
          "signature": "deGramPerCubicCentimeter",
          "classification": "advanced"
        },
        {
          "owner": "TDensityUnit",
          "name": "deKilogramPerCubicMeter",
          "kind": "enum-value",
          "signature": "deKilogramPerCubicMeter",
          "classification": "advanced"
        },
        {
          "owner": "TDensityUnit",
          "name": "dePoundPerCubicFoot",
          "kind": "enum-value",
          "signature": "dePoundPerCubicFoot",
          "classification": "advanced"
        },
        {
          "owner": "TDensityUnit",
          "name": "dePoundPerCubicInch",
          "kind": "enum-value",
          "signature": "dePoundPerCubicInch",
          "classification": "advanced"
        },
        {
          "owner": "TElectricalCurrentUnit",
          "name": "ecAmpere",
          "kind": "enum-value",
          "signature": "ecAmpere",
          "classification": "advanced"
        },
        {
          "owner": "TElectricalCurrentUnit",
          "name": "ecMicroampere",
          "kind": "enum-value",
          "signature": "ecMicroampere",
          "classification": "advanced"
        },
        {
          "owner": "TElectricalCurrentUnit",
          "name": "ecMilliampere",
          "kind": "enum-value",
          "signature": "ecMilliampere",
          "classification": "advanced"
        },
        {
          "owner": "TElectricalPotentialUnit",
          "name": "epKilovolt",
          "kind": "enum-value",
          "signature": "epKilovolt",
          "classification": "advanced"
        },
        {
          "owner": "TElectricalPotentialUnit",
          "name": "epMicrovolt",
          "kind": "enum-value",
          "signature": "epMicrovolt",
          "classification": "advanced"
        },
        {
          "owner": "TElectricalPotentialUnit",
          "name": "epMillivolt",
          "kind": "enum-value",
          "signature": "epMillivolt",
          "classification": "advanced"
        },
        {
          "owner": "TElectricalPotentialUnit",
          "name": "epVolt",
          "kind": "enum-value",
          "signature": "epVolt",
          "classification": "advanced"
        },
        {
          "owner": "TEnergyUnit",
          "name": "euBTU",
          "kind": "enum-value",
          "signature": "euBTU",
          "classification": "advanced"
        },
        {
          "owner": "TEnergyUnit",
          "name": "euCalorie",
          "kind": "enum-value",
          "signature": "euCalorie",
          "classification": "advanced"
        },
        {
          "owner": "TEnergyUnit",
          "name": "euElectronvolt",
          "kind": "enum-value",
          "signature": "euElectronvolt",
          "classification": "advanced"
        },
        {
          "owner": "TEnergyUnit",
          "name": "euFootPound",
          "kind": "enum-value",
          "signature": "euFootPound",
          "classification": "advanced"
        },
        {
          "owner": "TEnergyUnit",
          "name": "euJoule",
          "kind": "enum-value",
          "signature": "euJoule",
          "classification": "advanced"
        },
        {
          "owner": "TEnergyUnit",
          "name": "euKilocalorie",
          "kind": "enum-value",
          "signature": "euKilocalorie",
          "classification": "advanced"
        },
        {
          "owner": "TEnergyUnit",
          "name": "euKilojoule",
          "kind": "enum-value",
          "signature": "euKilojoule",
          "classification": "advanced"
        },
        {
          "owner": "TEnergyUnit",
          "name": "euKilowattHour",
          "kind": "enum-value",
          "signature": "euKilowattHour",
          "classification": "advanced"
        },
        {
          "owner": "TEnergyUnit",
          "name": "euTherm",
          "kind": "enum-value",
          "signature": "euTherm",
          "classification": "advanced"
        },
        {
          "owner": "TEnergyUnit",
          "name": "euWattHour",
          "kind": "enum-value",
          "signature": "euWattHour",
          "classification": "advanced"
        },
        {
          "owner": "TForceUnit",
          "name": "fuDyne",
          "kind": "enum-value",
          "signature": "fuDyne",
          "classification": "advanced"
        },
        {
          "owner": "TForceUnit",
          "name": "fuKilogramForce",
          "kind": "enum-value",
          "signature": "fuKilogramForce",
          "classification": "advanced"
        },
        {
          "owner": "TForceUnit",
          "name": "fuKilonewton",
          "kind": "enum-value",
          "signature": "fuKilonewton",
          "classification": "advanced"
        },
        {
          "owner": "TForceUnit",
          "name": "fuNewton",
          "kind": "enum-value",
          "signature": "fuNewton",
          "classification": "advanced"
        },
        {
          "owner": "TForceUnit",
          "name": "fuPoundForce",
          "kind": "enum-value",
          "signature": "fuPoundForce",
          "classification": "advanced"
        },
        {
          "owner": "TFrequencyUnit",
          "name": "frCyclePerSecond",
          "kind": "enum-value",
          "signature": "frCyclePerSecond",
          "classification": "advanced"
        },
        {
          "owner": "TFrequencyUnit",
          "name": "frGigahertz",
          "kind": "enum-value",
          "signature": "frGigahertz",
          "classification": "advanced"
        },
        {
          "owner": "TFrequencyUnit",
          "name": "frHertz",
          "kind": "enum-value",
          "signature": "frHertz",
          "classification": "advanced"
        },
        {
          "owner": "TFrequencyUnit",
          "name": "frKilohertz",
          "kind": "enum-value",
          "signature": "frKilohertz",
          "classification": "advanced"
        },
        {
          "owner": "TFrequencyUnit",
          "name": "frMegahertz",
          "kind": "enum-value",
          "signature": "frMegahertz",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luAngstrom",
          "kind": "enum-value",
          "signature": "luAngstrom",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luCentimeter",
          "kind": "enum-value",
          "signature": "luCentimeter",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luFoot",
          "kind": "enum-value",
          "signature": "luFoot",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luInch",
          "kind": "enum-value",
          "signature": "luInch",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luKilometer",
          "kind": "enum-value",
          "signature": "luKilometer",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luLightYear",
          "kind": "enum-value",
          "signature": "luLightYear",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luMeter",
          "kind": "enum-value",
          "signature": "luMeter",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luMicrometer",
          "kind": "enum-value",
          "signature": "luMicrometer",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luMile",
          "kind": "enum-value",
          "signature": "luMile",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luMillimeter",
          "kind": "enum-value",
          "signature": "luMillimeter",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luNanometer",
          "kind": "enum-value",
          "signature": "luNanometer",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luNauticalMile",
          "kind": "enum-value",
          "signature": "luNauticalMile",
          "classification": "advanced"
        },
        {
          "owner": "TLengthUnit",
          "name": "luYard",
          "kind": "enum-value",
          "signature": "luYard",
          "classification": "advanced"
        },
        {
          "owner": "TMassUnit",
          "name": "muGram",
          "kind": "enum-value",
          "signature": "muGram",
          "classification": "advanced"
        },
        {
          "owner": "TMassUnit",
          "name": "muImperialTon",
          "kind": "enum-value",
          "signature": "muImperialTon",
          "classification": "advanced"
        },
        {
          "owner": "TMassUnit",
          "name": "muKilogram",
          "kind": "enum-value",
          "signature": "muKilogram",
          "classification": "advanced"
        },
        {
          "owner": "TMassUnit",
          "name": "muMicrogram",
          "kind": "enum-value",
          "signature": "muMicrogram",
          "classification": "advanced"
        },
        {
          "owner": "TMassUnit",
          "name": "muMilligram",
          "kind": "enum-value",
          "signature": "muMilligram",
          "classification": "advanced"
        },
        {
          "owner": "TMassUnit",
          "name": "muOunce",
          "kind": "enum-value",
          "signature": "muOunce",
          "classification": "advanced"
        },
        {
          "owner": "TMassUnit",
          "name": "muPound",
          "kind": "enum-value",
          "signature": "muPound",
          "classification": "advanced"
        },
        {
          "owner": "TMassUnit",
          "name": "muStone",
          "kind": "enum-value",
          "signature": "muStone",
          "classification": "advanced"
        },
        {
          "owner": "TMassUnit",
          "name": "muTonne",
          "kind": "enum-value",
          "signature": "muTonne",
          "classification": "advanced"
        },
        {
          "owner": "TMassUnit",
          "name": "muUSton",
          "kind": "enum-value",
          "signature": "muUSton",
          "classification": "advanced"
        },
        {
          "owner": "TPowerUnit",
          "name": "puBTUPerHour",
          "kind": "enum-value",
          "signature": "puBTUPerHour",
          "classification": "advanced"
        },
        {
          "owner": "TPowerUnit",
          "name": "puHorsepower",
          "kind": "enum-value",
          "signature": "puHorsepower",
          "classification": "advanced"
        },
        {
          "owner": "TPowerUnit",
          "name": "puKilowatt",
          "kind": "enum-value",
          "signature": "puKilowatt",
          "classification": "advanced"
        },
        {
          "owner": "TPowerUnit",
          "name": "puMegawatt",
          "kind": "enum-value",
          "signature": "puMegawatt",
          "classification": "advanced"
        },
        {
          "owner": "TPowerUnit",
          "name": "puWatt",
          "kind": "enum-value",
          "signature": "puWatt",
          "classification": "advanced"
        },
        {
          "owner": "TPressureUnit",
          "name": "prAtmosphere",
          "kind": "enum-value",
          "signature": "prAtmosphere",
          "classification": "advanced"
        },
        {
          "owner": "TPressureUnit",
          "name": "prBar",
          "kind": "enum-value",
          "signature": "prBar",
          "classification": "advanced"
        },
        {
          "owner": "TPressureUnit",
          "name": "prKilopascal",
          "kind": "enum-value",
          "signature": "prKilopascal",
          "classification": "advanced"
        },
        {
          "owner": "TPressureUnit",
          "name": "prPascal",
          "kind": "enum-value",
          "signature": "prPascal",
          "classification": "advanced"
        },
        {
          "owner": "TPressureUnit",
          "name": "prPSI",
          "kind": "enum-value",
          "signature": "prPSI",
          "classification": "advanced"
        },
        {
          "owner": "TPressureUnit",
          "name": "prTorr",
          "kind": "enum-value",
          "signature": "prTorr",
          "classification": "advanced"
        },
        {
          "owner": "TTemperatureUnit",
          "name": "tpCelsius",
          "kind": "enum-value",
          "signature": "tpCelsius",
          "classification": "advanced"
        },
        {
          "owner": "TTemperatureUnit",
          "name": "tpFahrenheit",
          "kind": "enum-value",
          "signature": "tpFahrenheit",
          "classification": "advanced"
        },
        {
          "owner": "TTemperatureUnit",
          "name": "tpKelvin",
          "kind": "enum-value",
          "signature": "tpKelvin",
          "classification": "advanced"
        },
        {
          "owner": "TTemperatureUnit",
          "name": "tpRankine",
          "kind": "enum-value",
          "signature": "tpRankine",
          "classification": "advanced"
        },
        {
          "owner": "TTemperatureUnit",
          "name": "tpReaumur",
          "kind": "enum-value",
          "signature": "tpReaumur",
          "classification": "advanced"
        },
        {
          "owner": "TTimeUnit",
          "name": "tuDay",
          "kind": "enum-value",
          "signature": "tuDay",
          "classification": "advanced"
        },
        {
          "owner": "TTimeUnit",
          "name": "tuHour",
          "kind": "enum-value",
          "signature": "tuHour",
          "classification": "advanced"
        },
        {
          "owner": "TTimeUnit",
          "name": "tuMicrosecond",
          "kind": "enum-value",
          "signature": "tuMicrosecond",
          "classification": "advanced"
        },
        {
          "owner": "TTimeUnit",
          "name": "tuMillisecond",
          "kind": "enum-value",
          "signature": "tuMillisecond",
          "classification": "advanced"
        },
        {
          "owner": "TTimeUnit",
          "name": "tuMinute",
          "kind": "enum-value",
          "signature": "tuMinute",
          "classification": "advanced"
        },
        {
          "owner": "TTimeUnit",
          "name": "tuMonth",
          "kind": "enum-value",
          "signature": "tuMonth",
          "classification": "advanced"
        },
        {
          "owner": "TTimeUnit",
          "name": "tuNanosecond",
          "kind": "enum-value",
          "signature": "tuNanosecond",
          "classification": "advanced"
        },
        {
          "owner": "TTimeUnit",
          "name": "tuSecond",
          "kind": "enum-value",
          "signature": "tuSecond",
          "classification": "advanced"
        },
        {
          "owner": "TTimeUnit",
          "name": "tuWeek",
          "kind": "enum-value",
          "signature": "tuWeek",
          "classification": "advanced"
        },
        {
          "owner": "TTimeUnit",
          "name": "tuYear",
          "kind": "enum-value",
          "signature": "tuYear",
          "classification": "advanced"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "AreUnitNamesCompatible",
          "kind": "function",
          "signature": "class function AreUnitNamesCompatible(AUnitName1,AUnitName2:string):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "AreUnitsCompatible",
          "kind": "function",
          "signature": "class function AreUnitsCompatible(UnitType1,UnitType2:TUnitType):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "CelsiusToFahrenheit",
          "kind": "function",
          "signature": "class function CelsiusToFahrenheit(Celsius:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertAngle",
          "kind": "function",
          "signature": "class function ConvertAngle(Value:Double;FromUnit,ToUnit:TAngleUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertArea",
          "kind": "function",
          "signature": "class function ConvertArea(Value:Double;FromUnit,ToUnit:TAreaUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertDensity",
          "kind": "function",
          "signature": "class function ConvertDensity(Value:Double;FromUnit,ToUnit:TDensityUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertElectricalCurrent",
          "kind": "function",
          "signature": "class function ConvertElectricalCurrent(Value:Double;FromUnit,ToUnit:TElectricalCurrentUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertElectricalPotential",
          "kind": "function",
          "signature": "class function ConvertElectricalPotential(Value:Double;FromUnit,ToUnit:TElectricalPotentialUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertEnergy",
          "kind": "function",
          "signature": "class function ConvertEnergy(Value:Double;FromUnit,ToUnit:TEnergyUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertForce",
          "kind": "function",
          "signature": "class function ConvertForce(Value:Double;FromUnit,ToUnit:TForceUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertFrequency",
          "kind": "function",
          "signature": "class function ConvertFrequency(Value:Double;FromUnit,ToUnit:TFrequencyUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertLength",
          "kind": "function",
          "signature": "class function ConvertLength(Value:Double;FromUnit,ToUnit:TLengthUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertMass",
          "kind": "function",
          "signature": "class function ConvertMass(Value:Double;FromUnit,ToUnit:TMassUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertPower",
          "kind": "function",
          "signature": "class function ConvertPower(Value:Double;FromUnit,ToUnit:TPowerUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertPressure",
          "kind": "function",
          "signature": "class function ConvertPressure(Value:Double;FromUnit,ToUnit:TPressureUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertTemperature",
          "kind": "function",
          "signature": "class function ConvertTemperature(Value:Double;FromUnit,ToUnit:TTemperatureUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertTime",
          "kind": "function",
          "signature": "class function ConvertTime(Value:Double;FromUnit,ToUnit:TTimeUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertVelocity",
          "kind": "function",
          "signature": "class function ConvertVelocity(Value:Double;FromUnit,ToUnit:TVelocityUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "ConvertVolume",
          "kind": "function",
          "signature": "class function ConvertVolume(Value:Double;FromUnit,ToUnit:TVolumeUnit):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "FahrenheitToCelsius",
          "kind": "function",
          "signature": "class function FahrenheitToCelsius(Fahrenheit:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "FormatWithScientificNotation",
          "kind": "function",
          "signature": "class function FormatWithScientificNotation(Value:Double;AUnitName:string;SignificantDigits:Integer=3):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "FormatWithUnit",
          "kind": "function",
          "signature": "class function FormatWithUnit(Value:Double;AUnitName:string;Decimals:Integer=2):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetAllUnitsOfType",
          "kind": "function",
          "signature": "class function GetAllUnitsOfType(UnitType:TUnitType):TStringArray",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetAllUnitTypes",
          "kind": "function",
          "signature": "class function GetAllUnitTypes:TStringArray",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetAngleUnitName",
          "kind": "function",
          "signature": "class function GetAngleUnitName(Unit_:TAngleUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetAreaUnitName",
          "kind": "function",
          "signature": "class function GetAreaUnitName(Unit_:TAreaUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetBaseUnit",
          "kind": "function",
          "signature": "class function GetBaseUnit(UnitType:TUnitType):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetDensityUnitName",
          "kind": "function",
          "signature": "class function GetDensityUnitName(Unit_:TDensityUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetElectricalCurrentUnitName",
          "kind": "function",
          "signature": "class function GetElectricalCurrentUnitName(Unit_:TElectricalCurrentUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetElectricalPotentialUnitName",
          "kind": "function",
          "signature": "class function GetElectricalPotentialUnitName(Unit_:TElectricalPotentialUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetEnergyUnitName",
          "kind": "function",
          "signature": "class function GetEnergyUnitName(Unit_:TEnergyUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetForceUnitName",
          "kind": "function",
          "signature": "class function GetForceUnitName(Unit_:TForceUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetFrequencyUnitName",
          "kind": "function",
          "signature": "class function GetFrequencyUnitName(Unit_:TFrequencyUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetLengthUnitName",
          "kind": "function",
          "signature": "class function GetLengthUnitName(Unit_:TLengthUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetMassUnitName",
          "kind": "function",
          "signature": "class function GetMassUnitName(Unit_:TMassUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetPowerUnitName",
          "kind": "function",
          "signature": "class function GetPowerUnitName(Unit_:TPowerUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetPressureUnitName",
          "kind": "function",
          "signature": "class function GetPressureUnitName(Unit_:TPressureUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetTemperatureUnitName",
          "kind": "function",
          "signature": "class function GetTemperatureUnitName(Unit_:TTemperatureUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetTimeUnitName",
          "kind": "function",
          "signature": "class function GetTimeUnitName(Unit_:TTimeUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetUnitTypeFromUnitName",
          "kind": "function",
          "signature": "class function GetUnitTypeFromUnitName(AUnitName:string):TUnitType",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetVelocityUnitName",
          "kind": "function",
          "signature": "class function GetVelocityUnitName(Unit_:TVelocityUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "GetVolumeUnitName",
          "kind": "function",
          "signature": "class function GetVolumeUnitName(Unit_:TVolumeUnit):string",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "KilogramsToPounds",
          "kind": "function",
          "signature": "class function KilogramsToPounds(Kilograms:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "KilometersToMiles",
          "kind": "function",
          "signature": "class function KilometersToMiles(Kilometers:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "MilesToKilometers",
          "kind": "function",
          "signature": "class function MilesToKilometers(Miles:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "PoundsToKilograms",
          "kind": "function",
          "signature": "class function PoundsToKilograms(Pounds:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "RoundToSignificantDigits",
          "kind": "function",
          "signature": "class function RoundToSignificantDigits(Value:Double;SignificantDigits:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryConvertByUnitName",
          "kind": "function",
          "signature": "class function TryConvertByUnitName(Value:Double;FromAUnitName,ToAUnitName:string;out ConvertedValue:Double):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetAngleUnitFromName",
          "kind": "function",
          "signature": "class function TryGetAngleUnitFromName(AUnitName:string;out Unit_:TAngleUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetAreaUnitFromName",
          "kind": "function",
          "signature": "class function TryGetAreaUnitFromName(AUnitName:string;out Unit_:TAreaUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetDensityUnitFromName",
          "kind": "function",
          "signature": "class function TryGetDensityUnitFromName(AUnitName:string;out Unit_:TDensityUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetElectricalCurrentUnitFromName",
          "kind": "function",
          "signature": "class function TryGetElectricalCurrentUnitFromName(AUnitName:string;out Unit_:TElectricalCurrentUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetElectricalPotentialUnitFromName",
          "kind": "function",
          "signature": "class function TryGetElectricalPotentialUnitFromName(AUnitName:string;out Unit_:TElectricalPotentialUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetEnergyUnitFromName",
          "kind": "function",
          "signature": "class function TryGetEnergyUnitFromName(AUnitName:string;out Unit_:TEnergyUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetForceUnitFromName",
          "kind": "function",
          "signature": "class function TryGetForceUnitFromName(AUnitName:string;out Unit_:TForceUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetFrequencyUnitFromName",
          "kind": "function",
          "signature": "class function TryGetFrequencyUnitFromName(AUnitName:string;out Unit_:TFrequencyUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetLengthUnitFromName",
          "kind": "function",
          "signature": "class function TryGetLengthUnitFromName(AUnitName:string;out Unit_:TLengthUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetMassUnitFromName",
          "kind": "function",
          "signature": "class function TryGetMassUnitFromName(AUnitName:string;out Unit_:TMassUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetPowerUnitFromName",
          "kind": "function",
          "signature": "class function TryGetPowerUnitFromName(AUnitName:string;out Unit_:TPowerUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetPressureUnitFromName",
          "kind": "function",
          "signature": "class function TryGetPressureUnitFromName(AUnitName:string;out Unit_:TPressureUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetTemperatureUnitFromName",
          "kind": "function",
          "signature": "class function TryGetTemperatureUnitFromName(AUnitName:string;out Unit_:TTemperatureUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetTimeUnitFromName",
          "kind": "function",
          "signature": "class function TryGetTimeUnitFromName(AUnitName:string;out Unit_:TTimeUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetVelocityUnitFromName",
          "kind": "function",
          "signature": "class function TryGetVelocityUnitFromName(AUnitName:string;out Unit_:TVelocityUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryGetVolumeUnitFromName",
          "kind": "function",
          "signature": "class function TryGetVolumeUnitFromName(AUnitName:string;out Unit_:TVolumeUnit):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryParseAndConvert",
          "kind": "function",
          "signature": "class function TryParseAndConvert(const ValueStr,ToAUnitName:string;out ConvertedValue:Double):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitConversionKit",
          "name": "TryParseValueWithUnit",
          "kind": "function",
          "signature": "class function TryParseValueWithUnit(const ValueStr:string;out Value:Double;out AUnitName:string):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TUnitType",
          "name": "utAngle",
          "kind": "enum-value",
          "signature": "utAngle",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utArea",
          "kind": "enum-value",
          "signature": "utArea",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utDensity",
          "kind": "enum-value",
          "signature": "utDensity",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utElectricalCurrent",
          "kind": "enum-value",
          "signature": "utElectricalCurrent",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utElectricalPotential",
          "kind": "enum-value",
          "signature": "utElectricalPotential",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utEnergy",
          "kind": "enum-value",
          "signature": "utEnergy",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utForce",
          "kind": "enum-value",
          "signature": "utForce",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utFrequency",
          "kind": "enum-value",
          "signature": "utFrequency",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utLength",
          "kind": "enum-value",
          "signature": "utLength",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utMass",
          "kind": "enum-value",
          "signature": "utMass",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utPower",
          "kind": "enum-value",
          "signature": "utPower",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utPressure",
          "kind": "enum-value",
          "signature": "utPressure",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utTemperature",
          "kind": "enum-value",
          "signature": "utTemperature",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utTime",
          "kind": "enum-value",
          "signature": "utTime",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utVelocity",
          "kind": "enum-value",
          "signature": "utVelocity",
          "classification": "advanced"
        },
        {
          "owner": "TUnitType",
          "name": "utVolume",
          "kind": "enum-value",
          "signature": "utVolume",
          "classification": "advanced"
        },
        {
          "owner": "TVelocityUnit",
          "name": "vuFootPerSecond",
          "kind": "enum-value",
          "signature": "vuFootPerSecond",
          "classification": "advanced"
        },
        {
          "owner": "TVelocityUnit",
          "name": "vuKilometerPerHour",
          "kind": "enum-value",
          "signature": "vuKilometerPerHour",
          "classification": "advanced"
        },
        {
          "owner": "TVelocityUnit",
          "name": "vuKnot",
          "kind": "enum-value",
          "signature": "vuKnot",
          "classification": "advanced"
        },
        {
          "owner": "TVelocityUnit",
          "name": "vuMeterPerSecond",
          "kind": "enum-value",
          "signature": "vuMeterPerSecond",
          "classification": "advanced"
        },
        {
          "owner": "TVelocityUnit",
          "name": "vuMilePerHour",
          "kind": "enum-value",
          "signature": "vuMilePerHour",
          "classification": "advanced"
        },
        {
          "owner": "TVolumeUnit",
          "name": "voCubicCentimeter",
          "kind": "enum-value",
          "signature": "voCubicCentimeter",
          "classification": "advanced"
        },
        {
          "owner": "TVolumeUnit",
          "name": "voCubicFoot",
          "kind": "enum-value",
          "signature": "voCubicFoot",
          "classification": "advanced"
        },
        {
          "owner": "TVolumeUnit",
          "name": "voCubicInch",
          "kind": "enum-value",
          "signature": "voCubicInch",
          "classification": "advanced"
        },
        {
          "owner": "TVolumeUnit",
          "name": "voCubicMeter",
          "kind": "enum-value",
          "signature": "voCubicMeter",
          "classification": "advanced"
        },
        {
          "owner": "TVolumeUnit",
          "name": "voFluidOunceUK",
          "kind": "enum-value",
          "signature": "voFluidOunceUK",
          "classification": "advanced"
        },
        {
          "owner": "TVolumeUnit",
          "name": "voFluidOunceUS",
          "kind": "enum-value",
          "signature": "voFluidOunceUS",
          "classification": "advanced"
        },
        {
          "owner": "TVolumeUnit",
          "name": "voGallonUK",
          "kind": "enum-value",
          "signature": "voGallonUK",
          "classification": "advanced"
        },
        {
          "owner": "TVolumeUnit",
          "name": "voGallonUS",
          "kind": "enum-value",
          "signature": "voGallonUS",
          "classification": "advanced"
        },
        {
          "owner": "TVolumeUnit",
          "name": "voLiter",
          "kind": "enum-value",
          "signature": "voLiter",
          "classification": "advanced"
        },
        {
          "owner": "TVolumeUnit",
          "name": "voMilliliter",
          "kind": "enum-value",
          "signature": "voMilliliter",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "EngineeringLib.Velocity",
      "source": "src/EngineeringLib.Velocity.pas",
      "classification_summary": {
        "advanced": 0,
        "compatibility": 2,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "c71d42a545d7c3c47bbd80231ded89b3699be4c8b7169ad42bd2c145d8497551",
      "declarations": [
        {
          "owner": null,
          "name": "EVelocityError",
          "kind": "type",
          "signature": "EVelocityError=EngineeringLib.Common.EFluidDynamicsError",
          "classification": "compatibility",
          "compatibility_decision": "retain",
          "compatibility_note": "velocity-error-alias"
        },
        {
          "owner": null,
          "name": "TVelocityKit",
          "kind": "type",
          "signature": "TVelocityKit=TFluidDynamicsKit",
          "classification": "compatibility",
          "compatibility_decision": "retain",
          "compatibility_note": "velocity-facade-alias"
        }
      ]
    },
    {
      "unit": "FinanceLib.Bonds",
      "source": "src/FinanceLib.Bonds.pas",
      "classification_summary": {
        "advanced": 0,
        "compatibility": 4,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "ee28d157c511c65c2b2f268f35f6e57f9d84eb1e6b109ff19e6cc04d14c429c0",
      "declarations": [
        {
          "owner": null,
          "name": "EBondError",
          "kind": "type",
          "signature": "EBondError=EFinanceError",
          "classification": "compatibility",
          "compatibility_decision": "retain",
          "compatibility_note": "focused-bond-alias-unit"
        },
        {
          "owner": null,
          "name": "TBondKit",
          "kind": "type",
          "signature": "TBondKit=TFinanceKit",
          "classification": "compatibility",
          "compatibility_decision": "retain",
          "compatibility_note": "focused-bond-alias-unit"
        },
        {
          "owner": null,
          "name": "TBondPayment",
          "kind": "type",
          "signature": "TBondPayment=TFinanceKit.TAmortizationPayment",
          "classification": "compatibility",
          "compatibility_decision": "retain",
          "compatibility_note": "focused-bond-alias-unit"
        },
        {
          "owner": null,
          "name": "TBondSchedule",
          "kind": "type",
          "signature": "TBondSchedule=TFinanceKit.TAmortizationArray",
          "classification": "compatibility",
          "compatibility_decision": "retain",
          "compatibility_note": "focused-bond-alias-unit"
        }
      ]
    },
    {
      "unit": "FinanceLib.Interest",
      "source": "src/FinanceLib.Interest.pas",
      "classification_summary": {
        "advanced": 34,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 30
      },
      "interface_sha256": "6c7265b16ed7a41d966a2582d202138f135a0110ad97c769e4a73d9a62d15cec",
      "declarations": [
        {
          "owner": null,
          "name": "EFinanceError",
          "kind": "type",
          "signature": "EFinanceError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDuPontAnalysis",
          "kind": "record",
          "signature": "TDuPontAnalysis=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TFinanceKit",
          "kind": "class",
          "signature": "TFinanceKit=class",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TLeverageRatios",
          "kind": "record",
          "signature": "TLeverageRatios=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TOperatingLeverage",
          "kind": "record",
          "signature": "TOperatingLeverage=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TOptionType",
          "kind": "type",
          "signature": "TOptionType=(otCall,otPut)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TProfitabilityRatios",
          "kind": "record",
          "signature": "TProfitabilityRatios=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TRiskMetrics",
          "kind": "record",
          "signature": "TRiskMetrics=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TWorkingCapitalRatios",
          "kind": "record",
          "signature": "TWorkingCapitalRatios=record",
          "classification": "advanced"
        },
        {
          "owner": "TDuPontAnalysis",
          "name": "AssetTurnover",
          "kind": "field",
          "signature": "AssetTurnover:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDuPontAnalysis",
          "name": "EquityMultiplier",
          "kind": "field",
          "signature": "EquityMultiplier:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDuPontAnalysis",
          "name": "ProfitMargin",
          "kind": "field",
          "signature": "ProfitMargin:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDuPontAnalysis",
          "name": "ROE",
          "kind": "field",
          "signature": "ROE:Double",
          "classification": "advanced"
        },
        {
          "owner": "TFinanceKit",
          "name": "AmortizationSchedule",
          "kind": "function",
          "signature": "class function AmortizationSchedule(const ALoanAmount,ARate:Double;const ANumberOfPayments:Integer;const ADecimals:Integer=4):TAmortizationArray",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "BlackScholes",
          "kind": "function",
          "signature": "class function BlackScholes(const ASpotPrice,AStrikePrice,ARiskFreeRate,AVolatility,ATimeToMaturity:Double;const AOptionType:TOptionType;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "BondPrice",
          "kind": "function",
          "signature": "class function BondPrice(const AFaceValue,ACouponRate,AYieldRate:Double;const APeriodsPerYear,AYearsToMaturity:Integer;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "BondYieldToMaturity",
          "kind": "function",
          "signature": "class function BondYieldToMaturity(const ABondPrice,AFaceValue,ACouponRate:Double;const APeriodsPerYear,AYearsToMaturity:Integer;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "BreakEvenRevenue",
          "kind": "function",
          "signature": "class function BreakEvenRevenue(const AFixedCosts,APricePerUnit,AVariableCostPerUnit:Double;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "BreakEvenUnits",
          "kind": "function",
          "signature": "class function BreakEvenUnits(const AFixedCosts,APricePerUnit,AVariableCostPerUnit:Double;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "CAPM",
          "kind": "function",
          "signature": "class function CAPM(const ARiskFreeRate,ABeta,AExpectedMarketReturn:Double;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "CompoundInterest",
          "kind": "function",
          "signature": "class function CompoundInterest(const APrincipal,ARate:Double;const APeriods:Integer;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "DecliningBalanceDepreciation",
          "kind": "function",
          "signature": "class function DecliningBalanceDepreciation(const ACost,ASalvage:Double;const ALife:Integer;const APeriod:Integer;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "DuPontAnalysis",
          "kind": "function",
          "signature": "class function DuPontAnalysis(const ANetIncome,ASales,ATotalAssets,ATotalEquity:Double;const ADecimals:Integer=4):TDuPontAnalysis",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "EffectiveAnnualRate",
          "kind": "function",
          "signature": "class function EffectiveAnnualRate(const ANominalRate:Double;const ACompoundingsPerYear:Integer;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "FutureValue",
          "kind": "function",
          "signature": "class function FutureValue(const APresentValue,ARate:Double;const APeriods:Integer;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "GordonGrowthModel",
          "kind": "function",
          "signature": "class function GordonGrowthModel(const ACurrentDividend,AGrowthRate,ARequiredReturn:Double;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "InternalRateOfReturn",
          "kind": "function",
          "signature": "class function InternalRateOfReturn(const AInitialInvestment:Double;const ACashFlows:TDoubleArray;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "LeverageRatios",
          "kind": "function",
          "signature": "class function LeverageRatios(const ATotalDebt,ATotalAssets,ATotalEquity,AEBIT,AInterestExpense:Double;const ADecimals:Integer=4):TLeverageRatios",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "ModifiedDuration",
          "kind": "function",
          "signature": "class function ModifiedDuration(const AFaceValue,ACouponRate,AYieldRate:Double;const APeriodsPerYear,AYearsToMaturity:Integer;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "NetPresentValue",
          "kind": "function",
          "signature": "class function NetPresentValue(const AInitialInvestment:Double;const ACashFlows:TDoubleArray;const Rate:Double;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "OperatingLeverage",
          "kind": "function",
          "signature": "class function OperatingLeverage(const AQuantity,APricePerUnit,AVariableCostPerUnit,AFixedCosts:Double;const ADecimals:Integer=4):TOperatingLeverage",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "Payment",
          "kind": "function",
          "signature": "class function Payment(const APresentValue,ARate:Double;const APeriods:Integer;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "PresentValue",
          "kind": "function",
          "signature": "class function PresentValue(const AFutureValue,ARate:Double;const APeriods:Integer;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "ProfitabilityRatios",
          "kind": "function",
          "signature": "class function ProfitabilityRatios(const ARevenue,ACOGS,AEBIT,ANetIncome,ATotalAssets,ACurrentLiabilities:Double;const ADecimals:Integer=4):TProfitabilityRatios",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "ReturnOnEquity",
          "kind": "function",
          "signature": "class function ReturnOnEquity(const ANetIncome,AShareholdersEquity:Double;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "ReturnOnInvestment",
          "kind": "function",
          "signature": "class function ReturnOnInvestment(const AGain,ACost:Double;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "RiskMetrics",
          "kind": "function",
          "signature": "class function RiskMetrics(const APortfolioReturn,ARiskFreeRate,AMarketReturn,ABeta,APortfolioStdDev,ABenchmarkReturn,ATrackingError:Double;const ADecimals:Integer=4):TRiskMetrics",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "StraightLineDepreciation",
          "kind": "function",
          "signature": "class function StraightLineDepreciation(const ACost,ASalvage:Double;const ALife:Integer;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "TAmortizationArray",
          "kind": "nested-type",
          "signature": "TAmortizationArray=array of TAmortizationPayment",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "TAmortizationPayment",
          "kind": "nested-type",
          "signature": "TAmortizationPayment=record PaymentNumber:Integer",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "WACC",
          "kind": "function",
          "signature": "class function WACC(const AEquityValue,ADebtValue,ACostOfEquity,ACostOfDebt,ATaxRate:Double;const ADecimals:Integer=4):Double",
          "classification": "recommended"
        },
        {
          "owner": "TFinanceKit",
          "name": "WorkingCapitalRatios",
          "kind": "function",
          "signature": "class function WorkingCapitalRatios(const ACurrentAssets,ACurrentLiabilities,AInventory,ACash,ASales:Double;const ADecimals:Integer=4):TWorkingCapitalRatios",
          "classification": "recommended"
        },
        {
          "owner": "TLeverageRatios",
          "name": "DebtRatio",
          "kind": "field",
          "signature": "DebtRatio:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLeverageRatios",
          "name": "DebtToEquityRatio",
          "kind": "field",
          "signature": "DebtToEquityRatio:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLeverageRatios",
          "name": "EquityMultiplier",
          "kind": "field",
          "signature": "EquityMultiplier:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLeverageRatios",
          "name": "TimesInterestEarned",
          "kind": "field",
          "signature": "TimesInterestEarned:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOperatingLeverage",
          "name": "BreakEvenPoint",
          "kind": "field",
          "signature": "BreakEvenPoint:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOperatingLeverage",
          "name": "DOL",
          "kind": "field",
          "signature": "DOL:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOperatingLeverage",
          "name": "OperatingLeverage",
          "kind": "field",
          "signature": "OperatingLeverage:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOptionType",
          "name": "otCall",
          "kind": "enum-value",
          "signature": "otCall",
          "classification": "advanced"
        },
        {
          "owner": "TOptionType",
          "name": "otPut",
          "kind": "enum-value",
          "signature": "otPut",
          "classification": "advanced"
        },
        {
          "owner": "TProfitabilityRatios",
          "name": "GrossMargin",
          "kind": "field",
          "signature": "GrossMargin:Double",
          "classification": "advanced"
        },
        {
          "owner": "TProfitabilityRatios",
          "name": "NetProfitMargin",
          "kind": "field",
          "signature": "NetProfitMargin:Double",
          "classification": "advanced"
        },
        {
          "owner": "TProfitabilityRatios",
          "name": "OperatingMargin",
          "kind": "field",
          "signature": "OperatingMargin:Double",
          "classification": "advanced"
        },
        {
          "owner": "TProfitabilityRatios",
          "name": "ROA",
          "kind": "field",
          "signature": "ROA:Double",
          "classification": "advanced"
        },
        {
          "owner": "TProfitabilityRatios",
          "name": "ROCE",
          "kind": "field",
          "signature": "ROCE:Double",
          "classification": "advanced"
        },
        {
          "owner": "TRiskMetrics",
          "name": "InformationRatio",
          "kind": "field",
          "signature": "InformationRatio:Double",
          "classification": "advanced"
        },
        {
          "owner": "TRiskMetrics",
          "name": "JensenAlpha",
          "kind": "field",
          "signature": "JensenAlpha:Double",
          "classification": "advanced"
        },
        {
          "owner": "TRiskMetrics",
          "name": "SharpeRatio",
          "kind": "field",
          "signature": "SharpeRatio:Double",
          "classification": "advanced"
        },
        {
          "owner": "TRiskMetrics",
          "name": "TreynorRatio",
          "kind": "field",
          "signature": "TreynorRatio:Double",
          "classification": "advanced"
        },
        {
          "owner": "TWorkingCapitalRatios",
          "name": "CashRatio",
          "kind": "field",
          "signature": "CashRatio:Double",
          "classification": "advanced"
        },
        {
          "owner": "TWorkingCapitalRatios",
          "name": "CurrentRatio",
          "kind": "field",
          "signature": "CurrentRatio:Double",
          "classification": "advanced"
        },
        {
          "owner": "TWorkingCapitalRatios",
          "name": "QuickRatio",
          "kind": "field",
          "signature": "QuickRatio:Double",
          "classification": "advanced"
        },
        {
          "owner": "TWorkingCapitalRatios",
          "name": "WorkingCapitalTurnover",
          "kind": "field",
          "signature": "WorkingCapitalTurnover:Double",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "FinanceLib.NPV",
      "source": "src/FinanceLib.NPV.pas",
      "classification_summary": {
        "advanced": 0,
        "compatibility": 3,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "c6fbf1c36ed0f3448519e41d05b75df2788985053e91aee7e1dc11aaaf2df48d",
      "declarations": [
        {
          "owner": null,
          "name": "ENPVError",
          "kind": "type",
          "signature": "ENPVError=EFinanceError",
          "classification": "compatibility",
          "compatibility_decision": "retain",
          "compatibility_note": "focused-npv-alias-unit"
        },
        {
          "owner": null,
          "name": "TNPVCashFlows",
          "kind": "type",
          "signature": "TNPVCashFlows=TDoubleArray",
          "classification": "compatibility",
          "compatibility_decision": "retain",
          "compatibility_note": "focused-npv-alias-unit"
        },
        {
          "owner": null,
          "name": "TNPVKit",
          "kind": "type",
          "signature": "TNPVKit=TFinanceKit",
          "classification": "compatibility",
          "compatibility_decision": "retain",
          "compatibility_note": "focused-npv-alias-unit"
        }
      ]
    },
    {
      "unit": "GeometryLib.Geometry",
      "source": "src/GeometryLib.Geometry.pas",
      "classification_summary": {
        "advanced": 115,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 18
      },
      "interface_sha256": "f9153059c791b9295b46de318c7b1fe404c86d94076a5ff39b80e5d4cc8f1015",
      "declarations": [
        {
          "owner": null,
          "name": "EGeometryError",
          "kind": "type",
          "signature": "EGeometryError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "GEO_EPS",
          "kind": "constant",
          "signature": "GEO_EPS=1e-10",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TBoundingBox2D",
          "kind": "record",
          "signature": "TBoundingBox2D=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCircle2D",
          "kind": "record",
          "signature": "TCircle2D=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TGeometryKit",
          "kind": "class",
          "signature": "TGeometryKit=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLine2D",
          "kind": "record",
          "signature": "TLine2D=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPlane3D",
          "kind": "record",
          "signature": "TPlane3D=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPoint2D",
          "kind": "record",
          "signature": "TPoint2D=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPoint3D",
          "kind": "record",
          "signature": "TPoint3D=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPolygon2D",
          "kind": "type",
          "signature": "TPolygon2D=array of TPoint2D",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSegment2D",
          "kind": "record",
          "signature": "TSegment2D=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSegment3D",
          "kind": "record",
          "signature": "TSegment3D=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSphere3D",
          "kind": "record",
          "signature": "TSphere3D=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TVector2D",
          "kind": "record",
          "signature": "TVector2D=record",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TVector3D",
          "kind": "record",
          "signature": "TVector3D=record",
          "classification": "advanced"
        },
        {
          "owner": "TBoundingBox2D",
          "name": "Area",
          "kind": "function",
          "signature": "function Area:Double",
          "classification": "advanced"
        },
        {
          "owner": "TBoundingBox2D",
          "name": "ContainsPoint",
          "kind": "function",
          "signature": "function ContainsPoint(const P:TPoint2D):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TBoundingBox2D",
          "name": "Height",
          "kind": "function",
          "signature": "function Height:Double",
          "classification": "advanced"
        },
        {
          "owner": "TBoundingBox2D",
          "name": "MaxX",
          "kind": "field",
          "signature": "MaxX:Double",
          "classification": "advanced"
        },
        {
          "owner": "TBoundingBox2D",
          "name": "MaxY",
          "kind": "field",
          "signature": "MaxY:Double",
          "classification": "advanced"
        },
        {
          "owner": "TBoundingBox2D",
          "name": "MinX",
          "kind": "field",
          "signature": "MinX:Double",
          "classification": "advanced"
        },
        {
          "owner": "TBoundingBox2D",
          "name": "MinY",
          "kind": "field",
          "signature": "MinY:Double",
          "classification": "advanced"
        },
        {
          "owner": "TBoundingBox2D",
          "name": "Width",
          "kind": "function",
          "signature": "function Width:Double",
          "classification": "advanced"
        },
        {
          "owner": "TCircle2D",
          "name": "Area",
          "kind": "function",
          "signature": "function Area:Double",
          "classification": "advanced"
        },
        {
          "owner": "TCircle2D",
          "name": "Centre",
          "kind": "field",
          "signature": "Centre:TPoint2D",
          "classification": "advanced"
        },
        {
          "owner": "TCircle2D",
          "name": "Circumference",
          "kind": "function",
          "signature": "function Circumference:Double",
          "classification": "advanced"
        },
        {
          "owner": "TCircle2D",
          "name": "ContainsPoint",
          "kind": "function",
          "signature": "function ContainsPoint(const P:TPoint2D):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TCircle2D",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const ACentre:TPoint2D;ARadius:Double):TCircle2D",
          "classification": "advanced"
        },
        {
          "owner": "TCircle2D",
          "name": "Radius",
          "kind": "field",
          "signature": "Radius:Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "AngleBetween2D",
          "kind": "function",
          "signature": "class function AngleBetween2D(const V1,V2:TVector2D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "AngleBetween3D",
          "kind": "function",
          "signature": "class function AngleBetween3D(const V1,V2:TVector3D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "BoundingBox2D",
          "kind": "function",
          "signature": "class function BoundingBox2D(const Points:TPolygon2D):TBoundingBox2D",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "ConvexHull",
          "kind": "function",
          "signature": "class function ConvexHull(const Points:TPolygon2D):TPolygon2D",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "IsConvex",
          "kind": "function",
          "signature": "class function IsConvex(const Poly:TPolygon2D):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "LineIntersect2D",
          "kind": "function",
          "signature": "class function LineIntersect2D(const A1,A2,B1,B2:TPoint2D;out Pt:TPoint2D):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "PointInPolygon",
          "kind": "function",
          "signature": "class function PointInPolygon(const P:TPoint2D;const Poly:TPolygon2D):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "PointToLine2D",
          "kind": "function",
          "signature": "class function PointToLine2D(const P,A,B:TPoint2D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "PointToPlane3D",
          "kind": "function",
          "signature": "class function PointToPlane3D(const P:TPoint3D;const Plane:TPlane3D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "PointToPoint2D",
          "kind": "function",
          "signature": "class function PointToPoint2D(const A,B:TPoint2D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "PointToPoint3D",
          "kind": "function",
          "signature": "class function PointToPoint3D(const A,B:TPoint3D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "PointToSegment2D",
          "kind": "function",
          "signature": "class function PointToSegment2D(const P,A,B:TPoint2D;out T:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "PointToSegment3D",
          "kind": "function",
          "signature": "class function PointToSegment3D(const P,A,B:TPoint3D;out T:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "PolygonArea",
          "kind": "function",
          "signature": "class function PolygonArea(const Poly:TPolygon2D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "PolygonCentroid",
          "kind": "function",
          "signature": "class function PolygonCentroid(const Poly:TPolygon2D):TPoint2D",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "PolygonPerimeter",
          "kind": "function",
          "signature": "class function PolygonPerimeter(const Poly:TPolygon2D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "RayCircleIntersect",
          "kind": "function",
          "signature": "class function RayCircleIntersect(const Origin,Direction:TPoint2D;const C:TCircle2D;out T1,T2:Double):Integer",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "Rotate2D",
          "kind": "function",
          "signature": "class function Rotate2D(const Poly:TPolygon2D;Angle:Double;const Centre:TPoint2D):TPolygon2D",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "Scale2D",
          "kind": "function",
          "signature": "class function Scale2D(const Poly:TPolygon2D;SX,SY:Double):TPolygon2D",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "SegmentCircleIntersect",
          "kind": "function",
          "signature": "class function SegmentCircleIntersect(const P,Q:TPoint2D;const C:TCircle2D):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "SegmentIntersect2D",
          "kind": "function",
          "signature": "class function SegmentIntersect2D(const A1,A2,B1,B2:TPoint2D;out Pt:TPoint2D;out T:Double):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "SegmentsIntersect2D",
          "kind": "function",
          "signature": "class function SegmentsIntersect2D(const A1,A2,B1,B2:TPoint2D):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "SegmentToSegment2D",
          "kind": "function",
          "signature": "class function SegmentToSegment2D(const A1,A2,B1,B2:TPoint2D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "Translate2D",
          "kind": "function",
          "signature": "class function Translate2D(const Poly:TPolygon2D;DX,DY:Double):TPolygon2D",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "TriangleArea2D",
          "kind": "function",
          "signature": "class function TriangleArea2D(const A,B,C:TPoint2D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGeometryKit",
          "name": "TriangleArea3D",
          "kind": "function",
          "signature": "class function TriangleArea3D(const A,B,C:TPoint3D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TLine2D",
          "name": "A",
          "kind": "field",
          "signature": "A:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLine2D",
          "name": "B",
          "kind": "field",
          "signature": "B:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLine2D",
          "name": "C",
          "kind": "field",
          "signature": "C:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLine2D",
          "name": "ClosestPoint",
          "kind": "function",
          "signature": "function ClosestPoint(const P:TPoint2D):TPoint2D",
          "classification": "advanced"
        },
        {
          "owner": "TLine2D",
          "name": "Distance",
          "kind": "function",
          "signature": "function Distance(const P:TPoint2D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TLine2D",
          "name": "FromPoints",
          "kind": "function",
          "signature": "class function FromPoints(const P,Q:TPoint2D):TLine2D",
          "classification": "advanced"
        },
        {
          "owner": "TLine2D",
          "name": "SignedDistance",
          "kind": "function",
          "signature": "function SignedDistance(const P:TPoint2D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TPlane3D",
          "name": "A",
          "kind": "field",
          "signature": "A:Double",
          "classification": "advanced"
        },
        {
          "owner": "TPlane3D",
          "name": "B",
          "kind": "field",
          "signature": "B:Double",
          "classification": "advanced"
        },
        {
          "owner": "TPlane3D",
          "name": "C",
          "kind": "field",
          "signature": "C:Double",
          "classification": "advanced"
        },
        {
          "owner": "TPlane3D",
          "name": "ClosestPoint",
          "kind": "function",
          "signature": "function ClosestPoint(const P:TPoint3D):TPoint3D",
          "classification": "advanced"
        },
        {
          "owner": "TPlane3D",
          "name": "D",
          "kind": "field",
          "signature": "D:Double",
          "classification": "advanced"
        },
        {
          "owner": "TPlane3D",
          "name": "Distance",
          "kind": "function",
          "signature": "function Distance(const P:TPoint3D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TPlane3D",
          "name": "FromPointNormal",
          "kind": "function",
          "signature": "class function FromPointNormal(const P:TPoint3D;const N:TVector3D):TPlane3D",
          "classification": "advanced"
        },
        {
          "owner": "TPlane3D",
          "name": "FromThreePoints",
          "kind": "function",
          "signature": "class function FromThreePoints(const P1,P2,P3:TPoint3D):TPlane3D",
          "classification": "advanced"
        },
        {
          "owner": "TPlane3D",
          "name": "SignedDistance",
          "kind": "function",
          "signature": "function SignedDistance(const P:TPoint3D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TPoint2D",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(AX,AY:Double):TPoint2D",
          "classification": "advanced"
        },
        {
          "owner": "TPoint2D",
          "name": "DistanceTo",
          "kind": "function",
          "signature": "function DistanceTo(const Other:TPoint2D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TPoint2D",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:String",
          "classification": "advanced"
        },
        {
          "owner": "TPoint2D",
          "name": "X",
          "kind": "field",
          "signature": "X:Double",
          "classification": "advanced"
        },
        {
          "owner": "TPoint2D",
          "name": "Y",
          "kind": "field",
          "signature": "Y:Double",
          "classification": "advanced"
        },
        {
          "owner": "TPoint3D",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(AX,AY,AZ:Double):TPoint3D",
          "classification": "advanced"
        },
        {
          "owner": "TPoint3D",
          "name": "DistanceTo",
          "kind": "function",
          "signature": "function DistanceTo(const Other:TPoint3D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TPoint3D",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:String",
          "classification": "advanced"
        },
        {
          "owner": "TPoint3D",
          "name": "X",
          "kind": "field",
          "signature": "X:Double",
          "classification": "advanced"
        },
        {
          "owner": "TPoint3D",
          "name": "Y",
          "kind": "field",
          "signature": "Y:Double",
          "classification": "advanced"
        },
        {
          "owner": "TPoint3D",
          "name": "Z",
          "kind": "field",
          "signature": "Z:Double",
          "classification": "advanced"
        },
        {
          "owner": "TSegment2D",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const AP,AQ:TPoint2D):TSegment2D",
          "classification": "advanced"
        },
        {
          "owner": "TSegment2D",
          "name": "Direction",
          "kind": "function",
          "signature": "function Direction:TVector2D",
          "classification": "advanced"
        },
        {
          "owner": "TSegment2D",
          "name": "Length",
          "kind": "function",
          "signature": "function Length:Double",
          "classification": "advanced"
        },
        {
          "owner": "TSegment2D",
          "name": "Midpoint",
          "kind": "function",
          "signature": "function Midpoint:TPoint2D",
          "classification": "advanced"
        },
        {
          "owner": "TSegment2D",
          "name": "P",
          "kind": "field",
          "signature": "P:TPoint2D",
          "classification": "advanced"
        },
        {
          "owner": "TSegment2D",
          "name": "Q",
          "kind": "field",
          "signature": "Q:TPoint2D",
          "classification": "advanced"
        },
        {
          "owner": "TSegment2D",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:String",
          "classification": "advanced"
        },
        {
          "owner": "TSegment3D",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const AP,AQ:TPoint3D):TSegment3D",
          "classification": "advanced"
        },
        {
          "owner": "TSegment3D",
          "name": "Length",
          "kind": "function",
          "signature": "function Length:Double",
          "classification": "advanced"
        },
        {
          "owner": "TSegment3D",
          "name": "Midpoint",
          "kind": "function",
          "signature": "function Midpoint:TPoint3D",
          "classification": "advanced"
        },
        {
          "owner": "TSegment3D",
          "name": "P",
          "kind": "field",
          "signature": "P:TPoint3D",
          "classification": "advanced"
        },
        {
          "owner": "TSegment3D",
          "name": "Q",
          "kind": "field",
          "signature": "Q:TPoint3D",
          "classification": "advanced"
        },
        {
          "owner": "TSphere3D",
          "name": "Centre",
          "kind": "field",
          "signature": "Centre:TPoint3D",
          "classification": "advanced"
        },
        {
          "owner": "TSphere3D",
          "name": "ContainsPoint",
          "kind": "function",
          "signature": "function ContainsPoint(const P:TPoint3D):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TSphere3D",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const ACentre:TPoint3D;ARadius:Double):TSphere3D",
          "classification": "advanced"
        },
        {
          "owner": "TSphere3D",
          "name": "Radius",
          "kind": "field",
          "signature": "Radius:Double",
          "classification": "advanced"
        },
        {
          "owner": "TSphere3D",
          "name": "SurfaceArea",
          "kind": "function",
          "signature": "function SurfaceArea:Double",
          "classification": "advanced"
        },
        {
          "owner": "TSphere3D",
          "name": "Volume",
          "kind": "function",
          "signature": "function Volume:Double",
          "classification": "advanced"
        },
        {
          "owner": "TVector2D",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const A:TVector2D;const Scalar:Double):TVector2D",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const Scalar:Double;const A:TVector2D):TVector2D",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "+",
          "kind": "operator",
          "signature": "class operator +(const A,B:TVector2D):TVector2D",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A,B:TVector2D):TVector2D",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A:TVector2D):TVector2D",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "/",
          "kind": "operator",
          "signature": "class operator /(const A:TVector2D;const Scalar:Double):TVector2D",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(AX,AY:Double):TVector2D",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "Cross",
          "kind": "function",
          "signature": "function Cross(const V:TVector2D):Double",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "Dot",
          "kind": "function",
          "signature": "function Dot(const V:TVector2D):Double",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "FromPoints",
          "kind": "function",
          "signature": "class function FromPoints(const P,Q:TPoint2D):TVector2D",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "Magnitude",
          "kind": "function",
          "signature": "function Magnitude:Double",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "Normalise",
          "kind": "function",
          "signature": "function Normalise:TVector2D",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "Perpendicular",
          "kind": "function",
          "signature": "function Perpendicular:TVector2D",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "Rotate",
          "kind": "function",
          "signature": "function Rotate(const Angle:Double):TVector2D",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:String",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "X",
          "kind": "field",
          "signature": "X:Double",
          "classification": "recommended"
        },
        {
          "owner": "TVector2D",
          "name": "Y",
          "kind": "field",
          "signature": "Y:Double",
          "classification": "recommended"
        },
        {
          "owner": "TVector3D",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const A:TVector3D;const Scalar:Double):TVector3D",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const Scalar:Double;const A:TVector3D):TVector3D",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "+",
          "kind": "operator",
          "signature": "class operator +(const A,B:TVector3D):TVector3D",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A,B:TVector3D):TVector3D",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A:TVector3D):TVector3D",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "/",
          "kind": "operator",
          "signature": "class operator /(const A:TVector3D;const Scalar:Double):TVector3D",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(AX,AY,AZ:Double):TVector3D",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "Cross",
          "kind": "function",
          "signature": "function Cross(const V:TVector3D):TVector3D",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "Dot",
          "kind": "function",
          "signature": "function Dot(const V:TVector3D):Double",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "FromPoints",
          "kind": "function",
          "signature": "class function FromPoints(const P,Q:TPoint3D):TVector3D",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "Magnitude",
          "kind": "function",
          "signature": "function Magnitude:Double",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "Normalise",
          "kind": "function",
          "signature": "function Normalise:TVector3D",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:String",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "X",
          "kind": "field",
          "signature": "X:Double",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "Y",
          "kind": "field",
          "signature": "Y:Double",
          "classification": "advanced"
        },
        {
          "owner": "TVector3D",
          "name": "Z",
          "kind": "field",
          "signature": "Z:Double",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "InterchangeLib.Models",
      "source": "src/InterchangeLib.Models.pas",
      "classification_summary": {
        "advanced": 14,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "bca8bc1a3add64031172bdd67a2f163f012d70699157f4d308c982a70b082dc0",
      "declarations": [
        {
          "owner": null,
          "name": "DEFAULT_MAX_MODEL_ELEMENTS",
          "kind": "constant",
          "signature": "DEFAULT_MAX_MODEL_ELEMENTS=16000000",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "EModelInterchangeError",
          "kind": "type",
          "signature": "EModelInterchangeError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadCubicSpline",
          "kind": "function",
          "signature": "function LoadCubicSpline(const Stream:TStream;const MaxElements:QWord=DEFAULT_MAX_MODEL_ELEMENTS):TCubicSplineInterpolator",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadScalarKalman",
          "kind": "function",
          "signature": "function LoadScalarKalman(const Stream:TStream):TScalarKalmanFilter",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadStandardization",
          "kind": "function",
          "signature": "function LoadStandardization(const Stream:TStream;const MaxElements:QWord=DEFAULT_MAX_MODEL_ELEMENTS):TStandardizationModel",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadStreamingFIR",
          "kind": "function",
          "signature": "function LoadStreamingFIR(const Stream:TStream;const MaxElements:QWord=DEFAULT_MAX_MODEL_ELEMENTS):TStreamingFIR",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveCubicSpline",
          "kind": "procedure",
          "signature": "procedure SaveCubicSpline(const Stream:TStream;const Model:TCubicSplineInterpolator)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveScalarKalman",
          "kind": "procedure",
          "signature": "procedure SaveScalarKalman(const Stream:TStream;const Model:TScalarKalmanFilter)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveStandardization",
          "kind": "procedure",
          "signature": "procedure SaveStandardization(const Stream:TStream;const Model:TStandardizationModel)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveStreamingFIR",
          "kind": "procedure",
          "signature": "procedure SaveStreamingFIR(const Stream:TStream;const Model:TStreamingFIR)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SummarizeCubicSpline",
          "kind": "function",
          "signature": "function SummarizeCubicSpline(const Model:TCubicSplineInterpolator):String",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SummarizeScalarKalman",
          "kind": "function",
          "signature": "function SummarizeScalarKalman(const Model:TScalarKalmanFilter):String",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SummarizeStandardization",
          "kind": "function",
          "signature": "function SummarizeStandardization(const Model:TStandardizationModel):String",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SummarizeStreamingFIR",
          "kind": "function",
          "signature": "function SummarizeStreamingFIR(const Model:TStreamingFIR):String",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "MathBase.Complex",
      "source": "src/MathBase.Complex.pas",
      "classification_summary": {
        "advanced": 66,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "58ab9d4c1e42bf1890afdc80ac4bf898783d896e94e972d9ad6ccdf5ea148239",
      "declarations": [
        {
          "owner": null,
          "name": "CAcos",
          "kind": "function",
          "signature": "function CAcos(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CAcosh",
          "kind": "function",
          "signature": "function CAcosh(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CAsin",
          "kind": "function",
          "signature": "function CAsin(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CAsinh",
          "kind": "function",
          "signature": "function CAsinh(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CAtan",
          "kind": "function",
          "signature": "function CAtan(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CAtanh",
          "kind": "function",
          "signature": "function CAtanh(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CCos",
          "kind": "function",
          "signature": "function CCos(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CCosh",
          "kind": "function",
          "signature": "function CCosh(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CExp",
          "kind": "function",
          "signature": "function CExp(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CLog",
          "kind": "function",
          "signature": "function CLog(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CPow",
          "kind": "function",
          "signature": "function CPow(const Base,Exponent:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CPow",
          "kind": "function",
          "signature": "function CPow(const Base:TComplex;const Exponent:Double):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CSin",
          "kind": "function",
          "signature": "function CSin(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CSinh",
          "kind": "function",
          "signature": "function CSinh(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CSqrt",
          "kind": "function",
          "signature": "function CSqrt(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CTan",
          "kind": "function",
          "signature": "function CTan(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "CTanh",
          "kind": "function",
          "signature": "function CTanh(const Z:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplex",
          "kind": "record",
          "signature": "TComplex=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexArray",
          "kind": "type",
          "signature": "TComplexArray=array of TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToComplex",
          "kind": "function",
          "signature": "function ToComplex(const Z:TSingleComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToSingleComplex",
          "kind": "function",
          "signature": "function ToSingleComplex(const Z:TComplex):TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleComplex",
          "kind": "record",
          "signature": "TSingleComplex=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleComplexArray",
          "kind": "type",
          "signature": "TSingleComplexArray=array of TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const A,B:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const A:Double;const B:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const A:TComplex;const B:Double):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "+",
          "kind": "operator",
          "signature": "class operator +(const A,B:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "+",
          "kind": "operator",
          "signature": "class operator +(const A:Double;const B:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "+",
          "kind": "operator",
          "signature": "class operator +(const A:TComplex;const B:Double):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A,B:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A:Double;const B:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A:TComplex;const B:Double):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "/",
          "kind": "operator",
          "signature": "class operator /(const A,B:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "/",
          "kind": "operator",
          "signature": "class operator /(const A:Double;const B:TComplex):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "/",
          "kind": "operator",
          "signature": "class operator /(const A:TComplex;const B:Double):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "<>",
          "kind": "operator",
          "signature": "class operator <>(const A,B:TComplex):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "=",
          "kind": "operator",
          "signature": "class operator=(const A,B:TComplex):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "Argument",
          "kind": "function",
          "signature": "function Argument:Double",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "Conjugate",
          "kind": "function",
          "signature": "function Conjugate:TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const ARe,AIm:Double):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "FromPolar",
          "kind": "function",
          "signature": "class function FromPolar(const Radius,Angle:Double):TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "Im",
          "kind": "field",
          "signature": "Im:Double",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "ImaginaryUnit",
          "kind": "function",
          "signature": "class function ImaginaryUnit:TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "IsFinite",
          "kind": "function",
          "signature": "function IsFinite:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "Magnitude",
          "kind": "function",
          "signature": "function Magnitude:Double",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "One",
          "kind": "function",
          "signature": "class function One:TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "Re",
          "kind": "field",
          "signature": "Re:Double",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "SqrMagnitude",
          "kind": "function",
          "signature": "function SqrMagnitude:Double",
          "classification": "advanced"
        },
        {
          "owner": "TComplex",
          "name": "Zero",
          "kind": "function",
          "signature": "class function Zero:TComplex",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const A,B:TSingleComplex):TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "+",
          "kind": "operator",
          "signature": "class operator +(const A,B:TSingleComplex):TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A,B:TSingleComplex):TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A:TSingleComplex):TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "/",
          "kind": "operator",
          "signature": "class operator /(const A,B:TSingleComplex):TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "<>",
          "kind": "operator",
          "signature": "class operator <>(const A,B:TSingleComplex):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "=",
          "kind": "operator",
          "signature": "class operator=(const A,B:TSingleComplex):Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "Conjugate",
          "kind": "function",
          "signature": "function Conjugate:TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const ARe,AIm:Single):TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "Im",
          "kind": "field",
          "signature": "Im:Single",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "IsFinite",
          "kind": "function",
          "signature": "function IsFinite:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "Magnitude",
          "kind": "function",
          "signature": "function Magnitude:Single",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "One",
          "kind": "function",
          "signature": "class function One:TSingleComplex",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "Re",
          "kind": "field",
          "signature": "Re:Single",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "SqrMagnitude",
          "kind": "function",
          "signature": "function SqrMagnitude:Single",
          "classification": "advanced"
        },
        {
          "owner": "TSingleComplex",
          "name": "Zero",
          "kind": "function",
          "signature": "class function Zero:TSingleComplex",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "MathBase.Expressions",
      "source": "src/MathBase.Expressions.pas",
      "classification_summary": {
        "advanced": 25,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "43870a1ff854d7e352970b98cbcd4c36a4d9f0bd50b570de91213f3052f0b76d",
      "declarations": [
        {
          "owner": null,
          "name": "EExpressionError",
          "kind": "type",
          "signature": "EExpressionError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TExpressionEvaluator",
          "kind": "class",
          "signature": "TExpressionEvaluator=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TExpressionLimits",
          "kind": "record",
          "signature": "TExpressionLimits=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TExpressionSymbol",
          "kind": "record",
          "signature": "TExpressionSymbol=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TExpressionSymbols",
          "kind": "type",
          "signature": "TExpressionSymbols=array of TExpressionSymbol",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TExpressionValue",
          "kind": "record",
          "signature": "TExpressionValue=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TExpressionValueKind",
          "kind": "type",
          "signature": "TExpressionValueKind=(evScalar,evVector,evMatrix)",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionEvaluator",
          "name": "Evaluate",
          "kind": "function",
          "signature": "class function Evaluate(const Text:String;const Symbols:array of TExpressionSymbol;const Limits:TExpressionLimits):TExpressionValue",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionLimits",
          "name": "Defaults",
          "kind": "function",
          "signature": "class function Defaults:TExpressionLimits",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionLimits",
          "name": "MaxDepth",
          "kind": "field",
          "signature": "MaxDepth:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionLimits",
          "name": "MaxElements",
          "kind": "field",
          "signature": "MaxElements:Int64",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionLimits",
          "name": "MaxOperations",
          "kind": "field",
          "signature": "MaxOperations:Int64",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionLimits",
          "name": "MaxTextLength",
          "kind": "field",
          "signature": "MaxTextLength:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionSymbol",
          "name": "Name",
          "kind": "field",
          "signature": "Name:String",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionSymbol",
          "name": "Value",
          "kind": "field",
          "signature": "Value:TExpressionValue",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionValue",
          "name": "FromMatrix",
          "kind": "function",
          "signature": "class function FromMatrix(const Value:IDenseDoubleMatrix):TExpressionValue",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionValue",
          "name": "FromScalar",
          "kind": "function",
          "signature": "class function FromScalar(const Value:Double):TExpressionValue",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionValue",
          "name": "FromVector",
          "kind": "function",
          "signature": "class function FromVector(const Value:TDoubleArray):TExpressionValue",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionValue",
          "name": "Kind",
          "kind": "field",
          "signature": "Kind:TExpressionValueKind",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionValue",
          "name": "Matrix",
          "kind": "field",
          "signature": "Matrix:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionValue",
          "name": "Scalar",
          "kind": "field",
          "signature": "Scalar:Double",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionValue",
          "name": "Vector",
          "kind": "field",
          "signature": "Vector:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionValueKind",
          "name": "evMatrix",
          "kind": "enum-value",
          "signature": "evMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionValueKind",
          "name": "evScalar",
          "kind": "enum-value",
          "signature": "evScalar",
          "classification": "advanced"
        },
        {
          "owner": "TExpressionValueKind",
          "name": "evVector",
          "kind": "enum-value",
          "signature": "evVector",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "MathBase.Interchange",
      "source": "src/MathBase.Interchange.pas",
      "classification_summary": {
        "advanced": 56,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 2
      },
      "interface_sha256": "023a74575eccf18849f8b148ea115a64c3996c089866ed15e2a5626a440f7883",
      "declarations": [
        {
          "owner": null,
          "name": "ComplexToInvariant",
          "kind": "function",
          "signature": "function ComplexToInvariant(const Value:TComplex):string",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ComplexVectorToInvariant",
          "kind": "function",
          "signature": "function ComplexVectorToInvariant(const Values:TComplexArray):string",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DEFAULT_MAX_INTERCHANGE_ELEMENTS",
          "kind": "constant",
          "signature": "DEFAULT_MAX_INTERCHANGE_ELEMENTS=16000000",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DEFAULT_MAX_SPARSE_DIMENSION",
          "kind": "constant",
          "signature": "DEFAULT_MAX_SPARSE_DIMENSION=16000000",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DenseMatrixToInvariant",
          "kind": "function",
          "signature": "function DenseMatrixToInvariant(const Matrix:IDenseDoubleMatrix):string",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Describe",
          "kind": "function",
          "signature": "function Describe(const Matrix:IDenseComplexMatrix):TValueMetadata",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Describe",
          "kind": "function",
          "signature": "function Describe(const Matrix:IDenseDoubleMatrix):TValueMetadata",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Describe",
          "kind": "function",
          "signature": "function Describe(const Values:TComplexArray):TValueMetadata",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Describe",
          "kind": "function",
          "signature": "function Describe(const Values:TDoubleArray):TValueMetadata",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DoubleVectorToInvariant",
          "kind": "function",
          "signature": "function DoubleVectorToInvariant(const Values:TDoubleArray):string",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "EInterchangeError",
          "kind": "type",
          "signature": "EInterchangeError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadComplexMatrixBinary",
          "kind": "function",
          "signature": "function LoadComplexMatrixBinary(const Stream:TStream;const MaxElements:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadComplexVectorBinary",
          "kind": "function",
          "signature": "function LoadComplexVectorBinary(const Stream:TStream;const MaxElements:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS):TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadDoubleMatrixBinary",
          "kind": "function",
          "signature": "function LoadDoubleMatrixBinary(const Stream:TStream;const MaxElements:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS):IDenseDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "LoadDoubleVectorBinary",
          "kind": "function",
          "signature": "function LoadDoubleVectorBinary(const Stream:TStream;const MaxElements:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadRandomStateBinary",
          "kind": "function",
          "signature": "function LoadRandomStateBinary(const Stream:TStream):TRandomState",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadSparseComplexBinary",
          "kind": "function",
          "signature": "function LoadSparseComplexBinary(const Stream:TStream;const MaxNonZeros:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS;const MaxDimension:QWord=DEFAULT_MAX_SPARSE_DIMENSION):ISparseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadSparseDoubleBinary",
          "kind": "function",
          "signature": "function LoadSparseDoubleBinary(const Stream:TStream;const MaxNonZeros:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS;const MaxDimension:QWord=DEFAULT_MAX_SPARSE_DIMENSION):ISparseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadSparseSingleBinary",
          "kind": "function",
          "signature": "function LoadSparseSingleBinary(const Stream:TStream;const MaxNonZeros:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS;const MaxDimension:QWord=DEFAULT_MAX_SPARSE_DIMENSION):ISparseSingleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "LoadSparseSingleComplexBinary",
          "kind": "function",
          "signature": "function LoadSparseSingleComplexBinary(const Stream:TStream;const MaxNonZeros:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS;const MaxDimension:QWord=DEFAULT_MAX_SPARSE_DIMENSION):ISparseSingleComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ParseComplexInvariant",
          "kind": "function",
          "signature": "function ParseComplexInvariant(const Text:string):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ParseComplexVectorInvariant",
          "kind": "function",
          "signature": "function ParseComplexVectorInvariant(const Text:string;const MaxElements:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS):TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ParseDenseMatrixInvariant",
          "kind": "function",
          "signature": "function ParseDenseMatrixInvariant(const Text:string;const MaxElements:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ParseDoubleVectorInvariant",
          "kind": "function",
          "signature": "function ParseDoubleVectorInvariant(const Text:string;const MaxElements:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ReadDelimitedMatrix",
          "kind": "function",
          "signature": "function ReadDelimitedMatrix(const Stream:TStream;const Delimiter:Char=',';const MaxElements:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ReadMatrixMarketComplex",
          "kind": "function",
          "signature": "function ReadMatrixMarketComplex(const Stream:TStream;const MaxElements:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS):IDenseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ReadMatrixMarketDouble",
          "kind": "function",
          "signature": "function ReadMatrixMarketDouble(const Stream:TStream;const MaxElements:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ReadSparseMatrixMarketComplex",
          "kind": "function",
          "signature": "function ReadSparseMatrixMarketComplex(const Stream:TStream;const Format:TSparseFormat=sfCSR;const MaxNonZeros:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS;const MaxDimension:QWord=DEFAULT_MAX_SPARSE_DIMENSION):ISparseComplexMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ReadSparseMatrixMarketDouble",
          "kind": "function",
          "signature": "function ReadSparseMatrixMarketDouble(const Stream:TStream;const Format:TSparseFormat=sfCSR;const MaxNonZeros:QWord=DEFAULT_MAX_INTERCHANGE_ELEMENTS;const MaxDimension:QWord=DEFAULT_MAX_SPARSE_DIMENSION):ISparseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveBinary",
          "kind": "procedure",
          "signature": "procedure SaveBinary(const Stream:TStream;const Matrix:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveBinary",
          "kind": "procedure",
          "signature": "procedure SaveBinary(const Stream:TStream;const Matrix:IDenseDoubleMatrix)",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "SaveBinary",
          "kind": "procedure",
          "signature": "procedure SaveBinary(const Stream:TStream;const Values:TComplexArray)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveBinary",
          "kind": "procedure",
          "signature": "procedure SaveBinary(const Stream:TStream;const Values:TDoubleArray)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveRandomStateBinary",
          "kind": "procedure",
          "signature": "procedure SaveRandomStateBinary(const Stream:TStream;const State:TRandomState)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveSparseBinary",
          "kind": "procedure",
          "signature": "procedure SaveSparseBinary(const Stream:TStream;const Matrix:ISparseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveSparseBinary",
          "kind": "procedure",
          "signature": "procedure SaveSparseBinary(const Stream:TStream;const Matrix:ISparseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveSparseBinary",
          "kind": "procedure",
          "signature": "procedure SaveSparseBinary(const Stream:TStream;const Matrix:ISparseSingleComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "SaveSparseBinary",
          "kind": "procedure",
          "signature": "procedure SaveSparseBinary(const Stream:TStream;const Matrix:ISparseSingleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Summarize",
          "kind": "function",
          "signature": "function Summarize(const Matrix:IDenseDoubleMatrix;const MaximumRows:SizeInt=4;const MaximumColumns:SizeInt=6):string",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Summarize",
          "kind": "function",
          "signature": "function Summarize(const Values:TComplexArray;const MaximumValues:SizeInt=8):string",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Summarize",
          "kind": "function",
          "signature": "function Summarize(const Values:TDoubleArray;const MaximumValues:SizeInt=8):string",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TInterchangeScalarType",
          "kind": "type",
          "signature": "TInterchangeScalarType=(istFloat64,istComplex128)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TInterchangeValueKind",
          "kind": "type",
          "signature": "TInterchangeValueKind=(ivkVector,ivkMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TValueMetadata",
          "kind": "record",
          "signature": "TValueMetadata=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "WriteDelimitedMatrix",
          "kind": "procedure",
          "signature": "procedure WriteDelimitedMatrix(const Stream:TStream;const Matrix:IDenseDoubleMatrix;const Delimiter:Char=',')",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "WriteMatrixMarket",
          "kind": "procedure",
          "signature": "procedure WriteMatrixMarket(const Stream:TStream;const Matrix:IDenseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "WriteMatrixMarket",
          "kind": "procedure",
          "signature": "procedure WriteMatrixMarket(const Stream:TStream;const Matrix:IDenseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "WriteSparseMatrixMarket",
          "kind": "procedure",
          "signature": "procedure WriteSparseMatrixMarket(const Stream:TStream;const Matrix:ISparseComplexMatrix)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "WriteSparseMatrixMarket",
          "kind": "procedure",
          "signature": "procedure WriteSparseMatrixMarket(const Stream:TStream;const Matrix:ISparseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": "TInterchangeScalarType",
          "name": "istComplex128",
          "kind": "enum-value",
          "signature": "istComplex128",
          "classification": "advanced"
        },
        {
          "owner": "TInterchangeScalarType",
          "name": "istFloat64",
          "kind": "enum-value",
          "signature": "istFloat64",
          "classification": "advanced"
        },
        {
          "owner": "TInterchangeValueKind",
          "name": "ivkMatrix",
          "kind": "enum-value",
          "signature": "ivkMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TInterchangeValueKind",
          "name": "ivkVector",
          "kind": "enum-value",
          "signature": "ivkVector",
          "classification": "advanced"
        },
        {
          "owner": "TValueMetadata",
          "name": "Columns",
          "kind": "field",
          "signature": "Columns:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TValueMetadata",
          "name": "Elements",
          "kind": "field",
          "signature": "Elements:QWord",
          "classification": "advanced"
        },
        {
          "owner": "TValueMetadata",
          "name": "Kind",
          "kind": "field",
          "signature": "Kind:TInterchangeValueKind",
          "classification": "advanced"
        },
        {
          "owner": "TValueMetadata",
          "name": "Rows",
          "kind": "field",
          "signature": "Rows:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TValueMetadata",
          "name": "ScalarType",
          "kind": "field",
          "signature": "ScalarType:TInterchangeScalarType",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "MathBase.Iteration",
      "source": "src/MathBase.Iteration.pas",
      "classification_summary": {
        "advanced": 11,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "a5a331e44c03161a6b809fae6fbf0f8589e40a65ee8a5760069d229575764453",
      "declarations": [
        {
          "owner": null,
          "name": "IterationStatusName",
          "kind": "function",
          "signature": "function IterationStatusName(const Status:TIterationStatus):String",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TIterationStatus",
          "kind": "type",
          "signature": "TIterationStatus=(isUnknown,isConverged,isAcceptableLimit,isStagnation,isNumericalBreakdown,isInfeasible,isUnbounded,isIterationLimit,isCancelled)",
          "classification": "advanced"
        },
        {
          "owner": "TIterationStatus",
          "name": "isAcceptableLimit",
          "kind": "enum-value",
          "signature": "isAcceptableLimit",
          "classification": "advanced"
        },
        {
          "owner": "TIterationStatus",
          "name": "isCancelled",
          "kind": "enum-value",
          "signature": "isCancelled",
          "classification": "advanced"
        },
        {
          "owner": "TIterationStatus",
          "name": "isConverged",
          "kind": "enum-value",
          "signature": "isConverged",
          "classification": "advanced"
        },
        {
          "owner": "TIterationStatus",
          "name": "isInfeasible",
          "kind": "enum-value",
          "signature": "isInfeasible",
          "classification": "advanced"
        },
        {
          "owner": "TIterationStatus",
          "name": "isIterationLimit",
          "kind": "enum-value",
          "signature": "isIterationLimit",
          "classification": "advanced"
        },
        {
          "owner": "TIterationStatus",
          "name": "isNumericalBreakdown",
          "kind": "enum-value",
          "signature": "isNumericalBreakdown",
          "classification": "advanced"
        },
        {
          "owner": "TIterationStatus",
          "name": "isStagnation",
          "kind": "enum-value",
          "signature": "isStagnation",
          "classification": "advanced"
        },
        {
          "owner": "TIterationStatus",
          "name": "isUnbounded",
          "kind": "enum-value",
          "signature": "isUnbounded",
          "classification": "advanced"
        },
        {
          "owner": "TIterationStatus",
          "name": "isUnknown",
          "kind": "enum-value",
          "signature": "isUnknown",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "MathBase.MathConstants",
      "source": "src/MathBase.MathConstants.pas",
      "classification_summary": {
        "advanced": 13,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "7b665b0a608e253add891b24dc2659ae170bcbdee7c0fea44245be2d344f4e6a",
      "declarations": [
        {
          "owner": null,
          "name": "AvogadroConst",
          "kind": "constant",
          "signature": "AvogadroConst=6.02214076e23",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "BoltzmannConst",
          "kind": "constant",
          "signature": "BoltzmannConst=1.380649e-23",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "IdealGasConst",
          "kind": "constant",
          "signature": "IdealGasConst=8.314462618",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MathE",
          "kind": "constant",
          "signature": "MathE=2.71828182845904523536",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MathLn10",
          "kind": "constant",
          "signature": "MathLn10=2.30258509299404568402",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MathLn2",
          "kind": "constant",
          "signature": "MathLn2=0.69314718055994530942",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MathPhi",
          "kind": "constant",
          "signature": "MathPhi=1.61803398874989484820",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MathPi",
          "kind": "constant",
          "signature": "MathPi=3.14159265358979323846",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "MathSqrt2",
          "kind": "constant",
          "signature": "MathSqrt2=1.41421356237309504880",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "StandardAtmosphere",
          "kind": "constant",
          "signature": "StandardAtmosphere=101325.0",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "StandardGravity",
          "kind": "constant",
          "signature": "StandardGravity=9.80665",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "StandardTemperature",
          "kind": "constant",
          "signature": "StandardTemperature=273.15",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "StefanBoltzmannConst",
          "kind": "constant",
          "signature": "StefanBoltzmannConst=5.670374419e-8",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "MathBase.Precision",
      "source": "src/MathBase.Precision.pas",
      "classification_summary": {
        "advanced": 5,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 1
      },
      "interface_sha256": "eb14f7d7c9eea0fadd0ef460a10275937ebb0d7deb7dfde4ef94443c51b08714",
      "declarations": [
        {
          "owner": null,
          "name": "Beta",
          "kind": "function",
          "signature": "function Beta(const Z,W:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "BetaInc",
          "kind": "function",
          "signature": "function BetaInc(const A,B,X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "Erf",
          "kind": "function",
          "signature": "function Erf(const X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "GammaLn",
          "kind": "function",
          "signature": "function GammaLn(const X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "NormalCDF",
          "kind": "function",
          "signature": "function NormalCDF(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "StudentT",
          "kind": "function",
          "signature": "function StudentT(const DF:Integer;const X:Double):Double",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "MathBase.Random",
      "source": "src/MathBase.Random.pas",
      "classification_summary": {
        "advanced": 15,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "c228dd158893139a0c37e41ac208949cf7ba39860628a165660f063698089e74",
      "declarations": [
        {
          "owner": null,
          "name": "ERandomStateError",
          "kind": "type",
          "signature": "ERandomStateError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLocalRandom",
          "kind": "record",
          "signature": "TLocalRandom=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TRandomState",
          "kind": "record",
          "signature": "TRandomState=record",
          "classification": "advanced"
        },
        {
          "owner": "TLocalRandom",
          "name": "GetState",
          "kind": "function",
          "signature": "function GetState:TRandomState",
          "classification": "advanced"
        },
        {
          "owner": "TLocalRandom",
          "name": "NextDouble",
          "kind": "function",
          "signature": "function NextDouble:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLocalRandom",
          "name": "NextInteger",
          "kind": "function",
          "signature": "function NextInteger(const UpperExclusive:SizeUInt):SizeUInt",
          "classification": "advanced"
        },
        {
          "owner": "TLocalRandom",
          "name": "NextNormal",
          "kind": "function",
          "signature": "function NextNormal:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLocalRandom",
          "name": "NextSingle",
          "kind": "function",
          "signature": "function NextSingle:Single",
          "classification": "advanced"
        },
        {
          "owner": "TLocalRandom",
          "name": "NextUInt32",
          "kind": "function",
          "signature": "function NextUInt32:LongWord",
          "classification": "advanced"
        },
        {
          "owner": "TLocalRandom",
          "name": "NextUInt64",
          "kind": "function",
          "signature": "function NextUInt64:QWord",
          "classification": "advanced"
        },
        {
          "owner": "TLocalRandom",
          "name": "Reseed",
          "kind": "procedure",
          "signature": "procedure Reseed(const Seed:QWord)",
          "classification": "advanced"
        },
        {
          "owner": "TLocalRandom",
          "name": "Seeded",
          "kind": "function",
          "signature": "class function Seeded(const Seed:QWord):TLocalRandom",
          "classification": "advanced"
        },
        {
          "owner": "TLocalRandom",
          "name": "SetState",
          "kind": "procedure",
          "signature": "procedure SetState(const State:TRandomState)",
          "classification": "advanced"
        },
        {
          "owner": "TLocalRandom",
          "name": "Split",
          "kind": "function",
          "signature": "function Split:TLocalRandom",
          "classification": "advanced"
        },
        {
          "owner": "TRandomState",
          "name": "Words",
          "kind": "field",
          "signature": "Words:array[0..3]of QWord",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "MathBase.SharedTypes",
      "source": "src/MathBase.SharedTypes.pas",
      "classification_summary": {
        "advanced": 6,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 4
      },
      "interface_sha256": "a416e6f148fdf45b0a25fd7dc97b7ea887729fae7f191d22ba53483c99cf59a6",
      "declarations": [
        {
          "owner": null,
          "name": "TDoubleArray",
          "kind": "type",
          "signature": "TDoubleArray=array of Double",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TDoublePair",
          "kind": "record",
          "signature": "TDoublePair=record",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TExtendedArray",
          "kind": "type",
          "signature": "TExtendedArray=array of Extended",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TIntegerArray",
          "kind": "type",
          "signature": "TIntegerArray=array of Integer",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToDoubleArray",
          "kind": "function",
          "signature": "function ToDoubleArray(const Data:TExtendedArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToDoubleArray",
          "kind": "function",
          "signature": "function ToDoubleArray(const Data:TIntegerArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ToDoubleArray",
          "kind": "function",
          "signature": "function ToDoubleArray(const Data:TSingleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSingleArray",
          "kind": "type",
          "signature": "TSingleArray=array of Single",
          "classification": "advanced"
        },
        {
          "owner": "TDoublePair",
          "name": "Lower",
          "kind": "field",
          "signature": "Lower:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDoublePair",
          "name": "Upper",
          "kind": "field",
          "signature": "Upper:Double",
          "classification": "recommended"
        }
      ]
    },
    {
      "unit": "MathBase.Trigonometry",
      "source": "src/MathBase.Trigonometry.pas",
      "classification_summary": {
        "advanced": 0,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 35
      },
      "interface_sha256": "828196cd105971ed00a3370ce97ae8512c373dbfc8a80817af90b4e4a536e447",
      "declarations": [
        {
          "owner": null,
          "name": "TTrigKit",
          "kind": "class",
          "signature": "TTrigKit=class",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "ArcCos",
          "kind": "function",
          "signature": "class function ArcCos(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "ArcCosh",
          "kind": "function",
          "signature": "class function ArcCosh(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "ArcSin",
          "kind": "function",
          "signature": "class function ArcSin(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "ArcSinh",
          "kind": "function",
          "signature": "class function ArcSinh(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "ArcTan",
          "kind": "function",
          "signature": "class function ArcTan(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "ArcTan2",
          "kind": "function",
          "signature": "class function ArcTan2(const Y,X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "ArcTanh",
          "kind": "function",
          "signature": "class function ArcTanh(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "ChordLength",
          "kind": "function",
          "signature": "class function ChordLength(const Radius,Angle:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "CircularSectorArea",
          "kind": "function",
          "signature": "class function CircularSectorArea(const Radius,Angle:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "CircularSegmentArea",
          "kind": "function",
          "signature": "class function CircularSegmentArea(const Radius,Angle:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "Cos",
          "kind": "function",
          "signature": "class function Cos(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "Cosh",
          "kind": "function",
          "signature": "class function Cosh(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "Cot",
          "kind": "function",
          "signature": "class function Cot(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "Csc",
          "kind": "function",
          "signature": "class function Csc(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "DegToRad",
          "kind": "function",
          "signature": "class function DegToRad(const Degrees:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "GradToRad",
          "kind": "function",
          "signature": "class function GradToRad(const Grads:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "Hypotenuse",
          "kind": "function",
          "signature": "class function Hypotenuse(const A,B:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "NormalizeAngle",
          "kind": "function",
          "signature": "class function NormalizeAngle(const Angle:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "NormalizeAngleDeg",
          "kind": "function",
          "signature": "class function NormalizeAngleDeg(const Angle:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "RadToDeg",
          "kind": "function",
          "signature": "class function RadToDeg(const Radians:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "RadToGrad",
          "kind": "function",
          "signature": "class function RadToGrad(const Radians:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "Sec",
          "kind": "function",
          "signature": "class function Sec(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "Sin",
          "kind": "function",
          "signature": "class function Sin(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "Sinh",
          "kind": "function",
          "signature": "class function Sinh(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "Tan",
          "kind": "function",
          "signature": "class function Tan(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "Tanh",
          "kind": "function",
          "signature": "class function Tanh(const X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "TriangleArea",
          "kind": "function",
          "signature": "class function TriangleArea(const Base,Height:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "TriangleAreaSAS",
          "kind": "function",
          "signature": "class function TriangleAreaSAS(const SideA,Angle,SideB:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "TriangleAreaSSS",
          "kind": "function",
          "signature": "class function TriangleAreaSSS(const A,B,C:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "TriangleCircumRadius",
          "kind": "function",
          "signature": "class function TriangleCircumRadius(const A,B,C:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "TriangleInRadius",
          "kind": "function",
          "signature": "class function TriangleInRadius(const A,B,C:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "TrianglePerimeter",
          "kind": "function",
          "signature": "class function TrianglePerimeter(const A,B,C:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "VectorAngle",
          "kind": "function",
          "signature": "class function VectorAngle(const X1,Y1,X2,Y2:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTrigKit",
          "name": "VectorMagnitude",
          "kind": "function",
          "signature": "class function VectorMagnitude(const X,Y:Double):Double",
          "classification": "recommended"
        }
      ]
    },
    {
      "unit": "MLLib.Analysis",
      "source": "src/MLLib.Analysis.pas",
      "classification_summary": {
        "advanced": 79,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "0b107a3183b456089fe369788d7cdacda2e402a3859a0f3468bea604e82069b3",
      "declarations": [
        {
          "owner": null,
          "name": "EAnalysisError",
          "kind": "type",
          "signature": "EAnalysisError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TAnalysisKit",
          "kind": "class",
          "signature": "TAnalysisKit=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TBinaryLDAResult",
          "kind": "record",
          "signature": "TBinaryLDAResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDecisionForest",
          "kind": "record",
          "signature": "TDecisionForest=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDecisionTreeModel",
          "kind": "record",
          "signature": "TDecisionTreeModel=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDecisionTreeNode",
          "kind": "record",
          "signature": "TDecisionTreeNode=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDecisionTreeNodes",
          "kind": "type",
          "signature": "TDecisionTreeNodes=array of TDecisionTreeNode",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDecisionTrees",
          "kind": "type",
          "signature": "TDecisionTrees=array of TDecisionTreeModel",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TForestTask",
          "kind": "type",
          "signature": "TForestTask=(ftClassification,ftRegression)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "THierarchicalClustering",
          "kind": "record",
          "signature": "THierarchicalClustering=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "THierarchicalLinkage",
          "kind": "type",
          "signature": "THierarchicalLinkage=(hlSingle,hlComplete,hlAverage)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TKDTree",
          "kind": "class",
          "signature": "TKDTree=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TKMeansPlusPlusResult",
          "kind": "record",
          "signature": "TKMeansPlusPlusResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TNeighborResult",
          "kind": "record",
          "signature": "TNeighborResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPCAResult",
          "kind": "record",
          "signature": "TPCAResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TStandardizationModel",
          "kind": "record",
          "signature": "TStandardizationModel=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TValidationSplit",
          "kind": "record",
          "signature": "TValidationSplit=record",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "CreateValidationSplit",
          "kind": "function",
          "signature": "class function CreateValidationSplit(const SampleCount:SizeInt;const ValidationFraction:Double;const Seed:QWord=42):TValidationSplit",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "CutHierarchy",
          "kind": "function",
          "signature": "class function CutHierarchy(const Model:THierarchicalClustering;const ClusterCount:Integer):TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "FitBinaryLDA",
          "kind": "function",
          "signature": "class function FitBinaryLDA(const Data:IDenseDoubleMatrix;const Labels:TIntegerArray;const NegativeClass,PositiveClass:Integer;const Ridge:Double=1E-9):TBinaryLDAResult",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "FitClassificationForest",
          "kind": "function",
          "signature": "class function FitClassificationForest(const Data:IDenseDoubleMatrix;const Labels:TIntegerArray;const TreeCount:Integer=32;const MaximumDepth:Integer=8;const MinimumLeafSize:Integer=2;const Seed:QWord=42):TDecisionForest",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "FitRegressionForest",
          "kind": "function",
          "signature": "class function FitRegressionForest(const Data:IDenseDoubleMatrix;const Targets:TDoubleArray;const TreeCount:Integer=32;const MaximumDepth:Integer=8;const MinimumLeafSize:Integer=2;const Seed:QWord=42):TDecisionForest",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "FitStandardization",
          "kind": "function",
          "signature": "class function FitStandardization(const TrainingData:IDenseDoubleMatrix):TStandardizationModel",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "HierarchicalCluster",
          "kind": "function",
          "signature": "class function HierarchicalCluster(const Data:IDenseDoubleMatrix;const Linkage:THierarchicalLinkage=hlAverage):THierarchicalClustering",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "KFoldAssignments",
          "kind": "function",
          "signature": "class function KFoldAssignments(const SampleCount,FoldCount:SizeInt;const Seed:QWord=42):TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "KMeansPlusPlus",
          "kind": "function",
          "signature": "class function KMeansPlusPlus(const Data:IDenseDoubleMatrix;const ClusterCount:SizeInt;const Seed:QWord=42;const MaximumIterations:SizeInt=300;const Tolerance:Double=1E-8):TKMeansPlusPlusResult",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "PCA",
          "kind": "function",
          "signature": "class function PCA(const Data:IDenseDoubleMatrix;const ComponentCount:SizeInt):TPCAResult",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "PredictBinaryLDA",
          "kind": "function",
          "signature": "class function PredictBinaryLDA(const Model:TBinaryLDAResult;const Data:IDenseDoubleMatrix):TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "PredictForestClasses",
          "kind": "function",
          "signature": "class function PredictForestClasses(const Model:TDecisionForest;const Data:IDenseDoubleMatrix):TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "PredictForestValues",
          "kind": "function",
          "signature": "class function PredictForestValues(const Model:TDecisionForest;const Data:IDenseDoubleMatrix):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TAnalysisKit",
          "name": "TransformStandardized",
          "kind": "function",
          "signature": "class function TransformStandardized(const Model:TStandardizationModel;const Data:IDenseDoubleMatrix):IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TBinaryLDAResult",
          "name": "Direction",
          "kind": "field",
          "signature": "Direction:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TBinaryLDAResult",
          "name": "NegativeClass",
          "kind": "field",
          "signature": "NegativeClass:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TBinaryLDAResult",
          "name": "PositiveClass",
          "kind": "field",
          "signature": "PositiveClass:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TBinaryLDAResult",
          "name": "Threshold",
          "kind": "field",
          "signature": "Threshold:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionForest",
          "name": "ClassCount",
          "kind": "field",
          "signature": "ClassCount:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionForest",
          "name": "FeatureImportances",
          "kind": "field",
          "signature": "FeatureImportances:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionForest",
          "name": "OOBScore",
          "kind": "field",
          "signature": "OOBScore:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionForest",
          "name": "Seed",
          "kind": "field",
          "signature": "Seed:QWord",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionForest",
          "name": "Task",
          "kind": "field",
          "signature": "Task:TForestTask",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionForest",
          "name": "Trees",
          "kind": "field",
          "signature": "Trees:TDecisionTrees",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionTreeModel",
          "name": "Nodes",
          "kind": "field",
          "signature": "Nodes:TDecisionTreeNodes",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionTreeNode",
          "name": "Feature",
          "kind": "field",
          "signature": "Feature:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionTreeNode",
          "name": "IsLeaf",
          "kind": "field",
          "signature": "IsLeaf:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionTreeNode",
          "name": "LeftNode",
          "kind": "field",
          "signature": "LeftNode:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionTreeNode",
          "name": "Prediction",
          "kind": "field",
          "signature": "Prediction:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionTreeNode",
          "name": "RightNode",
          "kind": "field",
          "signature": "RightNode:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TDecisionTreeNode",
          "name": "Threshold",
          "kind": "field",
          "signature": "Threshold:Double",
          "classification": "advanced"
        },
        {
          "owner": "TForestTask",
          "name": "ftClassification",
          "kind": "enum-value",
          "signature": "ftClassification",
          "classification": "advanced"
        },
        {
          "owner": "TForestTask",
          "name": "ftRegression",
          "kind": "enum-value",
          "signature": "ftRegression",
          "classification": "advanced"
        },
        {
          "owner": "THierarchicalClustering",
          "name": "ClusterSizes",
          "kind": "field",
          "signature": "ClusterSizes:TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "THierarchicalClustering",
          "name": "Distances",
          "kind": "field",
          "signature": "Distances:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "THierarchicalClustering",
          "name": "MergeLeft",
          "kind": "field",
          "signature": "MergeLeft:TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "THierarchicalClustering",
          "name": "MergeRight",
          "kind": "field",
          "signature": "MergeRight:TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "THierarchicalClustering",
          "name": "SampleCount",
          "kind": "field",
          "signature": "SampleCount:Integer",
          "classification": "advanced"
        },
        {
          "owner": "THierarchicalLinkage",
          "name": "hlAverage",
          "kind": "enum-value",
          "signature": "hlAverage",
          "classification": "advanced"
        },
        {
          "owner": "THierarchicalLinkage",
          "name": "hlComplete",
          "kind": "enum-value",
          "signature": "hlComplete",
          "classification": "advanced"
        },
        {
          "owner": "THierarchicalLinkage",
          "name": "hlSingle",
          "kind": "enum-value",
          "signature": "hlSingle",
          "classification": "advanced"
        },
        {
          "owner": "TKDTree",
          "name": "Count",
          "kind": "function",
          "signature": "function Count:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TKDTree",
          "name": "Create",
          "kind": "constructor",
          "signature": "constructor Create(const Data:IDenseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": "TKDTree",
          "name": "Dimensions",
          "kind": "function",
          "signature": "function Dimensions:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TKDTree",
          "name": "Query",
          "kind": "function",
          "signature": "function Query(const Point:TDoubleArray;const NeighborCount:SizeInt=1):TNeighborResult",
          "classification": "advanced"
        },
        {
          "owner": "TKMeansPlusPlusResult",
          "name": "Centroids",
          "kind": "field",
          "signature": "Centroids:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TKMeansPlusPlusResult",
          "name": "Converged",
          "kind": "field",
          "signature": "Converged:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TKMeansPlusPlusResult",
          "name": "Inertia",
          "kind": "field",
          "signature": "Inertia:Double",
          "classification": "advanced"
        },
        {
          "owner": "TKMeansPlusPlusResult",
          "name": "Iterations",
          "kind": "field",
          "signature": "Iterations:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TKMeansPlusPlusResult",
          "name": "Labels",
          "kind": "field",
          "signature": "Labels:TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "TNeighborResult",
          "name": "Indices",
          "kind": "field",
          "signature": "Indices:TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "TNeighborResult",
          "name": "SquaredDistances",
          "kind": "field",
          "signature": "SquaredDistances:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TPCAResult",
          "name": "Components",
          "kind": "field",
          "signature": "Components:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TPCAResult",
          "name": "ExplainedRatio",
          "kind": "field",
          "signature": "ExplainedRatio:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TPCAResult",
          "name": "ExplainedVariance",
          "kind": "field",
          "signature": "ExplainedVariance:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TPCAResult",
          "name": "Mean",
          "kind": "field",
          "signature": "Mean:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TPCAResult",
          "name": "Scores",
          "kind": "field",
          "signature": "Scores:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TPCAResult",
          "name": "SingularValues",
          "kind": "field",
          "signature": "SingularValues:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TStandardizationModel",
          "name": "Means",
          "kind": "field",
          "signature": "Means:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TStandardizationModel",
          "name": "Scales",
          "kind": "field",
          "signature": "Scales:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TValidationSplit",
          "name": "TrainingRows",
          "kind": "field",
          "signature": "TrainingRows:TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "TValidationSplit",
          "name": "ValidationRows",
          "kind": "field",
          "signature": "ValidationRows:TIntegerArray",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "MLLib.MachineLearning",
      "source": "src/MLLib.MachineLearning.pas",
      "classification_summary": {
        "advanced": 18,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 32
      },
      "interface_sha256": "a2c2e6db5103bb5362aaf157d32a8dc7ac7a222cda378e8a9834868ca56c5921",
      "declarations": [
        {
          "owner": null,
          "name": "EMLError",
          "kind": "type",
          "signature": "EMLError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TConfusionMatrix",
          "kind": "record",
          "signature": "TConfusionMatrix=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDBSCANResult",
          "kind": "record",
          "signature": "TDBSCANResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDoubleMatrix",
          "kind": "type",
          "signature": "TDoubleMatrix=array of TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TKMeansResult",
          "kind": "record",
          "signature": "TKMeansResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLinearModel",
          "kind": "record",
          "signature": "TLinearModel=record",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TMLKit",
          "kind": "class",
          "signature": "TMLKit=class",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TPCAResult",
          "kind": "record",
          "signature": "TPCAResult=record",
          "classification": "advanced"
        },
        {
          "owner": "TConfusionMatrix",
          "name": "Counts",
          "kind": "field",
          "signature": "Counts:TDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TConfusionMatrix",
          "name": "NClasses",
          "kind": "field",
          "signature": "NClasses:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TDBSCANResult",
          "name": "Labels",
          "kind": "field",
          "signature": "Labels:TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "TDBSCANResult",
          "name": "NClusters",
          "kind": "field",
          "signature": "NClusters:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TKMeansResult",
          "name": "Centroids",
          "kind": "field",
          "signature": "Centroids:TDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TKMeansResult",
          "name": "Inertia",
          "kind": "field",
          "signature": "Inertia:Double",
          "classification": "advanced"
        },
        {
          "owner": "TKMeansResult",
          "name": "Iters",
          "kind": "field",
          "signature": "Iters:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TKMeansResult",
          "name": "Labels",
          "kind": "field",
          "signature": "Labels:TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "TLinearModel",
          "name": "Coefficients",
          "kind": "field",
          "signature": "Coefficients:TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TLinearModel",
          "name": "Intercept",
          "kind": "field",
          "signature": "Intercept:Double",
          "classification": "recommended"
        },
        {
          "owner": "TLinearModel",
          "name": "RSquared",
          "kind": "field",
          "signature": "RSquared:Double",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "Accuracy",
          "kind": "function",
          "signature": "class function Accuracy(const YTrue,YPred:TIntegerArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "BuildConfusionMatrix",
          "kind": "function",
          "signature": "class function BuildConfusionMatrix(const YTrue,YPred:TIntegerArray;NClasses:Integer):TConfusionMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "DBSCAN",
          "kind": "function",
          "signature": "class function DBSCAN(const X:TDoubleMatrix;Eps:Double;MinPts:Integer):TDBSCANResult",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "F1Score",
          "kind": "function",
          "signature": "class function F1Score(const YTrue,YPred:TIntegerArray;ClassLabel:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "KMeans",
          "kind": "function",
          "signature": "class function KMeans(const X:TDoubleMatrix;K:Integer;MaxIter:Integer=300;Seed:Integer=42):TKMeansResult",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "KNearestNeighbours",
          "kind": "function",
          "signature": "class function KNearestNeighbours(const TrainX:TDoubleMatrix;const TrainY:TIntegerArray;const TestX:TDoubleMatrix;K:Integer):TIntegerArray",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "LinearPredict",
          "kind": "function",
          "signature": "class function LinearPredict(const Model:TLinearModel;const Xnew:TDoubleMatrix):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "LinearRegression",
          "kind": "function",
          "signature": "class function LinearRegression(const X:TDoubleMatrix;const Y:TDoubleArray):TLinearModel",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "LogisticPredict",
          "kind": "function",
          "signature": "class function LogisticPredict(const Model:TLinearModel;const Xnew:TDoubleMatrix):TIntegerArray",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "LogisticRegression",
          "kind": "function",
          "signature": "class function LogisticRegression(const TrainX:TDoubleMatrix;const TrainY:TIntegerArray;LR:Double=0.1;MaxIter:Integer=1000;Tol:Double=1e-5):TLinearModel",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "MAE",
          "kind": "function",
          "signature": "class function MAE(const YTrue,YPred:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "MSE",
          "kind": "function",
          "signature": "class function MSE(const YTrue,YPred:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "NaiveBayes",
          "kind": "function",
          "signature": "class function NaiveBayes(const TrainX:TDoubleMatrix;const TrainY:TIntegerArray;const TestX:TDoubleMatrix):TIntegerArray",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "Normalise",
          "kind": "function",
          "signature": "class function Normalise(const X:TDoubleMatrix):TDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "OneHotEncode",
          "kind": "function",
          "signature": "class function OneHotEncode(const Labels:TIntegerArray;NClasses:Integer):TDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "PCA",
          "kind": "function",
          "signature": "class function PCA(const X:TDoubleMatrix;NComponents:Integer;MaxIter:Integer=1000;Tol:Double=1e-8):TPCAResult",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "PCATransform",
          "kind": "function",
          "signature": "class function PCATransform(const PCARes:TPCAResult;const X:TDoubleMatrix):TDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "PolynomialFeatures",
          "kind": "function",
          "signature": "class function PolynomialFeatures(const X:TDoubleArray;Degree:Integer):TDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "PolynomialFeatures",
          "kind": "function",
          "signature": "class function PolynomialFeatures(const X:TDoubleArray;Degree:Integer;IncludeBias:Boolean):TDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "Precision",
          "kind": "function",
          "signature": "class function Precision(const YTrue,YPred:TIntegerArray;ClassLabel:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "R2Score",
          "kind": "function",
          "signature": "class function R2Score(const YTrue,YPred:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "Recall",
          "kind": "function",
          "signature": "class function Recall(const YTrue,YPred:TIntegerArray;ClassLabel:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "RidgeRegression",
          "kind": "function",
          "signature": "class function RidgeRegression(const X:TDoubleMatrix;const Y:TDoubleArray;Lambda:Double):TLinearModel",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "RMSE",
          "kind": "function",
          "signature": "class function RMSE(const YTrue,YPred:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "Standardise",
          "kind": "function",
          "signature": "class function Standardise(const X:TDoubleMatrix):TDoubleMatrix",
          "classification": "recommended"
        },
        {
          "owner": "TMLKit",
          "name": "TrainTestSplit",
          "kind": "procedure",
          "signature": "class procedure TrainTestSplit(const X:TDoubleMatrix;const Y:TIntegerArray;TestFraction:Double;Seed:Integer;out TrainX:TDoubleMatrix;out TrainY:TIntegerArray;out TestX:TDoubleMatrix;out TestY:TIntegerArray)",
          "classification": "recommended"
        },
        {
          "owner": "TPCAResult",
          "name": "Components",
          "kind": "field",
          "signature": "Components:TDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TPCAResult",
          "name": "ExplainedRatio",
          "kind": "field",
          "signature": "ExplainedRatio:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TPCAResult",
          "name": "ExplainedVariance",
          "kind": "field",
          "signature": "ExplainedVariance:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TPCAResult",
          "name": "Iterations",
          "kind": "field",
          "signature": "Iterations:TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": "TPCAResult",
          "name": "Mean",
          "kind": "field",
          "signature": "Mean:TDoubleArray",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "NumericsLib.Differentiation",
      "source": "src/NumericsLib.Differentiation.pas",
      "classification_summary": {
        "advanced": 64,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "f8e1c2ea7bad43c15fbe8ad64d72d01d13044740be4fe1026fecd6e81d2eaeb7",
      "declarations": [
        {
          "owner": null,
          "name": "DualCos",
          "kind": "function",
          "signature": "function DualCos(const X:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DualCosh",
          "kind": "function",
          "signature": "function DualCosh(const X:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DualExp",
          "kind": "function",
          "signature": "function DualExp(const X:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DualLn",
          "kind": "function",
          "signature": "function DualLn(const X:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DualPower",
          "kind": "function",
          "signature": "function DualPower(const X:TDual;const P:Double):TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DualSin",
          "kind": "function",
          "signature": "function DualSin(const X:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DualSinh",
          "kind": "function",
          "signature": "function DualSinh(const X:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DualSqrt",
          "kind": "function",
          "signature": "function DualSqrt(const X:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DualTan",
          "kind": "function",
          "signature": "function DualTan(const X:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "DualTanh",
          "kind": "function",
          "signature": "function DualTanh(const X:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "EDifferentiationError",
          "kind": "type",
          "signature": "EDifferentiationError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TComplexScalarVectorFunction",
          "kind": "type",
          "signature": "TComplexScalarVectorFunction=function(const X:TComplexArray):TComplex",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDerivativeCheckResult",
          "kind": "record",
          "signature": "TDerivativeCheckResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDifferenceMethod",
          "kind": "type",
          "signature": "TDifferenceMethod=(dmForward,dmCentral,dmComplexStep)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDifferentiationKit",
          "kind": "class",
          "signature": "TDifferentiationKit=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDoubleMatrix",
          "kind": "type",
          "signature": "TDoubleMatrix=array of TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDual",
          "kind": "record",
          "signature": "TDual=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDualArray",
          "kind": "type",
          "signature": "TDualArray=array of TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDualFunction",
          "kind": "type",
          "signature": "TDualFunction=function(const X:TDualArray):TDual",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDualVectorFunction",
          "kind": "type",
          "signature": "TDualVectorFunction=function(const X:TDualArray):TDualArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TGradientFunction",
          "kind": "type",
          "signature": "TGradientFunction=function(const X:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TJacobianCheckResult",
          "kind": "record",
          "signature": "TJacobianCheckResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TJacobianMatrixFunction",
          "kind": "type",
          "signature": "TJacobianMatrixFunction=function(const X:TDoubleArray):TDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TScalarVectorFunction",
          "kind": "type",
          "signature": "TScalarVectorFunction=function(const X:TDoubleArray):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TVectorFunction",
          "kind": "type",
          "signature": "TVectorFunction=function(const X:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDerivativeCheckResult",
          "name": "AbsoluteError",
          "kind": "field",
          "signature": "AbsoluteError:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDerivativeCheckResult",
          "name": "AnalyticValue",
          "kind": "field",
          "signature": "AnalyticValue:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDerivativeCheckResult",
          "name": "Passed",
          "kind": "field",
          "signature": "Passed:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TDerivativeCheckResult",
          "name": "ReferenceValue",
          "kind": "field",
          "signature": "ReferenceValue:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDerivativeCheckResult",
          "name": "RelativeError",
          "kind": "field",
          "signature": "RelativeError:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDerivativeCheckResult",
          "name": "WorstIndex",
          "kind": "field",
          "signature": "WorstIndex:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TDifferenceMethod",
          "name": "dmCentral",
          "kind": "enum-value",
          "signature": "dmCentral",
          "classification": "advanced"
        },
        {
          "owner": "TDifferenceMethod",
          "name": "dmComplexStep",
          "kind": "enum-value",
          "signature": "dmComplexStep",
          "classification": "advanced"
        },
        {
          "owner": "TDifferenceMethod",
          "name": "dmForward",
          "kind": "enum-value",
          "signature": "dmForward",
          "classification": "advanced"
        },
        {
          "owner": "TDifferentiationKit",
          "name": "AutoGradient",
          "kind": "function",
          "signature": "class function AutoGradient(F:TDualFunction;const X:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDifferentiationKit",
          "name": "AutoJacobian",
          "kind": "function",
          "signature": "class function AutoJacobian(F:TDualVectorFunction;const X:TDoubleArray):TDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDifferentiationKit",
          "name": "CheckGradient",
          "kind": "function",
          "signature": "class function CheckGradient(F:TScalarVectorFunction;Grad:TGradientFunction;const X:TDoubleArray;RelativeTolerance:Double=1E-5;AbsoluteTolerance:Double=1E-7):TDerivativeCheckResult",
          "classification": "advanced"
        },
        {
          "owner": "TDifferentiationKit",
          "name": "CheckJacobian",
          "kind": "function",
          "signature": "class function CheckJacobian(F:TVectorFunction;AnalyticJacobian:TJacobianMatrixFunction;const X:TDoubleArray;RelativeTolerance:Double=1E-5;AbsoluteTolerance:Double=1E-7):TJacobianCheckResult",
          "classification": "advanced"
        },
        {
          "owner": "TDifferentiationKit",
          "name": "ComplexStepGradient",
          "kind": "function",
          "signature": "class function ComplexStepGradient(F:TComplexScalarVectorFunction;const X:TDoubleArray;Step:Double=1E-20):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDifferentiationKit",
          "name": "Gradient",
          "kind": "function",
          "signature": "class function Gradient(F:TScalarVectorFunction;const X:TDoubleArray;Method:TDifferenceMethod=dmCentral;RelativeStep:Double=0.0):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDifferentiationKit",
          "name": "Hessian",
          "kind": "function",
          "signature": "class function Hessian(F:TScalarVectorFunction;const X:TDoubleArray;RelativeStep:Double=0.0):TDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDifferentiationKit",
          "name": "Jacobian",
          "kind": "function",
          "signature": "class function Jacobian(F:TVectorFunction;const X:TDoubleArray;Method:TDifferenceMethod=dmCentral;RelativeStep:Double=0.0):TDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const A,B:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const A:Double;const B:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "*",
          "kind": "operator",
          "signature": "class operator *(const A:TDual;const B:Double):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "+",
          "kind": "operator",
          "signature": "class operator +(const A,B:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "+",
          "kind": "operator",
          "signature": "class operator +(const A:Double;const B:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "+",
          "kind": "operator",
          "signature": "class operator +(const A:TDual;const B:Double):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A,B:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A:Double;const B:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "-",
          "kind": "operator",
          "signature": "class operator -(const A:TDual;const B:Double):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "/",
          "kind": "operator",
          "signature": "class operator /(const A,B:TDual):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "/",
          "kind": "operator",
          "signature": "class operator /(const A:TDual;const B:Double):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const AValue,ADerivative:Double):TDual",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "Derivative",
          "kind": "field",
          "signature": "Derivative:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDual",
          "name": "Value",
          "kind": "field",
          "signature": "Value:Double",
          "classification": "advanced"
        },
        {
          "owner": "TJacobianCheckResult",
          "name": "AbsoluteError",
          "kind": "field",
          "signature": "AbsoluteError:Double",
          "classification": "advanced"
        },
        {
          "owner": "TJacobianCheckResult",
          "name": "AnalyticValue",
          "kind": "field",
          "signature": "AnalyticValue:Double",
          "classification": "advanced"
        },
        {
          "owner": "TJacobianCheckResult",
          "name": "Passed",
          "kind": "field",
          "signature": "Passed:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TJacobianCheckResult",
          "name": "ReferenceValue",
          "kind": "field",
          "signature": "ReferenceValue:Double",
          "classification": "advanced"
        },
        {
          "owner": "TJacobianCheckResult",
          "name": "RelativeError",
          "kind": "field",
          "signature": "RelativeError:Double",
          "classification": "advanced"
        },
        {
          "owner": "TJacobianCheckResult",
          "name": "WorstColumn",
          "kind": "field",
          "signature": "WorstColumn:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TJacobianCheckResult",
          "name": "WorstRow",
          "kind": "field",
          "signature": "WorstRow:Integer",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "NumericsLib.Interpolation",
      "source": "src/NumericsLib.Interpolation.pas",
      "classification_summary": {
        "advanced": 63,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "d5387826d1524550260e1552538359fbc3144e90b417e833abd42d27be049f50",
      "declarations": [
        {
          "owner": null,
          "name": "EInterpolationError",
          "kind": "type",
          "signature": "EInterpolationError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TBarycentricInterpolator",
          "kind": "record",
          "signature": "TBarycentricInterpolator=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCubicInterpolationKind",
          "kind": "type",
          "signature": "TCubicInterpolationKind=(cikPchip,cikAkima)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCubicInterpolator",
          "kind": "record",
          "signature": "TCubicInterpolator=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCubicSplineInterpolator",
          "kind": "record",
          "signature": "TCubicSplineInterpolator=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TGridSurface",
          "kind": "record",
          "signature": "TGridSurface=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TInterpolationKit",
          "kind": "class",
          "signature": "TInterpolationKit=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TInterpolationMatrix",
          "kind": "type",
          "signature": "TInterpolationMatrix=array of TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TRationalInterpolationResult",
          "kind": "record",
          "signature": "TRationalInterpolationResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TScatteredInterpolator",
          "kind": "record",
          "signature": "TScatteredInterpolator=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSplineBoundaryKind",
          "kind": "type",
          "signature": "TSplineBoundaryKind=(sbNatural,sbClamped,sbNotAKnot)",
          "classification": "advanced"
        },
        {
          "owner": "TBarycentricInterpolator",
          "name": "Build",
          "kind": "function",
          "signature": "class function Build(const XKnots,YKnots:TDoubleArray):TBarycentricInterpolator",
          "classification": "advanced"
        },
        {
          "owner": "TBarycentricInterpolator",
          "name": "Evaluate",
          "kind": "function",
          "signature": "function Evaluate(const AtX:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TBarycentricInterpolator",
          "name": "Weights",
          "kind": "field",
          "signature": "Weights:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TBarycentricInterpolator",
          "name": "X",
          "kind": "field",
          "signature": "X:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TBarycentricInterpolator",
          "name": "Y",
          "kind": "field",
          "signature": "Y:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolationKind",
          "name": "cikAkima",
          "kind": "enum-value",
          "signature": "cikAkima",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolationKind",
          "name": "cikPchip",
          "kind": "enum-value",
          "signature": "cikPchip",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolator",
          "name": "Antiderivative",
          "kind": "function",
          "signature": "function Antiderivative(const AtX:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolator",
          "name": "BuildAkima",
          "kind": "function",
          "signature": "class function BuildAkima(const XKnots,YKnots:TDoubleArray):TCubicInterpolator",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolator",
          "name": "BuildPchip",
          "kind": "function",
          "signature": "class function BuildPchip(const XKnots,YKnots:TDoubleArray):TCubicInterpolator",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolator",
          "name": "Derivative",
          "kind": "function",
          "signature": "function Derivative(const AtX:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolator",
          "name": "Evaluate",
          "kind": "function",
          "signature": "function Evaluate(const AtX:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolator",
          "name": "Integrate",
          "kind": "function",
          "signature": "function Integrate(const A,B:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolator",
          "name": "Kind",
          "kind": "field",
          "signature": "Kind:TCubicInterpolationKind",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolator",
          "name": "Slopes",
          "kind": "field",
          "signature": "Slopes:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolator",
          "name": "X",
          "kind": "field",
          "signature": "X:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TCubicInterpolator",
          "name": "Y",
          "kind": "field",
          "signature": "Y:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "Antiderivative",
          "kind": "function",
          "signature": "function Antiderivative(const AtX:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "Boundary",
          "kind": "field",
          "signature": "Boundary:TSplineBoundaryKind",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "Build",
          "kind": "function",
          "signature": "class function Build(const XKnots,YKnots:TDoubleArray;BoundaryKind:TSplineBoundaryKind=sbNatural;LeftDerivative:Double=0.0;RightDerivative:Double=0.0):TCubicSplineInterpolator",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "CubicCoefficients",
          "kind": "field",
          "signature": "CubicCoefficients:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "Derivative",
          "kind": "function",
          "signature": "function Derivative(const AtX:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "Evaluate",
          "kind": "function",
          "signature": "function Evaluate(const AtX:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "Integrate",
          "kind": "function",
          "signature": "function Integrate(const A,B:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "LinearCoefficients",
          "kind": "field",
          "signature": "LinearCoefficients:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "QuadraticCoefficients",
          "kind": "field",
          "signature": "QuadraticCoefficients:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "SecondDerivative",
          "kind": "function",
          "signature": "function SecondDerivative(const AtX:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "X",
          "kind": "field",
          "signature": "X:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSplineInterpolator",
          "name": "Y",
          "kind": "field",
          "signature": "Y:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TGridSurface",
          "name": "Bicubic",
          "kind": "function",
          "signature": "function Bicubic(const AtX,AtY:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGridSurface",
          "name": "Bilinear",
          "kind": "function",
          "signature": "function Bilinear(const AtX,AtY:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TGridSurface",
          "name": "Build",
          "kind": "function",
          "signature": "class function Build(const XKnots,YKnots:TDoubleArray;const GridValues:TInterpolationMatrix):TGridSurface",
          "classification": "advanced"
        },
        {
          "owner": "TGridSurface",
          "name": "Values",
          "kind": "field",
          "signature": "Values:TInterpolationMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TGridSurface",
          "name": "X",
          "kind": "field",
          "signature": "X:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TGridSurface",
          "name": "Y",
          "kind": "field",
          "signature": "Y:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TInterpolationKit",
          "name": "InverseDistance",
          "kind": "function",
          "signature": "class function InverseDistance(const XCoord,YCoord,ZValues:TDoubleArray;X,Y:Double;Power:Double=2.0):Double",
          "classification": "advanced"
        },
        {
          "owner": "TInterpolationKit",
          "name": "Rational",
          "kind": "function",
          "signature": "class function Rational(const XKnots,YKnots:TDoubleArray;X:Double):TRationalInterpolationResult",
          "classification": "advanced"
        },
        {
          "owner": "TRationalInterpolationResult",
          "name": "ErrorEstimate",
          "kind": "field",
          "signature": "ErrorEstimate:Double",
          "classification": "advanced"
        },
        {
          "owner": "TRationalInterpolationResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TRationalInterpolationResult",
          "name": "Value",
          "kind": "field",
          "signature": "Value:Double",
          "classification": "advanced"
        },
        {
          "owner": "TScatteredInterpolator",
          "name": "BuildRBF",
          "kind": "function",
          "signature": "class function BuildRBF(const XCoord,YCoord,ZValues:TDoubleArray;ShapeParameter:Double=1.0):TScatteredInterpolator",
          "classification": "advanced"
        },
        {
          "owner": "TScatteredInterpolator",
          "name": "BuildThinPlate",
          "kind": "function",
          "signature": "class function BuildThinPlate(const XCoord,YCoord,ZValues:TDoubleArray):TScatteredInterpolator",
          "classification": "advanced"
        },
        {
          "owner": "TScatteredInterpolator",
          "name": "Evaluate",
          "kind": "function",
          "signature": "function Evaluate(const AtX,AtY:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TScatteredInterpolator",
          "name": "Shape",
          "kind": "field",
          "signature": "Shape:Double",
          "classification": "advanced"
        },
        {
          "owner": "TScatteredInterpolator",
          "name": "ThinPlate",
          "kind": "field",
          "signature": "ThinPlate:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TScatteredInterpolator",
          "name": "Values",
          "kind": "field",
          "signature": "Values:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TScatteredInterpolator",
          "name": "Weights",
          "kind": "field",
          "signature": "Weights:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TScatteredInterpolator",
          "name": "X",
          "kind": "field",
          "signature": "X:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TScatteredInterpolator",
          "name": "Y",
          "kind": "field",
          "signature": "Y:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSplineBoundaryKind",
          "name": "sbClamped",
          "kind": "enum-value",
          "signature": "sbClamped",
          "classification": "advanced"
        },
        {
          "owner": "TSplineBoundaryKind",
          "name": "sbNatural",
          "kind": "enum-value",
          "signature": "sbNatural",
          "classification": "advanced"
        },
        {
          "owner": "TSplineBoundaryKind",
          "name": "sbNotAKnot",
          "kind": "enum-value",
          "signature": "sbNotAKnot",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "NumericsLib.Modelling",
      "source": "src/NumericsLib.Modelling.pas",
      "classification_summary": {
        "advanced": 106,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "4dcd7399b9167afced9b2fe00c280c7555072879600a6e893d7c755714f8e494",
      "declarations": [
        {
          "owner": null,
          "name": "EModellingError",
          "kind": "type",
          "signature": "EModellingError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TAdaptiveODEOptions",
          "kind": "record",
          "signature": "TAdaptiveODEOptions=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TAdaptiveODESolution",
          "kind": "record",
          "signature": "TAdaptiveODESolution=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TFitResult",
          "kind": "record",
          "signature": "TFitResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TIntegrationResult",
          "kind": "record",
          "signature": "TIntegrationResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TJacobianFunction",
          "kind": "type",
          "signature": "TJacobianFunction=function(const Parameters:TDoubleArray):TModelMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLinearBasisFunction",
          "kind": "type",
          "signature": "TLinearBasisFunction=function(X:Double;BasisIndex:Integer):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TModellingKit",
          "kind": "class",
          "signature": "TModellingKit=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TModelMatrix",
          "kind": "type",
          "signature": "TModelMatrix=array of TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMultidimensionalIntegrand",
          "kind": "type",
          "signature": "TMultidimensionalIntegrand=function(const X:TDoubleArray):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TNonlinearFitOptions",
          "kind": "record",
          "signature": "TNonlinearFitOptions=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TODEEventFunction",
          "kind": "type",
          "signature": "TODEEventFunction=function(T:Double;const Y:TDoubleArray):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TODEVectorFunction",
          "kind": "type",
          "signature": "TODEVectorFunction=function(T:Double;const Y:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TPolynomialRootResult",
          "kind": "record",
          "signature": "TPolynomialRootResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TProgressFunction",
          "kind": "type",
          "signature": "TProgressFunction=function(Iteration,Evaluations:Integer;Measure:Double):Boolean",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TResidualFunction",
          "kind": "type",
          "signature": "TResidualFunction=function(const Parameters:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TRobustLoss",
          "kind": "type",
          "signature": "TRobustLoss=(rlSquared,rlHuber,rlSoftL1)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TScalarIntegrand",
          "kind": "type",
          "signature": "TScalarIntegrand=function(X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSplineFitResult",
          "kind": "record",
          "signature": "TSplineFitResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TVectorEquationFunction",
          "kind": "type",
          "signature": "TVectorEquationFunction=function(const X:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TVectorJacobianFunction",
          "kind": "type",
          "signature": "TVectorJacobianFunction=function(const X:TDoubleArray):TModelMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TVectorRootResult",
          "kind": "record",
          "signature": "TVectorRootResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TVectorSeries",
          "kind": "type",
          "signature": "TVectorSeries=array of TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODEOptions",
          "name": "AbsoluteTolerance",
          "kind": "field",
          "signature": "AbsoluteTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODEOptions",
          "name": "AbsoluteTolerances",
          "kind": "field",
          "signature": "AbsoluteTolerances:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODEOptions",
          "name": "Defaults",
          "kind": "function",
          "signature": "class function Defaults:TAdaptiveODEOptions",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODEOptions",
          "name": "Event",
          "kind": "field",
          "signature": "Event:TODEEventFunction",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODEOptions",
          "name": "EventDirection",
          "kind": "field",
          "signature": "EventDirection:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODEOptions",
          "name": "InitialStep",
          "kind": "field",
          "signature": "InitialStep:Double",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODEOptions",
          "name": "MaximumStep",
          "kind": "field",
          "signature": "MaximumStep:Double",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODEOptions",
          "name": "MaxSteps",
          "kind": "field",
          "signature": "MaxSteps:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODEOptions",
          "name": "MinimumStep",
          "kind": "field",
          "signature": "MinimumStep:Double",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODEOptions",
          "name": "Progress",
          "kind": "field",
          "signature": "Progress:TProgressFunction",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODEOptions",
          "name": "RelativeTolerance",
          "kind": "field",
          "signature": "RelativeTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODESolution",
          "name": "AcceptedSteps",
          "kind": "field",
          "signature": "AcceptedSteps:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODESolution",
          "name": "Derivatives",
          "kind": "field",
          "signature": "Derivatives:TVectorSeries",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODESolution",
          "name": "Evaluate",
          "kind": "function",
          "signature": "function Evaluate(Time:Double):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODESolution",
          "name": "Evaluations",
          "kind": "field",
          "signature": "Evaluations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODESolution",
          "name": "EventFound",
          "kind": "field",
          "signature": "EventFound:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODESolution",
          "name": "EventState",
          "kind": "field",
          "signature": "EventState:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODESolution",
          "name": "EventTime",
          "kind": "field",
          "signature": "EventTime:Double",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODESolution",
          "name": "RejectedSteps",
          "kind": "field",
          "signature": "RejectedSteps:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODESolution",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODESolution",
          "name": "T",
          "kind": "field",
          "signature": "T:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TAdaptiveODESolution",
          "name": "Y",
          "kind": "field",
          "signature": "Y:TVectorSeries",
          "classification": "advanced"
        },
        {
          "owner": "TFitResult",
          "name": "Covariance",
          "kind": "field",
          "signature": "Covariance:TModelMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TFitResult",
          "name": "DegreesOfFreedom",
          "kind": "field",
          "signature": "DegreesOfFreedom:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TFitResult",
          "name": "Evaluations",
          "kind": "field",
          "signature": "Evaluations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TFitResult",
          "name": "GradientNorm",
          "kind": "field",
          "signature": "GradientNorm:Double",
          "classification": "advanced"
        },
        {
          "owner": "TFitResult",
          "name": "Iterations",
          "kind": "field",
          "signature": "Iterations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TFitResult",
          "name": "Parameters",
          "kind": "field",
          "signature": "Parameters:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TFitResult",
          "name": "Rank",
          "kind": "field",
          "signature": "Rank:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TFitResult",
          "name": "Residuals",
          "kind": "field",
          "signature": "Residuals:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TFitResult",
          "name": "ResidualSumSquares",
          "kind": "field",
          "signature": "ResidualSumSquares:Double",
          "classification": "advanced"
        },
        {
          "owner": "TFitResult",
          "name": "RSquared",
          "kind": "field",
          "signature": "RSquared:Double",
          "classification": "advanced"
        },
        {
          "owner": "TFitResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TIntegrationResult",
          "name": "ErrorEstimate",
          "kind": "field",
          "signature": "ErrorEstimate:Double",
          "classification": "advanced"
        },
        {
          "owner": "TIntegrationResult",
          "name": "Evaluations",
          "kind": "field",
          "signature": "Evaluations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TIntegrationResult",
          "name": "Intervals",
          "kind": "field",
          "signature": "Intervals:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TIntegrationResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TIntegrationResult",
          "name": "Value",
          "kind": "field",
          "signature": "Value:Double",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "FitLinearBasis",
          "kind": "function",
          "signature": "class function FitLinearBasis(const X,Y:TDoubleArray;BasisCount:Integer;Basis:TLinearBasisFunction;const Weights:TDoubleArray):TFitResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "FitNonlinear",
          "kind": "function",
          "signature": "class function FitNonlinear(Residual:TResidualFunction;Jacobian:TJacobianFunction;const InitialParameters:TDoubleArray;const Options:TNonlinearFitOptions):TFitResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "FitNonlinearAuto",
          "kind": "function",
          "signature": "class function FitNonlinearAuto(Residual:TDualVectorFunction;const InitialParameters:TDoubleArray;const Options:TNonlinearFitOptions):TFitResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "FitPolynomial",
          "kind": "function",
          "signature": "class function FitPolynomial(const X,Y:TDoubleArray;Degree:Integer;const Weights:TDoubleArray):TFitResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "FitSplineBasis",
          "kind": "function",
          "signature": "class function FitSplineBasis(const X,Y,InteriorKnots:TDoubleArray;const Weights:TDoubleArray):TSplineFitResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "IntegrateAdaptive",
          "kind": "function",
          "signature": "class function IntegrateAdaptive(F:TScalarIntegrand;A,B:Double;AbsoluteTolerance:Double=1E-10;RelativeTolerance:Double=1E-8;MaxIntervals:Integer=1000):TIntegrationResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "IntegrateCubature",
          "kind": "function",
          "signature": "class function IntegrateCubature(F:TMultidimensionalIntegrand;const LowerBounds,UpperBounds:TDoubleArray;Order:Integer=5;MaxEvaluations:Integer=1000000):TIntegrationResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "IntegrateImproper",
          "kind": "function",
          "signature": "class function IntegrateImproper(F:TScalarIntegrand;A,B:Double;AbsoluteTolerance:Double=1E-9;RelativeTolerance:Double=1E-7;MaxIntervals:Integer=2000):TIntegrationResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "IntegrateMonteCarlo",
          "kind": "function",
          "signature": "class function IntegrateMonteCarlo(F:TMultidimensionalIntegrand;const LowerBounds,UpperBounds:TDoubleArray;Samples:Integer;var Random:TLocalRandom):TIntegrationResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "IntegrateQuasiMonteCarlo",
          "kind": "function",
          "signature": "class function IntegrateQuasiMonteCarlo(F:TMultidimensionalIntegrand;const LowerBounds,UpperBounds:TDoubleArray;Samples:Integer;Seed:Integer=0):TIntegrationResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "SolveODE",
          "kind": "function",
          "signature": "class function SolveODE(F:TODEVectorFunction;T0:Double;const Y0:TDoubleArray;T1:Double;const Options:TAdaptiveODEOptions):TAdaptiveODESolution",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "SolvePolynomial",
          "kind": "function",
          "signature": "class function SolvePolynomial(const Coefficients:TDoubleArray;AbsoluteTolerance:Double=1E-12;RelativeTolerance:Double=1E-10;MaxIterations:Integer=2000):TPolynomialRootResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "SolveSystem",
          "kind": "function",
          "signature": "class function SolveSystem(F:TVectorEquationFunction;Jacobian:TVectorJacobianFunction;const InitialX:TDoubleArray;AbsoluteTolerance:Double=1E-10;RelativeTolerance:Double=1E-8;MaxIterations:Integer=100;Progress:TProgressFunction=nil):TVectorRootResult",
          "classification": "advanced"
        },
        {
          "owner": "TModellingKit",
          "name": "SolveSystemAuto",
          "kind": "function",
          "signature": "class function SolveSystemAuto(F:TDualVectorFunction;const InitialX:TDoubleArray;AbsoluteTolerance:Double=1E-10;RelativeTolerance:Double=1E-8;MaxIterations:Integer=100;Progress:TProgressFunction=nil):TVectorRootResult",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "AbsoluteTolerance",
          "kind": "field",
          "signature": "AbsoluteTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "CheckDerivative",
          "kind": "field",
          "signature": "CheckDerivative:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "Defaults",
          "kind": "function",
          "signature": "class function Defaults:TNonlinearFitOptions",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "GradientTolerance",
          "kind": "field",
          "signature": "GradientTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "InitialDamping",
          "kind": "field",
          "signature": "InitialDamping:Double",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "Loss",
          "kind": "field",
          "signature": "Loss:TRobustLoss",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "LossScale",
          "kind": "field",
          "signature": "LossScale:Double",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "LowerBounds",
          "kind": "field",
          "signature": "LowerBounds:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "MaxIterations",
          "kind": "field",
          "signature": "MaxIterations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "ParameterScales",
          "kind": "field",
          "signature": "ParameterScales:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "Progress",
          "kind": "field",
          "signature": "Progress:TProgressFunction",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "RelativeTolerance",
          "kind": "field",
          "signature": "RelativeTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TNonlinearFitOptions",
          "name": "UpperBounds",
          "kind": "field",
          "signature": "UpperBounds:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TPolynomialRootResult",
          "name": "Evaluations",
          "kind": "field",
          "signature": "Evaluations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TPolynomialRootResult",
          "name": "Iterations",
          "kind": "field",
          "signature": "Iterations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TPolynomialRootResult",
          "name": "Residuals",
          "kind": "field",
          "signature": "Residuals:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TPolynomialRootResult",
          "name": "Roots",
          "kind": "field",
          "signature": "Roots:TComplexArray",
          "classification": "advanced"
        },
        {
          "owner": "TPolynomialRootResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TRobustLoss",
          "name": "rlHuber",
          "kind": "enum-value",
          "signature": "rlHuber",
          "classification": "advanced"
        },
        {
          "owner": "TRobustLoss",
          "name": "rlSoftL1",
          "kind": "enum-value",
          "signature": "rlSoftL1",
          "classification": "advanced"
        },
        {
          "owner": "TRobustLoss",
          "name": "rlSquared",
          "kind": "enum-value",
          "signature": "rlSquared",
          "classification": "advanced"
        },
        {
          "owner": "TSplineFitResult",
          "name": "Evaluate",
          "kind": "function",
          "signature": "function Evaluate(const X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TSplineFitResult",
          "name": "Fit",
          "kind": "field",
          "signature": "Fit:TFitResult",
          "classification": "advanced"
        },
        {
          "owner": "TSplineFitResult",
          "name": "InteriorKnots",
          "kind": "field",
          "signature": "InteriorKnots:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TVectorRootResult",
          "name": "Evaluations",
          "kind": "field",
          "signature": "Evaluations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TVectorRootResult",
          "name": "Iterations",
          "kind": "field",
          "signature": "Iterations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TVectorRootResult",
          "name": "Residual",
          "kind": "field",
          "signature": "Residual:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TVectorRootResult",
          "name": "ResidualNorm",
          "kind": "field",
          "signature": "ResidualNorm:Double",
          "classification": "advanced"
        },
        {
          "owner": "TVectorRootResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TVectorRootResult",
          "name": "StepNorm",
          "kind": "field",
          "signature": "StepNorm:Double",
          "classification": "advanced"
        },
        {
          "owner": "TVectorRootResult",
          "name": "X",
          "kind": "field",
          "signature": "X:TDoubleArray",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "NumericsLib.Numerics",
      "source": "src/NumericsLib.Numerics.pas",
      "classification_summary": {
        "advanced": 10,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 29
      },
      "interface_sha256": "5c160336ebac2511438e747e52dff1a153dc028741e08278cfab1a51b0c285a4",
      "declarations": [
        {
          "owner": null,
          "name": "ENumericsConvergenceError",
          "kind": "type",
          "signature": "ENumericsConvergenceError=class(EInvalidArgument)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "ENumericsError",
          "kind": "type",
          "signature": "ENumericsError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCubicSpline",
          "kind": "record",
          "signature": "TCubicSpline=record",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TNumericsKit",
          "kind": "class",
          "signature": "TNumericsKit=class",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TODEFunc",
          "kind": "type",
          "signature": "TODEFunc=function(T,Y:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TODESolution",
          "kind": "record",
          "signature": "TODESolution=record",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TRootResult",
          "kind": "record",
          "signature": "TRootResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TScalarFunc",
          "kind": "type",
          "signature": "TScalarFunc=function(X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TCubicSpline",
          "name": "A",
          "kind": "field",
          "signature": "A:TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TCubicSpline",
          "name": "B",
          "kind": "field",
          "signature": "B:TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TCubicSpline",
          "name": "C",
          "kind": "field",
          "signature": "C:TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TCubicSpline",
          "name": "D",
          "kind": "field",
          "signature": "D:TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TCubicSpline",
          "name": "X",
          "kind": "field",
          "signature": "X:TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "Bisection",
          "kind": "function",
          "signature": "class function Bisection(F:TScalarFunc;A,B:Double;Tol:Double=1E-10;MaxIter:Integer=100):Double",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "BisectionResult",
          "kind": "function",
          "signature": "class function BisectionResult(F:TScalarFunc;A,B:Double;Tol:Double=1E-10;MaxIter:Integer=100):TRootResult",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "Brent",
          "kind": "function",
          "signature": "class function Brent(F:TScalarFunc;A,B:Double;Tol:Double=1E-10;MaxIter:Integer=100):Double",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "BrentResult",
          "kind": "function",
          "signature": "class function BrentResult(F:TScalarFunc;A,B:Double;Tol:Double=1E-10;MaxIter:Integer=100):TRootResult",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "CubicSplineBuild",
          "kind": "function",
          "signature": "class function CubicSplineBuild(const XKnots,YKnots:TDoubleArray):TCubicSpline",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "CubicSplineEval",
          "kind": "function",
          "signature": "class function CubicSplineEval(const S:TCubicSpline;X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "EulerSolve",
          "kind": "function",
          "signature": "class function EulerSolve(F:TODEFunc;T0,Y0,T1:Double;N:Integer):TODESolution",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "EulerStep",
          "kind": "function",
          "signature": "class function EulerStep(F:TODEFunc;T0,Y0,H:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "GaussLegendre5",
          "kind": "function",
          "signature": "class function GaussLegendre5(F:TScalarFunc;A,B:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "LagrangeInterp",
          "kind": "function",
          "signature": "class function LagrangeInterp(const XKnots,YKnots:TDoubleArray;X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "LinearInterp",
          "kind": "function",
          "signature": "class function LinearInterp(const XKnots,YKnots:TDoubleArray;X:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "NewtonRaphson",
          "kind": "function",
          "signature": "class function NewtonRaphson(F,DF:TScalarFunc;X0:Double;Tol:Double=1E-10;MaxIter:Integer=100):Double",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "NewtonRaphsonResult",
          "kind": "function",
          "signature": "class function NewtonRaphsonResult(F,DF:TScalarFunc;X0:Double;Tol:Double=1E-10;MaxIter:Integer=100):TRootResult",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "RK4Solve",
          "kind": "function",
          "signature": "class function RK4Solve(F:TODEFunc;T0,Y0,T1:Double;N:Integer):TODESolution",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "RK4Step",
          "kind": "function",
          "signature": "class function RK4Step(F:TODEFunc;T0,Y0,H:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "Secant",
          "kind": "function",
          "signature": "class function Secant(F:TScalarFunc;X0,X1:Double;Tol:Double=1E-10;MaxIter:Integer=100):Double",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "SecantResult",
          "kind": "function",
          "signature": "class function SecantResult(F:TScalarFunc;X0,X1:Double;Tol:Double=1E-10;MaxIter:Integer=100):TRootResult",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "SimpsonRule",
          "kind": "function",
          "signature": "class function SimpsonRule(F:TScalarFunc;A,B:Double;N:Integer=1000):Double",
          "classification": "recommended"
        },
        {
          "owner": "TNumericsKit",
          "name": "TrapezoidalRule",
          "kind": "function",
          "signature": "class function TrapezoidalRule(F:TScalarFunc;A,B:Double;N:Integer=1000):Double",
          "classification": "recommended"
        },
        {
          "owner": "TODESolution",
          "name": "T",
          "kind": "field",
          "signature": "T:TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TODESolution",
          "name": "Y",
          "kind": "field",
          "signature": "Y:TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TRootResult",
          "name": "Converged",
          "kind": "field",
          "signature": "Converged:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TRootResult",
          "name": "Iterations",
          "kind": "field",
          "signature": "Iterations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TRootResult",
          "name": "Residual",
          "kind": "field",
          "signature": "Residual:Double",
          "classification": "advanced"
        },
        {
          "owner": "TRootResult",
          "name": "Root",
          "kind": "field",
          "signature": "Root:Double",
          "classification": "advanced"
        },
        {
          "owner": "TRootResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "OptimizationLib.Convex",
      "source": "src/OptimizationLib.Convex.pas",
      "classification_summary": {
        "advanced": 40,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "de66e5609b4e00d01439d571ece66c919ae46aa8f13470263c2e2937dd398340",
      "declarations": [
        {
          "owner": null,
          "name": "EConvexOptimizationError",
          "kind": "type",
          "signature": "EConvexOptimizationError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TConvexMatrix",
          "kind": "type",
          "signature": "TConvexMatrix=array of TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TConvexOptimizationKit",
          "kind": "class",
          "signature": "TConvexOptimizationKit=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TConvexOptions",
          "kind": "record",
          "signature": "TConvexOptions=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TConvexProgress",
          "kind": "type",
          "signature": "TConvexProgress=function(Iteration,Evaluations:Integer;Objective,Feasibility:Double):Boolean",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TConvexResult",
          "kind": "record",
          "signature": "TConvexResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TQuadraticProgram",
          "kind": "record",
          "signature": "TQuadraticProgram=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSecondOrderCone",
          "kind": "record",
          "signature": "TSecondOrderCone=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSecondOrderCones",
          "kind": "type",
          "signature": "TSecondOrderCones=array of TSecondOrderCone",
          "classification": "advanced"
        },
        {
          "owner": "TConvexOptimizationKit",
          "name": "SolveQuadraticProgram",
          "kind": "function",
          "signature": "class function SolveQuadraticProgram(const Model:TQuadraticProgram;const Options:TConvexOptions):TConvexResult",
          "classification": "advanced"
        },
        {
          "owner": "TConvexOptimizationKit",
          "name": "SolveSecondOrderConeProgram",
          "kind": "function",
          "signature": "class function SolveSecondOrderConeProgram(const C:TDoubleArray;const Cones:TSecondOrderCones;const Options:TConvexOptions):TConvexResult",
          "classification": "advanced"
        },
        {
          "owner": "TConvexOptions",
          "name": "AbsoluteTolerance",
          "kind": "field",
          "signature": "AbsoluteTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TConvexOptions",
          "name": "Defaults",
          "kind": "function",
          "signature": "class function Defaults:TConvexOptions",
          "classification": "advanced"
        },
        {
          "owner": "TConvexOptions",
          "name": "FeasibilityTolerance",
          "kind": "field",
          "signature": "FeasibilityTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TConvexOptions",
          "name": "InitialX",
          "kind": "field",
          "signature": "InitialX:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TConvexOptions",
          "name": "MaxIterations",
          "kind": "field",
          "signature": "MaxIterations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TConvexOptions",
          "name": "Progress",
          "kind": "field",
          "signature": "Progress:TConvexProgress",
          "classification": "advanced"
        },
        {
          "owner": "TConvexOptions",
          "name": "RelativeTolerance",
          "kind": "field",
          "signature": "RelativeTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TConvexResult",
          "name": "BestObjective",
          "kind": "field",
          "signature": "BestObjective:Double",
          "classification": "advanced"
        },
        {
          "owner": "TConvexResult",
          "name": "BestX",
          "kind": "field",
          "signature": "BestX:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TConvexResult",
          "name": "Certificate",
          "kind": "field",
          "signature": "Certificate:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TConvexResult",
          "name": "Evaluations",
          "kind": "field",
          "signature": "Evaluations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TConvexResult",
          "name": "Feasibility",
          "kind": "field",
          "signature": "Feasibility:Double",
          "classification": "advanced"
        },
        {
          "owner": "TConvexResult",
          "name": "GradientNorm",
          "kind": "field",
          "signature": "GradientNorm:Double",
          "classification": "advanced"
        },
        {
          "owner": "TConvexResult",
          "name": "Iterations",
          "kind": "field",
          "signature": "Iterations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TConvexResult",
          "name": "Objective",
          "kind": "field",
          "signature": "Objective:Double",
          "classification": "advanced"
        },
        {
          "owner": "TConvexResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TConvexResult",
          "name": "X",
          "kind": "field",
          "signature": "X:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TQuadraticProgram",
          "name": "C",
          "kind": "field",
          "signature": "C:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TQuadraticProgram",
          "name": "EqualityA",
          "kind": "field",
          "signature": "EqualityA:TConvexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TQuadraticProgram",
          "name": "EqualityB",
          "kind": "field",
          "signature": "EqualityB:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TQuadraticProgram",
          "name": "InequalityA",
          "kind": "field",
          "signature": "InequalityA:TConvexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TQuadraticProgram",
          "name": "InequalityB",
          "kind": "field",
          "signature": "InequalityB:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TQuadraticProgram",
          "name": "LowerBounds",
          "kind": "field",
          "signature": "LowerBounds:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TQuadraticProgram",
          "name": "Q",
          "kind": "field",
          "signature": "Q:TConvexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TQuadraticProgram",
          "name": "UpperBounds",
          "kind": "field",
          "signature": "UpperBounds:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSecondOrderCone",
          "name": "A",
          "kind": "field",
          "signature": "A:TConvexMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TSecondOrderCone",
          "name": "B",
          "kind": "field",
          "signature": "B:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSecondOrderCone",
          "name": "D",
          "kind": "field",
          "signature": "D:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSecondOrderCone",
          "name": "E",
          "kind": "field",
          "signature": "E:Double",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "OptimizationLib.Optimization",
      "source": "src/OptimizationLib.Optimization.pas",
      "classification_summary": {
        "advanced": 66,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 20
      },
      "interface_sha256": "2a0dc52718192c1e8b964e319d45145aea8f612e8686cd65861d716f037b7a0c",
      "declarations": [
        {
          "owner": null,
          "name": "EOptimizationError",
          "kind": "type",
          "signature": "EOptimizationError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TConstraintFunc",
          "kind": "type",
          "signature": "TConstraintFunc=function(const X:TDoubleArray):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TConstraintKind",
          "kind": "type",
          "signature": "TConstraintKind=(ckInequality,ckEquality)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TGradFunc",
          "kind": "type",
          "signature": "TGradFunc=function(const X:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLPResult",
          "kind": "record",
          "signature": "TLPResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLPStatus",
          "kind": "type",
          "signature": "TLPStatus=(lpsOptimal,lpsUnbounded,lpsIterationLimit,lpsUnsupportedStart,lpsInfeasible)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMultiObjectiveResult",
          "kind": "record",
          "signature": "TMultiObjectiveResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMultivarFunc",
          "kind": "type",
          "signature": "TMultivarFunc=function(const X:TDoubleArray):Double",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMultivarFunctions",
          "kind": "type",
          "signature": "TMultivarFunctions=array of TMultivarFunc",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TObjectiveMatrix",
          "kind": "type",
          "signature": "TObjectiveMatrix=array of TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TOptimizationKit",
          "kind": "class",
          "signature": "TOptimizationKit=class",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TOptimizationOptions",
          "kind": "record",
          "signature": "TOptimizationOptions=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TOptimizationProgress",
          "kind": "type",
          "signature": "TOptimizationProgress=function(Iteration,Evaluations:Integer;Objective,GradientNorm,Feasibility:Double):Boolean",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TOptimizationWorkspace",
          "kind": "record",
          "signature": "TOptimizationWorkspace=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TOptResult",
          "kind": "record",
          "signature": "TOptResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TOptResults",
          "kind": "type",
          "signature": "TOptResults=array of TOptResult",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSmoothConstraint",
          "kind": "record",
          "signature": "TSmoothConstraint=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TSmoothConstraints",
          "kind": "type",
          "signature": "TSmoothConstraints=array of TSmoothConstraint",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TUnivarFunc",
          "kind": "type",
          "signature": "TUnivarFunc=function(X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TConstraintKind",
          "name": "ckEquality",
          "kind": "enum-value",
          "signature": "ckEquality",
          "classification": "advanced"
        },
        {
          "owner": "TConstraintKind",
          "name": "ckInequality",
          "kind": "enum-value",
          "signature": "ckInequality",
          "classification": "advanced"
        },
        {
          "owner": "TLPResult",
          "name": "Feasible",
          "kind": "field",
          "signature": "Feasible:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TLPResult",
          "name": "Iters",
          "kind": "field",
          "signature": "Iters:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TLPResult",
          "name": "ObjVal",
          "kind": "field",
          "signature": "ObjVal:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLPResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TLPStatus",
          "classification": "advanced"
        },
        {
          "owner": "TLPResult",
          "name": "X",
          "kind": "field",
          "signature": "X:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TLPStatus",
          "name": "lpsInfeasible",
          "kind": "enum-value",
          "signature": "lpsInfeasible",
          "classification": "advanced"
        },
        {
          "owner": "TLPStatus",
          "name": "lpsIterationLimit",
          "kind": "enum-value",
          "signature": "lpsIterationLimit",
          "classification": "advanced"
        },
        {
          "owner": "TLPStatus",
          "name": "lpsOptimal",
          "kind": "enum-value",
          "signature": "lpsOptimal",
          "classification": "advanced"
        },
        {
          "owner": "TLPStatus",
          "name": "lpsUnbounded",
          "kind": "enum-value",
          "signature": "lpsUnbounded",
          "classification": "advanced"
        },
        {
          "owner": "TLPStatus",
          "name": "lpsUnsupportedStart",
          "kind": "enum-value",
          "signature": "lpsUnsupportedStart",
          "classification": "advanced"
        },
        {
          "owner": "TMultiObjectiveResult",
          "name": "Evaluations",
          "kind": "field",
          "signature": "Evaluations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TMultiObjectiveResult",
          "name": "ObjectiveValues",
          "kind": "field",
          "signature": "ObjectiveValues:TObjectiveMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMultiObjectiveResult",
          "name": "Points",
          "kind": "field",
          "signature": "Points:TOptResults",
          "classification": "advanced"
        },
        {
          "owner": "TMultiObjectiveResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationKit",
          "name": "Adam",
          "kind": "function",
          "signature": "class function Adam(F:TMultivarFunc;Grad:TGradFunc;const X0:TDoubleArray;LR:Double=0.001;Beta1:Double=0.9;Beta2:Double=0.999;Eps:Double=1E-8;Tol:Double=1E-6;MaxIter:Integer=10000):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "BoundedLBFGS",
          "kind": "function",
          "signature": "class function BoundedLBFGS(F:TMultivarFunc;Grad:TGradFunc;const X0:TDoubleArray;const Options:TOptimizationOptions):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "BoundedLBFGSWithWorkspace",
          "kind": "function",
          "signature": "class function BoundedLBFGSWithWorkspace(F:TMultivarFunc;Grad:TGradFunc;const X0:TDoubleArray;const Options:TOptimizationOptions;var Workspace:TOptimizationWorkspace):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "BrentMinimize",
          "kind": "function",
          "signature": "class function BrentMinimize(F:TUnivarFunc;A,B:Double;Tol:Double=1E-8;MaxIter:Integer=200):Double",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "ExplorePareto",
          "kind": "function",
          "signature": "class function ExplorePareto(const Objectives:TMultivarFunctions;const InitialPoints,Weights:array of TDoubleArray;const Options:TOptimizationOptions):TMultiObjectiveResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "GoldenSection",
          "kind": "function",
          "signature": "class function GoldenSection(F:TUnivarFunc;A,B:Double;Tol:Double=1E-8;MaxIter:Integer=200):Double",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "GradientDescent",
          "kind": "function",
          "signature": "class function GradientDescent(F:TMultivarFunc;Grad:TGradFunc;const X0:TDoubleArray;LR:Double=0.1;Tol:Double=1E-6;MaxIter:Integer=5000):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "LBFGS",
          "kind": "function",
          "signature": "class function LBFGS(F:TMultivarFunc;Grad:TGradFunc;const X0:TDoubleArray;M:Integer=10;Tol:Double=1E-6;MaxIter:Integer=1000):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "LBFGSAuto",
          "kind": "function",
          "signature": "class function LBFGSAuto(F:TDualFunction;const X0:TDoubleArray;const Options:TOptimizationOptions):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "Maximize",
          "kind": "function",
          "signature": "class function Maximize(F:TMultivarFunc;const X0:TDoubleArray;Scale:Double=1.0;Tol:Double=1E-8;MaxIter:Integer=10000):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "MultiStart",
          "kind": "function",
          "signature": "class function MultiStart(F:TMultivarFunc;Grad:TGradFunc;const InitialPoints:array of TDoubleArray;const Options:TOptimizationOptions):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "NelderMead",
          "kind": "function",
          "signature": "class function NelderMead(F:TMultivarFunc;const X0:TDoubleArray;Scale:Double=1.0;Tol:Double=1E-8;MaxIter:Integer=10000):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "NonlinearConjugateGradient",
          "kind": "function",
          "signature": "class function NonlinearConjugateGradient(F:TMultivarFunc;Grad:TGradFunc;const X0:TDoubleArray;const Options:TOptimizationOptions):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "NumGrad",
          "kind": "function",
          "signature": "class function NumGrad(F:TMultivarFunc;const X:TDoubleArray;H:Double=1E-5):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "PenaltyMethod",
          "kind": "function",
          "signature": "class function PenaltyMethod(F:TMultivarFunc;const Constraints:array of TConstraintFunc;const X0:TDoubleArray;Mu:Double=1.0;Tol:Double=1E-6;MaxIter:Integer=5000):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "SimplexLP",
          "kind": "function",
          "signature": "class function SimplexLP(const C:TDoubleArray;const A:array of TDoubleArray;const B:TDoubleArray):TLPResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "SimulatedAnnealing",
          "kind": "function",
          "signature": "class function SimulatedAnnealing(F:TMultivarFunc;const X0:TDoubleArray;T0:Double=100.0;TMin:Double=1E-8;CoolRate:Double=0.995;StepSize:Double=0.1;MaxIter:Integer=100000;Seed:Integer=42):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "SolveConstrained",
          "kind": "function",
          "signature": "class function SolveConstrained(F:TMultivarFunc;Grad:TGradFunc;const Constraints:TSmoothConstraints;const X0:TDoubleArray;const Options:TOptimizationOptions):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationKit",
          "name": "TrustRegion",
          "kind": "function",
          "signature": "class function TrustRegion(F:TMultivarFunc;Grad:TGradFunc;const X0:TDoubleArray;const Options:TOptimizationOptions):TOptResult",
          "classification": "recommended"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "AbsoluteTolerance",
          "kind": "field",
          "signature": "AbsoluteTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "Defaults",
          "kind": "function",
          "signature": "class function Defaults:TOptimizationOptions",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "GradientTolerance",
          "kind": "field",
          "signature": "GradientTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "HistorySize",
          "kind": "field",
          "signature": "HistorySize:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "InitialStep",
          "kind": "field",
          "signature": "InitialStep:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "InitialTrustRadius",
          "kind": "field",
          "signature": "InitialTrustRadius:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "LowerBounds",
          "kind": "field",
          "signature": "LowerBounds:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "MaxEvaluations",
          "kind": "field",
          "signature": "MaxEvaluations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "MaxIterations",
          "kind": "field",
          "signature": "MaxIterations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "Progress",
          "kind": "field",
          "signature": "Progress:TOptimizationProgress",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "RelativeTolerance",
          "kind": "field",
          "signature": "RelativeTolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "Seed",
          "kind": "field",
          "signature": "Seed:QWord",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "StartCount",
          "kind": "field",
          "signature": "StartCount:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationOptions",
          "name": "UpperBounds",
          "kind": "field",
          "signature": "UpperBounds:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationWorkspace",
          "name": "Clear",
          "kind": "procedure",
          "signature": "procedure Clear",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationWorkspace",
          "name": "Runs",
          "kind": "field",
          "signature": "Runs:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationWorkspace",
          "name": "TotalEvaluations",
          "kind": "field",
          "signature": "TotalEvaluations:Int64",
          "classification": "advanced"
        },
        {
          "owner": "TOptimizationWorkspace",
          "name": "WarmStartX",
          "kind": "field",
          "signature": "WarmStartX:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TOptResult",
          "name": "BestFVal",
          "kind": "field",
          "signature": "BestFVal:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOptResult",
          "name": "BestX",
          "kind": "field",
          "signature": "BestX:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TOptResult",
          "name": "ConstraintViolation",
          "kind": "field",
          "signature": "ConstraintViolation:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOptResult",
          "name": "Converged",
          "kind": "field",
          "signature": "Converged:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TOptResult",
          "name": "Evaluations",
          "kind": "field",
          "signature": "Evaluations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TOptResult",
          "name": "FVal",
          "kind": "field",
          "signature": "FVal:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOptResult",
          "name": "GradientNorm",
          "kind": "field",
          "signature": "GradientNorm:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOptResult",
          "name": "Iters",
          "kind": "field",
          "signature": "Iters:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TOptResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TOptResult",
          "name": "X",
          "kind": "field",
          "signature": "X:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TSmoothConstraint",
          "name": "Gradient",
          "kind": "field",
          "signature": "Gradient:TGradFunc",
          "classification": "advanced"
        },
        {
          "owner": "TSmoothConstraint",
          "name": "Kind",
          "kind": "field",
          "signature": "Kind:TConstraintKind",
          "classification": "advanced"
        },
        {
          "owner": "TSmoothConstraint",
          "name": "Tolerance",
          "kind": "field",
          "signature": "Tolerance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TSmoothConstraint",
          "name": "Value",
          "kind": "field",
          "signature": "Value:TConstraintFunc",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "ProbabilityLib.Distributions",
      "source": "src/ProbabilityLib.Distributions.pas",
      "classification_summary": {
        "advanced": 1,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 75
      },
      "interface_sha256": "e84d2cfef03612ee25cf4d4f735d9a18c20dc667e748247acc2a731b5951e2ef",
      "declarations": [
        {
          "owner": null,
          "name": "EProbabilityError",
          "kind": "type",
          "signature": "EProbabilityError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TProbabilityKit",
          "kind": "class",
          "signature": "TProbabilityKit=class",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "BetaCDF",
          "kind": "function",
          "signature": "class function BetaCDF(const X,Alpha,Beta:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "BetaMean",
          "kind": "function",
          "signature": "class function BetaMean(const Alpha,Beta:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "BetaPDF",
          "kind": "function",
          "signature": "class function BetaPDF(const X,Alpha,Beta:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "BetaSurvival",
          "kind": "function",
          "signature": "class function BetaSurvival(const X,Alpha,Beta:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "BetaVariance",
          "kind": "function",
          "signature": "class function BetaVariance(const Alpha,Beta:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "BinomialCDF",
          "kind": "function",
          "signature": "class function BinomialCDF(const K,N:Integer;const P:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "BinomialMean",
          "kind": "function",
          "signature": "class function BinomialMean(const N:Integer;const P:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "BinomialPMF",
          "kind": "function",
          "signature": "class function BinomialPMF(const K,N:Integer;const P:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "BinomialSurvival",
          "kind": "function",
          "signature": "class function BinomialSurvival(const K,N:Integer;const P:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "BinomialVariance",
          "kind": "function",
          "signature": "class function BinomialVariance(const N:Integer;const P:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "ChiSquaredCDF",
          "kind": "function",
          "signature": "class function ChiSquaredCDF(const X:Double;DF:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "ChiSquaredMean",
          "kind": "function",
          "signature": "class function ChiSquaredMean(DF:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "ChiSquaredPDF",
          "kind": "function",
          "signature": "class function ChiSquaredPDF(const X:Double;DF:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "ChiSquaredSurvival",
          "kind": "function",
          "signature": "class function ChiSquaredSurvival(const X:Double;DF:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "ChiSquaredVariance",
          "kind": "function",
          "signature": "class function ChiSquaredVariance(DF:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "ExponentialCDF",
          "kind": "function",
          "signature": "class function ExponentialCDF(const X,Lambda:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "ExponentialMean",
          "kind": "function",
          "signature": "class function ExponentialMean(const Lambda:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "ExponentialPDF",
          "kind": "function",
          "signature": "class function ExponentialPDF(const X,Lambda:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "ExponentialSurvival",
          "kind": "function",
          "signature": "class function ExponentialSurvival(const X,Lambda:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "ExponentialVariance",
          "kind": "function",
          "signature": "class function ExponentialVariance(const Lambda:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "FCDF",
          "kind": "function",
          "signature": "class function FCDF(const X:Double;DF1,DF2:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "FMean",
          "kind": "function",
          "signature": "class function FMean(DF1,DF2:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "FPDF",
          "kind": "function",
          "signature": "class function FPDF(const X:Double;DF1,DF2:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "FSurvival",
          "kind": "function",
          "signature": "class function FSurvival(const X:Double;DF1,DF2:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "FVariance",
          "kind": "function",
          "signature": "class function FVariance(DF1,DF2:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "GammaCDF",
          "kind": "function",
          "signature": "class function GammaCDF(const X,Alpha,Beta:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "GammaMean",
          "kind": "function",
          "signature": "class function GammaMean(const Alpha,Beta:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "GammaPDF",
          "kind": "function",
          "signature": "class function GammaPDF(const X,Alpha,Beta:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "GammaSurvival",
          "kind": "function",
          "signature": "class function GammaSurvival(const X,Alpha,Beta:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "GammaVariance",
          "kind": "function",
          "signature": "class function GammaVariance(const Alpha,Beta:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "GeometricCDF",
          "kind": "function",
          "signature": "class function GeometricCDF(const K:Integer;const P:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "GeometricMean",
          "kind": "function",
          "signature": "class function GeometricMean(const P:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "GeometricPMF",
          "kind": "function",
          "signature": "class function GeometricPMF(const K:Integer;const P:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "GeometricSurvival",
          "kind": "function",
          "signature": "class function GeometricSurvival(const K:Integer;const P:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "GeometricVariance",
          "kind": "function",
          "signature": "class function GeometricVariance(const P:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "HypergeometricCDF",
          "kind": "function",
          "signature": "class function HypergeometricCDF(const K,PopSize,SuccPop,SampleN:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "HypergeometricMean",
          "kind": "function",
          "signature": "class function HypergeometricMean(PopSize,SuccPop,SampleN:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "HypergeometricPMF",
          "kind": "function",
          "signature": "class function HypergeometricPMF(const K,PopSize,SuccPop,SampleN:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "HypergeometricVariance",
          "kind": "function",
          "signature": "class function HypergeometricVariance(PopSize,SuccPop,SampleN:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "LogNormalCDF",
          "kind": "function",
          "signature": "class function LogNormalCDF(const X,Mu,Sigma:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "LogNormalMean",
          "kind": "function",
          "signature": "class function LogNormalMean(const Mu,Sigma:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "LogNormalPDF",
          "kind": "function",
          "signature": "class function LogNormalPDF(const X,Mu,Sigma:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "LogNormalSurvival",
          "kind": "function",
          "signature": "class function LogNormalSurvival(const X,Mu,Sigma:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "LogNormalVariance",
          "kind": "function",
          "signature": "class function LogNormalVariance(const Mu,Sigma:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "NegBinomialCDF",
          "kind": "function",
          "signature": "class function NegBinomialCDF(const K,R:Integer;const P:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "NegBinomialMean",
          "kind": "function",
          "signature": "class function NegBinomialMean(const R:Integer;const P:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "NegBinomialPMF",
          "kind": "function",
          "signature": "class function NegBinomialPMF(const K,R:Integer;const P:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "NegBinomialVariance",
          "kind": "function",
          "signature": "class function NegBinomialVariance(const R:Integer;const P:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "NormalCDF",
          "kind": "function",
          "signature": "class function NormalCDF(const X,Mu,Sigma:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "NormalMean",
          "kind": "function",
          "signature": "class function NormalMean(const Mu,Sigma:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "NormalPDF",
          "kind": "function",
          "signature": "class function NormalPDF(const X,Mu,Sigma:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "NormalSurvival",
          "kind": "function",
          "signature": "class function NormalSurvival(const X,Mu,Sigma:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "NormalVariance",
          "kind": "function",
          "signature": "class function NormalVariance(const Mu,Sigma:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "PoissonCDF",
          "kind": "function",
          "signature": "class function PoissonCDF(const K:Integer;const Lambda:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "PoissonMean",
          "kind": "function",
          "signature": "class function PoissonMean(const Lambda:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "PoissonPMF",
          "kind": "function",
          "signature": "class function PoissonPMF(const K:Integer;const Lambda:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "PoissonSurvival",
          "kind": "function",
          "signature": "class function PoissonSurvival(const K:Integer;const Lambda:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "PoissonVariance",
          "kind": "function",
          "signature": "class function PoissonVariance(const Lambda:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "StudentTCDF",
          "kind": "function",
          "signature": "class function StudentTCDF(const X:Double;DF:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "StudentTMean",
          "kind": "function",
          "signature": "class function StudentTMean(DF:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "StudentTPDF",
          "kind": "function",
          "signature": "class function StudentTPDF(const X:Double;DF:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "StudentTSurvival",
          "kind": "function",
          "signature": "class function StudentTSurvival(const X:Double;DF:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "StudentTTwoTail",
          "kind": "function",
          "signature": "class function StudentTTwoTail(const X:Double;DF:Integer;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "StudentTVariance",
          "kind": "function",
          "signature": "class function StudentTVariance(DF:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "UniformCDF",
          "kind": "function",
          "signature": "class function UniformCDF(const X,A,B:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "UniformMean",
          "kind": "function",
          "signature": "class function UniformMean(const A,B:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "UniformPDF",
          "kind": "function",
          "signature": "class function UniformPDF(const X,A,B:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "UniformSurvival",
          "kind": "function",
          "signature": "class function UniformSurvival(const X,A,B:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "UniformVariance",
          "kind": "function",
          "signature": "class function UniformVariance(const A,B:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "WeibullCDF",
          "kind": "function",
          "signature": "class function WeibullCDF(const X,K,Lambda:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "WeibullMean",
          "kind": "function",
          "signature": "class function WeibullMean(const K,Lambda:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "WeibullPDF",
          "kind": "function",
          "signature": "class function WeibullPDF(const X,K,Lambda:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "WeibullSurvival",
          "kind": "function",
          "signature": "class function WeibullSurvival(const X,K,Lambda:Double;ADecimals:Integer=-1):Double",
          "classification": "recommended"
        },
        {
          "owner": "TProbabilityKit",
          "name": "WeibullVariance",
          "kind": "function",
          "signature": "class function WeibullVariance(const K,Lambda:Double):Double",
          "classification": "recommended"
        }
      ]
    },
    {
      "unit": "StatsLib.Inference",
      "source": "src/StatsLib.Inference.pas",
      "classification_summary": {
        "advanced": 89,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "c53d9dcac00bba7e6fb4f50b653ad7dc5e775b5146bedda6043a4f7e2217c847",
      "declarations": [
        {
          "owner": null,
          "name": "EInferenceError",
          "kind": "type",
          "signature": "EInferenceError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TANOVAResult",
          "kind": "record",
          "signature": "TANOVAResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TBinomialDistribution",
          "kind": "record",
          "signature": "TBinomialDistribution=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TContingencyResult",
          "kind": "record",
          "signature": "TContingencyResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCountMatrix",
          "kind": "type",
          "signature": "TCountMatrix=array of TIntegerArray",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDistributionEstimate",
          "kind": "record",
          "signature": "TDistributionEstimate=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TExponentialDistribution",
          "kind": "record",
          "signature": "TExponentialDistribution=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TInferenceKit",
          "kind": "class",
          "signature": "TInferenceKit=class",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TInferenceTestResult",
          "kind": "record",
          "signature": "TInferenceTestResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLogisticRegressionResult",
          "kind": "record",
          "signature": "TLogisticRegressionResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TNormalDistribution",
          "kind": "record",
          "signature": "TNormalDistribution=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TRegressionDiagnostics",
          "kind": "record",
          "signature": "TRegressionDiagnostics=record",
          "classification": "advanced"
        },
        {
          "owner": "TANOVAResult",
          "name": "BetweenDegreesOfFreedom",
          "kind": "field",
          "signature": "BetweenDegreesOfFreedom:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TANOVAResult",
          "name": "EtaSquared",
          "kind": "field",
          "signature": "EtaSquared:Double",
          "classification": "advanced"
        },
        {
          "owner": "TANOVAResult",
          "name": "FStatistic",
          "kind": "field",
          "signature": "FStatistic:Double",
          "classification": "advanced"
        },
        {
          "owner": "TANOVAResult",
          "name": "PValue",
          "kind": "field",
          "signature": "PValue:Double",
          "classification": "advanced"
        },
        {
          "owner": "TANOVAResult",
          "name": "WithinDegreesOfFreedom",
          "kind": "field",
          "signature": "WithinDegreesOfFreedom:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TBinomialDistribution",
          "name": "CDF",
          "kind": "function",
          "signature": "function CDF(const Successes:Integer):Double",
          "classification": "advanced"
        },
        {
          "owner": "TBinomialDistribution",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const TrialCount:Integer;const SuccessProbability:Double):TBinomialDistribution",
          "classification": "advanced"
        },
        {
          "owner": "TBinomialDistribution",
          "name": "LogPMF",
          "kind": "function",
          "signature": "function LogPMF(const Successes:Integer):Double",
          "classification": "advanced"
        },
        {
          "owner": "TBinomialDistribution",
          "name": "PMF",
          "kind": "function",
          "signature": "function PMF(const Successes:Integer):Double",
          "classification": "advanced"
        },
        {
          "owner": "TBinomialDistribution",
          "name": "Probability",
          "kind": "field",
          "signature": "Probability:Double",
          "classification": "advanced"
        },
        {
          "owner": "TBinomialDistribution",
          "name": "Quantile",
          "kind": "function",
          "signature": "function Quantile(const CumulativeProbability:Double):Integer",
          "classification": "advanced"
        },
        {
          "owner": "TBinomialDistribution",
          "name": "Sample",
          "kind": "function",
          "signature": "function Sample(var Random:TLocalRandom):Integer",
          "classification": "advanced"
        },
        {
          "owner": "TBinomialDistribution",
          "name": "Survival",
          "kind": "function",
          "signature": "function Survival(const Successes:Integer):Double",
          "classification": "advanced"
        },
        {
          "owner": "TBinomialDistribution",
          "name": "Trials",
          "kind": "field",
          "signature": "Trials:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TContingencyResult",
          "name": "ChiSquare",
          "kind": "field",
          "signature": "ChiSquare:Double",
          "classification": "advanced"
        },
        {
          "owner": "TContingencyResult",
          "name": "CramersV",
          "kind": "field",
          "signature": "CramersV:Double",
          "classification": "advanced"
        },
        {
          "owner": "TContingencyResult",
          "name": "DegreesOfFreedom",
          "kind": "field",
          "signature": "DegreesOfFreedom:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TContingencyResult",
          "name": "PValue",
          "kind": "field",
          "signature": "PValue:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDistributionEstimate",
          "name": "Identifiable",
          "kind": "field",
          "signature": "Identifiable:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TDistributionEstimate",
          "name": "Iterations",
          "kind": "field",
          "signature": "Iterations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TDistributionEstimate",
          "name": "LogLikelihood",
          "kind": "field",
          "signature": "LogLikelihood:Double",
          "classification": "advanced"
        },
        {
          "owner": "TDistributionEstimate",
          "name": "Parameters",
          "kind": "field",
          "signature": "Parameters:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDistributionEstimate",
          "name": "StandardErrors",
          "kind": "field",
          "signature": "StandardErrors:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDistributionEstimate",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TExponentialDistribution",
          "name": "CDF",
          "kind": "function",
          "signature": "function CDF(const X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TExponentialDistribution",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const RateValue:Double):TExponentialDistribution",
          "classification": "advanced"
        },
        {
          "owner": "TExponentialDistribution",
          "name": "LogPDF",
          "kind": "function",
          "signature": "function LogPDF(const X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TExponentialDistribution",
          "name": "PDF",
          "kind": "function",
          "signature": "function PDF(const X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TExponentialDistribution",
          "name": "Quantile",
          "kind": "function",
          "signature": "function Quantile(const Probability:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TExponentialDistribution",
          "name": "Rate",
          "kind": "field",
          "signature": "Rate:Double",
          "classification": "advanced"
        },
        {
          "owner": "TExponentialDistribution",
          "name": "Sample",
          "kind": "function",
          "signature": "function Sample(var Random:TLocalRandom):Double",
          "classification": "advanced"
        },
        {
          "owner": "TExponentialDistribution",
          "name": "Survival",
          "kind": "function",
          "signature": "function Survival(const X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "AdjustBenjaminiHochberg",
          "kind": "function",
          "signature": "class function AdjustBenjaminiHochberg(const PValues:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "AdjustBonferroni",
          "kind": "function",
          "signature": "class function AdjustBonferroni(const PValues:TDoubleArray):TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "ChiSquareContingency",
          "kind": "function",
          "signature": "class function ChiSquareContingency(const Counts:TCountMatrix):TContingencyResult",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "EstimateBinomial",
          "kind": "function",
          "signature": "class function EstimateBinomial(const Successes,Trials:Integer):TDistributionEstimate",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "EstimateExponential",
          "kind": "function",
          "signature": "class function EstimateExponential(const Samples:TDoubleArray):TDistributionEstimate",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "EstimateGamma",
          "kind": "function",
          "signature": "class function EstimateGamma(const Samples:TDoubleArray):TDistributionEstimate",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "EstimateNormal",
          "kind": "function",
          "signature": "class function EstimateNormal(const Samples:TDoubleArray):TDistributionEstimate",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "FitLogistic",
          "kind": "function",
          "signature": "class function FitLogistic(const Design:IDenseDoubleMatrix;const Labels:TIntegerArray;const MaxIterations:Integer=100;const Tolerance:Double=1E-8):TLogisticRegressionResult",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "FitOLS",
          "kind": "function",
          "signature": "class function FitOLS(const Design:IDenseDoubleMatrix;const Response:TDoubleArray):TRegressionDiagnostics",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "MannWhitneyU",
          "kind": "function",
          "signature": "class function MannWhitneyU(const A,B:TDoubleArray):TInferenceTestResult",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "OneSampleT",
          "kind": "function",
          "signature": "class function OneSampleT(const Samples:TDoubleArray;const NullMean:Double=0;const ConfidenceLevel:Double=0.95):TInferenceTestResult",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "OneWayANOVA",
          "kind": "function",
          "signature": "class function OneWayANOVA(const Groups:array of TDoubleArray):TANOVAResult",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "PairedT",
          "kind": "function",
          "signature": "class function PairedT(const A,B:TDoubleArray;const ConfidenceLevel:Double=0.95):TInferenceTestResult",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceKit",
          "name": "WelchT",
          "kind": "function",
          "signature": "class function WelchT(const A,B:TDoubleArray;const ConfidenceLevel:Double=0.95):TInferenceTestResult",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceTestResult",
          "name": "ConfidenceHigh",
          "kind": "field",
          "signature": "ConfidenceHigh:Double",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceTestResult",
          "name": "ConfidenceLow",
          "kind": "field",
          "signature": "ConfidenceLow:Double",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceTestResult",
          "name": "DegreesOfFreedom",
          "kind": "field",
          "signature": "DegreesOfFreedom:Double",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceTestResult",
          "name": "EffectSize",
          "kind": "field",
          "signature": "EffectSize:Double",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceTestResult",
          "name": "PValue",
          "kind": "field",
          "signature": "PValue:Double",
          "classification": "advanced"
        },
        {
          "owner": "TInferenceTestResult",
          "name": "Statistic",
          "kind": "field",
          "signature": "Statistic:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLogisticRegressionResult",
          "name": "Coefficients",
          "kind": "field",
          "signature": "Coefficients:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TLogisticRegressionResult",
          "name": "Deviance",
          "kind": "field",
          "signature": "Deviance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLogisticRegressionResult",
          "name": "Identifiable",
          "kind": "field",
          "signature": "Identifiable:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TLogisticRegressionResult",
          "name": "Iterations",
          "kind": "field",
          "signature": "Iterations:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TLogisticRegressionResult",
          "name": "Probabilities",
          "kind": "field",
          "signature": "Probabilities:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TLogisticRegressionResult",
          "name": "StandardErrors",
          "kind": "field",
          "signature": "StandardErrors:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TLogisticRegressionResult",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        },
        {
          "owner": "TNormalDistribution",
          "name": "CDF",
          "kind": "function",
          "signature": "function CDF(const X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TNormalDistribution",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const MeanValue,StandardDeviationValue:Double):TNormalDistribution",
          "classification": "advanced"
        },
        {
          "owner": "TNormalDistribution",
          "name": "LogPDF",
          "kind": "function",
          "signature": "function LogPDF(const X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TNormalDistribution",
          "name": "Mean",
          "kind": "field",
          "signature": "Mean:Double",
          "classification": "advanced"
        },
        {
          "owner": "TNormalDistribution",
          "name": "PDF",
          "kind": "function",
          "signature": "function PDF(const X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TNormalDistribution",
          "name": "Quantile",
          "kind": "function",
          "signature": "function Quantile(const Probability:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TNormalDistribution",
          "name": "Sample",
          "kind": "function",
          "signature": "function Sample(var Random:TLocalRandom):Double",
          "classification": "advanced"
        },
        {
          "owner": "TNormalDistribution",
          "name": "StandardDeviation",
          "kind": "field",
          "signature": "StandardDeviation:Double",
          "classification": "advanced"
        },
        {
          "owner": "TNormalDistribution",
          "name": "Survival",
          "kind": "function",
          "signature": "function Survival(const X:Double):Double",
          "classification": "advanced"
        },
        {
          "owner": "TRegressionDiagnostics",
          "name": "AdjustedRSquared",
          "kind": "field",
          "signature": "AdjustedRSquared:Double",
          "classification": "advanced"
        },
        {
          "owner": "TRegressionDiagnostics",
          "name": "Coefficients",
          "kind": "field",
          "signature": "Coefficients:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TRegressionDiagnostics",
          "name": "DegreesOfFreedom",
          "kind": "field",
          "signature": "DegreesOfFreedom:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TRegressionDiagnostics",
          "name": "Fitted",
          "kind": "field",
          "signature": "Fitted:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TRegressionDiagnostics",
          "name": "Rank",
          "kind": "field",
          "signature": "Rank:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TRegressionDiagnostics",
          "name": "Residuals",
          "kind": "field",
          "signature": "Residuals:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TRegressionDiagnostics",
          "name": "RSquared",
          "kind": "field",
          "signature": "RSquared:Double",
          "classification": "advanced"
        },
        {
          "owner": "TRegressionDiagnostics",
          "name": "StandardErrors",
          "kind": "field",
          "signature": "StandardErrors:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TRegressionDiagnostics",
          "name": "Status",
          "kind": "field",
          "signature": "Status:TIterationStatus",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "StatsLib.Stats",
      "source": "src/StatsLib.Stats.pas",
      "classification_summary": {
        "advanced": 1,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 67
      },
      "interface_sha256": "f0b020f9f127af2aca2996221b997fbcc2a23db6ff2daa456515a0cb7d80aaf5",
      "declarations": [
        {
          "owner": null,
          "name": "EStatsError",
          "kind": "type",
          "signature": "EStatsError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDescriptiveStats",
          "kind": "record",
          "signature": "TDescriptiveStats=record",
          "classification": "recommended"
        },
        {
          "owner": null,
          "name": "TStatsKit",
          "kind": "class",
          "signature": "TStatsKit=class",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "CV",
          "kind": "field",
          "signature": "CV:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "IQR",
          "kind": "field",
          "signature": "IQR:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "Kurtosis",
          "kind": "field",
          "signature": "Kurtosis:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "Max",
          "kind": "field",
          "signature": "Max:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "Mean",
          "kind": "field",
          "signature": "Mean:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "Median",
          "kind": "field",
          "signature": "Median:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "Min",
          "kind": "field",
          "signature": "Min:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "Mode",
          "kind": "field",
          "signature": "Mode:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "N",
          "kind": "field",
          "signature": "N:Integer",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "Q1",
          "kind": "field",
          "signature": "Q1:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "Q3",
          "kind": "field",
          "signature": "Q3:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "Range",
          "kind": "field",
          "signature": "Range:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "SEM",
          "kind": "field",
          "signature": "SEM:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "Skewness",
          "kind": "field",
          "signature": "Skewness:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "StdDev",
          "kind": "field",
          "signature": "StdDev:Double",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "ToString",
          "kind": "function",
          "signature": "function ToString:string",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "ToStringWide",
          "kind": "function",
          "signature": "function ToStringWide:string",
          "classification": "recommended"
        },
        {
          "owner": "TDescriptiveStats",
          "name": "Variance",
          "kind": "field",
          "signature": "Variance:Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "BootstrapConfidenceInterval",
          "kind": "function",
          "signature": "class function BootstrapConfidenceInterval(const Data:TDoubleArray;const Alpha:Double;const Iterations:Integer;const Seed:LongWord):TDoublePair",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "BootstrapConfidenceInterval",
          "kind": "function",
          "signature": "class function BootstrapConfidenceInterval(const Data:TDoubleArray;const Alpha:Double=0.05;const Iterations:Integer=1000):TDoublePair",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "BootstrapMean",
          "kind": "function",
          "signature": "class function BootstrapMean(const Data:TDoubleArray;const Iterations:Integer):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "BootstrapMean",
          "kind": "function",
          "signature": "class function BootstrapMean(const Data:TDoubleArray;const Iterations:Integer;const Seed:LongWord):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "CoefficientOfVariation",
          "kind": "function",
          "signature": "class function CoefficientOfVariation(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "CohensD",
          "kind": "function",
          "signature": "class function CohensD(const X,Y:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Covariance",
          "kind": "function",
          "signature": "class function Covariance(const X,Y:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Describe",
          "kind": "function",
          "signature": "class function Describe(const Data:TDoubleArray):TDescriptiveStats",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "GeometricMean",
          "kind": "function",
          "signature": "class function GeometricMean(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "HarmonicMean",
          "kind": "function",
          "signature": "class function HarmonicMean(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "HedgesG",
          "kind": "function",
          "signature": "class function HedgesG(const X,Y:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "HuberM",
          "kind": "function",
          "signature": "class function HuberM(const Data:TDoubleArray;const K:Double=1.5):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "InterquartileRange",
          "kind": "function",
          "signature": "class function InterquartileRange(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "IsNormal",
          "kind": "function",
          "signature": "class function IsNormal(const Data:TDoubleArray;const Alpha:Double=0.05):Boolean",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "KendallTau",
          "kind": "function",
          "signature": "class function KendallTau(const X,Y:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "KolmogorovSmirnovTest",
          "kind": "function",
          "signature": "class function KolmogorovSmirnovTest(const Data:TDoubleArray;out KSPValue:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Kurtosis",
          "kind": "function",
          "signature": "class function Kurtosis(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "MannWhitneyU",
          "kind": "function",
          "signature": "class function MannWhitneyU(const X,Y:TDoubleArray;out UPValue:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Mean",
          "kind": "function",
          "signature": "class function Mean(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Median",
          "kind": "function",
          "signature": "class function Median(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "MedianAbsoluteDeviation",
          "kind": "function",
          "signature": "class function MedianAbsoluteDeviation(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Mode",
          "kind": "function",
          "signature": "class function Mode(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "PearsonCorrelation",
          "kind": "function",
          "signature": "class function PearsonCorrelation(const X,Y:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Percentile",
          "kind": "function",
          "signature": "class function Percentile(const Data:TDoubleArray;const P:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Quantile",
          "kind": "function",
          "signature": "class function Quantile(const Data:TDoubleArray;const Q:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Quartile1",
          "kind": "function",
          "signature": "class function Quartile1(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Quartile3",
          "kind": "function",
          "signature": "class function Quartile3(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Range",
          "kind": "function",
          "signature": "class function Range(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "RobustStandardDeviation",
          "kind": "function",
          "signature": "class function RobustStandardDeviation(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "SampleStandardDeviation",
          "kind": "function",
          "signature": "class function SampleStandardDeviation(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "SampleVariance",
          "kind": "function",
          "signature": "class function SampleVariance(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "ShapiroWilkTest",
          "kind": "function",
          "signature": "class function ShapiroWilkTest(const Data:TDoubleArray;out WPValue:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "SignTest",
          "kind": "function",
          "signature": "class function SignTest(const X,Y:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Skewness",
          "kind": "function",
          "signature": "class function Skewness(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Sort",
          "kind": "procedure",
          "signature": "class procedure Sort(var Data:TDoubleArray)",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "SpearmanCorrelation",
          "kind": "function",
          "signature": "class function SpearmanCorrelation(const X,Y:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "StandardDeviation",
          "kind": "function",
          "signature": "class function StandardDeviation(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "StandardErrorOfMean",
          "kind": "function",
          "signature": "class function StandardErrorOfMean(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Standardize",
          "kind": "procedure",
          "signature": "class procedure Standardize(var Data:TDoubleArray)",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Sum",
          "kind": "function",
          "signature": "class function Sum(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "SumOfSquares",
          "kind": "function",
          "signature": "class function SumOfSquares(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "TrimmedMean",
          "kind": "function",
          "signature": "class function TrimmedMean(const Data:TDoubleArray;const Percent:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "TTest",
          "kind": "function",
          "signature": "class function TTest(const X,Y:TDoubleArray;out TPValue:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "Variance",
          "kind": "function",
          "signature": "class function Variance(const Data:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "WilcoxonSignedRank",
          "kind": "function",
          "signature": "class function WilcoxonSignedRank(const X,Y:TDoubleArray):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "WinsorizedMean",
          "kind": "function",
          "signature": "class function WinsorizedMean(const Data:TDoubleArray;const Percent:Double):Double",
          "classification": "recommended"
        },
        {
          "owner": "TStatsKit",
          "name": "ZScore",
          "kind": "function",
          "signature": "class function ZScore(const Value,AMean,StdDev:Double):Double",
          "classification": "recommended"
        }
      ]
    },
    {
      "unit": "StatsLib.Streaming",
      "source": "src/StatsLib.Streaming.pas",
      "classification_summary": {
        "advanced": 20,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "fce473cf688ebd0b0ef5054889e9026cdf5cb8bae6fba81af51607ff8f721f39",
      "declarations": [
        {
          "owner": null,
          "name": "EStreamingStatsError",
          "kind": "type",
          "signature": "EStreamingStatsError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TNonFinitePolicy",
          "kind": "type",
          "signature": "TNonFinitePolicy=(nfpReject,nfpIgnore)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TOnlineStatistics",
          "kind": "record",
          "signature": "TOnlineStatistics=record",
          "classification": "advanced"
        },
        {
          "owner": "TNonFinitePolicy",
          "name": "nfpIgnore",
          "kind": "enum-value",
          "signature": "nfpIgnore",
          "classification": "advanced"
        },
        {
          "owner": "TNonFinitePolicy",
          "name": "nfpReject",
          "kind": "enum-value",
          "signature": "nfpReject",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "Add",
          "kind": "procedure",
          "signature": "procedure Add(const Value:Double)",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "AddWeighted",
          "kind": "procedure",
          "signature": "procedure AddWeighted(const Value,Weight:Double)",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "Clear",
          "kind": "procedure",
          "signature": "procedure Clear",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "Count",
          "kind": "property",
          "signature": "property Count:QWord read FCount",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const NonFinitePolicy:TNonFinitePolicy=nfpReject):TOnlineStatistics",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "Maximum",
          "kind": "property",
          "signature": "property Maximum:Double read GetMaximum",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "Mean",
          "kind": "property",
          "signature": "property Mean:Double read GetMean",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "Merge",
          "kind": "procedure",
          "signature": "procedure Merge(const Other:TOnlineStatistics)",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "Minimum",
          "kind": "property",
          "signature": "property Minimum:Double read GetMinimum",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "NonFinitePolicy",
          "kind": "property",
          "signature": "property NonFinitePolicy:TNonFinitePolicy read FPolicy",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "PopulationStandardDeviation",
          "kind": "function",
          "signature": "function PopulationStandardDeviation:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "PopulationVariance",
          "kind": "property",
          "signature": "property PopulationVariance:Double read GetPopulationVariance",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "SampleStandardDeviation",
          "kind": "function",
          "signature": "function SampleStandardDeviation:Double",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "SampleVariance",
          "kind": "property",
          "signature": "property SampleVariance:Double read GetSampleVariance",
          "classification": "advanced"
        },
        {
          "owner": "TOnlineStatistics",
          "name": "WeightSum",
          "kind": "property",
          "signature": "property WeightSum:Double read FWeightSum",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "TimeSeriesLib.StateSpace",
      "source": "src/TimeSeriesLib.StateSpace.pas",
      "classification_summary": {
        "advanced": 58,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 0
      },
      "interface_sha256": "7133e9bbfb69f95b36be6a3566699d0d506fbc0cde3fe4e9c1c2850e810ba6c9",
      "declarations": [
        {
          "owner": null,
          "name": "EStateSpaceError",
          "kind": "type",
          "signature": "EStateSpaceError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDenseDoubleMatrixArray",
          "kind": "type",
          "signature": "TDenseDoubleMatrixArray=array of IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TKalmanForecast",
          "kind": "record",
          "signature": "TKalmanForecast=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TKalmanSeriesResult",
          "kind": "record",
          "signature": "TKalmanSeriesResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMultivariateKalmanConfiguration",
          "kind": "record",
          "signature": "TMultivariateKalmanConfiguration=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMultivariateKalmanFilter",
          "kind": "record",
          "signature": "TMultivariateKalmanFilter=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMultivariateKalmanForecast",
          "kind": "record",
          "signature": "TMultivariateKalmanForecast=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMultivariateKalmanSeriesResult",
          "kind": "record",
          "signature": "TMultivariateKalmanSeriesResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TMultivariateKalmanStep",
          "kind": "record",
          "signature": "TMultivariateKalmanStep=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TScalarKalmanConfiguration",
          "kind": "record",
          "signature": "TScalarKalmanConfiguration=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TScalarKalmanFilter",
          "kind": "record",
          "signature": "TScalarKalmanFilter=record",
          "classification": "advanced"
        },
        {
          "owner": "TKalmanForecast",
          "name": "Means",
          "kind": "field",
          "signature": "Means:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TKalmanForecast",
          "name": "Variances",
          "kind": "field",
          "signature": "Variances:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TKalmanSeriesResult",
          "name": "Estimates",
          "kind": "field",
          "signature": "Estimates:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TKalmanSeriesResult",
          "name": "Innovations",
          "kind": "field",
          "signature": "Innovations:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TKalmanSeriesResult",
          "name": "InnovationVariances",
          "kind": "field",
          "signature": "InnovationVariances:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TKalmanSeriesResult",
          "name": "LogLikelihood",
          "kind": "field",
          "signature": "LogLikelihood:Double",
          "classification": "advanced"
        },
        {
          "owner": "TKalmanSeriesResult",
          "name": "Variances",
          "kind": "field",
          "signature": "Variances:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanConfiguration",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const ATransition,AObservation,AProcessCovariance,AMeasurementCovariance:IDenseDoubleMatrix):TMultivariateKalmanConfiguration",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanConfiguration",
          "name": "MeasurementCovariance",
          "kind": "field",
          "signature": "MeasurementCovariance:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanConfiguration",
          "name": "Observation",
          "kind": "field",
          "signature": "Observation:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanConfiguration",
          "name": "ProcessCovariance",
          "kind": "field",
          "signature": "ProcessCovariance:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanConfiguration",
          "name": "Transition",
          "kind": "field",
          "signature": "Transition:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanFilter",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const Configuration:TMultivariateKalmanConfiguration;const InitialMean:TDoubleArray;const InitialCovariance:IDenseDoubleMatrix):TMultivariateKalmanFilter",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanFilter",
          "name": "Forecast",
          "kind": "function",
          "signature": "function Forecast(const StepCount:SizeInt):TMultivariateKalmanForecast",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanFilter",
          "name": "Predict",
          "kind": "procedure",
          "signature": "procedure Predict",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanFilter",
          "name": "Process",
          "kind": "function",
          "signature": "function Process(const Measurements:IDenseDoubleMatrix):TMultivariateKalmanSeriesResult",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanFilter",
          "name": "Reset",
          "kind": "procedure",
          "signature": "procedure Reset(const InitialMean:TDoubleArray;const InitialCovariance:IDenseDoubleMatrix)",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanFilter",
          "name": "StateCovariance",
          "kind": "function",
          "signature": "function StateCovariance:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanFilter",
          "name": "StateMean",
          "kind": "function",
          "signature": "function StateMean:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanFilter",
          "name": "StateSize",
          "kind": "function",
          "signature": "function StateSize:SizeInt",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanFilter",
          "name": "Update",
          "kind": "function",
          "signature": "function Update(const Measurement:TDoubleArray):TMultivariateKalmanStep",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanForecast",
          "name": "ObservationCovariances",
          "kind": "field",
          "signature": "ObservationCovariances:TDenseDoubleMatrixArray",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanForecast",
          "name": "ObservationMeans",
          "kind": "field",
          "signature": "ObservationMeans:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanSeriesResult",
          "name": "InnovationCovariances",
          "kind": "field",
          "signature": "InnovationCovariances:TDenseDoubleMatrixArray",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanSeriesResult",
          "name": "Innovations",
          "kind": "field",
          "signature": "Innovations:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanSeriesResult",
          "name": "LogLikelihood",
          "kind": "field",
          "signature": "LogLikelihood:Double",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanSeriesResult",
          "name": "StateCovariances",
          "kind": "field",
          "signature": "StateCovariances:TDenseDoubleMatrixArray",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanSeriesResult",
          "name": "StateMeans",
          "kind": "field",
          "signature": "StateMeans:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanStep",
          "name": "Innovation",
          "kind": "field",
          "signature": "Innovation:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanStep",
          "name": "InnovationCovariance",
          "kind": "field",
          "signature": "InnovationCovariance:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanStep",
          "name": "LogLikelihood",
          "kind": "field",
          "signature": "LogLikelihood:Double",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanStep",
          "name": "StateCovariance",
          "kind": "field",
          "signature": "StateCovariance:IDenseDoubleMatrix",
          "classification": "advanced"
        },
        {
          "owner": "TMultivariateKalmanStep",
          "name": "StateMean",
          "kind": "field",
          "signature": "StateMean:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanConfiguration",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const ATransition,AObservation,AProcessVariance,AMeasurementVariance:Double):TScalarKalmanConfiguration",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanConfiguration",
          "name": "MeasurementVariance",
          "kind": "field",
          "signature": "MeasurementVariance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanConfiguration",
          "name": "Observation",
          "kind": "field",
          "signature": "Observation:Double",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanConfiguration",
          "name": "ProcessVariance",
          "kind": "field",
          "signature": "ProcessVariance:Double",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanConfiguration",
          "name": "Transition",
          "kind": "field",
          "signature": "Transition:Double",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanFilter",
          "name": "Configuration",
          "kind": "property",
          "signature": "property Configuration:TScalarKalmanConfiguration read FConfiguration",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanFilter",
          "name": "Create",
          "kind": "function",
          "signature": "class function Create(const Configuration:TScalarKalmanConfiguration;const InitialEstimate,InitialVariance:Double):TScalarKalmanFilter",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanFilter",
          "name": "Estimate",
          "kind": "property",
          "signature": "property Estimate:Double read FEstimate",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanFilter",
          "name": "Forecast",
          "kind": "function",
          "signature": "function Forecast(const StepCount:SizeInt):TKalmanForecast",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanFilter",
          "name": "Predict",
          "kind": "procedure",
          "signature": "procedure Predict",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanFilter",
          "name": "Process",
          "kind": "function",
          "signature": "function Process(const Measurements:TDoubleArray):TKalmanSeriesResult",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanFilter",
          "name": "Reset",
          "kind": "procedure",
          "signature": "procedure Reset(const InitialEstimate,InitialVariance:Double)",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanFilter",
          "name": "Update",
          "kind": "procedure",
          "signature": "procedure Update(const Measurement:Double)",
          "classification": "advanced"
        },
        {
          "owner": "TScalarKalmanFilter",
          "name": "Variance",
          "kind": "property",
          "signature": "property Variance:Double read FCovariance",
          "classification": "advanced"
        }
      ]
    },
    {
      "unit": "TimeSeriesLib.TimeSeries",
      "source": "src/TimeSeriesLib.TimeSeries.pas",
      "classification_summary": {
        "advanced": 31,
        "compatibility": 0,
        "experimental": 0,
        "implementation": 0,
        "recommended": 27
      },
      "interface_sha256": "5e8da110e07ec2589e3cba88e9552fb00718baa65953ecbcca5fdaacd66e96a2",
      "declarations": [
        {
          "owner": null,
          "name": "ETimeSeriesError",
          "kind": "type",
          "signature": "ETimeSeriesError=class(Exception)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TADFResult",
          "kind": "record",
          "signature": "TADFResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TARIMAModel",
          "kind": "record",
          "signature": "TARIMAModel=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TCUSUMResult",
          "kind": "record",
          "signature": "TCUSUMResult=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDecomposition",
          "kind": "record",
          "signature": "TDecomposition=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TDecompType",
          "kind": "type",
          "signature": "TDecompType=(dtAdditive,dtMultiplicative)",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TLinearTrend",
          "kind": "record",
          "signature": "TLinearTrend=record",
          "classification": "advanced"
        },
        {
          "owner": null,
          "name": "TTimeSeriesKit",
          "kind": "class",
          "signature": "TTimeSeriesKit=class",
          "classification": "recommended"
        },
        {
          "owner": "TADFResult",
          "name": "Crit10Pct",
          "kind": "field",
          "signature": "Crit10Pct:Double",
          "classification": "advanced"
        },
        {
          "owner": "TADFResult",
          "name": "Crit1Pct",
          "kind": "field",
          "signature": "Crit1Pct:Double",
          "classification": "advanced"
        },
        {
          "owner": "TADFResult",
          "name": "Crit5Pct",
          "kind": "field",
          "signature": "Crit5Pct:Double",
          "classification": "advanced"
        },
        {
          "owner": "TADFResult",
          "name": "IsStationary",
          "kind": "field",
          "signature": "IsStationary:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TADFResult",
          "name": "Statistic",
          "kind": "field",
          "signature": "Statistic:Double",
          "classification": "advanced"
        },
        {
          "owner": "TARIMAModel",
          "name": "ARCoeffs",
          "kind": "field",
          "signature": "ARCoeffs:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TARIMAModel",
          "name": "D",
          "kind": "field",
          "signature": "D:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TARIMAModel",
          "name": "MACoeffs",
          "kind": "field",
          "signature": "MACoeffs:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TARIMAModel",
          "name": "Mu",
          "kind": "field",
          "signature": "Mu:Double",
          "classification": "advanced"
        },
        {
          "owner": "TARIMAModel",
          "name": "P",
          "kind": "field",
          "signature": "P:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TARIMAModel",
          "name": "Q",
          "kind": "field",
          "signature": "Q:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TARIMAModel",
          "name": "Sigma2",
          "kind": "field",
          "signature": "Sigma2:Double",
          "classification": "advanced"
        },
        {
          "owner": "TCUSUMResult",
          "name": "ChangePoint",
          "kind": "field",
          "signature": "ChangePoint:Integer",
          "classification": "advanced"
        },
        {
          "owner": "TCUSUMResult",
          "name": "CUSUMValues",
          "kind": "field",
          "signature": "CUSUMValues:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TCUSUMResult",
          "name": "Detected",
          "kind": "field",
          "signature": "Detected:Boolean",
          "classification": "advanced"
        },
        {
          "owner": "TDecomposition",
          "name": "DecompType",
          "kind": "field",
          "signature": "DecompType:TDecompType",
          "classification": "advanced"
        },
        {
          "owner": "TDecomposition",
          "name": "Residual",
          "kind": "field",
          "signature": "Residual:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDecomposition",
          "name": "Seasonal",
          "kind": "field",
          "signature": "Seasonal:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDecomposition",
          "name": "Trend",
          "kind": "field",
          "signature": "Trend:TDoubleArray",
          "classification": "advanced"
        },
        {
          "owner": "TDecompType",
          "name": "dtAdditive",
          "kind": "enum-value",
          "signature": "dtAdditive",
          "classification": "advanced"
        },
        {
          "owner": "TDecompType",
          "name": "dtMultiplicative",
          "kind": "enum-value",
          "signature": "dtMultiplicative",
          "classification": "advanced"
        },
        {
          "owner": "TLinearTrend",
          "name": "Intercept",
          "kind": "field",
          "signature": "Intercept:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLinearTrend",
          "name": "RSquared",
          "kind": "field",
          "signature": "RSquared:Double",
          "classification": "advanced"
        },
        {
          "owner": "TLinearTrend",
          "name": "Slope",
          "kind": "field",
          "signature": "Slope:Double",
          "classification": "advanced"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "ACF",
          "kind": "function",
          "signature": "class function ACF(const Y:TDoubleArray;MaxLag:Integer):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "ARFit",
          "kind": "function",
          "signature": "class function ARFit(const Y:TDoubleArray;P:Integer):TARIMAModel",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "ARForecast",
          "kind": "function",
          "signature": "class function ARForecast(const Model:TARIMAModel;const History:TDoubleArray;H:Integer):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "ARIMAFit",
          "kind": "function",
          "signature": "class function ARIMAFit(const Y:TDoubleArray;P,D,Q:Integer):TARIMAModel",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "ARIMAForecast",
          "kind": "function",
          "signature": "class function ARIMAForecast(const Model:TARIMAModel;const OriginalY:TDoubleArray;H:Integer):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "AugmentedDickeyFuller",
          "kind": "function",
          "signature": "class function AugmentedDickeyFuller(const Y:TDoubleArray;Lags:Integer=1):TADFResult",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "CUSUMDetect",
          "kind": "function",
          "signature": "class function CUSUMDetect(const Y:TDoubleArray;Threshold:Double=4.0;Target:Double=NaN):TCUSUMResult",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "Decompose",
          "kind": "function",
          "signature": "class function Decompose(const Y:TDoubleArray;Period:Integer;DType:TDecompType=dtAdditive):TDecomposition",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "DetrendLinear",
          "kind": "function",
          "signature": "class function DetrendLinear(const Y:TDoubleArray):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "Difference",
          "kind": "function",
          "signature": "class function Difference(const Y:TDoubleArray;D:Integer=1):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "DoubleExponentialSmoothing",
          "kind": "function",
          "signature": "class function DoubleExponentialSmoothing(const Y:TDoubleArray;Alpha,Beta:Double):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "ExponentialSmoothing",
          "kind": "function",
          "signature": "class function ExponentialSmoothing(const Y:TDoubleArray;Alpha:Double;InitValue:Double=NaN):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "HoltWintersForecast",
          "kind": "function",
          "signature": "class function HoltWintersForecast(const Y:TDoubleArray;Alpha,Beta,Gamma:Double;Period,H:Integer;DType:TDecompType=dtAdditive):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "LinearTrend",
          "kind": "function",
          "signature": "class function LinearTrend(const Y:TDoubleArray):TLinearTrend",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "LjungBox",
          "kind": "function",
          "signature": "class function LjungBox(const Y:TDoubleArray;MaxLag:Integer):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "MAFit",
          "kind": "function",
          "signature": "class function MAFit(const Y:TDoubleArray;Q:Integer):TARIMAModel",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "PACF",
          "kind": "function",
          "signature": "class function PACF(const Y:TDoubleArray;MaxLag:Integer):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "Periodogram",
          "kind": "function",
          "signature": "class function Periodogram(const Y:TDoubleArray):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "PeriodogramPeak",
          "kind": "function",
          "signature": "class function PeriodogramPeak(const Y:TDoubleArray;MinPeriod:Integer=2;MaxPeriod:Integer=0):Integer",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "RollingZScore",
          "kind": "function",
          "signature": "class function RollingZScore(const Y:TDoubleArray;Window:Integer;Threshold:Double=3.0):TIntegerArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "SeasonalStrength",
          "kind": "function",
          "signature": "class function SeasonalStrength(const Decomp:TDecomposition):Double",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "SimpleMovingAverage",
          "kind": "function",
          "signature": "class function SimpleMovingAverage(const Y:TDoubleArray;Window:Integer):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "TripleExponentialSmoothing",
          "kind": "function",
          "signature": "class function TripleExponentialSmoothing(const Y:TDoubleArray;Alpha,Beta,Gamma:Double;Period:Integer;DType:TDecompType=dtAdditive):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "Undifference",
          "kind": "function",
          "signature": "class function Undifference(const DiffY:TDoubleArray;const InitVals:TDoubleArray;D:Integer=1):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "WeightedMovingAverage",
          "kind": "function",
          "signature": "class function WeightedMovingAverage(const Y:TDoubleArray;Window:Integer):TDoubleArray",
          "classification": "recommended"
        },
        {
          "owner": "TTimeSeriesKit",
          "name": "ZScoreAnomalies",
          "kind": "function",
          "signature": "class function ZScoreAnomalies(const Y:TDoubleArray;Threshold:Double=3.0):TIntegerArray",
          "classification": "recommended"
        }
      ]
    }
  ]
}
