Om  1.0.0
A universal framework for multimedia simulation
Classes | Namespaces | Functions
omSIMDScalarFloat32_4.h File Reference
#include "omMathConfig.h"
#include "omVector3D.h"
#include "omSIMDScalar.h"
#include "omSIMDScalarInt32_4.h"

Classes

class  om::math::SIMDScalar< Float32, 4 >
 A class representing a 4-component 32-bit floating-point SIMD scalar. More...
 

Namespaces

 om
 The enclosing namespace for the entire Om library.
 
 om::math
 A namespace containing classes and functions that do fast math operations.
 

Functions

SIMDScalar< Float32, 4 > om::math::abs (const SIMDScalar< Float32, 4 > &scalar)
 Compute the absolute value of each component of the specified SIMD scalar and return the result. More...
 
SIMDScalar< Float32, 4 > om::math::ceiling (const SIMDScalar< Float32, 4 > &scalar)
 Compute the ceiling of each component of the specified SIMD scalar and return the result. More...
 
SIMDScalar< Float32, 4 > om::math::floor (const SIMDScalar< Float32, 4 > &scalar)
 Compute the floor of each component of the specified SIMD scalar and return the result. More...
 
SIMDScalar< Float32, 4 > om::math::sqrt (const SIMDScalar< Float32, 4 > &scalar)
 Compute the square root of each component of the specified SIMD scalar and return the result. More...
 
SIMDScalar< Float32, 4 > om::math::reciprocal (const SIMDScalar< Float32, 4 > &v)
 Return an approximate reciprocal of the specified value with 23 bits of precision. More...
 
SIMDScalar< Float32, 4 > om::math::reciprocalSqrt (const SIMDScalar< Float32, 4 > &v)
 Return an approximate reciprocal square root of the specified value with 23 bits of precision. More...
 
template<UInt i1, UInt i2, UInt i3, UInt i4>
SIMDScalar< Float32, 4 > om::math::shuffle (const SIMDScalar< Float32, 4 > &scalar)
 Pick 4 elements from the specified SIMD scalar and return the result. More...
 
template<UInt i1, UInt i2, UInt i3, UInt i4>
SIMDScalar< Float32, 4 > om::math::shuffle (const SIMDScalar< Float32, 4 > &scalar1, const SIMDScalar< Float32, 4 > &scalar2)
 Pick two elements from each SIMD scalar and return the result. More...
 
SIMDScalar< Float32, 4 > om::math::select (const SIMDScalar< Int32, 4 > &selector, const SIMDScalar< Float32, 4 > &scalar1, const SIMDScalar< Float32, 4 > &scalar2)
 Select elements from the first SIMD scalar if the selector is TRUE, otherwise from the second. More...
 
SIMDScalar< Float32, 4 > om::math::lows (const SIMDScalar< Float32, 4 > &scalar)
 Copy the first and third element of the specified SIMD scalar into the second and fourth places. More...
 
SIMDScalar< Float32, 4 > om::math::highs (const SIMDScalar< Float32, 4 > &scalar)
 Copy the second and fourth element of the specified SIMD scalar into the first and third places. More...
 
SIMDScalar< Float32, 4 > om::math::subAdd (const SIMDScalar< Float32, 4 > &scalar1, const SIMDScalar< Float32, 4 > &scalar2)
 Subtract the first and third elements and add the second and fourth. More...
 
SIMDScalar< Float32, 4 > om::math::min (const SIMDScalar< Float32, 4 > &scalar1, const SIMDScalar< Float32, 4 > &scalar2)
 Compute the minimum of each component of the specified SIMD scalars and return the result. More...
 
SIMDScalar< Float32, 4 > om::math::max (const SIMDScalar< Float32, 4 > &scalar1, const SIMDScalar< Float32, 4 > &scalar2)
 Compute the maximum of each component of the specified SIMD scalars and return the result. More...
 
SIMDScalar< Float32, 4 > om::math::min (const SIMDScalar< Float32, 4 > &scalar)
 Compute the minimum component of the specified SIMD scalar and return the wide result. More...
 
SIMDScalar< Float32, 4 > om::math::max (const SIMDScalar< Float32, 4 > &scalar)
 Compute the maximum component of the specified SIMD scalar and return the wide result. More...
 
SIMDScalar< Float32, 4 > om::math::cross (const SIMDScalar< Float32, 4 > &v1, const SIMDScalar< Float32, 4 > &v2)
 Return the 3D cross product of two vectors, where each vector has the form (x,y,z,0). More...
 
SIMDScalar< Float32, 4 > om::math::dot (const SIMDScalar< Float32, 4 > &v1, const SIMDScalar< Float32, 4 > &v2)
 Return the dot product of two vectors. More...
 
SIMDScalar< Float32, 4 > om::math::normalize (const SIMDScalar< Float32, 4 > &v)
 Normalize the specified vector using a fast approximate algorithm, accurate to ~23 bits. More...
 
SIMDScalar< Float32, 4 > om::math::ln (const SIMDScalar< Float32, 4 > &v)
 Compute and return the natural logarithm of the specified vector. More...
 
SIMDScalar< Float32, 4 > om::math::log10 (const SIMDScalar< Float32, 4 > &v)
 Compute and return the base-10 logarithm of the specified vector. More...
 
SIMDScalar< Float32, 4 > om::math::sin (const SIMDScalar< Float32, 4 > &v)
 Compute and return the sine of the specified vector. More...
 
SIMDScalar< Float32, 4 > om::math::cos (const SIMDScalar< Float32, 4 > &v)
 Compute and return the cosine of the specified vector. More...