Thorin 1.9.0
The Higher ORder INtermediate representation
Loading...
Searching...
No Matches
autodiff.h
Go to the documentation of this file.
1#pragma once
2
3#include "thorin/world.h"
4
6
8
9/// @name %%autodiff.Tangent
10///@{
11const Def* tangent_type_fun(const Def*);
12///@}
13
14/// @name %%autodiff.zero
15///@{
16const Def* zero_def(const Def* T);
17const Def* zero_pullback(const Def* E, const Def* A);
18///@}
19
20/// @name %%autodiff.sum
21///@{
22const Def* op_sum(const Def* T, Defs);
23///@}
24
25/// @name Helpers
26///@{
27const Pi* pullback_type(const Def* E, const Def* A);
28const Def* id_pullback(const Def*);
29const Pi* autodiff_type_fun_pi(const Pi*);
30const Def* autodiff_type_fun(const Def*);
31///@}
32
33} // namespace thorin::plug::autodiff
Base class for all Defs.
Definition def.h:220
A dependent function type.
Definition lam.h:11
This is a thin wrapper for std::span<T, N> with the following additional features:
Definition span.h:28
The automatic differentiation Plugin
Definition autodiff.h:7
const Def * tangent_type_fun(const Def *)
Definition autodiff.cpp:57
const Def * zero_def(const Def *T)
Definition autodiff.cpp:140
const Pi * pullback_type(const Def *E, const Def *A)
computes pb type E* -> A* E - type of the expression (return type for a function) A - type of the arg...
Definition autodiff.cpp:62
const Pi * autodiff_type_fun_pi(const Pi *)
Definition autodiff.cpp:90
const Def * id_pullback(const Def *)
Definition autodiff.cpp:32
const Def * zero_pullback(const Def *E, const Def *A)
Definition autodiff.cpp:44
const Def * op_sum(const Def *T, Defs)
Definition autodiff.cpp:169
const Def * autodiff_type_fun(const Def *)
Definition autodiff.cpp:113