nlib
SimdFloat.h File Reference

Defines the class and functions for SIMD computations on single-precision floating-point numbers. More...

#include <math.h>
#include <float.h>
#include "nn/nlib/Config.h"
#include "nn/nlib/simd/SimdInt.h"

Go to the source code of this file.

Classes

struct  nlib_f128x2_t
 The type for two SIMD registers for 128-bit, single-precision, floating-point numbers. More...
 
struct  nn::nlib::simd::each_float_tag
 The tag for representing a single-precision floating-point number with an empty structure. More...
 
class  nn::nlib::simd::F128
 The class for single-precision floating point SIMD computations using128-bit registers (MM0-XMM15 for SSE, and Q0-Q15 for NEON). More...
 
struct  nn::nlib::simd::SimdMatrix
 The structure for keeping a 4x4 matrix. More...
 
struct  nn::nlib::simd::Float3
 The type for reading and writing three-dimensional vectors in memory. Keeps float-type x, y, and z values as data members. More...
 
struct  nn::nlib::simd::Float4
 The type for reading and writing four-dimensional vectors in memory. Keeps float-type x, y, z, and w values as data members. More...
 
struct  nn::nlib::simd::Float3x3
 The type for reading and writing 3x3 matrices in memory. The data member m is a 3x3 matrix. More...
 
struct  nn::nlib::simd::Float3x4
 The type for reading and writing 3x4 matrices in memory. The data member m is a 3x4 matrix, located with 16-byte alignment. More...
 
struct  nn::nlib::simd::Float4x3
 The type for reading and writing 4x3 matrices in memory. The data member m is a 4x3 matrix, located with 16-byte alignment. More...
 
struct  nn::nlib::simd::Float4x4
 The type for reading and writing 4x4 matrices in memory. The data member m is a 4x4 matrix, located with 16-byte alignment. More...
 

Namespaces

 nn::nlib
 Implements stream-related classes usually commonly used, various containers, and other gadget classes. nlib_ns is an alias.
 
 nn::nlib::simd
 Implements the classes and functions for SIMD computations on integers and single-precision, floating-point, numbers.
 

Macros

#define NLIB_F128_TRANSPOSE(row0, row1, row2, row3)
 A macro for in-place matrix transposition.
 

Typedefs

typedef __m128 nlib_f128_t
 The type for a SIMD register for 128-bit, single-precision, floating-point numbers. More...
 
typedef nlib_f128_t nn::nlib::simd::f128
 nlib_f128_t is defined using typedef.
 
typedef nlib_f128x2_t nn::nlib::simd::f128x2
 nlib_f128x2_t is defined using typedef.
 
typedef const f128 nn::nlib::simd::f128arg
 const f128 or const f128& is defined using typedef.
 
typedef f128 nn::nlib::simd::SimdVector
 f128 is defined using typedef. Used when handling three-dimensional or four-dimensional vectors.
 
typedef f128arg nn::nlib::simd::SimdVectorArg
 f128arg is defined using typedef.
 
typedef f128 nn::nlib::simd::SimdQuaternion
 f128 is defined using typedef. Used when handling quaternions.
 
typedef f128arg nn::nlib::simd::SimdQuaternionArg
 f128arg is defined using typedef.
 
typedef f128 nn::nlib::simd::SimdPlane
 f128 is defined using typedef. Used when handling planes.
 
typedef f128arg nn::nlib::simd::SimdPlaneArg
 f128arg is defined using typedef.
 
typedef f128 nn::nlib::simd::SimdSphere
 f128 is defined using typedef. Used when handling spheres.
 
typedef f128arg nn::nlib::simd::SimdSphereArg
 f128arg is defined using typedef.
 

Variables

Tag Constants
constexpr const each_float_tag nn::nlib::simd::each_float = {}
 The tag for representing a single-precision floating-point number with an each_float_tag-type constant object.
 

Detailed Description

Defines the class and functions for SIMD computations on single-precision floating-point numbers.

Definition in file SimdFloat.h.

Typedef Documentation

§ nlib_f128_t

The type for a SIMD register for 128-bit, single-precision, floating-point numbers.

Description
Platform Definition
SSE __m128 is defined using typedef.
NEON float32x4_t is defined using typedef.
Generic Defines a structure.

Definition at line 34 of file SimdFloat.h.