Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
mplapack/norms.hpp
Go to the documentation of this file.
1#pragma once
2
17#include <uni20/config.hpp>
18#include <uni20/core/types.hpp>
19
20#if UNI20_HAS_MPLAPACK_FLOAT128
21// clang-format off
22#include <mplapack_config.h>
23#include <mplapack_binary128.h>
24// clang-format on
25#endif
26
28{
29
30#if UNI20_HAS_MPLAPACK_FLOAT128
31
32[[nodiscard]] inline uni20::float128 lange(char norm, blas_int m, blas_int n, uni20::float128* a, blas_int lda,
33 uni20::float128* work)
34{
35 UNI20_EXTERNAL_API_CALL(LAPACK, Rlange, norm, m, n, a, lda, work);
36 return Rlange(&norm, static_cast<mplapackint>(m), static_cast<mplapackint>(n), a, static_cast<mplapackint>(lda),
37 work);
38}
39
40[[nodiscard]] inline uni20::float128 lange(char norm, blas_int m, blas_int n, uni20::complex<uni20::float128>* a,
41 blas_int lda, uni20::float128* work)
42{
43 UNI20_EXTERNAL_API_CALL(LAPACK, Clange, norm, m, n, a, lda, work);
44 return Clange(&norm, static_cast<mplapackint>(m), static_cast<mplapackint>(n), a, static_cast<mplapackint>(lda),
45 work);
46}
47
48[[nodiscard]] inline uni20::float128 lansy(char norm, char uplo, blas_int n, uni20::float128* a, blas_int lda,
49 uni20::float128* work)
50{
51 UNI20_EXTERNAL_API_CALL(LAPACK, Rlansy, norm, uplo, n, a, lda, work);
52 return Rlansy(&norm, &uplo, static_cast<mplapackint>(n), a, static_cast<mplapackint>(lda), work);
53}
54
55[[nodiscard]] inline uni20::float128 lanhe(char norm, char uplo, blas_int n, uni20::complex<uni20::float128>* a,
56 blas_int lda, uni20::float128* work)
57{
58 UNI20_EXTERNAL_API_CALL(LAPACK, Clanhe, norm, uplo, n, a, lda, work);
59 return Clanhe(&norm, &uplo, static_cast<mplapackint>(n), a, static_cast<mplapackint>(lda), work);
60}
61
62[[nodiscard]] inline uni20::float128 lantr(char norm, char uplo, char diag, blas_int m, blas_int n, uni20::float128* a,
63 blas_int lda, uni20::float128* work)
64{
65 UNI20_EXTERNAL_API_CALL(LAPACK, Rlantr, norm, uplo, diag, m, n, a, lda, work);
66 return Rlantr(&norm, &uplo, &diag, static_cast<mplapackint>(m), static_cast<mplapackint>(n), a,
67 static_cast<mplapackint>(lda), work);
68}
69
70[[nodiscard]] inline uni20::float128 lantr(char norm, char uplo, char diag, blas_int m, blas_int n,
71 uni20::complex<uni20::float128>* a, blas_int lda, uni20::float128* work)
72{
73 UNI20_EXTERNAL_API_CALL(LAPACK, Clantr, norm, uplo, diag, m, n, a, lda, work);
74 return Clantr(&norm, &uplo, &diag, static_cast<mplapackint>(m), static_cast<mplapackint>(n), a,
75 static_cast<mplapackint>(lda), work);
76}
77
78[[nodiscard]] inline uni20::float128 langb(char norm, blas_int n, blas_int kl, blas_int ku, uni20::float128* ab,
79 blas_int ldab, uni20::float128* work)
80{
81 UNI20_EXTERNAL_API_CALL(LAPACK, Rlangb, norm, n, kl, ku, ab, ldab, work);
82 return Rlangb(&norm, static_cast<mplapackint>(n), static_cast<mplapackint>(kl), static_cast<mplapackint>(ku), ab,
83 static_cast<mplapackint>(ldab), work);
84}
85
86#endif
87
88} // namespace uni20::lapack::unchecked
Shared helpers for LAPACK backend wrappers.
#define UNI20_EXTERNAL_API_CALL(module, func,...)
Emits a trace log entry for an outgoing backend API call.
Definition backend.hpp:90
typename detail::complex_type< Real >::type complex
Project-level complex scalar spelling.
Definition types.hpp:66
Definition mplapack/band.hpp:25
float lansy(char norm, char uplo, blas_int n, float *a, blas_int lda, float *work)
Definition reference/norms.hpp:90
float lange(char norm, blas_int m, blas_int n, float *a, blas_int lda, float *work)
Definition reference/norms.hpp:65
float lanhe(char norm, char uplo, blas_int n, uni20::complex< float > *a, blas_int lda, float *work)
Definition reference/norms.hpp:102
float langb(char norm, blas_int n, blas_int kl, blas_int ku, float *ab, blas_int ldab, float *work)
Definition reference/norms.hpp:143
float lantr(char norm, char uplo, char diag, blas_int m, blas_int n, float *a, blas_int lda, float *work)
Definition reference/norms.hpp:115
mpreal norm(mpcomplex const &z)
Definition mpcomplex.hpp:494