Swift標準函數(shù)庫團隊成員Steve Canon宣布Swift開源生態(tài)又添一員——Swift Numerics。這是用于Swift的Numerical API,源碼托管在GitHub上,旨在迅速填補標準庫現(xiàn)有API中的一些重要空白,并為Swift編程開拓新領(lǐng)域。
據(jù)介紹,Swift Numerics可為Swift開發(fā)者提供構(gòu)建數(shù)值運算的基礎(chǔ),相關(guān)的數(shù)值運算模塊都會捆綁在一起,并以獨立的Swift組件發(fā)布。
Steve Canon已在Swift Numerics的GitHub倉庫中內(nèi)置了兩個呼聲甚高的數(shù)學(xué)計算模塊,分別是實數(shù)模塊(Real Number)和提供復(fù)數(shù)運算的復(fù)數(shù)(Complex Number)模塊。SE-0246提案建議在Swift中加入基礎(chǔ)數(shù)學(xué)函數(shù)API,提供諸如三角函數(shù)與對數(shù)等通用運算。這項提案已經(jīng)被接受,但由于編譯器的限制,該API還不能被加到標準函數(shù)庫中,因此實數(shù)模塊將以獨立的模塊提供API,開發(fā)者現(xiàn)在可在項目中使用這些功能。
實數(shù)模塊定義了三個協(xié)議。最通用的是ElementaryFunctions,它提供以下函數(shù):
指數(shù)函數(shù):exp,expMinusOne
對數(shù)函數(shù):log,log(onePlus:)
三角函數(shù):cos,sin,tan
反三角函數(shù):acos,asin,atan
雙曲函數(shù):cosh,sinh,tanh
反雙曲函數(shù):acosh,asinh,atanh
冪函數(shù)和根函數(shù):pow,sqrt,root
復(fù)數(shù)模塊則是創(chuàng)建于基礎(chǔ)實數(shù)類型之上(官方說法是復(fù)數(shù)模塊基于實數(shù)模塊構(gòu)建)。我們都知道復(fù)數(shù)在數(shù)學(xué)計算中經(jīng)常會用到,尤其是在進行傅立葉轉(zhuǎn)換的時候,處理音頻或是電路仿真時都會用到復(fù)數(shù)。Steve Canon提到,在開發(fā)者日常使用時,函數(shù)庫通常會自動隱藏這些復(fù)數(shù)消息,但是當要開發(fā)相關(guān)函數(shù)庫時,復(fù)數(shù)模塊會是很重要的工具。
Steve Canon還解釋了不在標準函數(shù)庫中提供Swift Numerics功能,而要利用組件的形式發(fā)布的原因。他表示這其中存在許多考量,但最主要的原因是,他認為并非所有內(nèi)容都應(yīng)該放進標準函數(shù)庫中。隨著時間變遷,Swift Numerics中的部分功能可能會被放進標準函數(shù)庫中,但在默認情況下,某些模塊不應(yīng)默認加入到每一個項目里,它們應(yīng)有一個自己專屬的地方,而Swift Numerics就是這類數(shù)學(xué)計算模塊的集合,就像SwiftNIO組件是專門提供網(wǎng)絡(luò)相關(guān)功能一樣。
另外,以組件打包的好處還包括Swift Numerics的更新將不受Swift版本發(fā)布的時間限制,開發(fā)者可以在進入穩(wěn)定版之前,先發(fā)布測試模塊進行試驗。
Steve Canon還提到,接下來他們還會為Swift Numerics加入重要的ShapedArray協(xié)議以及支持的類型,讓開發(fā)者能方便地表達多維度的同質(zhì)數(shù)據(jù),此外還會增加對Float16的支持。
-
蘋果
+關(guān)注
關(guān)注
61文章
24600瀏覽量
208361 -
SWIFT
+關(guān)注
關(guān)注
0文章
125瀏覽量
24784
發(fā)布評論請先 登錄
拓維信息旗下芯鴻數(shù)智當選重慶市開源鴻蒙應(yīng)用創(chuàng)新生態(tài)聯(lián)盟理事單位
開源鴻蒙生態(tài)設(shè)備南向分論壇成功舉辦
誠邁科技持續(xù)深耕開源鴻蒙生態(tài),斬獲“先鋒單位”及“示范案例”榮譽
納芯微NSSine系列實時控制MCU/DSP再添新成員
【置頂公告】視美泰開源鴻蒙系列產(chǎn)品業(yè)務(wù)咨詢與商務(wù)合作通道正式開啟!
共譜開源華章 | 匠芯創(chuàng)榮獲“開源生態(tài)戰(zhàn)略合作伙伴”獎
蘋果Swift開源生態(tài)又添新成員
評論