## Uses of Interface
com.io7m.jtensors.VectorReadable3DType

- Packages that use VectorReadable3DType
  Package | Description
  --- | ---
  com.io7m.jtensors | Core vector and matrix types.
  com.io7m.jtensors.bytebuffered | `ByteBuffer` backed tensors.
  com.io7m.jtensors.bytebuffered.parameterized | `ByteBuffer` backed parameterized tensors.
  com.io7m.jtensors.parameterized | Parameterized vector and matrix types.

- - ### Uses of VectorReadable3DType in com.io7m.jtensors

    Subinterfaces of VectorReadable3DType in com.io7m.jtensors
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `Quaternion4DType` The type of mutable quaternions with `double` elements.
    `interface` | `QuaternionReadable4DType` 'Read' interface to four-dimensional quaternions with `double` elements.
    `interface` | `Vector3DType` The type of three-element vectors that are both readable and writable, and have `double` elements
    `interface` | `Vector4DType` The type of four-element vectors that are both readable and writable, and have `double` elements
    `interface` | `VectorReadable4DType` 'Read' interface to four-dimensional vectors with `double` elements.

    Classes in com.io7m.jtensors that implement VectorReadable3DType
    Modifier and Type | Class and Description
    --- | ---
    `class` | `QuaternionI4D` A four-dimensional immutable quaternion type with `double` elements.
    `class` | `QuaternionM4D` A four-dimensional mutable quaternion type with `double` elements.
    `class` | `VectorI3D` A three-dimensional immutable vector type with `double` elements.
    `class` | `VectorI4D` A four-dimensional immutable vector type with `double` elements.
    `class` | `VectorM3D` A three-dimensional mutable vector type with `double` elements.
    `class` | `VectorM4D` A four-dimensional mutable vector type with `double` elements.

    Methods in com.io7m.jtensors with type parameters of type VectorReadable3DType
    Modifier and Type | Method and Description
    --- | ---
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`absoluteInPlace(V v)` Calculate the absolute values of the elements in vector `v`, modifying the vector in-place.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`addInPlace(V v0, VectorReadable3DType v1)` Calculate the element-wise sum of the vectors `v0` and `v1`, saving the result to `v0`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`addScaledInPlace(V v0, VectorReadable3DType v1, double r)` Calculate the element-wise sum of the vectors `v0` and the element-wise product of `v1` and `r`, saving the result to `v0`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`clampByVectorInPlace(V v, VectorReadable3DType minimum, VectorReadable3DType maximum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum` and `maximum`, saving the result to `v`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`clampInPlace(V v, double minimum, double maximum)` Clamp the elements of the vector `v` to the range {@code [minimum ..
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`clampMaximumByVectorInPlace(V v, VectorReadable3DType maximum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `maximum`, saving the result to `v`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`clampMaximumInPlace(V v, double maximum)` Clamp the elements of the vector `v` to the range {@code [-Infinity ..
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`clampMinimumByVectorInPlace(V v, VectorReadable3DType minimum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum`, saving the result to `v`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`clampMinimumInPlace(V v, double minimum)` Clamp the elements of the vector `v` to the range {@code [minimum ..
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`normalizeInPlace(V v)` Returns a vector with the same orientation as `v` but with magnitude equal to `1.0` in `v`.
    `static <V extends VectorReadable3DType,U extends VectorWritable3DType> void` | VectorM3D.`orthoNormalize(VectorM3D.ContextVM3D c, VectorReadable3DType v0, U v0_out, VectorReadable3DType v1, U v1_out)` Orthonormalize and return the vectors `v0` and `v1` .
    `static <V extends VectorWritable3DType & VectorReadable3DType,W extends VectorWritable3DType & VectorReadable3DType> void` | VectorM3D.`orthoNormalizeInPlace(VectorM3D.ContextVM3D c, V v0, W v1)` Orthonormalize and the vectors `v0` and `v1`.
    `static <V extends VectorWritable3DType & VectorReadable3DType,W extends VectorWritable3DType & VectorReadable3DType> void` | VectorM3D.`orthoNormalizeInPlace(VectorM3D.ContextVM3D c, V v0, W v1)` Orthonormalize and the vectors `v0` and `v1`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`scaleInPlace(V v, double r)` Scale the vector `v` by the scalar `r`, saving the result to `v`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`subtractInPlace(V v0, VectorReadable3DType v1)` Subtract the vector `v1` from the vector `v0`, saving the result to `v0`.

    Methods in com.io7m.jtensors with parameters of type VectorReadable3DType
    Modifier and Type | Method and Description
    --- | ---
    `static VectorI3D` | VectorI3D.`absolute(VectorReadable3DType v)` Calculate the absolute value of the vector `v`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`absolute(VectorReadable3DType v, V out)` Calculate the absolute values of the elements in vector `v`, saving the result to `out`.
    `static VectorI3D` | VectorI3D.`add(VectorReadable3DType v0, VectorReadable3DType v1)` Calculate the element-wise sum of the vectors `v0` and `v1`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`add(VectorReadable3DType v0, VectorReadable3DType v1, V out)` Calculate the element-wise sum of the vectors `v0` and `v1`, saving the result to `out`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`addInPlace(V v0, VectorReadable3DType v1)` Calculate the element-wise sum of the vectors `v0` and `v1`, saving the result to `v0`.
    `static VectorI3D` | VectorI3D.`addScaled(VectorReadable3DType v0, VectorReadable3DType v1, double r)` Calculate the element-wise sum of the vectors `v0` and the element-wise product of `v1` and `r`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`addScaled(VectorReadable3DType v0, VectorReadable3DType v1, double r, V out)` Calculate the element-wise sum of the vectors `v0` and the element-wise product of `v1` and `r`, saving the result to `out`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`addScaledInPlace(V v0, VectorReadable3DType v1, double r)` Calculate the element-wise sum of the vectors `v0` and the element-wise product of `v1` and `r`, saving the result to `v0`.
    `static boolean` | VectorM3D.`almostEqual(com.io7m.jequality.AlmostEqualDouble.ContextRelative context, VectorReadable3DType qa, VectorReadable3DType qb)` Determine whether or not the vectors `qa` and `qb` are equal to within the degree of error given in `context`.
    `static boolean` | VectorI3D.`almostEqual(com.io7m.jequality.AlmostEqualDouble.ContextRelative context, VectorReadable3DType qa, VectorReadable3DType qb)` Determine whether or not the vectors `qa` and `qb` are equal to within the degree of error given in `context`.
    `static VectorI3D` | VectorI3D.`clamp(VectorReadable3DType v, double minimum, double maximum)` Clamp the elements of the vector `v` to the range {@code [minimum ..
    `static <V extends VectorWritable3DType> V` | VectorM3D.`clamp(VectorReadable3DType v, double minimum, double maximum, V out)` Clamp the elements of the vector `v` to the range {@code [minimum ..
    `static VectorI3D` | VectorI3D.`clampByVector(VectorReadable3DType v, VectorReadable3DType minimum, VectorReadable3DType maximum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum` and `maximum`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`clampByVector(VectorReadable3DType v, VectorReadable3DType minimum, VectorReadable3DType maximum, V out)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum` and `maximum`, saving the result to `out`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`clampByVectorInPlace(V v, VectorReadable3DType minimum, VectorReadable3DType maximum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum` and `maximum`, saving the result to `v`.
    `static VectorI3D` | VectorI3D.`clampMaximum(VectorReadable3DType v, double maximum)` Clamp the elements of the vector `v` to the range {@code [-Infinity ..
    `static <V extends VectorWritable3DType> V` | VectorM3D.`clampMaximum(VectorReadable3DType v, double maximum, V out)` Clamp the elements of the vector `v` to the range {@code [-Infinity ..
    `static VectorI3D` | VectorI3D.`clampMaximumByVector(VectorReadable3DType v, VectorReadable3DType maximum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `maximum`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`clampMaximumByVector(VectorReadable3DType v, VectorReadable3DType maximum, V out)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `maximum`, saving the result to `out`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`clampMaximumByVectorInPlace(V v, VectorReadable3DType maximum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `maximum`, saving the result to `v`.
    `static VectorI3D` | VectorI3D.`clampMinimum(VectorReadable3DType v, double minimum)` Clamp the elements of the vector `v` to the range {@code [minimum ..
    `static <V extends VectorWritable3DType> V` | VectorM3D.`clampMinimum(VectorReadable3DType v, double minimum, V out)` Clamp the elements of the vector `v` to the range {@code [minimum ..
    `static VectorI3D` | VectorI3D.`clampMinimumByVector(VectorReadable3DType v, VectorReadable3DType minimum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`clampMinimumByVector(VectorReadable3DType v, VectorReadable3DType minimum, V out)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum`, saving the result to `out`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`clampMinimumByVectorInPlace(V v, VectorReadable3DType minimum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum`, saving the result to `v`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`copy(VectorReadable3DType input, V output)` Copy all elements of the vector `input` to the vector `output`.
    `void` | VectorWritable3DType.`copyFrom3D(VectorReadable3DType in_v)` Set the current vector to the contents of the input vector.
    `void` | VectorM4D.`copyFrom3D(VectorReadable3DType in_v)`
    `void` | VectorM3D.`copyFrom3D(VectorReadable3DType in_v)`
    `void` | QuaternionM4D.`copyFrom3D(VectorReadable3DType in_v)`
    `static VectorI3D` | VectorI3D.`crossProduct(VectorReadable3DType v0, VectorReadable3DType v1)` Calculate the cross product of the vectors `v0` and `v1`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`crossProduct(VectorReadable3DType v0, VectorReadable3DType v1, V out)` Return a vector perpendicular to both `v0` and `v1` , saving the result in `out`.
    `static double` | VectorM3D.`distance(VectorM3D.ContextVM3D c, VectorReadable3DType v0, VectorReadable3DType v1)` Calculate the distance between the two vectors `v0` and `v1`.
    `static double` | VectorI3D.`distance(VectorReadable3DType v0, VectorReadable3DType v1)` Calculate the distance between the two vectors `v0` and `v1`.
    `static double` | VectorM3D.`dotProduct(VectorReadable3DType v0, VectorReadable3DType v1)` Calculate the scalar product of the vectors `v0` and `v1`.
    `static double` | VectorI3D.`dotProduct(VectorReadable3DType v0, VectorReadable3DType v1)` Calculate the scalar product of the vectors `v0` and `v1`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`interpolateLinear(VectorM3D.ContextVM3D c, VectorReadable3DType v0, VectorReadable3DType v1, double alpha, V r)` Linearly interpolate between `v0` and `v1` by the amount `alpha`, saving the result to `r`.
    `static VectorI3D` | VectorI3D.`interpolateLinear(VectorReadable3DType v0, VectorReadable3DType v1, double alpha)` Linearly interpolate between `v0` and `v1` by the amount `alpha`.
    `static <M extends MatrixWritable3x3DType,V extends VectorWritable3DType> void` | MatrixM3x3D.`lookAt(MatrixM3x3D.ContextMM3D context, VectorReadable3DType origin, VectorReadable3DType target, VectorReadable3DType up, M out_matrix, V out_translation)` Calculate a rotation and translation representing a "camera" looking from the point `origin` to the point `target`.
    `static <M extends MatrixWritable4x4DType> void` | MatrixM4x4D.`lookAt(MatrixM4x4D.ContextMM4D context, VectorReadable3DType origin, VectorReadable3DType target, VectorReadable3DType up, M out_matrix)` Calculate a matrix representing a "camera" looking from the point `origin` to the point `target`.
    `static QuaternionI4D` | QuaternionI4D.`lookAt(QuaternionI4D.Context context, VectorReadable3DType origin, VectorReadable3DType target, VectorReadable3DType up)` Produce a quaternion that represents a rotation that "looks at" the point at `target` assuming the viewer is at `origin`, using `up` as the "up" vector.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`lookAt(QuaternionM4D.ContextQM4D context, VectorReadable3DType origin, VectorReadable3DType target, VectorReadable3DType up, Q q)` Produce a quaternion that represents a rotation that "looks at" the point at `target` assuming the viewer is at `origin`, using `up` as the "up" vector, saving the result to `q`.
    `static double` | VectorM3D.`magnitude(VectorReadable3DType v)` Calculate the magnitude of the vector `v`.
    `static double` | VectorI3D.`magnitude(VectorReadable3DType v)` Calculate the magnitude of the vector `v`.
    `static double` | VectorM3D.`magnitudeSquared(VectorReadable3DType v)` Calculate the squared magnitude of the vector `v`.
    `static double` | VectorI3D.`magnitudeSquared(VectorReadable3DType v)` Calculate the squared magnitude of the vector `v`.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`makeFromAxisAngle(QuaternionM4D.ContextQM4D c, VectorReadable3DType axis, double angle, Q out)` Produce a quaternion that represents a rotation of `angle` degrees around the axis specified by `axis`, saving the result to `out`.
    `static QuaternionI4D` | QuaternionI4D.`makeFromAxisAngle(VectorReadable3DType axis, double angle)` Produce a quaternion that represents a rotation of `angle` degrees around the axis specified by `axis`.
    `static <M extends MatrixWritable3x3DType> M` | MatrixM3x3D.`makeRotation(double angle, VectorReadable3DType axis, M out)` Generate a matrix that represents a rotation of `angle` radians around the axis `axis` and save to `out`.
    `static <M extends MatrixWritable4x4DType> M` | MatrixM4x4D.`makeRotation(double angle, VectorReadable3DType axis, M out)` Generate a matrix that represents a rotation of `angle` radians around the axis `axis` and save to `out`.
    `static <M extends MatrixWritable4x4DType> M` | MatrixM4x4D.`makeTranslation3D(VectorReadable3DType v, M out)` Generate a matrix that represents a translation of `(v.x, v.y, v.z)` from the origin, and save to `out`.
    `static <V extends VectorWritable3DType> V` | MatrixM3x3D.`multiplyVector3D(MatrixM3x3D.ContextMM3D c, MatrixReadable3x3DType m, VectorReadable3DType v, V out)` Multiply the matrix `m` with the vector `v`, writing the resulting vector to `out`.
    `static MatrixI3x3D` | MatrixI3x3D.`newFromColumns(VectorReadable3DType column_0, VectorReadable3DType column_1, VectorReadable3DType column_2)` Construct a new immutable 3x3 matrix from the given columns.
    `static VectorI3D` | VectorI3D.`normalize(VectorReadable3DType v)` Normalize the vector `v`, preserving its direction but reducing it to unit length.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`normalize(VectorReadable3DType v, V out)` Returns a vector with the same orientation as `v` but with magnitude equal to `1.0` in `out`.
    `static <V extends VectorReadable3DType,U extends VectorWritable3DType> void` | VectorM3D.`orthoNormalize(VectorM3D.ContextVM3D c, VectorReadable3DType v0, U v0_out, VectorReadable3DType v1, U v1_out)` Orthonormalize and return the vectors `v0` and `v1` .
    `static com.io7m.jfunctional.Pair<VectorI3D,VectorI3D>` | VectorI3D.`orthoNormalize(VectorReadable3DType v0, VectorReadable3DType v1)` Orthonormalize and return the vectors `v0` and `v1` .
    `static VectorI3D` | VectorI3D.`projection(VectorReadable3DType p, VectorReadable3DType q)` Calculate the projection of the vector `p` onto the vector `q`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`projection(VectorReadable3DType p, VectorReadable3DType q, V r)` Calculate the projection of the vector `p` onto the vector `q`, saving the result in `r`.
    `static VectorI3D` | VectorI3D.`scale(VectorReadable3DType v, double r)` Scale the vector `v` by the scalar `r`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`scale(VectorReadable3DType v, double r, V out)` Scale the vector `v` by the scalar `r`, saving the result to `out`.
    `void` | MatrixWritable3x3DType.`setRowWith3D(int row, VectorReadable3DType v)` Set row `row` of the matrix to `v`.
    `void` | MatrixHeapArrayM4x4D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | MatrixHeapArrayM3x3D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | MatrixDirectM4x4D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | MatrixDirectM3x3D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | MatrixWritable3x3DType.`setRowWith3DUnsafe(int row, VectorReadable3DType v)` Set row `row` of the matrix to `v`.
    `void` | MatrixHeapArrayM4x4D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`
    `void` | MatrixHeapArrayM3x3D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`
    `void` | MatrixDirectM4x4D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`
    `void` | MatrixDirectM3x3D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`
    `static VectorI3D` | VectorI3D.`subtract(VectorReadable3DType v0, VectorReadable3DType v1)` Subtract the vector `v1` from the vector `v0`.
    `static <V extends VectorWritable3DType> V` | VectorM3D.`subtract(VectorReadable3DType v0, VectorReadable3DType v1, V out)` Subtract the vector `v1` from the vector `v0`, saving the result to `out`.
    `static <V extends VectorWritable3DType & VectorReadable3DType> V` | VectorM3D.`subtractInPlace(V v0, VectorReadable3DType v1)` Subtract the vector `v1` from the vector `v0`, saving the result to `v0`.

    Constructors in com.io7m.jtensors with parameters of type VectorReadable3DType
    Constructor and Description
    `OrthonormalizedI3D(VectorReadable3DType v0, VectorReadable3DType v1, VectorReadable3DType v2)` Orthonormalize and store the vectors `v0`, `v1`, and `v2`.
    `VectorI3D(VectorReadable3DType in_v)` Construct a vector initialized with the values given in the vector `in_v`.
    `VectorM3D(VectorReadable3DType in_v)` Construct a vector initialized with the values given in the vector `v`.

  - ### Uses of VectorReadable3DType in com.io7m.jtensors.bytebuffered

    Subinterfaces of VectorReadable3DType in com.io7m.jtensors.bytebuffered
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `QuaternionByteBuffered4DType` The type of `Quaternion4DType` values that are also byte buffered.
    `interface` | `VectorByteBuffered3DType` The type of `Vector3DType` values that are also byte buffered.
    `interface` | `VectorByteBuffered4DType` The type of `Vector4DType` values that are also byte buffered.

    Classes in com.io7m.jtensors.bytebuffered that implement VectorReadable3DType
    Modifier and Type | Class and Description
    --- | ---
    `class` | `QuaternionByteBufferedM4D` A quaternion type with `double` elements, packed into a `ByteBuffer`.
    `class` | `VectorByteBufferedM3D` A three-element vector type with `double` elements, packed into a `ByteBuffer`.
    `class` | `VectorByteBufferedM4D` A four-element vector type with `double` elements, packed into a `ByteBuffer`.

    Methods in com.io7m.jtensors.bytebuffered with parameters of type VectorReadable3DType
    Modifier and Type | Method and Description
    --- | ---
    `void` | VectorByteBufferedM4D.`copyFrom3D(VectorReadable3DType in_v)`
    `void` | VectorByteBufferedM3D.`copyFrom3D(VectorReadable3DType in_v)`
    `void` | QuaternionByteBufferedM4D.`copyFrom3D(VectorReadable3DType in_v)`
    `void` | MatrixByteBufferedM4x4D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | MatrixByteBufferedM3x3D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | MatrixByteBufferedM4x4D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`
    `void` | MatrixByteBufferedM3x3D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`

  - ### Uses of VectorReadable3DType in com.io7m.jtensors.bytebuffered.parameterized

    Subinterfaces of VectorReadable3DType in com.io7m.jtensors.bytebuffered.parameterized
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `PVectorByteBuffered3DType<T>` The type of `PVector3DType` values that are also byte buffered.
    `interface` | `PVectorByteBuffered4DType<T>` The type of `PVector4DType` values that are also byte buffered.

    Classes in com.io7m.jtensors.bytebuffered.parameterized that implement VectorReadable3DType
    Modifier and Type | Class and Description
    --- | ---
    `class` | `PVectorByteBufferedM3D<T>` A three-element vector type with `double` elements, packed into a `ByteBuffer`.
    `class` | `PVectorByteBufferedM4D<T>` A four-element vector type with `double` elements, packed into a `ByteBuffer`.

    Methods in com.io7m.jtensors.bytebuffered.parameterized with parameters of type VectorReadable3DType
    Modifier and Type | Method and Description
    --- | ---
    `void` | PVectorByteBufferedM4D.`copyFrom3D(VectorReadable3DType in_v)`
    `void` | PVectorByteBufferedM3D.`copyFrom3D(VectorReadable3DType in_v)`
    `void` | PMatrixByteBufferedM4x4D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | PMatrixByteBufferedM3x3D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | PMatrixByteBufferedM4x4D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`
    `void` | PMatrixByteBufferedM3x3D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`

  - ### Uses of VectorReadable3DType in com.io7m.jtensors.parameterized

    Subinterfaces of VectorReadable3DType in com.io7m.jtensors.parameterized
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `PVector3DType<T>` The type of three-element vectors that are both readable and writable, and have `double` elements
    `interface` | `PVector4DType<T>` The type of four-element vectors that are both readable and writable, and have `double` elements
    `interface` | `PVectorReadable3DType<T>` 'Read' interface to phantom-typed three-dimensional vectors with double precision elements.
    `interface` | `PVectorReadable4DType<T>` 'Read' interface to phantom-typed four-dimensional vectors with double precision elements.

    Classes in com.io7m.jtensors.parameterized that implement VectorReadable3DType
    Modifier and Type | Class and Description
    --- | ---
    `class` | `PVectorI3D<T>` A three-dimensional immutable vector type with `double` elements.
    `class` | `PVectorI4D<T>` A four-dimensional immutable vector type with `double` elements.
    `class` | `PVectorM3D<T>` A three-dimensional mutable vector type with `double` elements.
    `class` | `PVectorM4D<T>` A four-dimensional mutable vector type with `double` elements.

    Methods in com.io7m.jtensors.parameterized with parameters of type VectorReadable3DType
    Modifier and Type | Method and Description
    --- | ---
    `void` | PVectorM4D.`copyFrom3D(VectorReadable3DType in_v)`
    `void` | PVectorM3D.`copyFrom3D(VectorReadable3DType in_v)`
    `static <T0,T1> PMatrixI3x3D<T0,T1>` | PMatrixI3x3D.`newFromColumns(VectorReadable3DType column_0, VectorReadable3DType column_1, VectorReadable3DType column_2)` Construct a new immutable 3x3 matrix from the given columns.
    `void` | PMatrixHeapArrayM4x4D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | PMatrixHeapArrayM3x3D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | PMatrixDirectM4x4D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | PMatrixDirectM3x3D.`setRowWith3D(int row, VectorReadable3DType v)`
    `void` | PMatrixHeapArrayM4x4D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`
    `void` | PMatrixHeapArrayM3x3D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`
    `void` | PMatrixDirectM4x4D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`
    `void` | PMatrixDirectM3x3D.`setRowWith3DUnsafe(int row, VectorReadable3DType v)`

Copyright © 2017 <code@io7m.com> http://io7m.com