Applies an 'or' operation between self and other's digits. Both self and other must be logical numbers.
(self, other, context=None)
| 3373 | context) |
| 3374 | |
| 3375 | def logical_or(self, other, context=None): |
| 3376 | """Applies an 'or' operation between self and other's digits. |
| 3377 | |
| 3378 | Both self and other must be logical numbers. |
| 3379 | """ |
| 3380 | if context is None: |
| 3381 | context = getcontext() |
| 3382 | |
| 3383 | other = _convert_other(other, raiseit=True) |
| 3384 | |
| 3385 | if not self._islogical() or not other._islogical(): |
| 3386 | return context._raise_error(InvalidOperation) |
| 3387 | |
| 3388 | # fill to context.prec |
| 3389 | (opa, opb) = self._fill_logical(context, self._int, other._int) |
| 3390 | |
| 3391 | # make the operation, and clean starting zeroes |
| 3392 | result = "".join([str(int(a)|int(b)) for a,b in zip(opa,opb)]) |
| 3393 | return _dec_from_triple(0, result.lstrip('0') or '0', 0) |
| 3394 | |
| 3395 | def logical_xor(self, other, context=None): |
| 3396 | """Applies an 'xor' operation between self and other's digits. |