Class SymmTridiagMatrix

    • Constructor Detail

      • SymmTridiagMatrix

        public SymmTridiagMatrix​(double[] diag,
                                 double[] offDiag,
                                 int n)
        Constructor for SymmTridiagMatrix
        Parameters:
        diag - Main diagonal
        offDiag - Offdiagonals, both upper and lower
        n - Size of the matrix. The main diagonal must be at least as long as n, and the off diagonal part must be at least as long as n-1
      • SymmTridiagMatrix

        public SymmTridiagMatrix​(double[] diag,
                                 double[] offDiag)
        Constructor for SymmTridiagMatrix
        Parameters:
        diag - Main diagonal
        offDiag - Offdiagonals. Must be one shorter than diag
      • SymmTridiagMatrix

        public SymmTridiagMatrix​(int n)
        Constructor for SymmTridiagMatrix
        Parameters:
        n - Size of the matrix. Since the matrix must be square, this equals both the number of rows and columns. n cannot be zero
      • SymmTridiagMatrix

        public SymmTridiagMatrix​(Matrix A)
        Constructor for SymmTridiagMatrix
        Parameters:
        A - Matrix to copy contents from. Only main and the superdiagonal is copied over
      • SymmTridiagMatrix

        public SymmTridiagMatrix​(Matrix A,
                                 boolean deep)
        Constructor for SymmTridiagMatrix
        Parameters:
        A - Matrix to copy contents from. Only main and the superdiagonal is copied over. It must be square and cannot have any zero dimension lengths
        deep - True for a deep copy. For shallow copies A must be a SymmTridiagMatrix
    • Method Detail

      • getDiagonal

        public double[] getDiagonal()
        Returns the diagonal entries. Length equal n
      • getOffDiagonal

        public double[] getOffDiagonal()
        Returns the off diagonal entries. Length equal n-1
      • add

        public void add​(int row,
                        int column,
                        double value)
        Description copied from interface: Matrix
        A(row,column) += value
        Specified by:
        add in interface Matrix
        Overrides:
        add in class AbstractMatrix
      • get

        public double get​(int row,
                          int column)
        Description copied from interface: Matrix
        Returns A(row,column)
        Specified by:
        get in interface Matrix
        Overrides:
        get in class AbstractMatrix
      • set

        public void set​(int row,
                        int column,
                        double value)
        Description copied from interface: Matrix
        A(row,column) = value
        Specified by:
        set in interface Matrix
        Overrides:
        set in class AbstractMatrix
      • zero

        public SymmTridiagMatrix zero()
        Description copied from interface: Matrix
        Zeros all the entries in the matrix, while preserving any underlying structure. Useful for general, unstructured matrices.
        Specified by:
        zero in interface Matrix
        Overrides:
        zero in class AbstractMatrix
        Returns:
        A
      • solve

        public Matrix solve​(Matrix B,
                            Matrix X)
        Description copied from interface: Matrix
        X = A\B. Not all matrices support this operation, those that do not throw UnsupportedOperationException. Note that it is often more efficient to use a matrix decomposition and its associated solver
        Specified by:
        solve in interface Matrix
        Overrides:
        solve in class AbstractMatrix
        Parameters:
        B - Matrix with the same number of rows as A, and the same number of columns as X
        X - Matrix with a number of rows equal A.numColumns(), and the same number of columns as B
        Returns:
        X
      • solve

        public Vector solve​(Vector b,
                            Vector x)
        Description copied from interface: Matrix
        x = A\b. Not all matrices support this operation, those that do not throw UnsupportedOperationException. Note that it is often more efficient to use a matrix decomposition and its associated solver
        Specified by:
        solve in interface Matrix
        Overrides:
        solve in class AbstractMatrix
        Parameters:
        b - Vector of size A.numRows()
        x - Vector of size A.numColumns()
        Returns:
        x
      • transSolve

        public Matrix transSolve​(Matrix B,
                                 Matrix X)
        Description copied from interface: Matrix
        X = AT\B. Not all matrices support this operation, those that do not throw UnsupportedOperationException. Note that it is often more efficient to use a matrix decomposition and its associated transpose solver
        Specified by:
        transSolve in interface Matrix
        Overrides:
        transSolve in class AbstractMatrix
        Parameters:
        B - Matrix with a number of rows equal A.numColumns(), and the same number of columns as X
        X - Matrix with the same number of rows as A, and the same number of columns as B
        Returns:
        X
      • transSolve

        public Vector transSolve​(Vector b,
                                 Vector x)
        Description copied from interface: Matrix
        x = AT\b. Not all matrices support this operation, those that do not throw UnsupportedOperationException. Note that it is often more efficient to use a matrix decomposition and its associated solver
        Specified by:
        transSolve in interface Matrix
        Overrides:
        transSolve in class AbstractMatrix
        Parameters:
        b - Vector of size A.numColumns()
        x - Vector of size A.numRows()
        Returns:
        x
      • transpose

        public Matrix transpose()
        Description copied from interface: Matrix
        Transposes the matrix in-place. In most cases, the matrix must be square for this to work.
        Specified by:
        transpose in interface Matrix
        Overrides:
        transpose in class AbstractMatrix
        Returns:
        This matrix