首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SIMD.select

SIMD.js已经从TC39中取消了积极的开发,并从第三阶段中删除了。它不再被网页浏览器所追求。暴露在 web 上的SIMD 操作在 WebAssembly 中正处于积极的发展之中, 其操作基于 SIMD. js 操作。

静态SIMD.%type%.select()方法创建一个新的整数SIMD数据类型,其中通道值是选择器掩码的选择匹配。

语法

代码语言:javascript
复制
SIMD.Float32x4.select(mask, trueValue, falseValue)
SIMD.Float64x2.select(mask, trueValue, falseValue)

SIMD.Int8x16.select(mask, trueValue, falseValue)
SIMD.Int16x8.select(mask, trueValue, falseValue)
SIMD.Int32x4.select(mask, trueValue, falseValue)

SIMD.Uint8x16.select(mask, trueValue, falseValue)
SIMD.Uint16x8.select(mask, trueValue, falseValue)
SIMD.Uint32x4.select(mask, trueValue, falseValue)

参数

int32x4int16x8或者int8x16用作选择器掩码。trueValue如果选择遮罩车道true,从这里选择相应的车道值。falseValue如果选择遮罩车道false,从这里选择相应的车道值。

返回值

新的SIMD数据类型。

描述

SIMD.%type%.select()方法从选择掩码中选择通道。掩蔽(或“分支”)通道非常有用,因为您无法在SIMD数据类型的一小部分数据上操作。但是,使用掩码和select函数,您可以分支和合并向量以组合您需要的结果向量。

例子

自定义选择掩码

此示例使用该SIMD.Bool32x4类型来创建自定义选择掩码。使用此掩码,您可以从第一个Float32x4数据类型中选择第一个和最后一个通道。因此,select函数从矢量中选择第一条和最后一条a通道,从矢量b(或sum第二条中的矢量)中选择第二条和第三条通道select

代码语言:javascript
复制
var a = SIMD.Float32x4(1, 2, 3, 4);
var b = SIMD.Float32x4(5, 6, 7, 8);

var mask = SIMD.Bool32x4(true, false, false, true);

SIMD.Float32x4.select(mask, a, b);
// Float32x4[1, 6, 7, 4]

var sum = SIMD.Float32x4.add(a, b);
SIMD.Float32x4.select(mask, a, sum);
// Float32x4[1, 8, 10, 4]

操作返回一个选择掩码

所有SIMD比较操作都会返回一个选择掩码,您必须从中进行选择才能获得比较结果:

代码语言:javascript
复制
var a = SIMD.Float32x4(0, 12, 3, 4);
var b = SIMD.Float32x4(0, 6, 7, 50);

var mask = SIMD.Float32x4.lessThan(a, b);
// Bool32x4[false, false, true, true]

var result = SIMD.Float32x4.select(mask, a, b);
// Float32x4[0, 6, 3, 4]

规范

Specification

Status

Comment

SIMDThe definition of 'SIMDConstructor.select' in that specification.

Draft

Initial definition.

浏览器兼容性

Feature

Chrome

Firefox (Gecko)

Internet Explorer

Opera

Safari

Basic support

No support

Nightly build

No support

No support

No support

Feature

Android

Chrome for Android

Firefox Mobile (Gecko)

IE Mobile

Opera Mobile

Safari Mobile

Basic support

No support

No support

Nightly build

No support

No support

No support

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com