From 9e722372ffed0504820c5a04ac689a7f8dc76b0a Mon Sep 17 00:00:00 2001 From: yoh Date: Thu, 19 Dec 2024 17:26:10 +0900 Subject: [PATCH] =?UTF-8?q?linalg/conjugated:=20R3050R2=E5=AF=BE=E5=BF=9C(?= =?UTF-8?q?#1383)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/linalg/conjugated.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/reference/linalg/conjugated.md b/reference/linalg/conjugated.md index 78fb8b04a..7104eb4a9 100644 --- a/reference/linalg/conjugated.md +++ b/reference/linalg/conjugated.md @@ -22,8 +22,16 @@ namespace std::linalg { ## 戻り値 -- `Accessor`が[`conjugated_accessor`](conjugated_accessor.md)の特殊化のとき、説明用の型`A`を[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)``として、 +説明用の型`A`を下記の通りとする。 +- `Accessor`が[`conjugated_accessor`](conjugated_accessor.md)の特殊化のとき、[`remove_cvref_t`](/reference/type_traits/remove_cvref.md)`` +- [`remove_cvref_t`](/reference/type_traits/remove_cvref.md)``が算術型のとき、`Accessor` +- [`remove_cvref_t`](/reference/type_traits/remove_cvref.md)``と等価な型`T`となる任意の部分式`E`に対して、宣言`template conj(const T&) = delete;`を含むコンテキストでオーバーロード解決が行わた結果`conj(E)`が有効な式ではないとき、`Accessor` +- そうでなければ、[`conjugated_accessor`](conjugated_accessor.md) + +戻り値は下記の通り。 + +- `Accessor`が[`conjugated_accessor`](conjugated_accessor.md)の特殊化のとき、 ```cpp mdspan( a.data_handle(), a.mapping(), a.accessor().nested_accessor()) @@ -32,8 +40,9 @@ namespace std::linalg { * Extents[link /reference/mdspan/extents.md] * Layout[link /reference/mdspan/LayoutMappingPolicy.md] -- そうではないとき、説明用の型`A`を[`conjugated_accessor`](conjugated_accessor.md)``として、 - +- [`remove_cvref_t`](/reference/type_traits/remove_cvref.md)``が算術型のとき、`a` +- [`remove_cvref_t`](/reference/type_traits/remove_cvref.md)``と等価な型`T`となる任意の部分式`E`に対して、宣言`template conj(const T&) = delete;`を含むコンテキストでオーバーロード解決が行わた結果`conj(E)`が有効な式ではないとき、`a` +- そうではないとき、 ```cpp mdspan( a.data_handle(), a.mapping(), conjugated_accessor(a.accessor())) @@ -89,3 +98,4 @@ int main() ## 参照 - [P1673R13 A free function linear algebra interface based on the BLAS](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p1673r13.html) - [P1674R2: Evolving a Standard C++ Linear Algebra Library from the BLAS](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1674r2.html) +- [P3050R2 Fix C++26 by optimizing linalg::conjugated for noncomplex value types](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3050r2.html)