cOMS/Math/Matrix/VectorFloat32.h
Dennis Eichhorn 3cd7ada19e
Some checks failed
CI / code-tests: ${{ matrix.os }} / ${{ matrix.platform }} (ubuntu-latest, x64) (push) Has been cancelled
CI / code-tests: ${{ matrix.os }} / ${{ matrix.platform }} (ubuntu-latest, x86) (push) Has been cancelled
CI / general_module_workflow_c (push) Has been cancelled
improve
2024-05-26 02:18:15 +02:00

157 lines
3.4 KiB
C++

/**
* Karaka
*
* @package Stdlib
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://jingga.app
*/
#ifndef MATH_MATRIX_VECTORFLOAT32_H
#define MATH_MATRIX_VECTORFLOAT32_H
#include "../Stdlib/SIMD/SIMD_F32.h"
namespace Math::Matrix::VectorFloat32
{
struct v3_f32_4_simd {
union {
struct {
union {
f32_4_simd x;
f32_4_simd r;
};
union {
f32_4_simd y;
f32_4_simd g;
};
union {
f32_4_simd z;
f32_4_simd b;
};
};
f32_4_simd v[3];
};
};
struct v3_f32_8_simd {
union {
struct {
union {
f32_8_simd x;
f32_8_simd r;
};
union {
f32_8_simd y;
f32_8_simd g;
};
union {
f32_8_simd z;
f32_8_simd b;
};
};
f32_8_simd v[3];
};
};
struct v3_f32_16_simd {
union {
struct {
union {
f32_16_simd x;
f32_16_simd r;
};
union {
f32_16_simd y;
f32_16_simd g;
};
union {
f32_16_simd z;
f32_16_simd b;
};
};
f32_16_simd v[3];
};
};
struct v4_f32_4_simd {
union {
struct {
union {
f32_4_simd x;
f32_4_simd r;
};
union {
f32_4_simd y;
f32_4_simd g;
};
union {
f32_4_simd z;
f32_4_simd b;
};
union {
f32_4_simd w;
f32_4_simd a;
};
};
f32_4_simd v[4];
};
};
struct v4_f32_8_simd {
union {
struct {
union {
f32_8_simd x;
f32_8_simd r;
};
union {
f32_8_simd y;
f32_8_simd g;
};
union {
f32_8_simd z;
f32_8_simd b;
};
union {
f32_8_simd w;
f32_8_simd a;
};
};
f32_8_simd v[4];
};
};
struct v4_f32_16_simd {
union {
struct {
union {
f32_16_simd x;
f32_16_simd r;
};
union {
f32_16_simd y;
f32_16_simd g;
};
union {
f32_16_simd z;
f32_16_simd b;
};
union {
f32_16_simd w;
f32_16_simd a;
};
};
f32_16_simd v[4];
};
};
} // namespace Math::Matrix::VectorFloat32
#endif