The Importance of Algebraic Simplification November 6, 2019 Harshad Deo 3 minutes read Algebraic simplifiers are submodules of the SimianQuant processing pipeline that use isomorphisms of the rules taught in algebra class to reduce expression complexity. They are significantly more powerful than the constant folders and common subexpression eliminators that are a part of modern compilers, and are a major contributor to the performance step achieved by the library. This article illustrates that contribution.
Conditional Graph Factorization October 23, 2019 Harshad Deo 3 minutes read Conditional Graph Factorization is a submodule of the SimianQuant code generator that generalizes the concept of calibration. Given a sequence of partitions of the domain, it factorizes the full computational graph into a sequence of subgraphs conditional on the respective partition and the inferred codomain of the previous subgraph. This article illustrates the principle and some applications.
Spire Issues - Algorithmic Differentiation March 8, 2019 Harshad Deo 3 minutes read Spire is a Scala library that implements number types and numeric abstractions. With close to 1500 stars on github (as of writing), it seems to be the library around which the community has coalesced for those applications. However there are issues with the implementation of specific datastructures.