Why Diffkt?
DiffKt is a Kotlin library for building mathematical functions that can be automatically differentiated. Automatic differentiation is a software method that can take a mathematical function represented as a software function and produce the derivative of the function using the chain rule and elementary arithmetic operations in the functions.
There are many automatic differentiation packages in other language such as Fortran, C++, or Python. DiffKt brings automatic differentiation to Kotlin. We believe DiffKt is one of the most advanced automatic differentiation packages in the open source community, and for the JVM. DiffKt incorporates the latest research in automatic differentiation.
DiffKt can be used for scientific computing, deep neural networks, machine learning, statistics, optimization, or physical systems modeling. DiffKt provides a framework to build functions over multi-dimensional arrays, called tensors, and lets you build complex data structures with its user defined types.