| 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 ); |  
  | 
 | 
 | 
 |