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>
/// Adds all scalars of the vector.
/// </summary>
/// <param name="v">Vector</param>
/// <returns>Sum of components.</returns>
float vec4_hadd_cvtf32(const Phanes::Core::Types::Vec4f32Reg v)
{
return v.data[0] + v.data[1] + v.data[2] + v.data[3];
}
/// <summary>
/// Gets the absolute value of each scalar in the vector.
/// </summary>
/// <param name="v">Vector</param>
/// <returns>Vector with all components positive.</returns>
Phanes::Core::Types::Vec4f32Reg vec4_abs(const Phanes::Core::Types::Vec4f32Reg v)
{
Phanes::Core::Types::Vec4f32Reg r;
r.data[0] = Abs(v.data[0]); /// <summary>
} /// Adds all scalars of the vector.
/// </summary>
/// <summary> /// <param name="v">Vector</param>
/// Gets the dot product of the /// <returns>Sum of components.</returns>
/// </summary> float vec4_hadd_cvtf32(const Phanes::Core::Types::Vec4f32Reg v)
/// <param name="v1"></param> {
/// <param name="v2"></param> return v.data[0] + v.data[1] + v.data[2] + v.data[3];
/// <returns></returns> }
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];
return r; /// <summary>
} /// Gets the absolute value of each scalar in the vector.
/// </summary>
/// <summary> /// <param name="v">Vector</param>
/// Gets the dot product of the /// <returns>Vector with all components positive.</returns>
/// </summary> Phanes::Core::Types::Vec4f32Reg vec4_abs(const Phanes::Core::Types::Vec4f32Reg v)
/// <param name="v1"></param> {
/// <param name="v2"></param> Phanes::Core::Types::Vec4f32Reg r;
/// <returns></returns>
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];
}
Phanes::Core::Types::Vec2f64Reg vec2_eq(const Phanes::Core::Types::Vec2f64Reg v1, const Phanes::Core::Types::Vec2f64Reg v2) r.data[0] = Abs(v.data[0]);
{ }
Phanes::Core::Types::Vec4f64Reg r;
r.data[0] = (Phanes::Core::Math::Abs(v1.data[0] - v2.data[0]) < P_FLT_INAC) ? 0xFFFFFFFF : 0; /// <summary>
r.data[1] = (Phanes::Core::Math::Abs(v1.data[1] - v2.data[1]) < P_FLT_INAC) ? 0xFFFFFFFF : 0; /// Gets the dot product of the
} /// </summary>
} /// <param name="v1"></param>
/// <param name="v2"></param>
/// <returns></returns>
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];
return r;
}
/// <summary>
/// Gets the dot product of the
/// </summary>
/// <param name="v1"></param>
/// <param name="v2"></param>
/// <returns></returns>
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];
}
Phanes::Core::Types::Vec2f64Reg vec2_eq(const Phanes::Core::Types::Vec2f64Reg v1,
const Phanes::Core::Types::Vec2f64Reg v2)
{
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[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