chore: Fix import paths.

This commit is contained in:
Thorben Höhne 2025-05-04 00:54:15 +02:00
parent 26e2403fd7
commit 0f0c808817
Signed by: thoehne
GPG Key ID: 60D202D915B81DEC
2 changed files with 1734 additions and 1534 deletions

View File

@ -1,74 +1,80 @@
#pragma once #pragma once
#include "Core/public/Math/SIMD/PhanesSIMDTypes.h" #include "Core/Math/MathCommon.hpp"
#include "Core/public/Math/MathCommon.hpp" #include "Core/Math/SIMD/PhanesSIMDTypes.h"
namespace Phanes::Core::Math::SIMD namespace Phanes::Core::Math::SIMD
{ {
/// <summary> /// <summary>
/// Adds all scalars of the vector. /// Adds all scalars of the vector.
/// </summary> /// </summary>
/// <param name="v">Vector</param> /// <param name="v">Vector</param>
/// <returns>Sum stored in v[0:31].</returns> /// <returns>Sum stored in v[0:31].</returns>
Phanes::Core::Types::Vec4f32Reg vec4_hadd(const Phanes::Core::Types::Vec4f32Reg v) Phanes::Core::Types::Vec4f32Reg vec4_hadd(const Phanes::Core::Types::Vec4f32Reg v)
{ {
Phanes::Core::Types::Vec4f32Reg r; Phanes::Core::Types::Vec4f32Reg r;
r.data[0] = v.data[0] + v.data[1] + v.data[2] + v.data[3]; r.data[0] = v.data[0] + v.data[1] + v.data[2] + v.data[3];
} }
/// <summary> /// <summary>
/// Adds all scalars of the vector. /// Adds all scalars of the vector.
/// </summary> /// </summary>
/// <param name="v">Vector</param> /// <param name="v">Vector</param>
/// <returns>Sum of components.</returns> /// <returns>Sum of components.</returns>
float vec4_hadd_cvtf32(const Phanes::Core::Types::Vec4f32Reg v) float vec4_hadd_cvtf32(const Phanes::Core::Types::Vec4f32Reg v)
{ {
return v.data[0] + v.data[1] + v.data[2] + v.data[3]; return v.data[0] + v.data[1] + v.data[2] + v.data[3];
} }
/// <summary> /// <summary>
/// Gets the absolute value of each scalar in the vector. /// Gets the absolute value of each scalar in the vector.
/// </summary> /// </summary>
/// <param name="v">Vector</param> /// <param name="v">Vector</param>
/// <returns>Vector with all components positive.</returns> /// <returns>Vector with all components positive.</returns>
Phanes::Core::Types::Vec4f32Reg vec4_abs(const Phanes::Core::Types::Vec4f32Reg v) Phanes::Core::Types::Vec4f32Reg vec4_abs(const Phanes::Core::Types::Vec4f32Reg v)
{ {
Phanes::Core::Types::Vec4f32Reg r; Phanes::Core::Types::Vec4f32Reg r;
r.data[0] = Abs(v.data[0]); r.data[0] = Abs(v.data[0]);
} }
/// <summary> /// <summary>
/// Gets the dot product of the /// Gets the dot product of the
/// </summary> /// </summary>
/// <param name="v1"></param> /// <param name="v1"></param>
/// <param name="v2"></param> /// <param name="v2"></param>
/// <returns></returns> /// <returns></returns>
Phanes::Core::Types::Vec4f32Reg vec4_dot(const Phanes::Core::Types::Vec4f32Reg v1, const Phanes::Core::Types::Vec4f32Reg v2) Phanes::Core::Types::Vec4f32Reg vec4_dot(const Phanes::Core::Types::Vec4f32Reg v1,
{ const Phanes::Core::Types::Vec4f32Reg v2)
Phanes::Core::Types::Vec4f32Reg r; {
r.data[0] = v1.data[0] * v1.data[0] + v1.data[1] * v2.data[1] + v1.data[2] * v2.data[2] + v1.data[3] * v2.data[3]; Phanes::Core::Types::Vec4f32Reg r;
r.data[0] = v1.data[0] * v1.data[0] + v1.data[1] * v2.data[1] + v1.data[2] * v2.data[2] +
v1.data[3] * v2.data[3];
return r; return r;
} }
/// <summary> /// <summary>
/// Gets the dot product of the /// Gets the dot product of the
/// </summary> /// </summary>
/// <param name="v1"></param> /// <param name="v1"></param>
/// <param name="v2"></param> /// <param name="v2"></param>
/// <returns></returns> /// <returns></returns>
float vec4_dot_cvtf32(const Phanes::Core::Types::Vec4f32Reg v1, const Phanes::Core::Types::Vec4f32Reg v2) float vec4_dot_cvtf32(const Phanes::Core::Types::Vec4f32Reg v1,
{ const Phanes::Core::Types::Vec4f32Reg v2)
return v1.data[0] * v1.data[0] + v1.data[1] * v2.data[1] + v1.data[2] * v2.data[2] + v1.data[3] * v2.data[3]; {
} return v1.data[0] * v1.data[0] + v1.data[1] * v2.data[1] + v1.data[2] * v2.data[2] +
v1.data[3] * v2.data[3];
}
Phanes::Core::Types::Vec2f64Reg vec2_eq(const Phanes::Core::Types::Vec2f64Reg v1, const Phanes::Core::Types::Vec2f64Reg v2) Phanes::Core::Types::Vec2f64Reg vec2_eq(const Phanes::Core::Types::Vec2f64Reg v1,
{ const Phanes::Core::Types::Vec2f64Reg v2)
Phanes::Core::Types::Vec4f64Reg r; {
Phanes::Core::Types::Vec4f64Reg r;
r.data[0] = (Phanes::Core::Math::Abs(v1.data[0] - v2.data[0]) < P_FLT_INAC) ? 0xFFFFFFFF : 0; r.data[0] =
r.data[1] = (Phanes::Core::Math::Abs(v1.data[1] - v2.data[1]) < P_FLT_INAC) ? 0xFFFFFFFF : 0; (Phanes::Core::Math::Abs(v1.data[0] - v2.data[0]) < P_FLT_INAC) ? 0xFFFFFFFF : 0;
} r.data[1] =
} (Phanes::Core::Math::Abs(v1.data[1] - v2.data[1]) < P_FLT_INAC) ? 0xFFFFFFFF : 0;
}
} // namespace Phanes::Core::Math::SIMD

File diff suppressed because it is too large Load Diff