lamppp
Loading...
Searching...
No Matches
function.hpp
1#pragma once
2
3#include <memory>
4#include "variable.hpp"
5
6namespace lmp::autograd {
7
8class Variable;
9struct Function;
10
12struct Function : public std::enable_shared_from_this<Function> {
13 std::unique_ptr<variable_list> saved_inputs;
14
15 Function() = default;
16 virtual ~Function() = default;
17
18 virtual variable_list apply(const variable_list& inputs) = 0;
19 variable_list operator()(const variable_list& inputs) {
20 return apply(inputs);
21 }
22};
24
25} // namespace lmp::autograd
Definition function.hpp:12