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

176 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[simd.unary]
# 29 Numerics library [[numerics]](./#numerics)
## 29.10 Data-parallel types [[simd]](simd#unary)
### 29.10.7 Class template basic_vec [[simd.class]](simd.class#simd.unary)
#### 29.10.7.5 basic_vec unary operators [simd.unary]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L17983)
Effects in [simd.unary] are applied as unary element-wise operations[.](#1.sentence-1)
[🔗](#lib:operator++,basic_vec)
`constexpr basic_vec& operator++() noexcept;
`
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L17992)
*Constraints*: requires (value_type a) { ++a; } is true[.](#2.sentence-1)
[3](#3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L17996)
*Effects*: Increments every element by one[.](#3.sentence-1)
[4](#4)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18000)
*Returns*: *this[.](#4.sentence-1)
[🔗](#lib:operator++,basic_vec_)
`constexpr basic_vec operator++(int) noexcept;
`
[5](#5)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18011)
*Constraints*: requires (value_type a) { a++; } is true[.](#5.sentence-1)
[6](#6)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18015)
*Effects*: Increments every element by one[.](#6.sentence-1)
[7](#7)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18019)
*Returns*: A copy of *this before incrementing[.](#7.sentence-1)
[🔗](#lib:operator--,basic_vec)
`constexpr basic_vec& operator--() noexcept;
`
[8](#8)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18030)
*Constraints*: requires (value_type a) { --a; } is true[.](#8.sentence-1)
[9](#9)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18034)
*Effects*: Decrements every element by one[.](#9.sentence-1)
[10](#10)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18038)
*Returns*: *this[.](#10.sentence-1)
[🔗](#lib:operator--,basic_vec_)
`constexpr basic_vec operator--(int) noexcept;
`
[11](#11)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18049)
*Constraints*: requires (value_type a) { a--; } is true[.](#11.sentence-1)
[12](#12)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18053)
*Effects*: Decrements every element by one[.](#12.sentence-1)
[13](#13)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18057)
*Returns*: A copy of *this before decrementing[.](#13.sentence-1)
[🔗](#lib:operator,operator,basic_vec)
`constexpr mask_type operator!() const noexcept;
`
[14](#14)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18068)
*Constraints*: requires (const value_type a) { !a; } is true[.](#14.sentence-1)
[15](#15)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18072)
*Returns*: A basic_mask object with the ith element set to!operator[](i) for all i in the range of [0, size())[.](#15.sentence-1)
[🔗](#lib:operator~,basic_vec)
`constexpr basic_vec operator~() const noexcept;
`
[16](#16)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18084)
*Constraints*: requires (const value_type a) { ~a; } is true[.](#16.sentence-1)
[17](#17)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18088)
*Returns*: A basic_vec object with the ith element set to~operator[](i) for all i in the range of [0, size())[.](#17.sentence-1)
[🔗](#lib:operator+,basic_vec)
`constexpr basic_vec operator+() const noexcept;
`
[18](#18)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18100)
*Constraints*: requires (const value_type a) { +a; } is true[.](#18.sentence-1)
[19](#19)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18104)
*Returns*: *this[.](#19.sentence-1)
[🔗](#lib:operator-,basic_vec)
`constexpr basic_vec operator-() const noexcept;
`
[20](#20)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18115)
*Constraints*: requires (const value_type a) { -a; } is true[.](#20.sentence-1)
[21](#21)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L18119)
*Returns*: A basic_vec object where the ith element is initialized to-operator[](i) for all i in the range of [0, size())[.](#21.sentence-1)