Ruby-Ganzzahlen und Gleitkommazahlen (mathematisch gesprochen: rationale Zahlen) sind standardmäßig nicht streng an die klassischen CPU-bezogenen Grenzen gebunden. In Ruby werden Ganzzahlen und Fließkommazahlen automatisch und transparent auf einige "Bignum-Typen" umgestellt, wenn die Größe das Maximum der klassischen Größen überschreitet.
Wahrscheinlich möchte man eine einigermaßen optimierte und "vollständige", vielseitige mathematische Bibliothek verwenden, die die "Bignums" nutzt. Dies ist der Punkt, an dem die Mathematica-ähnliche Software mit ihren Fähigkeiten wirklich glänzt.
Seit 2011 ist Mathematica extrem teuer und in Bezug auf Hacking und Reshipping sehr eingeschränkt, vor allem, wenn man die Mathematiksoftware als Bestandteil einer kleinen, niedrigpreisigen Webanwendung oder eines Open-Source-Projekts anbieten möchte. Wenn man nur rohes Number Crunching benötigt, bei dem keine Visualisierungen erforderlich sind, dann gibt es eine sehr brauchbare Alternative zu Mathematica und Maple. Die Alternative ist das REDUCE Computer Algebra System, das auf Lisp basiert, quelloffen und ausgereift ist (seit Jahrzehnten) und sich in aktiver Entwicklung befindet (im Jahr 2011). Wie Mathematica verwendet REDUCE symbolische Berechnungen.
Zur Anerkennung von Mathematica sage ich, dass Mathematica seit 2011 meines Erachtens die beste Lösung für interaktive Visualisierungen ist, aber ich denke, dass es vom Standpunkt der Programmierung aus bequemere Alternativen gibt, selbst wenn Mathematica ein Open-Source-Projekt wäre. Ich habe den Eindruck, dass Mathematica auch etwas langsam ist und sich nicht für die Arbeit mit großen Datensätzen eignet. Ich habe den Eindruck, dass die Nische von Mathematica die theoretische Mathematik ist, und nicht das Zahlenrechnen im wirklichen Leben. Andererseits beherbergt und unterhält der Herausgeber von Mathematica, Wolfram Research, eine der qualitativ hochwertigsten, wenn nicht sogar DIE qualitativ hochwertigste, kostenlos nutzbare mathematische Referenzsite auf dem Planeten Erde: die http://mathworld.wolfram.com/ Das Online-Dokumentationssystem, das mit Mathematica mitgeliefert wird, ist ebenfalls sehr gut.
Wenn es um Geschwindigkeit geht, dann ist es erwähnenswert, dass REDUCE sogar auf einem Linux-Router laufen soll. REDUCE selbst ist in Lisp geschrieben, aber es kommt mit 2 eigenen, spezifischen Lisp-Implementierungen. Eine der Lisp-Implementierungen ist in Java und die andere in C implementiert. Beide funktionieren anständig, zumindest vom mathematischen Standpunkt aus. REDUCE hat 2 Modi: den traditionellen "Mathe-Modus" und einen "Programmier-Modus", der vollen Zugriff auf alle Interna durch die Sprache erlaubt, in der REDUCE selbst geschrieben ist: Lisp.
Meiner Meinung nach kann man also, wenn man sich den Aufwand ansieht, der nötig ist, um Mathe-Routinen zu schreiben, ganz zu schweigen von all den symbolischen Berechnungen, die alle in REDUCE enthalten sind, enorm viel Zeit sparen (buchstäblich Jahrzehnte), wenn man den größten Teil der Mathematik in REDUCE erledigt, vor allem, wenn man bedenkt, dass REDUCE von professionellen Mathematikern über einen langen Zeitraum getestet und getestet wurde, für symbolische Berechnungen auf Supercomputern der alten Ära für echte professionelle Aufgaben verwendet wurde und auf modernen Low-End-Computern wunderbar und wirklich schnell funktioniert. Es ist mir auch noch nie abgestürzt, im Gegensatz zu mindestens einem kommerziellen Paket, das ich hier nicht nennen möchte.
http://www.reduce-algebra.com/
Zur Veranschaulichung, wo die symbolische Berechnung in der Praxis wesentlich ist, bringe ich ein Beispiel für die Lösung eines Systems linearer Gleichungen durch Matrixinversion. Um eine Matrix zu invertieren, muss man Determinanten finden. Die Rundung, die bei den direkt von der CPU unterstützten Fließkommatypen stattfindet, kann eine Matrix, die theoretisch eine Inverse hat, in eine Matrix verwandeln, die keine Inverse hat. Dies wiederum führt zu einer Situation, in der die Software die meiste Zeit gut funktioniert, aber wenn die Daten ein wenig "unglücklich" sind, stürzt die Anwendung ab, obwohl algorithmisch nichts in der Software falsch ist, außer der Rundung von Fließkommazahlen.
Die rationalen Zahlen mit absoluter Genauigkeit haben eine ernsthafte Einschränkung. Je mehr Berechnungen mit ihnen durchgeführt werden, desto mehr Speicher verbrauchen sie. Im Jahr 2011 kenne ich keine andere Lösung für dieses Problem, als vorsichtig zu sein und die Anzahl der mit den Zahlen durchgeführten Operationen im Auge zu behalten und dann die Zahlen zu runden, um Speicherplatz zu sparen, aber man muss die Rundung in einem sehr präzisen Stadium der Berechnungen durchführen, um die oben genannten Probleme zu vermeiden. Wenn möglich, sollte die Rundung ganz am Ende der Berechnungen als allerletzte Operation durchgeführt werden.