I’ve always had a fascination with graphing calculators and the mathematical menagerie of functions. There was something gratifying about watching a function get plotted in space, calculating and plotting its derivatives, imagining a curve rotated around some arbitrary axis. Give me a screen and a function and I’ll watch it draw itself over and over again. It was a fixation in both classes and at parties (I was not fun at parties, but I guess that depends on who was throwing them).

Anyway, a paper like this one was always going to get me. Odrzywołek, All elementary functions from a single operator, proves something extremely fucking cool and highly absurd: one binary operator,

eml(a, b) = e^a − ln b,

together with the constant 1, generates every elementary function. The exponential, the logarithm and the identity come for free, but polynomials, other binary operators, inversion, the whole trigonometric family too, all of it falls out of nesting that one operator over the constant one. Once I put together what the paper was actually saying, I found it both absolutely brilliant and completely obvious. You should read it, it’s great.

And because the elementary functions include addition, subtraction, multiplication, division, and exponentiation, you get Taylor series from that, and subsequently, a lot more than just elementary functions. You get a lot of weird shit too, and a ton of it is expressible with relatively simple eml chains.

In early June, when subscribers had unfettered access to Claude Fable 5 on the max plan, I got it to one-shot a background visualization of the eml operator for this site. When the result appeared on the screen in front of me, I was transfixed. Eventually I had some time, and coded up a studio to play with the operator myself, feeding it 1 and x the way the paper does.

The background you are looking at is that machine. It grows random expression trees from the grammar S → 1 | x | eml(S, S), evaluates them over the complex plane, and sweeps each curve across a phosphor oscilloscope — the real part in green, the imaginary part in blue. About one curve in three is a real construction from the paper, a known, labeled function bubbling out of the noise.

But I wanted to be able to drive it. So natually, I made a studio: build your own traces by piping operators onto x, splitting nodes into branches, or loading a verified construction and tweaking it (though some functions that we would consider quite elementary like sin(x) or cos(x) have an enormous number of eml tokens). When your hand-built tree happens to equal a known function, the scope says so.

Open the One Operator studio →

How to use it: when the tool opens, you see the function y = x being plotted. You can load one of about 20 functions from the “LOAD” menu and watch them trace. On the bottom left hand side you will see a tree diagram composed of green circles (the eml operator), green ones, and blue x’s. the eml operator creates a split in the graph, and 1 and x are terminal leaves. You can use the “TREE” tools to modify a certain node that you can select with the mouse, or use the “PIPE” tools to apply a function like exp, ln, 1/z, -z, , or e-z, where z is the function expressed in the diagram already. Thus, you can build new functions out of more primitive ones expressed. You can also clear the oscilloscope traces or retrace the current function with the two “SCOPE” tools. The green trace is the real part, the blue line is the imaginary part, and a HUD in the top right informs the user of axis scale, the number of tokens and depth, if the function has an elementary name, and if the imaginary trace is identically zero or not.

I keep coming back to the idea that lurking beneath the surface of all the expressions we use in mathematics, when reframed in eml-syntax, hide a school of leviathans roaming around the space of functions. They were always there. The eml operator didn’t put them in the water but it sure as hell turned the lights on. That’s the thing about making something purely for yourself and poking at it: the detritus of a playful hypothesis, the offcuts of an afternoon spent watching curves draw themselves, turn out to conceal real structure that was under everything the whole time. It just took a human mind to think about it once (but once is enough).

It’s not exactly the same thing, but I remember clearly the first time I plotted The Weierstrass Function when I was in graduate school. I listened to a lot of Big Black in that era of my life. It fit perfectly.