MimIR 0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
autodiff.h
Go to the documentation of this file.
1#pragma once
2
4#include "mim/world.h"
5
7
8/// @name %%autodiff.Tangent
9///@{
10const Def* tangent_type_fun(const Def*);
11///@}
12
13/// @name %%autodiff.zero
14///@{
15const Def* zero_def(const Def* T);
16const Def* zero_pullback(const Def* E, const Def* A);
17///@}
18
19/// @name %%autodiff.sum
20///@{
21const Def* op_sum(const Def* T, Defs);
22///@}
23
24/// @name Helpers
25///@{
26const Pi* pullback_type(const Def* E, const Def* A);
27const Def* id_pullback(const Def*);
28const Pi* autodiff_type_fun_pi(const Pi*);
29const Def* autodiff_type_fun(const Def*);
30///@}
31
32} // namespace mim::plug::autodiff
Base class for all Defs.
Definition def.h:223
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:6
const Pi * autodiff_type_fun_pi(const Pi *)
Definition autodiff.cpp:90
const Def * op_sum(const Def *T, Defs)
Definition autodiff.cpp:169
const Def * autodiff_type_fun(const Def *)
Definition autodiff.cpp:113
const Def * zero_def(const Def *T)
Definition autodiff.cpp:140
const Def * tangent_type_fun(const Def *)
Definition autodiff.cpp:57
const Def * zero_pullback(const Def *E, const Def *A)
Definition autodiff.cpp:44
const Def * id_pullback(const Def *)
Definition autodiff.cpp:32
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