我使用的是 swift 5.0
让 a = Darwin.lgamma(0.2)
内部Math.h
extern float lgammaf(float);
extern double lgamma(double);
extern long double lgammal(long double);
编译总是警告 lgamma
的不明确调用
最佳答案
这对我有用
internal func lgamma1<T: FloatingPoint>(_ x: T) -> T {
switch x {
case let d as Double:
return lgamma(d) as Double as! T
case let f as Float:
return lgammaf(f) as! T
#if arch(x86_64)
case let lf as Float80:
return lgammal(lf) as! T
#endif
default:
return T.nan
}
}
关于C 头文件中的 Swift 数学函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58662428/