Files
2025-10-25 03:02:53 +03:00

76 lines
2.1 KiB
Markdown

[simd.mask.conv]
# 29 Numerics library [[numerics]](./#numerics)
## 29.10 Data-parallel types [[simd]](simd#mask.conv)
### 29.10.9 Class template basic_mask [[simd.mask.class]](simd.mask.class#simd.mask.conv)
#### 29.10.9.5 basic_mask conversions [simd.mask.conv]
[🔗](#lib:operator_basic_vec,basic_mask)
`template<class U, class A>
constexpr explicit(sizeof(U) != Bytes) operator basic_vec<U, A>() const noexcept;
`
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L20291)
*Constraints*: *simd-size-v*<U, A> == *simd-size-v*<T, Abi>[.](#1.sentence-1)
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L20295)
*Returns*: A data-parallel object where the ith element is initialized tostatic_cast<U>(operator[](i))[.](#2.sentence-1)
[🔗](#lib:to_bitset,basic_mask)
`constexpr bitset<size()> to_bitset() const noexcept;
`
[3](#3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L20307)
*Returns*: A bitset<size()> object where the ith element is initialized tooperator[](i) for all i in the range [0, size())[.](#3.sentence-1)
[🔗](#lib:to_ullong,basic_mask)
`constexpr unsigned long long to_ullong() const;
`
[4](#4)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L20319)
Let N be the width of unsigned long long[.](#4.sentence-1)
[5](#5)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L20322)
*Preconditions*:
- [(5.1)](#5.1)
size() <= N is true, or
- [(5.2)](#5.2)
for all i in the range [N, size()), operator[](i) returns false[.](#5.sentence-1)
[6](#6)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L20329)
*Returns*: The integral value corresponding to the bits in *this[.](#6.sentence-1)
[7](#7)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L20333)
*Throws*: Nothing[.](#7.sentence-1)