VI_and | VBI_and | VSI_and | VLI_and | VQI_and | |
VU_and | VUB_and | VUS_and | VUL_and | VUQ_and | VUI_and |
|
Funktion | Bit-weise "AND"-Operation |
|
Syntax C/C++ | #include <VImath.h>
void VI_and( iVector Y, iVector X, ui size, int C );
(analog alle übrigen Funktionen dieser Familie) |
C++ VecObj | #include <OptiVec.h>
void vector<T>::and( const vector<T>& X, const T& C ); |
Pascal/Delphi | uses VImath;
procedure VI_and( Y, X:iVector; size:UIntSize; C:Integer );
(analog alle übrigen Funktionen dieser Familie) |
|
CUDA-Funktion C/C++ | #include <cudaVImath.h>
int cudaVI_and( iVector d_Y, iVector d_X, ui size, int C );
int cusdVI_and( iVector d_Y, iVector d_X, ui size, int *d_C );
void VIcu_and( iVector h_Y, iVector h_X, ui size, int C );
|
CUDA-Funktion Pascal/Delphi | uses VImath;
function cudaVI_and( d_Y, d_X:iVector; size:UIntSize; C:Integer ): IntBool;
function cusdVI_and( d_Y, d_X:iVector; size:UIntSize; d_C:PInteger ): IntBool;
procedure VIcu_and( h_Y, h_X:iVector; size:UIntSize; C:Integer );
|
|
Beschreibung | Yi = (Xi) & C
Die bit-weise AND-Operation mit der in C definierten Bit-Maske wird auf alle Elemente i angewandt. Ein Bit von Yi wird gleich 1 gesetzt, wenn das entsprechende Bit sowohl in Xi als auch in C gleich 1 ist; andernfalls wird es gleich 0 gesetzt. Die vielleicht sinnvollste Anwendung der Funktionen dieser Familie ist die schnelle "modulo"-Operation vorzeichenloser oder positiver Zahlen mit einer ganzzahligen Potenz von 2 als Divisor. Beispielsweise wird eine modulo-Division durch 64 ausgeführt durch:
VU_and( Y, X, size, 64−1 ); |
|
|
|
|