Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
binary80_common.hpp
Go to the documentation of this file.
1#pragma once
2
9
10namespace uni20::linalg
11{
12namespace mplapack_binary80_detail
13{
14template <class T>
15concept Binary80Scalar = std::same_as<T, float80> || std::same_as<T, complex160>;
16
17// GEMM needs no complex division. LU and decompositions require the validated native provider
18// specialization; otherwise ordinary dispatch can select the CPU backend.
19template <class T>
21 std::same_as<T, float80> || (UNI20_HAS_MPLAPACK_FLOAT80_COMPLEX != 0 && std::same_as<T, complex160>);
22
23template <class Span> auto pack(Span const& span, bool read = true)
24{
25 return packed_detail::pack(span, native_precision<typename Span::value_type>(), read);
26}
29} // namespace mplapack_binary80_detail
30} // namespace uni20::linalg
auto pack(Span const &span, bool read=true)
Definition binary80_common.hpp:23
void unpack(Tensor const &source, Span &target)
Definition packed_matrix.hpp:33
auto pack(Span const &span, Precision p, bool read=true)
Definition packed_matrix.hpp:19
auto values(Tensor &tensor)
Definition packed_matrix.hpp:29
Definition linalg/async.hpp:28
Logical host packing for value-converting BLAS and LAPACK adapters.
std::size_t span
Definition presentation.cpp:2017