<p>I just listened to XYZ talking about &quot;How Universal Is the Idea of Numbers?&quot;, and bashing the concept as an accidental historical artifact. He suggested that totally different computational primitives could exist, that are sometimes more useful than numbers.</p>
<p>Modern CPUs provide efficient &quot;circuit-parallel&quot; primitives for addition, subtraction, multiplication, division, square-root, and inverse-square-root. I believe those are all contained in TC<sup>0</sup>. The primitives provided by modern CPUs also include address logic (multiplexer-circuits), which I believe are contained in AC<sup>0</sup>. The arithmetic primitives are actually also useful for address logic related tasks (and related data structures), at least to a certain extent.</p>
<p>Assuming that those totally different computational primitives conjectured by XYZ really exist, how plausible is it that they are actually contained in TC<sup>0</sup> (or NC<sup>1</sup>), such that it would have been possible for modern CPUs to provide them as &quot;useful primitives&quot;? (Maybe the multiplexer-circuits give some hint that there really could be such primitives, if we allow that the number of input bits can be totally different from the number of output bits.)</p>

CC BY-SA 4.0
2021-09-10T05:56:25.227Z
What CPUs could provide is first of all limited by what can be actually realized in hard-ware. As far as I understand it, the circuits we know how to make are made of threshold gates. Or am I wrong? This a priori limits the possible primitives to TC0, as long as the time needed by each instruction ($\approx$ depth of the circuit) is $O(1)$.
Emil Jeřábek
CC BY-SA 4.0
2021-09-10T08:11:10.053Z
@EmilJeřábek When I looked into how "circuit-parallel" functionality is done in FPGA and ASIC, I was disappointed how often they simply fall-back to lookup-tables based on multiplexer-circuits. This can violate the polynomial size constraint, but apparently that is acceptable. So in the end it seems to be the other way round, namely the "useful primitives" we wanted to have turned out to be in TC0. More basic building blocks like the multiplexer-circuits are typically even in AC0. The absence of primitives from NC1 doesn't seem to be caused by manufacturability constraints.
Thomas Klimpel
<cc.complexity-theory><circuit-complexity>
Useful primitives CPUs could provide, from TC0 (or NC1)
Thomas Klimpel
# Useful primitives CPUs could provide, from TC0 (or NC1)

(Asked by: username_0 on 2021-09-09)

I just listened to XYZ talking about "How Universal Is the Idea of Numbers?", and bashing the concept as an accidental historical artifact. He suggested that totally different computational primitives could exist, that are sometimes more useful than numbers.

Modern CPUs provide efficient "circuit-parallel" primitives for addition, subtraction, multiplication, division, square-root, and inverse-square-root. I believe those are all contained in TC0. The primitives provided by modern CPUs also include address logic (multiplexer-circuits), which I believe are contained in AC0. The arithmetic primitives are actually also useful for address logic related tasks (and related data structures), at least to a certain extent.

Assuming that those totally different computational primitives conjectured by XYZ really exist, how plausible is it that they are actually contained in TC0 (or NC1), such that it would have been possible for modern CPUs to provide them as "useful primitives"? (Maybe the multiplexer-circuits give some hint that there really could be such primitives, if we allow that the number of input bits can be totally different from the number of output bits.)

**Tags:** cc.complexity-theory, circuit-complexity

> **Comments:**
> **username_1**: What CPUs could provide is first of all limited by what can be actually realized in hard-ware. As far as I understand it, the circuits we know how to make are made of threshold gates. Or am I wrong? This a priori limits the possible primitives to TC0, as long as the time needed by each instruction ($\approx$ depth of the circuit) is $O(1)$.  
> **username_0**: @EmilJeřábek When I looked into how "circuit-parallel" functionality is done in FPGA and ASIC, I was disappointed how often they simply fall-back to lookup-tables based on multiplexer-circuits. This can violate the polynomial size constraint, but apparently that is acceptable. So in the end it seems to be the other way round, namely the "useful primitives" we wanted to have turned out to be in TC0. More basic building blocks like the multiplexer-circuits are typically even in AC0. The absence of primitives from NC1 doesn't seem to be caused by manufacturability constraints.  

---

## 0 answers

