00001
00013 #ifndef C4E_BVEC_H
00014 #define C4E_BVEC_H
00015
00016
00017
00018
00019 #include "c4e_sys.h"
00020
00021
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00053 void c4e_bvec_not(C4E_CONST C4eArchDigit* px, C4eArchIdx len,
00054 C4eArchDigit* py);
00055
00056
00057
00074 void c4e_bvec_xor(C4E_CONST C4eArchDigit* pa, C4E_CONST C4eArchDigit* pb,
00075 C4eArchIdx len, C4eArchDigit* py);
00076
00077
00078
00079
00096 void c4e_bvec_or(C4E_CONST C4eArchDigit* pa, C4E_CONST C4eArchDigit* pb,
00097 C4eArchIdx len, C4eArchDigit* py);
00098
00099
00100
00117 void c4e_bvec_and(C4E_CONST C4eArchDigit* pa, C4E_CONST C4eArchDigit* pb,
00118 C4eArchIdx len, C4eArchDigit* py);
00119
00120
00121
00132 void c4e_bvec_digits_shl(C4eArchDigit* v, C4eArchIdx len, C4eArchIdx shift);
00133
00134
00135
00147 C4eArchDigit c4e_bvec_bits_shl(C4eArchDigit* v, C4eArchIdx len,
00148 C4eArchUint shift);
00149
00150
00151
00152
00166 C4eArchIdx c4e_bvec_shl(C4eArchDigit* v, C4eArchIdx len, C4eArchSize shift);
00167
00168
00169
00170
00180 void c4e_bvec_digits_shr(C4eArchDigit* v, C4eArchIdx len,
00181 C4eArchIdx shift);
00182
00183
00184
00196 void c4e_bvec_bits_shr(C4eArchDigit* v, C4eArchIdx len, C4eArchUint shift);
00197
00198
00199
00211 C4eArchIdx c4e_bvec_shr(C4eArchDigit* v, C4eArchIdx len, C4eArchSize shift);
00212
00213
00214
00226 void c4e_bvec_rol(C4E_CONST C4eArchDigit* C4E_RESTRICT v, C4eArchIdx len,
00227 C4eArchSize shift, C4eArchDigit* C4E_RESTRICT result);
00228
00229
00230
00242 void c4e_bvec_ror(C4E_CONST C4eArchDigit* C4E_RESTRICT v, C4eArchIdx len,
00243 C4eArchSize shift, C4eArchDigit* C4E_RESTRICT result);
00244
00245
00246
00247 #ifdef __cplusplus
00248 }
00249 #endif
00250
00251
00252 #endif
00253
00254
00255
00256
00257
00258