算數操作符(+, -, *, /, %) 返回值型別與運算元相同(向量或標量, 整型或浮點型). 除和取模運算有可能返回未定義的值:
除操作可能會導致越界返回值(out-of-range value). 以整型而言, 除操作返回的值如果越界的話, 會被限制為整型可以表示的最大或者最小值, 比如, 帶符號整型的最小值為: type_min/(-1).
除零操作, 浮點數除零會返回正無窮, 負無窮或者 非數值(nan), 這種做法遵循 ieee 754標準.
取模操作, 第二運算元為零的取模操作會導致未定義行為. 如果運算元為向量, 取模操作就逐個作用於兩個向量相同位置的分量上, 如果作為第二運算元向量有值為零的分量, 那個這個分量的取模運算是為定義行為, 其他分量的運算則正常進行. 如果兩個運算元都是非負數, 返回值非負, 如果兩個運算元至少有乙個為負數, 則返回未定義值.
無符號整型可以表示的值得範圍為 2^n, 在這裡n是指整型數的位元數. 帶符號整型數溢位是未定義行為.
整型數的除操作, 其餘數會被捨棄. 如果a, b 為整型數, b非零 則 a/b + a%b = a 成立.
一元操作符(++, --) 可以作用於運算元的左側或者右側, 跟c++標準所定義的完全一樣.
Metal 著色語言程式設計指南 一
metal shading language guide 這篇文章講述了metal 圖形繪製和計算 shading 程式語言.metal shading 語言是基於c 的程式語言,使用metal shading 語言的 可以在gpu上進行圖形繪製或者通用平行計算。由於metal shading 語言...
Metal 著色語言程式設計指南 四
metal shading 語言的向量數學庫提供了對向量和矩陣型別表示和運算的支援。向量的命名規則如下所示 booln,charn,shortn,intn,uncharn,ushortn,uintn halfn,floatn 這裡 n 可以是 2,3,4 的其中乙個數字,表示 2 3 4 維向量。矩...
Metal 著色語言程式設計指南 七
floatnxm 和 halfnxm 矩陣可以被看成是型別為floatm和halfm的陣列.類似二維陣列,矩陣的成員可以用二維下標來定址.矩陣物件後面跟乙個下標可以被看作是乙個列向量.如同陣列,列向量的計數也是從0開始,矩陣物件的第二個下標就如同是對向量物件進行定址。所以,矩陣物件後面跟兩個下標就表...