vendor.hh
Go to the documentation of this file.
1#pragma once
2
3/// @file
4/// @brief The syev 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::syev_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::syev::detail
size_t syev_vendor_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &descrA, Span< typename base_type< T >::type > eigenvalues, JobType jobtype, Uplo uplo)
Workspace, in bytes, for backend::syev_vendor().
Event syev_vendor(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &descrA, Span< typename base_type< T >::type > eigenvalues, JobType jobtype, Uplo uplo, Span< std::byte > workspace, Span< int32_t > info_out=Span< int32_t >())
The vendor solver's syev (cuSOLVER, rocSOLVER or a LAPACKE loop), as syev()'s vendor family calls it;...
Backend
Library family an entry point dispatches to, used as a template argument.
Definition enums.hh:111
constexpr bool solver_vendor_available
Definition vendor.hh:44
constexpr const char * kSolverLibrary
Definition vendor.hh:65
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
std::size_t syev_vendor_buffer_size_or_throw(Args &&... args)
Its workspace size.
Definition vendor.hh:26
Event syev_vendor_or_throw(Args &&... args)
backend::syev_vendor.
Definition vendor.hh:17
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.