FunctionAdd two vectors
Syntax C/C++#include <VFmath.h>
void VF_addV( fVector Z, fVector X, fVector Y,ui size );
void VFs_addV( fVector Z, fVector X, fVector Y, ui size, float C );
void VFx_addV( fVector Z, fVector X, fVector Y, ui size, float A, float B );

    (similarly VD_,   VDx_,   VE_,   VEx_,   VI_, etc.)
void VCF_addV( cfVector Z, cfVector X, cfVector Y, ui size );
void VCF_addReV( cfVector Z, cfVector X, fVector Y, ui size );
void VCFx_addV( cfVector Z, cfVector X, cfVector Y, ui size, fComplex A, fComplex B );
void VCFx_addReV( cfVector Z, cfVector X, fVector Y, ui size, fComplex A, fComplex B );

    (similarly VCD_,   VCDx_,   VCE_,   VCEx_)
C++ VecObj#include <OptiVec.h>
void vector<T>::addV( const vector<T>& X, const vector<T>& Y );
void vector<T>::s_addV( const vector<T>& X, const vector<T>& Y, const T& C );
void vector<T>::x_addV( const vector<T>& X, const vector<T>& Y, const T& A, const T& B );
void vector<complex<T>>::addV( const vector<complex<T>>& X, const vector<complex<T>>& Y );
void vector<complex<T>>::addReV( const vector<complex<T>>& X, const vector<T>& Y );
void vector<complex<T>>::x_addV( const vector<complex<T>>& X, const vector<complex<T>>& Y, complex<T> A, complex<T> B );
void vector<complex<T>>::x_addReV( const vector<complex<T>>& X, const vector<T>& Y, complex<T> A, complex<T> B );
Pascal/Delphiuses VFmath;
procedure VF_addV( Z, X, Y:fVector; size:UIntSize );
procedure VFs_addV( Z, X, Y:fVector; size:UIntSize; C:Single );
procedure VFx_addV( Z, X, Y:fVector; size:UIntSize; A, B:Single );

    (similarly VD_,   VDx_,   VE_,   VEx_,   VI_, etc.)
procedure VCF_addV( Z, X, Y:cfVector; size:UIntSize );
procedure VCF_addReV( Z, X:cfVector; Y:fVector; size:UIntSize );
procedure VCFx_addV( Z, X, Y:cfVector; size:UIntSize; A, B:fComplex );
procedure VCFx_addReV( Z, X:cfVector; Y:fVector; size:UIntSize; A, B:fComplex );

    (similarly VCD_, VCDx_, VCE_,   VCEx_)
CUDA function C/C++#include <cudaVFmath.h>
#include <cudaVCFmath.h>
int cudaVF_addV( fVector d_Z, fVector d_X, fVector d_Y,ui size );
int cudaVFs_addV( fVector d_Z, fVector d_X, fVector d_Y, ui size, float C );
int cusdVFs_addV( fVector d_Z, fVector d_X, fVector d_Y, ui size, float *d_C );
int cudaVFx_addV( fVector d_Z, fVector d_X, fVector d_Y, ui size, float A, float B );
int cusdVFx_addV( fVector d_Z, fVector d_X, fVector d_Y, ui size, float *d_A, float *d_B );
int cudaVCF_addReV( cfVector d_Z, cfVector d_X, fVector d_Y, ui size );
int cudaVCFx_addReV( cfVector d_Z, cfVector d_X, fVector d_Y, ui size, fComplex A, fComplex B );
int cusdVCFx_addReV( cfVector d_Z, cfVector d_X, fVector d_Y, ui size, fComplex *d_A, fComplex *d_B );
void VFcu_addV( fVector h_Z, fVector h_X, fVector h_Y,ui size );
void VFscu_addV( fVector h_Z, fVector h_X, fVector h_Y, ui size, float C );
void VFxcu_addV( fVector h_Z, fVector h_X, fVector h_Y, ui size, float A, float B );
void VCFcu_addReV( cfVector h_Z, cfVector h_X, fVector h_Y, ui size );
void VCFxcu_addV( cfVector h_Z, cfVector h_X, cfVector h_Y, ui size, fComplex A, fComplex B );
void VCFxcu_addReV( cfVector h_Z, cfVector h_X, fVector h_Y, ui size, fComplex A, fComplex B );
CUDA function Pascal/Delphiuses VFmath, VCFmath;
function cudaVF_addV( d_Z, d_X, d_Y:fVector; size:UIntSize ): IntBool;
function cudaVFs_addV( d_Z, d_X, d_Y:fVector; size:UIntSize; C:Single ): IntBool;
function cusdVFs_addV( d_Z, d_X, d_Y:fVector; size:UIntSize; d_C:PSingle ): IntBool;
function cudaVFx_addV( d_Z, d_X, d_Y:fVector; size:UIntSize; A, B:Single ): IntBool;
function cusdVFx_addV( d_Z, d_X, d_Y:fVector; size:UIntSize; d_A, d_B:PSingle ): IntBool;
function cudaVCF_addReV( d_Z, d_X:cfVector; d_Y:fVector; size:UIntSize ): IntBool;
function cudaVCFx_addReV( d_Z, d_X:cfVector; d_Y:fVector; size:UIntSize; A, B:fComplex ): IntBool;
function cusdVCFx_addReV( d_Z, d_X:cfVector; d_Y:fVector; size:UIntSize; d_A, d_B:PfComplex ): IntBool;
procedure VFcu_addV( h_Z, h_X, h_Y:fVector; size:UIntSize );
procedure VFscu_addV( h_Z, h_X, h_Y:fVector; size:UIntSize; C:Single );
procedure VFxcu_addV( h_Z, h_X, h_Y:fVector; size:UIntSize; A, B:Single );
procedure VCFcu_addReV( h_Z, h_X:cfVector; h_Y:fVector; size:UIntSize );
procedure VCFxcu_addReV( h_Z, h_X:cfVector; h_Y:fVector; size:UIntSize; A, B:fComplex );
Descriptionsimple versions: Zi = Xi + Yi
scaled versions: Zi = C * (Xi + Yi)
expanded versions: Zi = (A * Xi + B) + Yi
The complex floating-point versions exist in two variants. In the first variant (e.g.VCF_addV,   VCFx_addV), X, Y, and Z are all complex; in the second variant, Y is real-valued (e.g., VCF_addReV - "add a real vector").
Error handlingfloating-point versions: none;
integer versions: see chapter 5.2.
Return valuenone
See alsoVF_addC,   VF_add2V,   VF_subV,   VF_mulV,   VF_divV,   VF_accV,   VF_addVI

VectorLib Table of Contents  OptiVec home