3#include "lamppp/autograd/forward_function.hpp"
4#include "lamppp/autograd/function.hpp"
6namespace lmp::autograd::ops {
10 variable_list apply(
const variable_list& gradOutputs)
override;
18 variable_list apply(
const variable_list& gradOutputs)
override;
26 variable_list apply(
const variable_list& gradOutputs)
override;
34 variable_list apply(
const variable_list& gradOutputs)
override;
42 variable_list apply(
const variable_list& gradOutputs)
override;
50 variable_list apply(
const variable_list& gradOutputs)
override;
58 variable_list apply(
const variable_list& gradOutputs)
override;
66 variable_list apply(
const variable_list& gradOutputs)
override;
74 tensor::Scalar min_val_, max_val_;
75 explicit ClampBackward(tensor::Scalar min_val, tensor::Scalar max_val)
76 : min_val_(min_val), max_val_(max_val) {}
77 variable_list apply(
const variable_list& gradOutputs)
override;
81 tensor::Scalar min_val_, max_val_;
82 explicit Clamp(tensor::Scalar min_val, tensor::Scalar max_val)
83 : min_val_(min_val), max_val_(max_val) {}
94 return VariableOpFact::apply<Negation>({a})[0];
103 return VariableOpFact::apply<Exponential>({a})[0];
111inline Variable log(
const Variable& a) {
112 return VariableOpFact::apply<Logarithm>({a})[0];
120inline Variable sqrt(
const Variable& a) {
121 return VariableOpFact::apply<SquareRoot>({a})[0];
129inline Variable abs(
const Variable& a) {
130 return VariableOpFact::apply<AbsoluteValue>({a})[0];
138inline Variable sin(
const Variable& a) {
139 return VariableOpFact::apply<Sine>({a})[0];
147inline Variable cos(
const Variable& a) {
148 return VariableOpFact::apply<Cosine>({a})[0];
156inline Variable tan(
const Variable& a) {
157 return VariableOpFact::apply<Tangent>({a})[0];
167inline Variable clamp(
const Variable& a, tensor::Scalar min_val,
168 tensor::Scalar max_val) {
169 return VariableOpFact::apply<Clamp>({a}, min_val, max_val)[0];
Definition variable.hpp:48
Main tensor object for Lamppp.
Definition tensor.hpp:29
Definition forward_function.hpp:11
Definition function.hpp:12
Definition unary_ops.hpp:41
Definition unary_ops.hpp:44
Definition unary_ops.hpp:73
Definition unary_ops.hpp:79
Definition unary_ops.hpp:57
Definition unary_ops.hpp:60
Definition unary_ops.hpp:17
Definition unary_ops.hpp:20
Definition unary_ops.hpp:25
Definition unary_ops.hpp:28
Definition unary_ops.hpp:9
Definition unary_ops.hpp:12
Definition unary_ops.hpp:49
Definition unary_ops.hpp:52
Definition unary_ops.hpp:33
Definition unary_ops.hpp:36
Definition unary_ops.hpp:65
Definition unary_ops.hpp:68