Class Matrices

java.lang.Object
uk.ac.starlink.ttools.plot.Matrices

public class Matrices extends Object
Utility class for linear algebra in 3-dimensional space. The array arguments to the methods here are either 3-element arrays representing 3-d vectors
    ( v[0], v[1], v[2] )
 
or 9-element arrays representing 3-d matrices:
    ( m[0], m[1], m[2],
      m[3], m[4], m[5],
      m[6], m[7], m[8] )
 
Since:
25 Nov 2005
Author:
Mark Taylor
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static double[]
    adj(double[] m)
    Calculates the adjoint of a matrix.
    static double[]
    cross(double[] a, double[] b)
    Calculates the vector (cross) product of two vectors.
    static double
    det(double[] m)
    Calculates the determinant of a matrix.
    static double
    dot(double[] a, double[] b)
    Calclulates the scalar (dot) product of two vectors.
    static double[]
    fromPal(double[][] m)
    Converts a 3-d matrix from Pal-friendly form (3x3) to the form used elsewhere in this class (flat 9-element array).
    static double[]
    invert(double[] m)
    Inverts a matrix.
    static double[]
    mmMult(double[] a, double[] b)
    Multiplies two matrices together.
    static double
    mod(double[] v)
    Calculates the modulus of a vector.
    static double[]
    mult(double[] v, double c)
    Multiplies a vector by a constant.
    static double[]
    mvMult(double[] m, double[] v)
    Multiplies a matrix by a vector.
    static double[]
    normalise(double[] v)
    Normalises a vector.
    static double[][]
    toPal(double[] m)
    Converts a 3-d matrix from the form used in this class (flat 9-element array) to Pal-friendly form (3x3).
    static String
    toString(double[] a)
    Returns a string giving the contents of an arbitrary length vector.
    static double[]
    transpose(double[] a)
    Returns the transpose of a 3x3 matrix.
    static double[]
    unit(int iaxis)
    Returns a unit vector along an indicated axis.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Matrices

      public Matrices()
  • Method Details

    • adj

      public static double[] adj(double[] m)
      Calculates the adjoint of a matrix.
      Parameters:
      m - input matrix as 9-element array
      Returns:
      adj(m) as 9-element array
    • det

      public static double det(double[] m)
      Calculates the determinant of a matrix.
      Parameters:
      m - input matrix as 9-element array
      Returns:
      det(m)
    • invert

      public static double[] invert(double[] m)
      Inverts a matrix.
      Parameters:
      m - input matrix as 9-element array
      Returns:
      m-1 as 9-element array
    • dot

      public static double dot(double[] a, double[] b)
      Calclulates the scalar (dot) product of two vectors.
      Parameters:
      a - vector 1
      b - vector 2
      Returns:
      a.b
    • cross

      public static double[] cross(double[] a, double[] b)
      Calculates the vector (cross) product of two vectors.
      Parameters:
      a - vector 1
      b - vector 2
      Returns:
      a x b
    • transpose

      public static double[] transpose(double[] a)
      Returns the transpose of a 3x3 matrix.
      Parameters:
      a - input matrix
      Returns:
      transpose of a
    • unit

      public static double[] unit(int iaxis)
      Returns a unit vector along an indicated axis.
      Parameters:
      iaxis - index of axis (0, 1 or 2)
      Returns:
      unit vector iaxis
    • mod

      public static double mod(double[] v)
      Calculates the modulus of a vector.
      Parameters:
      v - input vector
      Returns:
      |v|
    • normalise

      public static double[] normalise(double[] v)
      Normalises a vector.
      Parameters:
      v - input vector
      Returns:
      |v|
    • mult

      public static double[] mult(double[] v, double c)
      Multiplies a vector by a constant.
      Parameters:
      v - vector of arbitrary length
      c - constant factor
      Returns:
      v * c
    • mvMult

      public static double[] mvMult(double[] m, double[] v)
      Multiplies a matrix by a vector.
      Parameters:
      m - input matrix as 9-element array
      v - input vector as 3-element array
      Returns:
      m * v
    • mmMult

      public static double[] mmMult(double[] a, double[] b)
      Multiplies two matrices together.
      Parameters:
      a - input matrix 1 as 9-element array
      b - input matrix 2 as 9-element array
      Returns:
      a * b as 9-element array
    • toString

      public static String toString(double[] a)
      Returns a string giving the contents of an arbitrary length vector.
      Parameters:
      a - array
      Returns:
      stringified a
    • fromPal

      public static double[] fromPal(double[][] m)
      Converts a 3-d matrix from Pal-friendly form (3x3) to the form used elsewhere in this class (flat 9-element array).
      Parameters:
      m - flat matrix
      Returns:
      pal-friendly matrix
    • toPal

      public static double[][] toPal(double[] m)
      Converts a 3-d matrix from the form used in this class (flat 9-element array) to Pal-friendly form (3x3).
      Parameters:
      m - flat matrix
      Returns:
      pal-friendly matrix