These are all the same paradigm, in priciple. 2 is a special case of 3 and 1 is a special case of 2. All circuits differing in how powerful the processing nodes are.
- With boolean circuits you need to run dozens of boolean gates, which means a lot of underlying crypto ops. Works but expensive.
- with arithmetic circuits, you would approximate it using polynomials. Works but not with high precision.
- with functional circuits, you encore the function as a single “bootstrapping” operation. Works in a single crypto op.
Performance / precision tradeoffs will be very different in these 3 cases