AlgebraicJulia / AlgebraicJulia/DiagrammaticEquations.jl

DerivOp special case in infer_terminals

未關閉
#77 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Julia
星號
20
分支
4
PR 合併指標
30 天內沒有已合併 PR

描述

Currently something is a terminal variable if and only if it is not the source of any other operation. However, something is a source variable if it is not the result of any operation or if it is the source of a Partial T operation. So in the case of ```∂ₜ(u) == u```, `u` would be a source variable but not a terminal variable.

For reference, the output decapode looks like this:
```julia
SummationDecapode{Any, Any, Symbol} {Var:1, TVar:1, Op1:1, Op2:0, Σ:0, Summand:0, Type:0, Operator:0, Name:0}
┌─────┬───────┬──────┐
│ Var │ type │ name │
├─────┼───────┼──────┤
│ 1 │ infer │ u │
└─────┴───────┴──────┘
┌──────┬──────┐
│ TVar │ incl │
├──────┼──────┤
│ 1 │ 1 │
└──────┴──────┘
┌─────┬─────┬─────┬─────┐
│ Op1 │ src │ tgt │ op1 │
├─────┼─────┼─────┼─────┤
│ 1 │ 1 │ 1 │ ∂ₜ │
└─────┴─────┴─────┴─────┘
```

In order to balance out this behavior, we should add an case to the terminals that if it is the result of a Partial T operation then it is automatically a terminal.

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。