1
2
3
4
5
6
7 package spec
8
9
10
11
12
13
14 func And[E Ints | Uints | MaskElt, W Width](x, y Vec[E, W]) (z Vec[E, W]) {
15 return map2[E, W, E, W](x, y, func(x, y E) E {
16 return x & y
17 })
18 }
19
20
21
22
23 func AndNot[E Ints | Uints | MaskElt, W Width](x, y Vec[E, W]) (z Vec[E, W]) {
24 return map2[E, W, E, W](x, y, func(x, y E) E {
25 return x &^ y
26 })
27 }
28
29
30
31
32
33
34 func Or[E Ints | Uints | MaskElt, W Width](x, y Vec[E, W]) (z Vec[E, W]) {
35 return map2[E, W, E, W](x, y, func(x, y E) E {
36 return x | y
37 })
38 }
39
40
41
42
43
44
45 func Xor[E Ints | Uints | MaskElt, W Width](x, y Vec[E, W]) (z Vec[E, W]) {
46 return map2[E, W, E, W](x, y, func(x, y E) E {
47 return x ^ y
48 })
49 }
50
51
52
53
54 func Not[E Ints | Uints | MaskElt, W Width](x Vec[E, W]) (z Vec[E, W]) {
55 return map1[E, W, E, W](x, func(x E) E {
56 return ^x
57 })
58 }
59
View as plain text