Posts by Saul Shanabrook

EGRAPHS Community Call Talk

Egglog as a tool for building an optimizing composable type safe DSLs in Python

../../_images/0070cd818076ee3142971a8ea7b6dfd4170ada889f37f164486ec8fd998dde2e.jpg

Read more ...


Original Congruence Closure Paper

In this post, I re-create the examples from the original 1980 paper defining the “congruence closure” of a graph in Python.

Read more ...


PyTensor Chat

Ricardo Vieira reached out asking to see if we could chat about egglog and to explore if it could be used inside of PyTensor for rewriting.

../../_images/fc422c17a822b65051d8b19aac8c8a16f8c288df4357383f9879b362b6502ec1.jpg

Read more ...


Indexing pushdown

I got this question today, and I thought I would write up some examples to explain the current state of things, for this sort of indexing pushdown:

../../_images/d073a1a36f8ee515a85b1651e141adce8f8c5da3a5269396cdeda87ab2af5817.svg

Read more ...


egglog

Saul Shanabrook

PL - PyData - egglog handshake meme

Read more ...


PyData NYC ‘23

E-graphs in Python with egglog

../../_images/65eab07005c660cbc6e17a1a0a6a1a96b4b1260fe7e01dcafc1159901b2d6b42.jpg

Read more ...


Optimizing Scikit-Learn with Array API and Numba

In this tutorial, we will walk through increasing the performance of your scikit-learn code using egglog and numba.

../../_images/811c603f831d9fd2039944714926c7862d0720e09d43f06b3dbc25c3f097490e.svg

Read more ...


egglog in Python

Presentation as HTML

../../_images/fc870f4b8a1f6e5252569b2788e34e6956b817c6a44da05c784d7fef79295979.svg

Read more ...


EGraphs in Python

Presentation as HTML

../../_images/952486f1cd80321dbf12624e89360edd9d207726f15fee17e0f47e378fd0afb0.jpg

Read more ...


Define function vs define action.

There is both a top level define method as well as a define action type. What is the difference between them? The method does accept a cost, otherwise they both accept a string and an expression. Let’s look at the implementations.

Read more ...


How does egglog handle boolean values?

Some functions, like << return an optional int. Others, like < return an optional unit.

Read more ...