文件名称:CHAD
文件大小:27KB
文件格式:ZIP
更新时间:2024-04-18 14:39:25
Haskell
CHAD:组合同态自动微分 此仓库包含CHAD的参考实现。 CHAD是一种在表达功能语言上自动进行反向和正向模式区分的方法。 它执行AD作为一种组合式,类型安全的源代码转换,该转换将每种语言原语转换为其(转置的)派生语言。 从保持结构的函子的意义上讲,这种代码转换是同态的-实际上,这种同态特性迫使CHAD的定义必须是其定义。 结果,CHAD接受了直接的正确性证明,表明只要正确实现了所有语言原语的(转置)导数,它就可以计算任何复合程序的正确(转置)导数。 这种组合性使CHAD易于通过新的语言功能进行扩展。 当源语言首次转换为分类组合器时,CHAD最漂亮。 CHAD是在引入的,这反过来又受到思想的启发。 给出了与CHAD所定义的同态定义类似的对高阶函数AD的处理。 范例程序 在中可以找到一些示例程序。 可以通过首先构建库( stack build ),然后在GHCi中打开文件( stac
【文件预览】:
CHAD-main
----package.yaml(1000B)
----hie.yaml(242B)
----test()
--------Main.hs(74B)
----stack.yaml(34B)
----LICENSE(2KB)
----src()
--------Operation.hs(4KB)
--------Simplify.hs(5KB)
--------SourceLanguage.hs(3KB)
--------TargetLanguage()
--------TargetLanguage.hs(18KB)
--------ForwardAD.hs(3KB)
--------Test.hs(12KB)
--------Types.hs(12KB)
--------ReverseAD.hs(4KB)
--------Examples.hs(7KB)
----Setup.hs(46B)
----.gitignore(681B)
----stack.yaml.lock(447B)
----chad-logo.svg(7KB)
----ad-on-higher-order-functions.cabal(2KB)
----README.md(2KB)