Options
All
  • Public
  • Public/Protected
  • All
Menu

Class NormalForm

Defines the main class for Smith normal form.

Hierarchy

  • NormalForm

Index

Constructors

constructor

Properties

Readonly A

A: number[][]

A (non-zero) integer matrix to be reduced to normal form. The matrix A can be of any size, as long as it is a well-formed non-empty matrix. For example,

[[1,2,3],[2,-5,0]]

is a valid input matrix of size 2×3; whereas,

[[1,2,3],[2,-5]]

is considered a malformed input matrix.

D

D: number[][]

Reduced diagonal matrix. Note that D may not be a square matrix.

D = (inv Q)AP

P

P: number[][]

Basechange matrix of dimension m.

Q

Q: number[][]

Basechange matrix of dimension n.

Qinv

Qinv: number[][]

diag

diag: number[]

Non-zero diagonal elements d_0, d_2,..., d_k after the reduction such that d_0 | d_2 |...| d_k.

Readonly m

m: number

Number of columns of A

Readonly n

n: number

Number of rows of A

opts

opts: NFOpts

Optional arguments

steps

steps: any[]

Methods

Private addStep

  • addStep(step: any): void

Private diagonalizePivot

  • diagonalizePivot(offset: number): void

Private improvePivot

  • improvePivot(offset: number): number[]

Private movePivot

  • movePivot(__namedParameters: [number, number], offset: number): void
  • Parameters

    • __namedParameters: [number, number]
    • offset: number

    Returns void

Private reduce

  • reduce(startOffset: number, endOffset: number): void
  • Parameters

    • startOffset: number
    • endOffset: number

    Returns void

Generated using TypeDoc