Skip to content

Commit

Permalink
[linalg.conj.conjugated] Rearrange to match P3050R3
Browse files Browse the repository at this point in the history
This was the wording requested by LWG and approved in P3050R3, but I
mistakenly put P3050R2 in the straw polls.
  • Loading branch information
jwakely committed Dec 19, 2024
1 parent 85de0af commit ffa49c8
Showing 1 changed file with 16 additions and 22 deletions.
38 changes: 16 additions & 22 deletions source/numerics.tex
Original file line number Diff line number Diff line change
Expand Up @@ -12812,41 +12812,35 @@
\begin{itemize}
\item
\tcode{remove_cvref_t<decltype(a.accessor().nested_accessor())>}
if \tcode{Accessor} is a specialization of \tcode{conjugated_accessor}; otherwise,
if \tcode{Accessor} is a specialization of \tcode{conjugated_accessor};
\item
\tcode{Accessor} if \tcode{remove_cvref_t<ElementType>} is an arithmetic type; otherwise,
otherwise,
\tcode{Accessor} if \tcode{remove_cvref_t<ElementType>} is an arithmetic type;
\item
\tcode{Accessor} if the expression \tcode{conj(E)} is not valid for any subexpression \tcode{E}
otherwise,
\tcode{conjugated_accessor<Accessor>}
if the expression \tcode{conj(E)} is valid for any subexpression \tcode{E}
whose type is \tcode{remove_cvref_t<ElementType>}
with overload resolution performed in a context that includes the declaration
\tcode{template<class T> conj(const T\&) = delete;}; and otherwise,
\tcode{template<class U> conj(const U\&) = delete;};
\item
\tcode{conjugated_accessor<Accessor>}.
otherwise,
\tcode{Accessor}.
\end{itemize}

\pnum
\returns
Let \tcode{MD} be \tcode{mdspan<typename A::element_type, Extents, Layout, A>}.
\begin{itemize}
\item
The value
\begin{codeblock}
mdspan<typename A::element_type, Extents, Layout, A>(a.data_handle(), a.mapping(),
a.accessor().nested_accessor())
\end{codeblock}
if \tcode{Accessor} is a specialization of \tcode{conjugated_accessor}; otherwise,
\item
\tcode{a} if \tcode{remove_cvref_t<ElementType>} is an arithmetic type; otherwise,
\tcode{MD(a.data_handle(), a.mapping(), a.accessor().nested_accessor())}
if \tcode{Accessor} is a\newline specialization of \tcode{conjugated_accessor};
\item
\tcode{a} if the expression \tcode{conj(E)} is not valid for any subexpression \tcode{E}
whose type is \tcode{remove_cvref_t<ElementType>}
with overload resolution performed in a context that includes the declaration
\tcode{template<class T> conj(const T\&) = delete;}; and otherwise,
otherwise,
\tcode{a}, if \tcode{is_same_v<A, Accessor>} is \tcode{true};
\item
the value
\begin{codeblock}
mdspan<typename A::element_type, Extents, Layout, A>(a.data_handle(), a.mapping(),
conjugated_accessor(a.accessor()))
\end{codeblock}
otherwise,
\tcode{MD(a.data_handle(), a.mapping(), conjugated_accessor(a.accessor()))}.
\end{itemize}
\end{itemdescr}

Expand Down

0 comments on commit ffa49c8

Please sign in to comment.