# bitorreduce

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

## Syntax

``c = bitorreduce(a)``
``c = bitorreduce(a, lidx)``
``c = bitorreduce(a, lidx, ridx)``

## 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

collapse all

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`.

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×4 object 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.

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=3×3 object 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

collapse all

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`

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`

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

collapse all

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

## Extended Capabilities

### C/C++ Code GenerationGenerate C and C++ code using MATLAB® Coder™. 