cMHN 1.2
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
square.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-2-Clause
2
3#ifndef pRC_CORE_COMPLEX_FUNCTIONS_SQUARE_H
4#define pRC_CORE_COMPLEX_FUNCTIONS_SQUARE_H
5
7
8namespace pRC
9{
10 template<IsComplex T>
11 static inline constexpr auto square(T const &a)
12 {
13 auto const real = a.real() * a.real() - a.imag() * a.imag();
14 auto const imag = identity<typename T::Type>(2) * a.real() * a.imag();
15
16 return Complex(real, imag);
17 }
18}
19#endif // pRC_CORE_COMPLEX_FUNCTIONS_SQUARE_H
Definition value.hpp:12
Definition cholesky.hpp:10
Complex(T const &) -> Complex< T >
static constexpr decltype(auto) real(X &&a)
Definition real.hpp:12
static constexpr auto square(T const &a)
Definition square.hpp:11
static constexpr decltype(auto) imag(X &&a)
Definition imag.hpp:12
static constexpr auto identity()
Definition identity.hpp:13