/** * Various Matrix sub-types that are guarded by various constructors and branded-newtypes. * Allows for convenient inverses if the inverse need be applied to the diagonal of a * particular matrix, such as with the Pearson Correlation Matrix for multivariate samples. * * @since 1.0.0 */ import * as Rng from 'fp-ts/Ring'; import * as Fld from 'fp-ts/Field'; import * as Mon from 'fp-ts/Monoid'; import * as O from 'fp-ts/Option'; import * as M from './Matrix'; import * as V from './Vector'; import * as Iso from './Iso'; declare const UpperTriangularSymbol: unique symbol; declare type UpperTriangularSymbol = typeof UpperTriangularSymbol; declare const LowerTriangularSymbol: unique symbol; declare type LowerTriangularSymbol = typeof LowerTriangularSymbol; declare const DiagonalSymbol: unique symbol; declare type DiagonalSymbol = typeof DiagonalSymbol; declare const OrthogonalSymbol: unique symbol; declare type OrthogonalSymbol = typeof OrthogonalSymbol; /** * Upper Triangular Matricies * * @since 1.0.0 * @category Model */ export interface UpperTriangularMatrix extends M.Mat { _URI: UpperTriangularSymbol; } /** * Lower Triangular Matricies * * @since 1.0.0 * @category Model */ export interface LowerTriangularMatrix extends M.Mat { _URI: LowerTriangularSymbol; } /** * Diagonal Matricies * * @since 1.0.0 * @category Model */ export interface DiagonalMatrix extends M.Mat { _URI: DiagonalSymbol; } /** * Orthogonal Matricies * * @since 1.1.0 * @category Model */ export interface OrthogonalMatrix extends M.Mat { _URI: OrthogonalSymbol; } /** * @since 1.0.0 * @category Constructors */ export declare const fromMatrix: (R: Rng.Ring) => (m: M.Mat) => [LowerTriangularMatrix, UpperTriangularMatrix]; /** * @since 1.0.0 * @category Constructors */ export declare const toMatrix: ([l, u]: [LowerTriangularMatrix, UpperTriangularMatrix]) => M.Mat; /** * @since 1.0.0 * @category Constructors */ export declare const extractDiagonal: (zero: A) => (m: M.Mat) => DiagonalMatrix; /** * @since 1.0.0 * @category Isomorphisms */ export declare const getTransposeIso: () => Iso.Iso, UpperTriangularMatrix>; /** * @since 1.0.0 * @category Matrix Operations */ export declare const diagonalMap: (f: (a: A) => A) => (m: DiagonalMatrix) => DiagonalMatrix; /** * @since 1.0.4 * @category Matrix Operations */ export declare const diagonalFoldMap: (Mn: Mon.Monoid) => (as: DiagonalMatrix) => A; /** * @since 1.0.0 * @category Matrix Operations */ export declare const diagonalInverse: (F: Fld.Field) => (m: DiagonalMatrix) => DiagonalMatrix; /** * @since 1.1.0 * @category Matrix Operations */ export declare const orthogonalInverse: (m: OrthogonalMatrix) => OrthogonalMatrix; /** * See: Fundamentals of Matrix Computation, David S. Watkins, page 26. Returns O.none if * matrix is singular * * @since 1.1.0 * @category Matrix Operations */ export declare const forwardSub: (L: LowerTriangularMatrix, b: V.Vec) => O.Option>; /** * See: Fundamentals of Matrix Computation, David S. Watkins, page 30. Returns O.none if * matrix is singular * * @since 1.1.0 * @category Matrix Operations */ export declare const backSub: (U: UpperTriangularMatrix, y: V.Vec) => O.Option>; export {}; //# sourceMappingURL=MatrixTypes.d.ts.map