【问题标题】:How are the various similar simd_ functions different from each other?各种类似的 simd_ 函数有何不同?
【发布时间】:2021-07-25 00:47:26
【问题描述】:

在典型的 Apple 方式中,没有文档(几乎没有任何关于拖钓的内容)。例如,simd_precise_normalize(_:) 是什么?你会认为它比simd_fast_normalize(_:) 更慢、更精确的标准化是可以原谅的。但那为什么simd_normalize(_:) 存在呢?

为什么typealias simd_float3 = SIMD3<Float>时有simd_cross(simd_float3, simd_float3)cross(SIMD3<Float>, SIMD3<Float>)

那么simd_float3 上的 Swift 运算符重载呢?

我已经向 Apple 写了一个关于它的错误,但有人知道吗?

【问题讨论】:

    标签: ios swift macos scenekit simd


    【解决方案1】:

    那么为什么 simd_normalize(_:) 存在呢?

    This comment 解释它。 simd_normalize 等价于simd_precise_normalize,除非你在编译时指定了-ffast-math,在这种情况下它等价于simd_fast_normalize。我从来没有只用过objective-c,但编译器开关或xcode项目设置中的某个地方可能有等效的选项。

    为什么会有simd_cross(simd_float3, simd_float3) 和cross(SIMD3, SIMD3)

    我认为它们是等价的。请注意,标题中的 cmets 讨论了 C 风格的 API,如 simd_cross(x,y) 和 C++ API simd::cross(x,y)。可能在 Swift 中两者都可用于其中一些功能。

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 2010-10-09
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      相关资源
      最近更新 更多