探索iOS之Metal标准库

Metal标准库包括:通用函数、整型函数、关系函数、数学函数、矩阵运算、SIMD运算、几何函数、纹理函数等。接下来让我们走进Metal标准库的世界。

1、通用函数

通用函数在<metal_common>头文件中,T为scalar或vector的浮点类型。如下表所示:

通用函数描述
T clamp(T x, T minval, T maxval)限制x取值范围在minval与maxval之间
T mix(T x, T y, T a)纹理混合
T saturate(T x)限制数值在[0.0, 1.0]
T sign(T x)符号函数,x>0返回1.0,x<0返回-1.0
T smoothstep(T edge0, T edge1, T x)x<=edge0返回0.0,x>=edge1返回1.0
T step(T edge, T x)x<edge返回0.0,否则返回1.0

2、整型函数

整型函数在<metal_integer>头文件中,主要是位操作相关,如下表所示:

整型函数描述
T abs(T x)求绝对值
T clz(T x)头部为0bit的个数
T ctz(T x)尾部为0bit的个数

T hadd(T x, T y)

两者之和的一半
T max(T x, T y)两者较大值
T min(T x, T y)两者较小值
T popcount(T x)非0位的个数
T reverse_bits(T x)高低位反转

3、关系函数

关系函数在<metal_relational>头文件中,T为scalar或vector的浮点类型,Ti为整型,Tb为布尔类型。如下表所示:

4、数学函数

数学函数在<metal_math>头文件中, 如下表所示:

数学函数描述
T cos(T x)余弦函数
T sin(T x)正弦函数
T ceil(T x)向上取整
T floor(T x)向下取整
T divide(T x, T y)除法运算
T exp(T x)指数运算
T fract(T x)取小数部分
T log(T x)对数运算

5、矩阵运算

矩阵运算在<metal_matrix>头文件中,T为float或half浮点类型,如下表所示:

矩阵函数描述
float determinant(floatnxn)求行列式
floatmxn transpose(floatnxm)矩阵转置

6、SIMD运算

SIMD是单指令多数据的简称,操作寄存器并行运算,提高运算效率。SIMD组的矩阵运算定义在<metal_simdgroup_matrix>中,包括内存加载、存储,如下表所示:

7、 几何函数

几何函数定义在<metal_geometric>头文件中。T为vector浮点类型,Ts为scalar类型。如下表所示:

8、纹理函数

纹理函数定义在<metal_texture>头文件中, 支持1D纹理,2D纹理,3D纹理,如下表所示:

纹理函数描述
atomic_load加载纹理
atomic_store存储纹理
atomic_exchange交互纹理
atomic_min比较纹理较大值
atomic_max比较纹理较小值

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐福记456

您的鼓励和肯定是我创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值