Ci sono fondamentalmente due mondi:
1) quello del calcolo numerico, e ad alte prestazioni, ed in questo caso il
double (64 bit) o il
long double (80 bit), o, ancora, il
double double (128 bit) sono abbondantemente sufficienti: classico tool
MatLab, e ci sono libreri per i
double double.
2) quello del calcolo simbolico, che coinvolge l'aritmentica in precisione arbitraria, classici esempi:
Mathematica,
Maple, e i cosidetti
Computer Algebra System. In questo caso ci sono, appunto, le librerie, come indicato da Oregon:
https://gmplib.org
http://www.mpfr.org
http://www.multiprecision.org/index.php?prog=mp
Quindi non ti serve creare un emulatore: praticamente c'e' gia'! Normale CPU + libreria!
Ci sono i wrapper in C++ per le librerie soppracitate che fanno si che tu scriva l'espressione sempre con la solita sintassi, ma invece di usare i float o i double, usi gli oggetti della libreria.
Invece, una tecnologia decisamente piu' interessante di cui ci sono pochi esperti, e' saper sfruttare le istruzioni SSExx e AVX dei processori Intel (ma esistono le stesse cose per altri tipi di processori).
Non e' solo questione di conoscere le istruzioni assembler, ma anche di COME scomporre il problema in modo da sfruttare al massimo il parallelismo disponibile.