Swift中的Arcus Cotangent实现

mrB*_*sta 3 math trigonometry ios swift

arcus cotangent(arccot)如何在swift中实现?导入需要哪个库,我正在使用达尔文,但在试图打电话时我看不到它?

Mar*_*n R 6

<math.h>如果你的话,所有的数学函数都可以在Swift中找到

import Darwin
Run Code Online (Sandbox Code Playgroud)

(如果您导入Foundation或UIKit,则自动导入).

现在逆余切函数不在其中,但您可以atan()使用关系轻松计算它(参见反向三角函数):

arccot(x) = arctan(1/x)        (for x > 0)
arccot(x) = ? + arctan(1/x)    (for x < 0)

arccot(x) = ?/2 - atan(x)
Run Code Online (Sandbox Code Playgroud)

前两个公式在数值上更适合 (绝对)值x,最后一个公式更适合值,因此您可以将acot()函数定义为

func acot(x : Double) -> Double {
    if x > 1.0 {
        return atan(1.0/x)
    } else if x < -1.0 {
        return M_PI + atan(1.0/x)
    } else {
        return M_PI_2 - atan(x)
    }
}
Run Code Online (Sandbox Code Playgroud)

对于Swift 3替换M_PIDouble.pi.