Mjolnir Core
Core functionality of the Mjolnir API
Functions
Core Math

This submodule of the core module contains math functions and classes. More...

Functions

template<Number T_Type>
constexpr auto cross_product (const std::array< T_Type, 3 > &lhs, const std::array< T_Type, 3 > &rhs) noexcept -> std::array< T_Type, 3 >
 Calculate the cross product of two 3d-vectors. More...
 
template<x86::FloatVectorRegister T_RegisterType>
auto cross_product (T_RegisterType lhs, T_RegisterType rhs) noexcept -> T_RegisterType
 Calculate the cross product of two 3d-vectors. More...
 
template<x86::FloatVectorRegister T_RegisterType>
auto determinant_2x2 (const std::array< T_RegisterType, 2 > &mat) noexcept -> x86::ElementType< T_RegisterType >
 Calculate the determinant of a 2x2 matrix. More...
 
template<Number T_Type>
constexpr auto determinant_2x2 (const std::array< T_Type, 4 > &mat) noexcept -> T_Type
 Calculate the determinant of a 2x2 matrix. More...
 
template<x86::FloatVectorRegister T_RegisterType>
auto determinant_3x3 (const std::array< T_RegisterType, 3 > &mat) noexcept -> x86::ElementType< T_RegisterType >
 Calculate the determinant of a 3x3 matrix. More...
 
template<Number T_Type>
constexpr auto determinant_3x3 (const std::array< T_Type, 9 > &mat) noexcept -> T_Type
 Calculate the determinant of a 3x3 matrix. More...
 
template<x86::FloatVectorRegister T_RegisterType>
auto determinant_4x4 (const std::array< T_RegisterType, 4 > &mat) noexcept -> x86::ElementType< T_RegisterType >
 Calculate the determinant of a 4x4 matrix. More...
 
template<Number T_Type>
constexpr auto determinant_4x4 (const std::array< T_Type, 16 > &mat) noexcept -> T_Type
 Calculate the determinant of a 4x4 matrix. More...
 
template<UST t_size, Number T_Type>
constexpr auto dot_product (const std::array< T_Type, t_size > &lhs, const std::array< T_Type, t_size > &rhs) noexcept -> T_Type
 Calculate the dot product of 2 vectors. More...
 
template<UST t_size, x86::FloatVectorRegister T_RegisterType>
auto dot_product (T_RegisterType lhs, T_RegisterType rhs) noexcept -> x86::ElementType< T_RegisterType >
 Calculate the dot product of 2 vectors. More...
 
template<std::integral T_Type>
constexpr auto gauss_summation (T_Type n) -> T_Type
 Calculate the sum of the first n positive numbers. More...
 
template<std::integral T_Type>
constexpr auto is_power_of_2 (T_Type value) noexcept -> bool
 Return true if the passed value is a power of 2. More...
 
template<Number T_Type>
constexpr auto power (T_Type base, std::integral auto exponent) noexcept -> T_Type
 Calculate the power of a number using an integer based exponent. More...
 
template<Number T_Type = UST>
constexpr auto power_of_2 (std::integral auto exponent) noexcept -> T_Type
 Calculate the power of 2 using an integer based exponent. More...
 
template<Number T_Type>
constexpr auto scalar_triple_product (const std::array< T_Type, 3 > &a, const std::array< T_Type, 3 > &b, const std::array< T_Type, 3 > &c) noexcept -> T_Type
 Calculate the scalar triple product of 3 vectors. More...
 
template<x86::FloatVectorRegister T_RegisterType>
auto scalar_triple_product (T_RegisterType a, T_RegisterType b, T_RegisterType c) noexcept -> x86::ElementType< T_RegisterType >
 Calculate the scalar triple product of 3 vectors. More...
 

Detailed Description

This submodule of the core module contains math functions and classes.