# MATRIX AND CUSTOM TYPES

## 3x3-floating point matrix

```
float3x3 a = float3x3(1.0, ..., 1.0);
float3x3 b = float3x3(1.0);
float3x3 c = float3x3(aFloat3, bFloat3, cFloat3);
```

A single precision, floating point matrix type with nine components.

There are several ways to initialize a matrix:

- Providing a scalar value for each component.
- Providing one scalar value that is used for all components.
- Providing three vectors of dimension three used as column vectors.

## 4x4-floating point matrix

```
float4x4 a = float4x4(1.0, ..., 1.0);
float4x4 b = float4x4(1.0);
float4x4 c = float4x4(aFloat4, bFloat4, cFloat4, dFloat4);
```

A single precision, floating point matrix type with sixteen components.

There are several ways to initialize a matrix:

- Providing a scalar value for each component.
- Providing one scalar value that is used for all components.
- Providing four vectors of dimension four used as column vectors.

## Data structure

`struct Name {}`

A composite data type that defines a collection of variables with arbitrary data types.

## Class

`class Name {}`

A composite data type that defines a collection of variables with arbitrary data types.