Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自C头的Swift数学函数_Swift - Fatal编程技术网

来自C头的Swift数学函数

来自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

我正在使用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 {
      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)
是为人们工作的