# 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.