math_symbols 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/math_symbols/version.rb +1 -1
- data/lib/math_symbols.rb +7 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d5fe13112df6af6af8ef35c70768dd1f1ec89a5ca4376895ec4e2e169228636
|
4
|
+
data.tar.gz: dbb484558aa8ea29c8a10610637fd0d05ea0d0aa438df6b5edd34e37d51f639a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24887f1adb5e9b1438e485393bf9b074d7d31ec835498f3a0965ea7d4ed1fbe2860a6b1c1793df7b0e1bb8b4a213201def56f840c11142cbbdc828569a60dfa9
|
7
|
+
data.tar.gz: fec8a8574e27cc646974caa84ab6315be2f20825aa8af30dec5e0933c8cd7c61ac3c4ccf456af8f1be6da567e1a7d37e7330c58a99c9d22040204c52bde73496
|
data/lib/math_symbols/version.rb
CHANGED
data/lib/math_symbols.rb
CHANGED
@@ -104,12 +104,17 @@ module MathSymbols # rubocop:disable Metrics/ModuleLength
|
|
104
104
|
end
|
105
105
|
|
106
106
|
def ⇔(value)
|
107
|
-
|
107
|
+
max_bit_length = value.bit_length
|
108
|
+
max_bit_length = bit_length if bit_length > max_bit_length
|
109
|
+
mask = (1 << max_bit_length) - 1
|
110
|
+
|
111
|
+
(self & value) | ((mask ^ self) & (mask ^ value))
|
108
112
|
end
|
109
113
|
alias :↔ :⇔
|
110
114
|
|
111
115
|
def ⇒(value)
|
112
|
-
|
116
|
+
mask = (1 << bit_length) - 1
|
117
|
+
(mask ^ self) | value
|
113
118
|
end
|
114
119
|
end
|
115
120
|
|