megengine.functional.right_shift¶
- right_shift(x, y)[source]¶
Element-wise right shift.
Shifts the bits of each element \(x_i\) of the input tensor \(x\) to the right according to the respective element \(y_i\) of the input tensor \(y\).
Note
The
>>
operator can be used as a shorthand forright_shift
on Tensors.Note
This operation must be an arithmetic shift (i.e., sign-propagating) and thus equivalent to floor division by a power of two.
- Parameters
x – first input tensor. Should have an integer data type.
y – second input tensor. Must be compatible with \(x\) (see Broadcasting mechanism and rules ). Should have an integer data type. Each element must be greater than or equal to
0
.
- Returns
a tensor containing the result of the element-wise right shift operation. The returned tensor must have the a data type determined by Type promotion rules.
Examples
>>> F.right_shift([2, 4, 8], 1) Tensor([1 2 4], dtype=int32, device=xpux:0)
Element-wise left shift:
>>> x = Tensor([2, 8, 24]) >>> y = Tensor([1, 2, 3]) >>> F.right_shift(x, y) Tensor([1 2 3], dtype=int32, device=xpux:0)
Broadcasting:
>>> F.right_shift([10, 20, 40], 2) Tensor([ 2 5 10], dtype=int32, device=xpux:0)