this post was submitted on 15 Apr 2026
11 points (100.0% liked)

Mathematics

659 readers
11 users here now

A community for discussing mathematics and developments in mathematics.

founded 4 years ago
MODERATORS
 

This paper discovered the continuous math equivalent of the digital NAND gate. It turns out that a single binary operation paired with the constant 1 can generate every single standard elementary function. That operation is defined as eml(x,y)=exp(x)-ln(y). You can reconstruct constants like pi and the imaginary unit alongside basic addition and complex calculus tools using nothing but this one function.

The implications for machine learning and symbolic regression are massive. Normally when artificial intelligence tries to discover mathematical formulas from data it has to search through a chaotic space of different operators and syntax rules. Because the EML operator turns every mathematical expression into a uniform binary tree of identical nodes the search space becomes perfectly regular. You can basically treat a mathematical formula like a neural network circuit. The paper shows that when you train these EML trees using standard gradient optimizers like Adam the weights can actually snap to exact closed-form symbolic expressions instead of just giving fuzzy numerical approximations.

This finding could change how we design analog circuits and specialized computing hardware. If you only need a single instruction to execute any complex mathematical function you could build physical hardware or single instruction stack machines optimized purely for the EML operation. The fact that this was discovered by computationally stripping down a calculator rather than through purely theoretical derivation highlights how much structural beauty is still hiding in basic math.

top 9 comments
sorted by: hot top controversial new old
[–] davel@lemmy.ml 4 points 1 day ago* (last edited 1 day ago) (2 children)

Goodbye RISC, hello OIC: One Instruction Computer.

[–] cornishon@lemmygrad.ml 3 points 1 day ago (1 children)
[–] davel@lemmy.ml 1 points 1 day ago

Yeah, I at first misunderstood that Not-AND was being used as an analogy for Exp-Minus-Log.

[–] yogthos@lemmy.ml 2 points 1 day ago

this one weird trick :)

[–] balsoft@lemmy.ml 3 points 1 day ago* (last edited 1 day ago) (1 children)

I can kinda see how to get pi (and most of trig in general), the imaginary unit, and even some calculus, but (weirdly) basic arithmetic seems to be more difficult. I'll check out the paper, seems cool!

[–] davel@lemmy.ml 4 points 1 day ago* (last edited 1 day ago) (1 children)

Logarithms were introduced to reduce multiplication to addition. The exp-log pair allows them to be expressed in terms of one another:

x × y = e^ln⁡\ x\ +\ ln\ ⁡y^, x + y = ln⁡(e^x^ × e^y^).

Not a complete answer, since they rely on the same basic arithmetic operators in question, but still neat.

Edit to add: Apparently this is multiplication…

[–] balsoft@lemmy.ml 4 points 1 day ago* (last edited 1 day ago) (1 children)

Yep, the ln/exp immediately made me think about the multiplication/addition thing. I could also get 0 easily: eml(1, eml(eml(1, 1), 1)) (basically e - ln(e^e)), and it's trivial to just get the exponential: exp(x) = eml(x, 1)

What I didn't think about is that we could do some tricks with infinities :)

  • negative infinity -∞ = eml(1, 0)
  • allows us to get the negative logarithm: neg_ln(x) = eml(-∞, x)
  • from which it's easy to get negation neg(x) = neg_ln(exp(x))
  • regular logarithm ln(x) = neg(neg_ln(x))
  • then trivial subtraction x - y = eml(ln(x), exp(y))
  • and finally addition x + y = x - neg(y)

That's so cool!

Edit to add: Apparently this is multiplication…

Yep, multiplication is easy when you have the above, it's basically x × y = exp(ln(x) + ln(y))

~~As far as I can tell just following through with substitutions leads to exactly the same expression as the one in the image~~

Actually their expression is different, I'm not sure exactly how they got to it...

[–] brunox@feddit.cl 1 points 5 hours ago (1 children)

i believe eml(1,0) is positive infinity.

[–] balsoft@lemmy.ml 1 points 4 hours ago* (last edited 4 hours ago)

Oh, you are correct!

In that case we just need one more step of -∞ = eml(1, ∞). Let me fix the original comment