# pow2

Base 2 exponentiation and scaling of floating-point numbers

## Syntax

``Y = pow2(E)``
``Y = pow2(X,E)``

## Description

example

````Y = pow2(E)` computes 2 to the power of `E` such that $Y={2}^{E}$.```

example

````Y = pow2(X,E)` computes `X` times 2 to the power of `E` such that $Y=X\cdot {2}^{E}$.```

## Examples

collapse all

Raise 2 to the power of `E`.

```E = [1 -2 4 -4 3 9]; Y = pow2(E)```
```Y = 1×6 2.0000 0.2500 16.0000 0.0625 8.0000 512.0000 ```

In this example, compare the standard IEEE® arithmetic results of scaling significands by 2 raised to the power of exponents and the `pow2` results.

Create a cell array of character vectors to represent the exact values of several significands. Specify the exponents.

```Xcell = {'1/2','pi/4','-3/4','1/2','1-eps/2','1/2'}'; E = [1 2 2 -51 1024 -1021]';```

Specify `Ycell` as the standard IEEE arithmetic results of scaling `Xcell` by `2` raised to the power of `E`. Show these results in a table.

```Ycell = {'1','pi','-3','eps','realmax','realmin'}'; table(Xcell,E,Ycell,'VariableNames',["Significand" "Exponent" "Value"])```
```ans=6×3 table Significand Exponent Value ___________ ________ ___________ {'1/2' } 1 {'1' } {'pi/4' } 2 {'pi' } {'-3/4' } 2 {'-3' } {'1/2' } -51 {'eps' } {'1-eps/2'} 1024 {'realmax'} {'1/2' } -1021 {'realmin'} ```

Next, compare the results in the table to `pow2`.

Convert `Xcell` to floating-point numbers `X`. Scale `X` by `2` raised to the power of `E` by using `pow2(X,E)`.

```X = str2num(char(Xcell)); Y = pow2(X,E)```
```Y = 6×1 10308 × 0.0000 0.0000 -0.0000 0.0000 1.7977 0.0000 ```

Convert `Ycell` to floating-point numbers `Ynum`. Show that `pow2` follows the standard IEEE arithmetic operations by comparing `Y` and `Ynum` using `isequal`.

`Ynum = str2num(char(Ycell))`
```Ynum = 6×1 10308 × 0.0000 0.0000 -0.0000 0.0000 1.7977 0.0000 ```
`isequal(Y,Ynum)`
```ans = logical 1 ```

## Input Arguments

collapse all

Exponent values, specified as a scalar, vector, matrix, or multidimensional array.

Data Types: `single` | `double`

Significand values, specified as a scalar, vector, matrix, or multidimensional array of the same size as `E`.

Data Types: `single` | `double`

## Tips

The syntax `Y = pow2(X,E)` corresponds to the ANSI® C function `ldexp()` and the IEEE® floating-point standard function `scalbn()`. The result `Y` is computed quickly by simply adding `E` to the floating-point exponent of `X`.