% Function SQRT, ISQRT
Function SQRT
, ISQRT
sqrt
number => root
isqrt
natural => natural-root
number, root - 数
natural, natural-root - 非負の整数
sqrt
はnumberの主な平方根を返却します。
numberが複素数ではなく、かつ負のときは、
その結果は複素数になります。
isqrt
は正確なnaturalの正の平方根以下の最大の整数を返却します。
もしnumberが正の有理数のとき、 rootが有理数か浮動小数かは実装依存です。 もしnumberが負の有理数のとき、 rootが複素数の有理数か複素数の浮動小数かは実装依存です。
複素数の平方根(マイナスゼロがサポートされているかどうかに関わらず)の 数学的な定義は下記のとおりです。
(sqrt x) = (exp (/ (log x) 2))
平方根のブランチカットは負の実軸に沿って第2象限に続きます。 その範囲は右半円で成り、非負の虚軸を含み、負の虚軸を含みません。
(sqrt 9.0) => 3.0
(sqrt -9.0) => #C(0.0 3.0)
(isqrt 9) => 3
(sqrt 12) => 3.4641016
(isqrt 12) => 3
(isqrt 300) => 17
(isqrt 325) => 18
(sqrt 25)
=> 5
OR=> 5.0
(isqrt 25) => 5
(sqrt -1) => #C(0.0 1.0)
(sqrt #c(0 2)) => #C(1.0 1.0)
なし。
なし。
関数sqrt
は、引数が数ではないとき、
型type-error
のエラーを通知するべきです。
関数isqrt
は、引数が非負の整数ではないとき、
型type-error
のエラーを通知するべきです。
関数sqrt
とisqrt
は、
型arithmetic-error
を通知するかもしれません。
exp
,
log
,
12.1.3.3. 浮動小数の代替可能性の規則
(isqrt x) == (values (floor (sqrt x)))
しかし、これはもっと効率よくなる可能性があります。