# sqrt

Square root of fi object

## Description

This function computes the square root of a fi object using a bisection algorithm.

c = sqrt(a) returns the square root of fi object a. Intermediate quantities are calculated using the fimath associated with a. The numerictype object of c is determined automatically using an Internal Rule.

c = sqrt(a,T) returns the square root of fi object a with numerictype object T. Intermediate quantities are calculated using the fimath associated with a. See Data Type Propagation Rules.

c = sqrt(a,F) returns the square root of fi object a. Intermediate quantities are calculated using the fimath object F. The numerictype object of c is determined automatically using an Internal Rule.

When a is a built-in double or single data type, this syntax is equivalent to c = sqrt(a) and the fimath object F is ignored.

c = sqrt(a,T,F) returns the square root fi object a with numerictype object T. Intermediate quantities are also calculated using the fimath object F. See Data Type Propagation Rules.

## Input Arguments

collapse all

Input fi array, specified as a scalar, vector, matrix, or multidimensional array.

sqrt does not support complex, negative-valued, or [Slope Bias] inputs.

Example: a = fi(pi,1,8,3)

Data Types: fi

numerictype of the output c, specified as a numerictype object.

Example: T = numerictype(1,32,30)

fimath used for calculations of intermediate quantities, specified as a fimath object.

Example: F = fimath('OverflowAction','Saturate','RoundingMethod','Convergent')

## Algorithms

collapse all

### Internal Rule

For syntaxes where the numerictype object of the output is not specified as an input to the sqrt function, it is automatically calculated according to the following internal rule:

$sig{n}_{c}=sig{n}_{a}$

$W{L}_{c}=\mathrm{ceil}\left(\frac{W{L}_{a}}{2}\right)$

$F{L}_{c}=W{L}_{c}-\mathrm{ceil}\left(\frac{W{L}_{a}-F{L}_{a}}{2}\right)$

### Data Type Propagation Rules

For syntaxes for which you specify a numerictype object T, the sqrt function follows the data type propagation rules listed in the following table. In general, these rules can be summarized as “floating-point data types are propagated.” This allows you to write code that can be used with both fixed-point and floating-point inputs.

Data Type of Input fi Object aData Type of numerictype object TData Type of Output c

Built-in double

Any

Built-in double

Built-in single

Any

Built-in single

fi Fixed

fi Fixed

Data type of numerictype object T

fi ScaledDouble

fi Fixed

ScaledDouble with properties of numerictype object T

fi double

fi Fixed

fi double

fi single

fi Fixed

fi single

Any fi data type

fi double

fi double

Any fi data type

fi single

fi single