OpenCL學習筆記(16) 浮點型函式

2021-10-04 13:23:37 字數 1578 閱讀 5074

1.opencl的浮點函式將會被劃分為五類來分別討論:算數運算和取捨,比較,指數運算,三角運算,以及其他型別的函式。

2。算術運算函式和取捨函式:大多數的數學函式都能計算乘積、商數以及餘數,大多數取捨函式都能接受float型數,然後返回小數部分為0的float型數:

(1)floatn fabs

(floatn x)

--返回引數的絕對值,|x|

;(2)floatn fma

(flaotn a,floatn b, floatn c)

--返回a*b+c,中間的乘法結果沒有近似取捨;

(3)floatn fmod

(floatn x,floatn y)

--返回x模y的結果:x-

(y*trunc

(y/x));

(4)floatn mad

(floatn a,floatn b,floatn c)

--返回a*b+c;

(5)float

remainder

(floatn x, floatn y)

--返回x除以y的餘數:x-n*y,其中x是最接近x/y的整數;

(6)float

remquo

(floatn x, floatn y,

__(g|l|p)

*quo)

--返回x除以y的餘數:x-n*y,其中n是最接近x/y的整數;同時也會計算x/y的低七位,結果的符號和x/y相同,被儲存在quo指向的物件中;

(7)floatn rint

(floatn x)

--以float型返回最臨近的整數--如果兩個整數同樣接近,以float型返回偶數;

(8)floatn round

(floatn x)

--返回最臨近x 的整數,如果兩個整數同樣近,返回遠離遠點的整數;

(9)floatn ceil

(floatn x)

--返回x向上取整的結果;

(10)floatn floor

(floatn x)

-- 返回x向下取整的結果;

(11)floatn trunc

(floatn x)

--去掉x的小數部分,返回整數。

這張表中包含了兩個功能相同的函式。函式mad和函式fma(fused multiply和add, 先乘後加)的功能都是計算a*b+c.「mad在速度重於精度的場合下使用」。而與之相反,fma能提供更高的精度,它只對最後結果進行取捨,不對中間運算結果做任何處理。

運算子「/」既可以用於整數運算,也可以用於浮點數運算,但是操作符%(求餘)只能用於整數運算。如果要對浮點數求餘,則需要呼叫函式fmod,它將返回x-(ytrunc(y/x))的運算結果。函式remainder的功能相同,但返回的是x-ny的運算結果,其中n是最接近x/y的整數。

提到取捨函式,唯一需要記住的是:函式rint是向最近的偶數做取捨,而函式round則不然,它返回的是距離最近的整數,但如果兩個最近的整數距離相同,它將返回離0最遠的那個。

round(-6.5)返回的是-7.0而不是-6.0,這是因為-7比-6離0更遠。可以將函式round與函式trunc對立起來理解記憶。

筆記 浮點型資料

浮點數 floating point number 就是實數 real number 浮點數有兩種表示形式 1 十進位制小數形式。它由數字和小數點組成。0.123 123.123.0 0.0都是十進位制小數形式。2 指數形式。如123e3或123e3都代表123 103。注意字母e或e之前必須有數字...

php手冊 筆記 型別 浮點型

1.除了字串型別之外,其它的所有型別轉換為浮點型時,都是先轉換為整型,然後再轉換為浮點型的 2.floor 0.1 0.7 10 返回的是7 為什麼echo 0.1 0.7 10返回的是8呢?也就是對浮點數的運算結果一定要注意使用限制小數點的位數,比如使用floor round 0.1 0.7 1 ...

學習筆記16

提出該動機的原因有3個方面 1 檢測演算法是專門在複雜場景中精確定位和區分物件的,這可能導致更準確和穩健的 2 重用檢測模型可以減少跟蹤中的重複工作,因此我們可以將更多精力放在跟蹤特定的問題上,例如目標域適應和時間依賴性。3 這種框架有可能促成多任務模型,即聯合檢測和跟蹤視覺物體,這接近行業的需求。...