Interface AdvancedLinearAlgebra

All Known Implementing Classes:
DefaultLinearAlgebra

public interface AdvancedLinearAlgebra
This computation directory contains variuous linear algebra functions. See also FixedLinearAlgebra.
  • Method Summary

    Modifier and Type Method Description
    dk.alexandra.fresco.framework.DRes<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> backSubstitution​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a, ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> b)
    Use back substitution to compute a vector x such that ax = b where a is an upper triangular square matrix.
    dk.alexandra.fresco.framework.DRes<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> forwardSubstitution​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a, ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> b)
    Use forward substitution to compute a vector x such that ax = b where a is a lower triangular square matrix.
    dk.alexandra.fresco.framework.DRes<List<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>>> gramSchmidt​(List<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> vectors)
    Return a list of mutually orthogonal vectors spanning the same space as the given vectors.
    dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> invertLowerTriangularMatrix​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> l)
    Compute the inverse of a lower triangular matrix.
    dk.alexandra.fresco.framework.DRes<List<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> iterativeEigenvalues​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a, int iterations)
    Approximate the eigenvalues of a matrix using the QR-algorithm.
    dk.alexandra.fresco.framework.DRes<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> linearInverseProblem​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a, ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> b)
    Solve a linear inverse problem, eg.
    dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> moorePenrosePseudoInverse​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a)
    Compute the Moore-Penrose pseudo-inverse of an m×n-matrix with full column rank.
    dk.alexandra.fresco.framework.DRes<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> normalizeVector​(ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> u)
    Normalize a non-zero vector.
    dk.alexandra.fresco.framework.DRes<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> projection​(ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a, ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> u)
    Compute the projection of a vector a onto another vector u.
    dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.framework.util.Pair<dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>,​dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>>> qrDecomposition​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a)
    Compute the QR-decomposition of an mxn-matrix a with m ≥ n and full column rank.
    static AdvancedLinearAlgebra using​(dk.alexandra.fresco.framework.builder.numeric.ProtocolBuilderNumeric builder)  
  • Method Details

    • using

      static AdvancedLinearAlgebra using​(dk.alexandra.fresco.framework.builder.numeric.ProtocolBuilderNumeric builder)
    • backSubstitution

      dk.alexandra.fresco.framework.DRes<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> backSubstitution​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a, ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> b)
      Use back substitution to compute a vector x such that ax = b where a is an upper triangular square matrix.
      Parameters:
      a - An upper triangular matrix.
      b - A vector.
      Returns:
      A vector x such that ax = b.
    • forwardSubstitution

      dk.alexandra.fresco.framework.DRes<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> forwardSubstitution​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a, ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> b)
      Use forward substitution to compute a vector x such that ax = b where a is a lower triangular square matrix.
      Parameters:
      a - An lower triangular matrix.
      b - A vector.
      Returns:
      A vector x such that ax = b.
    • gramSchmidt

      dk.alexandra.fresco.framework.DRes<List<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>>> gramSchmidt​(List<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> vectors)
      Return a list of mutually orthogonal vectors spanning the same space as the given vectors.
      Parameters:
      vectors - A set of linearly independent vectors.
      Returns:
      A set of mutually orthogonal vectors spanning the same space as the input.
    • invertLowerTriangularMatrix

      dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> invertLowerTriangularMatrix​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> l)
      Compute the inverse of a lower triangular matrix.
      Parameters:
      l - A lower triangular matrix.
      Returns:
      The inverse of l
    • linearInverseProblem

      dk.alexandra.fresco.framework.DRes<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> linearInverseProblem​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a, ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> b)
      Solve a linear inverse problem, eg. find an x such that ax = b where a is an m×n-matrix and b is an n-dimensional vector. If a system is overdetermined (m ≥ n), the computation will find the x minimising ||ax - b||.
      Parameters:
      a - An m×n-matrix.
      b - An n-dimensional vector.
      Returns:
      A solution to the equation ax = b or a matrix minimising ax - b.
    • moorePenrosePseudoInverse

      dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> moorePenrosePseudoInverse​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a)
      Compute the Moore-Penrose pseudo-inverse of an m×n-matrix with full column rank.
      Parameters:
      a - An m×n-matrix with full column rank.
      Returns:
      The Moore-Penrose pseudo-inverse of a.
    • normalizeVector

      dk.alexandra.fresco.framework.DRes<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> normalizeVector​(ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> u)
      Normalize a non-zero vector.
      Parameters:
      u - A non-zero vector.
      Returns:
      A vector with the same direction as u and magnitude 1.
    • projection

      dk.alexandra.fresco.framework.DRes<ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> projection​(ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a, ArrayList<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> u)
      Compute the projection of a vector a onto another vector u.
      Parameters:
      a - A vector.
      u - A vector.
      Returns:
      a projected onto u.
    • iterativeEigenvalues

      dk.alexandra.fresco.framework.DRes<List<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>> iterativeEigenvalues​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a, int iterations)
      Approximate the eigenvalues of a matrix using the QR-algorithm.
      Parameters:
      a - A square matrix.
      iterations - The number of iterations.
      Returns:
      An approximation of the eigenvalues of a.
    • qrDecomposition

      dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.framework.util.Pair<dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>,​dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>>>> qrDecomposition​(dk.alexandra.fresco.lib.common.collections.Matrix<dk.alexandra.fresco.framework.DRes<dk.alexandra.fresco.lib.fixed.SFixed>> a)
      Compute the QR-decomposition of an mxn-matrix a with m ≥ n and full column rank. The QR-decomposition is a pair of matrices (Q,R) with A = QR and where Q is an mxn-matrix with orthonormal columns and R is an upper-triangular nxn-matrix.
      Parameters:
      a - An mxn-matrix
      Returns:
      A pair of matrices (Q,R) with a = QR and where * Q is an mxn-matrix with orthonormal columns and R is an upper-triangular * nxn-matrix.