pRC
multi-purpose Tensor Train library for C++
Loading...
Searching...
No Matches
prc
core
functors
is_diagonal.hpp
Go to the documentation of this file.
1
// SPDX-License-Identifier: BSD-2-Clause
2
3
#ifndef pRC_CORE_FUNCTORS_IS_DIAGONAL_H
4
#define pRC_CORE_FUNCTORS_IS_DIAGONAL_H
5
6
#include <
prc/core/basic/type_traits.hpp
>
7
8
namespace
pRC
9
{
10
struct
IsDiagonal
11
{
12
template<class X, If<True<decltype(isDiagonal(declval<X>
()))>> = 0>
13
constexpr
decltype
(
auto
)
operator
()(
X
&&a)
const
14
{
15
return
isDiagonal
(
forward<X>
(a));
16
}
17
18
template
<
class
X
,
class
XT
,
19
If<True<decltype(isDiagonal(declval<X>
(),
declval<XT>
()))>> = 0>
20
constexpr
decltype
(
auto
)
operator
()(
X
&&a,
XT
&&tolerance)
const
21
{
22
return
isDiagonal
(
forward<X>
(a),
forward<XT>
(tolerance));
23
}
24
};
25
}
26
#endif
// pRC_CORE_FUNCTORS_IS_DIAGONAL_H
type_traits.hpp
pRC
Definition
cholesky.hpp:18
pRC::copy
static constexpr Conditional< IsSatisfied< C >, RemoveConstReference< X >, X > copy(X &&a)
Definition
copy.hpp:13
pRC::isDiagonal
static constexpr auto isDiagonal(X &&a, TT const &tolerance=NumericLimits< TT >::tolerance())
Checks if a Tensor is diagonal.
Definition
is_diagonal.hpp:27
pRC::IsDiagonal
Definition
is_diagonal.hpp:11
Generated by
1.9.8