1 #ifndef VALUE_HPP_INCLUDED_DS9P8IU4LKJASDOIPUY498YAFKASHFAS9F8Y4OKHDAFSIUOHASDFFS
2 #define VALUE_HPP_INCLUDED_DS9P8IU4LKJASDOIPUY498YAFKASHFAS9F8Y4OKHDAFSIUOHASDFFS
6 #include "./utils/id.hpp"
7 #include "./utils/better_assert.hpp"
8 #include "./utils/enable_shared.hpp"
13 template<
typename T > requires std::floating_point<T>
14 struct value : enable_id< value<T>, "Value" >
28 template< Tensor Tsor >
29 Tsor
const forward( Tsor
const& refer )
const
37 template<
typename T >
40 template<
typename T >
46 template<
typename T >
51 template<
typename L,
typename R >
54 using op_type = std::conditional<is_value_v<L>, R, L>::type;
55 using tensor_type = std::remove_cv_t<decltype(std::declval<op_type>().forward())>;
Definition: activation.hpp:12
constexpr Tsor ones_like(Tsor const &tsor)
Definition: tensor.hpp:1002
concept Value
Definition: value.hpp:47
constexpr bool is_value_v
Definition: value.hpp:44
std::conditional< is_value_v< L >, R, L >::type op_type
Definition: value.hpp:54
std::remove_cv_t< decltype(std::declval< op_type >().forward())> tensor_type
Definition: value.hpp:55
value(value_type v) noexcept
Definition: value.hpp:20
T value_type
Definition: value.hpp:16
value(value &&) noexcept=default
value_type data_
Definition: value.hpp:17
Tsor const forward(Tsor const &refer) const
Definition: value.hpp:29
void backward(auto) noexcept
Definition: value.hpp:26
value(value const &) noexcept=default