新闻详情

苹果发布 Swift 的数学计算项目:Swift Numerics

2019-11-15

3688

Swift 标准函数库团队成员 Steve Canon 宣布 Swift 开源生态又添一员 —— Swift Numerics。这是用于 Swift 的 Numerical API,源码托管在 GitHub 上,旨在迅速填补标准库现有 API 中的一些重要空白,并为 Swift 编程开拓新领域。


苹果发布 Swift 的数学计算项目:Swift Numerics


据介绍,Swift Numerics 可为 Swift 开发者提供构建数值运算的基础,相关的数值运算模块都会捆绑在一起,并以独立的 Swift 组件发布。


Steve Canon 已在 Swift Numerics 的 GitHub 仓库中内置了两个呼声甚高的数学计算模块,分别是实数模块(Real Number)和提供复数运算的复数(Complex Number)模块。SE-0246 提案建议在 Swift 中加入基础数学函数 API,提供诸如三角函数与对数等通用运算。这项提案已经被接受,但由于编译器的限制,该 API 还不能被加到标准函数库中,因此实数模块将以独立的模块提供 API,开发者现在可在项目中使用这些功能。


实数模块定义了三个协议。最通用的是 ElementaryFunctions,它提供以下函数:


指数函数:exp,expMinusOne


对数函数:log,log(onePlus:)


三角函数:cos,sin,tan


反三角函数:acos,asin,atan


双曲线函数:cosh,sinh,tanh


反双曲线函数:acosh,asinh,atanh


幂函数和根函数:pow,sqrt,root


复数模块则是创建于基础实数类型之上(官方说法是复数模块基于实数模块构建)。我们都知道复数在数学计算中经常会用到,尤其是在进行傅立叶转换的时候,处理音频或是电路仿真时都会用到复数。Steve Canon 提到,在开发者日常使用时,函数库通常会自动隐藏这些复数消息,但是当要开发相关函数库时,复数模块会是很重要的工具。


Steve Canon 还解释了不在标准函数库中提供 Swift Numerics 功能,而要利用组件的形式发布的原因。他表示这其中存在许多考量,但最主要的原因是,他认为并非所有内容都应该放进标准函数库中。随着时间变迁,Swift Numerics 中的部分功能可能会被放进标准函数库中,但在默认情况下,某些模块不应默认加入到每一个项目里,它们应有一个自己专属的地方,而 Swift Numerics 就是这类数学计算模块的集合,就像 SwiftNIO 组件是专门提供网络相关功能一样。


另外,以组件打包的好处还包括 Swift Numerics 的更新将不受 Swift 版本发布的时间限制,开发者可以在进入稳定版之前,先发布测试模块进行试验。


Steve Canon 还提到,接下来他们还会为 Swift Numerics 加入重要的 ShapedArray 协议以及支持的类型,让开发者能方便地表达多维度的同质数据,此外还会增加对 Float16 的支持。


图文来自 cnBeta,如有侵权请联系删除。

相关标签

Windows
Mac OS
iOS
Android
Linux
爱思助手 V9.03
2025-09-21
爱思助手 V9.0
2025-10-15
请通过“爱思助手电脑端”来安装“iOS 端”
1、 安装“爱思助手的 Win/Mac/Linux 中任意一个电脑端”
2、 打开电脑端,用数据线连接设备到电脑
3、 连接成功后,等待电脑端自动为设备安装移动端,或在电脑端找到“安装移动端”手动点击安装
手机扫码安装“爱思助手”
爱思助手 V3.08.002
2025-08-04
Windows
iOS
Android
TV
iOS 设备无需安装应用,具体投屏步骤如下
1、 iOS 设备无需安装应用,具体投屏步骤如下
2、 在 iOS 设备的“控制中心”中找到“屏幕镜像”
3、 点开屏幕镜像后,在列表中选择主机发起投屏
4、 或使用 USB 数据线将手机与电脑连接后发起投屏
手机扫码安装“爱思投屏”
爱思投屏TV V1.0.17
2025-10-13