Package com.io7m.jtensors.core.parameterized.matrices

# Class PMatrix4x4F<A,B>

java.lang.Object
com.io7m.jtensors.core.parameterized.matrices.PMatrix4x4F<A,B>

Type Parameters:
  `A` - A phantom type parameter (possibly representing a source coordinate system)
  `B` - A phantom type parameter (possibly representing a target coordinate system)

All Implemented Interfaces:
  `MatrixComputationalType`, `PMatrix4x4FType<A,B>`, `PMatrixReadable4x4FType<A,B>`, `MatrixReadable4x4FType`, `MatrixReadableFType`

public final class PMatrix4x4F<A,B> extends Object implements PMatrix4x4FType<A,B>
The type of 4x4 `float`-typed matrices.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `PMatrix4x4F.Builder<A,B>`
  Builds instances of type `PMatrix4x4F`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static <A, B> PMatrix4x4F.Builder<A,B>`
  `builder()`
  Creates a builder for `PMatrix4x4F`.
  `static <A, B> PMatrix4x4F<A,B>`
  `copyOf(PMatrix4x4FType<A,B> instance)`
  Creates an immutable copy of a `PMatrix4x4FType` value.
  `boolean`
  `equals(Object another)`
  This instance is equal to all instances of `PMatrix4x4F` that have equal attribute values.
  `int`
  `hashCode()`
  Computes a hash code from attributes: `r0c0`, `r0c1`, `r0c2`, `r0c3`, `r1c0`, `r1c1`, `r1c2`, `r1c3`, `r2c0`, `r2c1`, `r2c2`, `r2c3`, `r3c0`, `r3c1`, `r3c2`, `r3c3`.
  `static <A, B> PMatrix4x4F<A,B>`
  `of(float r0c0, float r0c1, float r0c2, float r0c3, float r1c0, float r1c1, float r1c2, float r1c3, float r2c0, float r2c1, float r2c2, float r2c3, float r3c0, float r3c1, float r3c2, float r3c3)`
  Construct a new immutable `PMatrix4x4F` instance.
  `float`
  `r0c0()`
  `float`
  `r0c1()`
  `float`
  `r0c2()`
  `float`
  `r0c3()`
  `float`
  `r1c0()`
  `float`
  `r1c1()`
  `float`
  `r1c2()`
  `float`
  `r1c3()`
  `float`
  `r2c0()`
  `float`
  `r2c1()`
  `float`
  `r2c2()`
  `float`
  `r2c3()`
  `float`
  `r3c0()`
  `float`
  `r3c1()`
  `float`
  `r3c2()`
  `float`
  `r3c3()`
  `String`
  `toString()`
  Prints the immutable value `PMatrix4x4F` with attribute values.
  `final PMatrix4x4F<A,B>`
  `withR0c0(float value)`
  Copy the current immutable object by setting a value for the `r0c0` attribute.
  `final PMatrix4x4F<A,B>`
  `withR0c1(float value)`
  Copy the current immutable object by setting a value for the `r0c1` attribute.
  `final PMatrix4x4F<A,B>`
  `withR0c2(float value)`
  Copy the current immutable object by setting a value for the `r0c2` attribute.
  `final PMatrix4x4F<A,B>`
  `withR0c3(float value)`
  Copy the current immutable object by setting a value for the `r0c3` attribute.
  `final PMatrix4x4F<A,B>`
  `withR1c0(float value)`
  Copy the current immutable object by setting a value for the `r1c0` attribute.
  `final PMatrix4x4F<A,B>`
  `withR1c1(float value)`
  Copy the current immutable object by setting a value for the `r1c1` attribute.
  `final PMatrix4x4F<A,B>`
  `withR1c2(float value)`
  Copy the current immutable object by setting a value for the `r1c2` attribute.
  `final PMatrix4x4F<A,B>`
  `withR1c3(float value)`
  Copy the current immutable object by setting a value for the `r1c3` attribute.
  `final PMatrix4x4F<A,B>`
  `withR2c0(float value)`
  Copy the current immutable object by setting a value for the `r2c0` attribute.
  `final PMatrix4x4F<A,B>`
  `withR2c1(float value)`
  Copy the current immutable object by setting a value for the `r2c1` attribute.
  `final PMatrix4x4F<A,B>`
  `withR2c2(float value)`
  Copy the current immutable object by setting a value for the `r2c2` attribute.
  `final PMatrix4x4F<A,B>`
  `withR2c3(float value)`
  Copy the current immutable object by setting a value for the `r2c3` attribute.
  `final PMatrix4x4F<A,B>`
  `withR3c0(float value)`
  Copy the current immutable object by setting a value for the `r3c0` attribute.
  `final PMatrix4x4F<A,B>`
  `withR3c1(float value)`
  Copy the current immutable object by setting a value for the `r3c1` attribute.
  `final PMatrix4x4F<A,B>`
  `withR3c2(float value)`
  Copy the current immutable object by setting a value for the `r3c2` attribute.
  `final PMatrix4x4F<A,B>`
  `withR3c3(float value)`
  Copy the current immutable object by setting a value for the `r3c3` attribute.

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface com.io7m.jtensors.core.unparameterized.matrices.MatrixReadable4x4FType

  `rowColumn`

- ## Method Details

  - ### r0c0

    public float r0c0()
    Specified by:
      `r0c0` in interface `MatrixReadable4x4FType`
    Specified by:
      `r0c0` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 0 column 0

  - ### r0c1

    public float r0c1()
    Specified by:
      `r0c1` in interface `MatrixReadable4x4FType`
    Specified by:
      `r0c1` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 0 column 1

  - ### r0c2

    public float r0c2()
    Specified by:
      `r0c2` in interface `MatrixReadable4x4FType`
    Specified by:
      `r0c2` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 0 column 2

  - ### r0c3

    public float r0c3()
    Specified by:
      `r0c3` in interface `MatrixReadable4x4FType`
    Specified by:
      `r0c3` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 0 column 3

  - ### r1c0

    public float r1c0()
    Specified by:
      `r1c0` in interface `MatrixReadable4x4FType`
    Specified by:
      `r1c0` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 1 column 0

  - ### r1c1

    public float r1c1()
    Specified by:
      `r1c1` in interface `MatrixReadable4x4FType`
    Specified by:
      `r1c1` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 1 column 1

  - ### r1c2

    public float r1c2()
    Specified by:
      `r1c2` in interface `MatrixReadable4x4FType`
    Specified by:
      `r1c2` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 1 column 2

  - ### r1c3

    public float r1c3()
    Specified by:
      `r1c3` in interface `MatrixReadable4x4FType`
    Specified by:
      `r1c3` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 1 column 3

  - ### r2c0

    public float r2c0()
    Specified by:
      `r2c0` in interface `MatrixReadable4x4FType`
    Specified by:
      `r2c0` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 2 column 0

  - ### r2c1

    public float r2c1()
    Specified by:
      `r2c1` in interface `MatrixReadable4x4FType`
    Specified by:
      `r2c1` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 2 column 1

  - ### r2c2

    public float r2c2()
    Specified by:
      `r2c2` in interface `MatrixReadable4x4FType`
    Specified by:
      `r2c2` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 2 column 2

  - ### r2c3

    public float r2c3()
    Specified by:
      `r2c3` in interface `MatrixReadable4x4FType`
    Specified by:
      `r2c3` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 2 column 3

  - ### r3c0

    public float r3c0()
    Specified by:
      `r3c0` in interface `MatrixReadable4x4FType`
    Specified by:
      `r3c0` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 3 column 0

  - ### r3c1

    public float r3c1()
    Specified by:
      `r3c1` in interface `MatrixReadable4x4FType`
    Specified by:
      `r3c1` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 3 column 1

  - ### r3c2

    public float r3c2()
    Specified by:
      `r3c2` in interface `MatrixReadable4x4FType`
    Specified by:
      `r3c2` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 3 column 2

  - ### r3c3

    public float r3c3()
    Specified by:
      `r3c3` in interface `MatrixReadable4x4FType`
    Specified by:
      `r3c3` in interface `PMatrix4x4FType<A,B>`
    Returns:
      The value at row 3 column 3

  - ### withR0c0

    public final PMatrix4x4F<A,B> withR0c0(float value)
    Copy the current immutable object by setting a value for the `r0c0` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r0c0
    Returns:
      A modified copy of the `this` object

  - ### withR0c1

    public final PMatrix4x4F<A,B> withR0c1(float value)
    Copy the current immutable object by setting a value for the `r0c1` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r0c1
    Returns:
      A modified copy of the `this` object

  - ### withR0c2

    public final PMatrix4x4F<A,B> withR0c2(float value)
    Copy the current immutable object by setting a value for the `r0c2` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r0c2
    Returns:
      A modified copy of the `this` object

  - ### withR0c3

    public final PMatrix4x4F<A,B> withR0c3(float value)
    Copy the current immutable object by setting a value for the `r0c3` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r0c3
    Returns:
      A modified copy of the `this` object

  - ### withR1c0

    public final PMatrix4x4F<A,B> withR1c0(float value)
    Copy the current immutable object by setting a value for the `r1c0` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r1c0
    Returns:
      A modified copy of the `this` object

  - ### withR1c1

    public final PMatrix4x4F<A,B> withR1c1(float value)
    Copy the current immutable object by setting a value for the `r1c1` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r1c1
    Returns:
      A modified copy of the `this` object

  - ### withR1c2

    public final PMatrix4x4F<A,B> withR1c2(float value)
    Copy the current immutable object by setting a value for the `r1c2` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r1c2
    Returns:
      A modified copy of the `this` object

  - ### withR1c3

    public final PMatrix4x4F<A,B> withR1c3(float value)
    Copy the current immutable object by setting a value for the `r1c3` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r1c3
    Returns:
      A modified copy of the `this` object

  - ### withR2c0

    public final PMatrix4x4F<A,B> withR2c0(float value)
    Copy the current immutable object by setting a value for the `r2c0` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r2c0
    Returns:
      A modified copy of the `this` object

  - ### withR2c1

    public final PMatrix4x4F<A,B> withR2c1(float value)
    Copy the current immutable object by setting a value for the `r2c1` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r2c1
    Returns:
      A modified copy of the `this` object

  - ### withR2c2

    public final PMatrix4x4F<A,B> withR2c2(float value)
    Copy the current immutable object by setting a value for the `r2c2` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r2c2
    Returns:
      A modified copy of the `this` object

  - ### withR2c3

    public final PMatrix4x4F<A,B> withR2c3(float value)
    Copy the current immutable object by setting a value for the `r2c3` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r2c3
    Returns:
      A modified copy of the `this` object

  - ### withR3c0

    public final PMatrix4x4F<A,B> withR3c0(float value)
    Copy the current immutable object by setting a value for the `r3c0` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r3c0
    Returns:
      A modified copy of the `this` object

  - ### withR3c1

    public final PMatrix4x4F<A,B> withR3c1(float value)
    Copy the current immutable object by setting a value for the `r3c1` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r3c1
    Returns:
      A modified copy of the `this` object

  - ### withR3c2

    public final PMatrix4x4F<A,B> withR3c2(float value)
    Copy the current immutable object by setting a value for the `r3c2` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r3c2
    Returns:
      A modified copy of the `this` object

  - ### withR3c3

    public final PMatrix4x4F<A,B> withR3c3(float value)
    Copy the current immutable object by setting a value for the `r3c3` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for r3c3
    Returns:
      A modified copy of the `this` object

  - ### equals

    public boolean equals(Object another)
    This instance is equal to all instances of `PMatrix4x4F` that have equal attribute values.
    Overrides:
      `equals` in class `Object`
    Returns:
      `true` if `this` is equal to `another` instance

  - ### hashCode

    public int hashCode()
    Computes a hash code from attributes: `r0c0`, `r0c1`, `r0c2`, `r0c3`, `r1c0`, `r1c1`, `r1c2`, `r1c3`, `r2c0`, `r2c1`, `r2c2`, `r2c3`, `r3c0`, `r3c1`, `r3c2`, `r3c3`.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      hashCode value

  - ### toString

    public String toString()
    Prints the immutable value `PMatrix4x4F` with attribute values.
    Overrides:
      `toString` in class `Object`
    Returns:
      A string representation of the value

  - ### of

    public static <A, B> PMatrix4x4F<A,B> of(float r0c0, float r0c1, float r0c2, float r0c3, float r1c0, float r1c1, float r1c2, float r1c3, float r2c0, float r2c1, float r2c2, float r2c3, float r3c0, float r3c1, float r3c2, float r3c3)
    Construct a new immutable `PMatrix4x4F` instance.
    Type Parameters:
      `A` - generic parameter A
      `B` - generic parameter B
    Parameters:
      `r0c0` - The value for the `r0c0` attribute
      `r0c1` - The value for the `r0c1` attribute
      `r0c2` - The value for the `r0c2` attribute
      `r0c3` - The value for the `r0c3` attribute
      `r1c0` - The value for the `r1c0` attribute
      `r1c1` - The value for the `r1c1` attribute
      `r1c2` - The value for the `r1c2` attribute
      `r1c3` - The value for the `r1c3` attribute
      `r2c0` - The value for the `r2c0` attribute
      `r2c1` - The value for the `r2c1` attribute
      `r2c2` - The value for the `r2c2` attribute
      `r2c3` - The value for the `r2c3` attribute
      `r3c0` - The value for the `r3c0` attribute
      `r3c1` - The value for the `r3c1` attribute
      `r3c2` - The value for the `r3c2` attribute
      `r3c3` - The value for the `r3c3` attribute
    Returns:
      An immutable PMatrix4x4F instance

  - ### copyOf

    public static <A, B> PMatrix4x4F<A,B> copyOf(PMatrix4x4FType<A,B> instance)
    Creates an immutable copy of a `PMatrix4x4FType` value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
    Type Parameters:
      `A` - generic parameter A
      `B` - generic parameter B
    Parameters:
      `instance` - The instance to copy
    Returns:
      A copied immutable PMatrix4x4F instance

  - ### builder

    public static <A, B> PMatrix4x4F.Builder<A,B> builder()
    Creates a builder for `PMatrix4x4F`.

         PMatrix4x4F.&lt;A, B&gt;builder()
            .setR0c0(float) // required r0c0
            .setR0c1(float) // required r0c1
            .setR0c2(float) // required r0c2
            .setR0c3(float) // required r0c3
            .setR1c0(float) // required r1c0
            .setR1c1(float) // required r1c1
            .setR1c2(float) // required r1c2
            .setR1c3(float) // required r1c3
            .setR2c0(float) // required r2c0
            .setR2c1(float) // required r2c1
            .setR2c2(float) // required r2c2
            .setR2c3(float) // required r2c3
            .setR3c0(float) // required r3c0
            .setR3c1(float) // required r3c1
            .setR3c2(float) // required r3c2
            .setR3c3(float) // required r3c3
            .build();

    Type Parameters:
      `A` - generic parameter A
      `B` - generic parameter B
    Returns:
      A new PMatrix4x4F builder