### updating oE rotate_bits

#### rotate_bits

```include math.e
namespace math
public function rotate_bits(object source_number, integer shift_distance)
```

rotates the bits in the input value by the specified distance.

##### Parameters:
1. source_number : object: value or values whose bits will be be rotated.
2. shift_distance : integer: number of bits to be moved by.
• If source_number is a sequence, each element is rotated.
• The value(s) in source_number are first truncated to a 32-bit integer.
• The output is truncated to a 32-bit integer.
• If shift_distance is negative, the bits in source_number are rotated left.
• If shift_distance is positive, the bits in source_number are rotated right.
• If shift_distance is zero, the bits in source_number are not rotated.
##### Returns:

Atom or atoms containing a 32-bit integer. A single atom in source_number is an atom, or a sequence in the same form as source_number containing 32-bit integers.

##### Example 1:
```? rotate_bits(7, -3) --> 56
? rotate_bits(0, -9) --> 0
? rotate_bits(4, -7) --> 512
? rotate_bits(8, -4) --> 128
? rotate_bits(0xFE427AAC, -7) --> 0x213D567F
? rotate_bits(-7, -3) --> -49  which is 0xFFFFFFCF
? rotate_bits(131, 0) --> 131
? rotate_bits(184.464, 0) --> 184
? rotate_bits(999_999_999_999_999, 0) --> -1530494977 which is 0xA4C67FFF
? rotate_bits(184, 3) -- 23
? rotate_bits(48, 2) --> 12
? rotate_bits(121, 3) --> 536870927
? rotate_bits(0xFE427AAC, 7) -->  0x59FC84F5
? rotate_bits(-7, 3) --> 0x3FFFFFFF
? rotate_bits({48, 121}, 2) --> {12, 1073741854}
```