来自C头的Swift数学函数
我正在使用swift 5.0来自C头的Swift数学函数,swift,Swift,我正在使用swift 5.0 a=Darwin.lgama(0.2) 内部Math.h extern float lgammaf(float); extern double lgamma(double); extern long double lgammal(long double); 编译总是警告对lgama的模糊调用,这对我很有效 internal func lgamma1<T: FloatingPoint>(_ x: T) -> T { switch x
a=Darwin.lgama(0.2)
内部Math.h
extern float lgammaf(float);
extern double lgamma(double);
extern long double lgammal(long double);
编译总是警告对lgama
的模糊调用,这对我很有效
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
}
}
内部函数lgama1(x:T)->T{
开关x{
案例d为双:
将lgamma(d)返回为双倍于!T
案例让f作为浮点数:
将lgamaf(f)返回为!T
#如果是拱形(x86_64)
将lf视为浮式80:
将lgamal(lf)返回为!T
#恩迪夫
违约:
返回T.nan
}
}
似乎是一个已知的错误:?有什么解决方法吗?似乎lgama(x as!Float)
是为人们工作的