蘋果發布 Swift 的數學計算項目:Swift Numerics

2021-01-10 開源中國

Swift 標準函數庫團隊成員 Steve Canon 宣布 Swift 開源生態又添一員 —— Swift Numerics。這是用於 Swift 的 Numerical API,源碼託管在 GitHub 上,旨在迅速填補標準庫現有 API 中的一些重要空白,並為 Swift 編程開拓新領域。

據介紹,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 的支持。

參考:https://www.ithome.com.tw/news/134151

相關焦點

  • 通過LLVM 在 Android 上運行 Swift 代碼
    Swift 已經發布一年多了,蘋果承諾將在 2015 年底開源 Swift。這是非常棒的一件事情,但是我們現在可以在 Android 設備上運行 Swift 嗎?
  • Package Swift
    Package.swift 使用在Swift 開發中替換 cocoaPod 的包管理器,簡稱 SPM,執行速度上速度更快,並且體檢最佳。
  • 谷歌為何要養蘋果的親兒子Swift?原來意在可微分編程
    為了應對這些缺點,大多數機器學習項目在運行計算密集型算法時,都會使用用 C/C++/Fortran/CUDA 寫的軟體庫,然後再使用 Python 將不同的底層運算組合到一起。對於大部分項目而言,這種做法其實效果很好;但總體概況而言,這會產生一些問題。我們先看看其中一些問題。
  • 15種快速技巧,提升Swift編碼能力
    通過十六進位代碼生成UIColor創建一個名為 UIColor+Extensions.swift的文件,包含以下代碼:import UIKitextension UIColor {convenience init(hex:Int, alpha: CGFloat = 1.0) {self.init(red: CGFloat
  • Linux 之父拒絕 996,Swift、Python 之父痴迷深夜編程,程式設計師之神...
    *********************17 - 1736 *****************************18 - 1365 ***********************19 - 1023 *****************20 - 853 **************21 - 577 *********22 - 240 ****23 - 128 **這是他的項目提交
  • Swift 關鍵字
    還可以用在計算型屬性上,間接獲取其它屬性的值。同樣可以用於計算型屬性來間接設置其它屬性。如果計算型屬性的 setter 沒有定義新值的名稱,可以使用默認的 newValue。本文由 SwiftGG 翻譯組翻譯,已經獲得作者翻譯授權,最新文章請訪問 http://swift.gg。
  • 科技早起鳥:蘋果swift支持Linux|英偉達RTX 3060Ti性能超乎預期
    今日熱點:1.蘋果開源 Swift 系統,增加對 Linux 的支持2.開發者自製驅動令 Win 10 21H1 手機版 「重啟」蜂窩數據支持3.英偉達 RTX 3060Ti 性能對標 2070Super,售價約 2721 元蘋果開源 Swift 系統支持Linux
  • Swift進階黃金之路
    swift這篇是對一文鑑定是Swift的王者,還是青銅文章中問題的解答。這些問題僅僅是表層概念,屬於知識點,在我看來即使都很清楚也並不能代表上了王者,如果非要用段位類比的話,黃金還是合理的😄。Swift是一門上手容易,但是精通較難的語言。
  • 神奇的Swift語言:一天內克隆出Flappy Bird
    蘋果在WWDC2014上推出了一種全新的Swift程式語言,未來蘋果開發者平臺將支持這款程式語言。它究竟有多神氣呢?在Swift推出短短的一天內,就已經有國外開發者利用這款程式語言,重新克隆了曾經超火爆的小遊戲《Flappy Bird》,程序猿都具備速度與激情吶。
  • Taylor Swift 新專輯《Reputation》登陸 Apple Music
    幾周前,Swift 還在 Apple Music 上發布幾段幕後製作視頻。目前,Swift 與蘋果的關係非常不錯,還在2016年春天出演過幾段 Apple Music 的廣告。
  • Swift HALE首飛 由Swift與NASA聯合研製 功能多樣外形亮眼
    飛行測試的計算結果驗證了我們所有的安全和設計要求。」 Swift Engineering技術副總裁Andrew Streett說。Swift-HALE無人機目前已獲得兩項技術專利,並獲得了美國宇航局的適航認證和美國聯邦航空管理局的授權證書(COA),未來可在商業空域飛行。「這項技術的應用將迎來數據加速的新時代。
  • Swift和Objective-C混編
    翻譯自蘋果官方文檔和Objective-C交互