/*
* Copyright (c) Huawei Technologies Co., Ltd. 2024-2024. All rights reserved.
*/
package matrix4cj
import std.math.*
public class Maths {
/** sqrt(a^2 + b^2) without under/overflow. **/
public static func hypot(a: Float64, b: Float64): Float64 {
var r: Float64 = 0.0
if (abs(a) > abs(b)) {
r = b / a
r = abs(a) * sqrt(1.0 + r * r)
} else if (b != 0.0) {
r = a / b
r = abs(b) * sqrt(1.0 + r * r)
} else {
r = 0.0
}
return r
}
}