### 5.10.10. VRECPS and VRSQRTS

`VRECPS` (Vector Reciprocal Step) multiplies the elements of one vector by the corresponding elements of another vector, subtracts each of the results from 2, and places the final results into the elements of the destination vector.

`VRSQRTS` (Vector Reciprocal Square Root Step) multiplies the elements of one vector by the corresponding elements of another vector, subtracts each of the results from 3, divides these results by two, and places the final results into the elements of the destination vector.

#### Syntax

```V`op`{`cond`}.F32 {`Qd`}, `Qn`, `Qm`
```
```V`op`{`cond`}.F32 {`Dd`}, `Dn`, `Dm`
```

where:

`op`

must be either `RECPS` or `RSQRTS`.

`cond`

is an optional condition code (see Condition codes).

`Qd, Qn, Qm`

are the destination vector, the first operand vector, and the second operand vector, for a quadword operation.

`Dd, Dn, Dm`

are the destination vector, the first operand vector, and the second operand vector, for a doubleword operation.

#### Results for out-of-range inputs

Table 5.11 shows the results where input values are out of range.

Table 5.11. Results for out-of-range inputs

1st operand element2nd operand elementResult element (`VRECPS`)Result element (`VRSQRTS`)
NaN-Default NaNDefault NaN
-NaNDefault NaNDefault NaN
+/- 0.0 or denormal+/- infinity2.01.5
+/- infinity+/- 0.0 or denormal2.01.5

#### Usage

The Newton-Raphson iteration:

````x``n`+1 = `x``n`(2-`dxn`)
```

converges to (`1/d`) if `x`0 is the result of `VRECPE` applied to `d`.

The Newton-Raphson iteration:

````x``n`+1 = `xn`(3-`dxn`2)/2
```

converges to (`1/``d`)if `x`0 is the result of `VRSQRTE` applied to `d`.