AuxPort 0.2
Modules for Audio Software Development
Loading...
Searching...
No Matches
AuxPort::Simd::FloatingPoint Class Referenceabstract

SIMD Wrapper for Single-precision floating point operations
More...

#include <AuxSimd.h>

Inheritance diagram for AuxPort::Simd::FloatingPoint:
AuxPort::Simd::Float128 AuxPort::Simd::Float256

Protected Member Functions

virtual void add (std::vector< float > &result, const std::vector< float > &vec1, const std::vector< float > &vec2)=0
 Adds two vectors using SIMD extensions [Overridable].
 
virtual void multiply (std::vector< float > &result, const std::vector< float > &vec1, const std::vector< float > &vec2)=0
 Multiples two vectors using SIMD extensions [Overridable].
 
virtual void sqrt (std::vector< float > &result, const std::vector< float > &vec)=0
 Return square root of values in the vector using SIMD extensions [Overridable].
 
virtual void fma (std::vector< float > &result, const std::vector< float > &vec1, const std::vector< float > &vec2, const std::vector< float > &vec3)=0
 Returns result after fused mutltiply-add using SIMD extensions [Overridable]. For example: result[i] will be equal to (vec1[i] * vec2[i]) + vec3[i].
 

Detailed Description

SIMD Wrapper for Single-precision floating point operations

Definition at line 19 of file AuxSimd.h.

Member Function Documentation

◆ add()

virtual void AuxPort::Simd::FloatingPoint::add ( std::vector< float > & result,
const std::vector< float > & vec1,
const std::vector< float > & vec2 )
protectedpure virtual

Adds two vectors using SIMD extensions [Overridable].

Implemented in AuxPort::Simd::Float128, and AuxPort::Simd::Float256.

◆ fma()

virtual void AuxPort::Simd::FloatingPoint::fma ( std::vector< float > & result,
const std::vector< float > & vec1,
const std::vector< float > & vec2,
const std::vector< float > & vec3 )
protectedpure virtual

Returns result after fused mutltiply-add using SIMD extensions [Overridable]. For example: result[i] will be equal to (vec1[i] * vec2[i]) + vec3[i].

Implemented in AuxPort::Simd::Float128, and AuxPort::Simd::Float256.

◆ multiply()

virtual void AuxPort::Simd::FloatingPoint::multiply ( std::vector< float > & result,
const std::vector< float > & vec1,
const std::vector< float > & vec2 )
protectedpure virtual

Multiples two vectors using SIMD extensions [Overridable].

Implemented in AuxPort::Simd::Float128, and AuxPort::Simd::Float256.

◆ sqrt()

virtual void AuxPort::Simd::FloatingPoint::sqrt ( std::vector< float > & result,
const std::vector< float > & vec )
protectedpure virtual

Return square root of values in the vector using SIMD extensions [Overridable].

Implemented in AuxPort::Simd::Float128, and AuxPort::Simd::Float256.


The documentation for this class was generated from the following file: