vendor.hh
Go to the documentation of this file.
1#pragma once
2
3/// @file
4/// @brief The ormqr vendor call for callers that bypass selection, gated on the library. @ingroup api_selection_ops
5// Without the library the call is never instantiated (no symbol to link); it throws NoRouteError instead.
6
8
10
11#include <cstddef>
12#include <utility>
13
15
16template <Backend B, typename T, typename... Args> /// backend::ormqr_vendor. @throws NoRouteError without the library.
24
25template <Backend B, typename T, typename... Args> /// Its workspace size. @throws NoRouteError without the library.
33
34} // namespace batchlas::ops::ormqr::detail
Event ormqr_vendor(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, const MatrixView< T, MatrixFormat::Dense > &C, Side side, Transpose trans, Span< T > tau, Span< std::byte > workspace)
Vendor arm of ormqr() (cuSOLVER / rocSOLVER / LAPACKE); not for direct use.
size_t ormqr_vendor_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, const MatrixView< T, MatrixFormat::Dense > &C, Side side, Transpose trans, Span< T > tau)
Workspace query of the vendor arm of ormqr().
Backend
Library family an entry point dispatches to, used as a template argument.
Definition enums.hh:111
constexpr bool factorization_vendor_available
geqrf/orgqr/getrf/getrs/getri/ormqr.
Definition vendor.hh:38
void throw_no_vendor_route(Op op, Backend backend, const char *library)
The single funnel for "nothing can serve this call": records the miss, then throws NoRouteError.
Definition vendor.hh:109
constexpr const char * kFactorizationLibrary
Definition vendor.hh:61
std::size_t ormqr_vendor_buffer_size_or_throw(Args &&... args)
Its workspace size.
Definition vendor.hh:26
Event ormqr_vendor_or_throw(Args &&... args)
backend::ormqr_vendor.
Definition vendor.hh:17
Batched application of Q from geqrf reflectors (ormqr/unmqr) and its workspace query.
Link facts for if constexpr gates: is an op's vendor library compiled in for a backend,...
Completion handle of enqueued work, returned by every entry point.