Struct core::simd::Mask[][src]

#[repr(transparent)]
pub struct Mask<T, const LANES: usize>(_)
where
    T: MaskElement,
    LaneCount<LANES>: SupportedLaneCount
;
🔬 This is a nightly-only experimental API. (portable_simd #86656)
Expand description

Element 指定宽度的 LANES 元素的 SIMD vector 掩码。

这种类型的布局是未指定的。

Implementations

🔬 This is a nightly-only experimental API. (portable_simd #86656)

通过将所有 lanes 设置为给定值来构建掩码。

🔬 This is a nightly-only experimental API. (portable_simd #86656)

将数组转换为 SIMD vector。

🔬 This is a nightly-only experimental API. (portable_simd #86656)

将 SIMD vector 转换为数组。

🔬 This is a nightly-only experimental API. (portable_simd #86656)

将整数 vector 转换为掩码,其中 0 代表 false,-1 代表 true

Safety

所有 lanes 必须为 0 或 -1。

🔬 This is a nightly-only experimental API. (portable_simd #86656)

将整数 vector 转换为掩码,其中 0 代表 false,-1 代表 true

Panics

如果任何 lane 不是 0 或 -1,就会出现 panics。

🔬 This is a nightly-only experimental API. (portable_simd #86656)

将掩码转换为整数 vector,其中 0 代表 false,-1 代表 true

🔬 This is a nightly-only experimental API. (portable_simd #86656)

测试指定 lane 的值。

Safety

lane 必须小于 LANES

🔬 This is a nightly-only experimental API. (portable_simd #86656)

测试指定 lane 的值。

Panics

如果 lane 大于或等于 vector 中的 lane 数,则出现 panics。

🔬 This is a nightly-only experimental API. (portable_simd #86656)

设置指定 lane 的值。

Safety

lane 必须小于 LANES

🔬 This is a nightly-only experimental API. (portable_simd #86656)

设置指定 lane 的值。

Panics

如果 lane 大于或等于 vector 中的 lane 数,则出现 panics。

🔬 This is a nightly-only experimental API. (portable_simd #86656)

如果设置了任何 lane,则返回 true,否则返回 false。

🔬 This is a nightly-only experimental API. (portable_simd #86656)

如果设置了所有 lanes,则返回 true,否则返回 false。

🔬 This is a nightly-only experimental API. (portable_simd #86656)

从两个 vectors 中选择 lanes。

对于掩码中的每个 lane,如果该 lane 的掩码为 true,则从 true_values 中选择相应的 lane,如果该 lane 的掩码为 false,则从 false_values 中选择相应的 lane。

let a = Simd::from_array([0, 1, 2, 3]);
let b = Simd::from_array([4, 5, 6, 7]);
let mask = Mask::from_array([true, false, false, true]);
let c = mask.select(a, b);
assert_eq!(c.to_array(), [0, 5, 6, 3]);
Run
🔬 This is a nightly-only experimental API. (portable_simd #86656)

从两个掩码中选择 lanes。

对于掩码中的每个 lane,如果该 lane 的掩码为 true,则从 true_values 中选择相应的 lane,如果该 lane 的掩码为 false,则从 false_values 中选择相应的 lane。

let a = Mask::<i32, 4>::from_array([true, true, false, false]);
let b = Mask::<i32, 4>::from_array([false, false, true, true]);
let mask = Mask::<i32, 4>::from_array([true, false, false, true]);
let c = mask.select_mask(a, b);
assert_eq!(c.to_array(), [true, false, true, false]);
Run

Trait Implementations

应用 & 运算符后的结果类型。

执行 & 操作。 Read more

应用 & 运算符后的结果类型。

执行 & 操作。 Read more

应用 & 运算符后的结果类型。

执行 & 操作。 Read more

执行 &= 操作。 Read more

执行 &= 操作。 Read more

应用 | 运算符后的结果类型。

执行 | 操作。 Read more

应用 | 运算符后的结果类型。

执行 | 操作。 Read more

应用 | 运算符后的结果类型。

执行 | 操作。 Read more

执行 |= 操作。 Read more

执行 |= 操作。 Read more

应用 ^ 运算符后的结果类型。

执行 ^ 操作。 Read more

应用 ^ 运算符后的结果类型。

执行 ^ 操作。 Read more

应用 ^ 运算符后的结果类型。

执行 ^ 操作。 Read more

执行 ^= 操作。 Read more

执行 ^= 操作。 Read more

返回值的副本。 Read more

source 执行复制分配。 Read more

使用给定的格式化程序格式化该值。 Read more

返回类型的 “默认值”。 Read more

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

执行转换。

应用 ! 运算符后的结果类型。

执行一元 ! 操作。 Read more

此方法测试 selfother 值是否相等,并由 == 使用。 Read more

此方法测试 !=

如果存在,则此方法返回 selfother 值之间的顺序。 Read more

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more

Auto Trait Implementations

Blanket Implementations

获取 selfTypeIdRead more

从拥有的值中一成不变地借用。 Read more

从拥有的值中借用。 Read more

执行转换。

执行转换。

发生转换错误时返回的类型。

执行转换。

发生转换错误时返回的类型。

执行转换。