Swift標(biāo)準(zhǔn)函數(shù)庫團(tuán)隊(duì)成員Steve Canon宣布Swift開源生態(tài)又添一員——Swift Numerics。這是用于Swift的Numerical API,源碼托管在GitHub上,旨在迅速填補(bǔ)標(biāo)準(zhǔn)庫現(xiàn)有API中的一些重要空白,并為Swift編程開拓新領(lǐng)域。
據(jù)介紹,Swift Numerics可為Swift開發(fā)者提供構(gòu)建數(shù)值運(yùn)算的基礎(chǔ),相關(guān)的數(shù)值運(yùn)算模塊都會(huì)捆綁在一起,并以獨(dú)立的Swift組件發(fā)布。
Steve Canon已在Swift Numerics的GitHub倉庫中內(nèi)置了兩個(gè)呼聲甚高的數(shù)學(xué)計(jì)算模塊,分別是實(shí)數(shù)模塊(Real Number)和提供復(fù)數(shù)運(yùn)算的復(fù)數(shù)(Complex Number)模塊。SE-0246提案建議在Swift中加入基礎(chǔ)數(shù)學(xué)函數(shù)API,提供諸如三角函數(shù)與對(duì)數(shù)等通用運(yùn)算。這項(xiàng)提案已經(jīng)被接受,但由于編譯器的限制,該API還不能被加到標(biāo)準(zhǔn)函數(shù)庫中,因此實(shí)數(shù)模塊將以獨(dú)立的模塊提供API,開發(fā)者現(xiàn)在可在項(xiàng)目中使用這些功能。
實(shí)數(shù)模塊定義了三個(gè)協(xié)議。最通用的是ElementaryFunctions,它提供以下函數(shù):
指數(shù)函數(shù):exp,expMinusOne
對(duì)數(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í)數(shù)類型之上(官方說法是復(fù)數(shù)模塊基于實(shí)數(shù)模塊構(gòu)建)。我們都知道復(fù)數(shù)在數(shù)學(xué)計(jì)算中經(jīng)常會(huì)用到,尤其是在進(jìn)行傅立葉轉(zhuǎn)換的時(shí)候,處理音頻或是電路仿真時(shí)都會(huì)用到復(fù)數(shù)。Steve Canon提到,在開發(fā)者日常使用時(shí),函數(shù)庫通常會(huì)自動(dòng)隱藏這些復(fù)數(shù)消息,但是當(dāng)要開發(fā)相關(guān)函數(shù)庫時(shí),復(fù)數(shù)模塊會(huì)是很重要的工具。
Steve Canon還解釋了不在標(biāo)準(zhǔn)函數(shù)庫中提供Swift Numerics功能,而要利用組件的形式發(fā)布的原因。他表示這其中存在許多考量,但最主要的原因是,他認(rèn)為并非所有內(nèi)容都應(yīng)該放進(jìn)標(biāo)準(zhǔn)函數(shù)庫中。隨著時(shí)間變遷,Swift Numerics中的部分功能可能會(huì)被放進(jìn)標(biāo)準(zhǔn)函數(shù)庫中,但在默認(rèn)情況下,某些模塊不應(yīng)默認(rèn)加入到每一個(gè)項(xiàng)目里,它們應(yīng)有一個(gè)自己專屬的地方,而Swift Numerics就是這類數(shù)學(xué)計(jì)算模塊的集合,就像SwiftNIO組件是專門提供網(wǎng)絡(luò)相關(guān)功能一樣。
另外,以組件打包的好處還包括Swift Numerics的更新將不受Swift版本發(fā)布的時(shí)間限制,開發(fā)者可以在進(jìn)入穩(wěn)定版之前,先發(fā)布測(cè)試模塊進(jìn)行試驗(yàn)。
Steve Canon還提到,接下來他們還會(huì)為Swift Numerics加入重要的ShapedArray協(xié)議以及支持的類型,讓開發(fā)者能方便地表達(dá)多維度的同質(zhì)數(shù)據(jù),此外還會(huì)增加對(duì)Float16的支持。
-
蘋果
+關(guān)注
關(guān)注
61文章
24429瀏覽量
199159 -
SWIFT
+關(guān)注
關(guān)注
0文章
116瀏覽量
23808
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論