Structure

# simd_double4x4

A matrix of four columns and four rows containing double-precision values.

## Topics

### Initializers

`init()`

Creates a new matrix.

`init(Double)`

Creates a new matrix with the specified scalar value on the main diagonal.

`init(diagonal: SIMD4<Double>)`

Creates a new matrix with the specified vector on the main diagonal.

`init([SIMD4<Double>])`

Creates a new matrix from an array.

`init(simd_quatd)`

Creates a new matrix from the specified quarternion.

`init(SCNMatrix4)`

Creates a new matrix from the specified SceneKit matrix.

`init(SCNMatrix4)`

Creates a new matrix from the specified SceneKit matrix.

`init(SIMD4<Double>, SIMD4<Double>, SIMD4<Double>, SIMD4<Double>)`

Creates a new matrix with the specified vectors as columns.

`init(rows: [SIMD4<Double>])`

Creates a new matrix with the specified rows.

### Matrix Properties

`var determinant: Double`

The determinant of the matrix.

`var transpose: double4x4`

The transpose of the matrix.

`var debugDescription: String`

A representation of the matrix that is suitable for debugging.

### Equality Functions

`func simd_equal(simd_double4x4, simd_double4x4) -> simd_bool`

Returns true if every element in a matrix is exactly equal to the corresponding element in a second matrix.

`func simd_almost_equal_elements(simd_double4x4, simd_double4x4, Double) -> simd_bool`

Returns true if every element in a matrix is within a specified tolerance to the corresponding element in a second matrix.

`func simd_almost_equal_elements_relative(simd_double4x4, simd_double4x4, Double) -> simd_bool`

Returns true if every element in a matrix is within a specified double-precision relative tolerance to the corresponding element in a second matrix.

### Element Access

`subscript(Int) -> SIMD4<Double>`

Accesses the column at the specified position.

`subscript(Int, Int) -> Double`

Accesses the element at the specified position.

## Relationships

### Matrices: Double-Precision Values

`struct simd_double2x2`

A matrix of two columns and two rows containing double-precision values.

`struct simd_double3x2`

A matrix of three columns and two rows containing double-precision values.

`struct simd_double4x2`

A matrix of four columns and two rows containing double-precision values.

`struct simd_double2x3`

A matrix of two columns and three rows containing double-precision values.

`struct simd_double3x3`

A matrix of three columns and three rows containing double-precision values.

`struct simd_double4x3`

A matrix of four columns and three rows containing double-precision values.

`struct simd_double2x4`

A matrix of two columns and four rows containing double-precision values.

`struct simd_double3x4`

A matrix of three columns and four rows containing double-precision values.