Accelerating the pace of engineering and science

# bitorreduce

Reduce consecutive slice of bits to one bit by performing bitwise OR operation

## Description

example

c = bitorreduce(a) performs a bitwise OR operation on the entire set of bits in the fixed-point input, a, and returns the result as an unsigned integer of word length 1.

example

c = bitorreduce(a, lidx) performs a bitwise OR operation on a consecutive range of bits, starting at position lidx and ending at the LSB (the bit at position 1).

example

c = bitorreduce(a, lidx, ridx) performs a bitwise OR operation on a consecutive range of bits, starting at position lidx and ending at position ridx.

The bitorreduce arguments must satisfy the following condition:

a.WordLength >= lidx >= ridx >= 1

## Examples

expand all

### Perform Bitwise OR Operation on an Entire Set of Bits

Create a fixed-point number.

```a = fi(73,0,8,0);
disp(bin(a))
```
```01001001
```

Perform a bitwise OR operation on the entire set of bits in a.

```c = bitorreduce(a)
```
```c =

1

DataTypeMode: Fixed-point: binary point scaling
Signedness: Unsigned
WordLength: 1
FractionLength: 0
```

Because there is at least one bit in a with a value of 1, the output has a value of 1.

### Perform Bitwise OR Operation on a Range of Bits in a Vector

Create a fixed-point vector.

```a=fi([12,4,8,15],0,8,0);
disp(bin(a))
```
```00001100   00000100   00001000   00001111
```

Perform a bitwise OR operation on the bits of each element of a, starting at position fi(4).

```c=bitorreduce(a,fi(4))
```
```c =

1     1     1     1

DataTypeMode: Fixed-point: binary point scaling
Signedness: Unsigned
WordLength: 1
FractionLength: 0
```

All of the entries of output c have a value of 1 because all of the entries of a have at least one bit with a value of 1 between the positions fi(4) and 1.

### Perform Bitwise OR Operation on a Range of Bits in a Matrix

Create a fixed-point matrix.

```a = fi([7,8,1;5,9,5;8,37,2],0,8,0);
disp(bin(a))
```
```00000111   00001000   00000001
00000101   00001001   00000101
00001000   00100101   00000010
```

Perform a bitwise OR operation on the bits of each element of matrix a beginning at position 5, and ending at position 2.

```c = bitorreduce(a,5,2)
```
```c =

1     1     0
1     1     1
1     1     1

DataTypeMode: Fixed-point: binary point scaling
Signedness: Unsigned
WordLength: 1
FractionLength: 0
```

There is only one element in output c that does not have a value of 1. This condition occurs because the corresponding element in a is the only element of a that does not have any bits with a value of 1 between positions 5 and 2.

## Input Arguments

expand all

### a — Input arrayscalar | vector | matrix | multidimensional array

Input array, specified as a scalar, vector, matrix, or multidimensional array of fixed-point fi objects.

bitorreduce supports both signed and unsigned inputs with arbitrary scaling. The sign and scaling properties do not affect the result type and value. bitorreduce performs the operation on a two's complement bit representation of the stored integer.

Data Types: fixed-point fi

### lidx — Start position of rangescalar

Start position of range specified as a scalar of built-in type. lidx represents the position in the range closest to the MSB.

Data Types: fi|single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

### ridx — End position of rangescalar

End position of range specified as a scalar of built-in type. ridx represents the position in the range closest to the LSB (the bit at position 1).

Data Types: fi|single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

## Output Arguments

expand all

### c — Output arrayscalar | vector | matrix | multidimensional array

Output array, specified as a scalar, vector, matrix, or multidimensional array of fixed-point fi objects. c is unsigned with word length 1.