Strange Loop

2009 - 2023

/

St. Louis, MO

Symbolic-numeric programming in Julia

This talk is about Symbolics.jl, a package for computer-algebra-based metaprogramming. It uses multiple-dispatch to trace through numerical code to produce symbolic expressions, and allows turning symbolic expressions back into Julia code. This means any user can write code transforms with the full power of a computer algebra system. The code generation can remove intermediate allocations and produce multithreaded code. Automatic differentiation of R^n -> R^m functions naturally arises in the system, symbolic techniques allow precomputation of jacobian and hessian sparsity for performance. Symbolics.jl has O(1)-size representation of array operations and stencils. A unified expression interface separates concerns between expression manipulation code and expression representations. We demonstrate an e-graph based simplifier, and a rule-based simplifier working using this interface on several expression types all without knowing about eachother.

Shashi Gowda

Shashi Gowda

PhD candidate in Computational Science at MIT

I have been working with the Julia language for 8 years, and I admire it in new ways every day. I am currently a PhD student at MIT in Computational Science and Engineering under Prof. Alan Edelman. I am working on large-scale symbolic systems. In my free time, I like to skateboard and go backpacking.