# Is rsqrt the same as Fast inverse square root?

25 ビュー (過去 30 日間)
Hongbo Zhu 2021 年 9 月 13 日

Hello,
I would like to us sqrt() and run it on a embeded controller. I was wondering sqrt() is the same as Fast inverse square root ( https://en.wikipedia.org/wiki/Fast_inverse_square_root ). if not, is it efficent as Fast inverse square root. Does it support code generation? Can I use it in embeded control software?
Thanks,
Hongbo
##### 4 件のコメント表示非表示 3 件の古いコメント
Hongbo Zhu 2021 年 9 月 13 日
@Rik Thank you very much for your quick response and explanation. It will be great if someone from MathWork can confirm rsqrt() is efficient for embeded control system.

サインインしてコメントする。

### 採用された回答

stozaki 2021 年 9 月 13 日
Hi,
The Simulink sqrt block supports rsqrt.
The algorithm is Newton-Raphson, so it can be considered the same as the one described on the wiki.
With that setting, C code generation is possible.
##### 1 件のコメント表示非表示 なし
Hongbo Zhu 2021 年 9 月 16 日
@stozaki Great! Thank you very much.

サインインしてコメントする。

### その他の回答 (1 件)

Jan 2021 年 9 月 13 日
i = * ( long * ) &y
This is equivalent to:
y = single(pi);
i = typecast(y, 'int32');
The shown code of Q_rsqrt is an approximation of 1/sqrt(x) for single precision floating point values. It might have a fair speed on CPUs without a floating point unit, but it is less accurate then the direct calculation.
##### 1 件のコメント表示非表示 なし
Hongbo Zhu 2021 年 9 月 13 日
Hi @Jan, Thank you very much. I noticed there is also a simulink block named Float Typecast. Does it supported by code generation for embeded controller?

サインインしてコメントする。

### カテゴリ

Find more on Simulink Functions in Help Center and File Exchange

R2018b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by