Herramienta diseñada para calcular expresiones matemáticas con precisión arbitraria o exacta. A diferencia de las calculadoras tradicionales que usan punto flotante y sufren de errores de redondeo, spigot genera los dígitos de un número exacto uno a uno mediante algoritmos conocidos como spigot algorithms.
$ spigot "pi"
$ spigot -d 50 "e"
$ spigot -d 30 "sqrt(2)"
$ spigot -d 20 "sin(pi / 4) + cos(pi / 4)"
$ spigot -d 40 "log(10, 2)"
$ spigot -b 16 -d 20 "pi"
$ spigot -b 2 -d 30 "sqrt(3)"
Algunas sintaxis y funciones comunes
+, -, *, /, ^ --> Operadores aritméticos estándar
pi, e, phi --> Constantes de pi número de Euler y razón áurea
sqrt(x) --> Raíz cuadrada
sin(x), cos(x), tan(x) --> Funciones trigonométricas
asin(x), acos(x), atan(x) ..> Funciones trigonométricas inversas
exp(x), ln(x), log(base, x) --> Exponenciales y logaritmos
1.-
Ejemplo de rendimiento [Benchmark] entre bc y spigot.
Calcular 10,000 dígitos de pi
$ time bc -l <<< "scale=10000; 4*a(1)" > /dev/null
$ time spigot -d 10000 "pi" > /dev/null
bc tarda más de un minuto, spigot medio segundo.