Scrivo routine numeriche per studenti di scienze e ingegneria (anche se sono liberamente disponibili per l'uso da chiunque altro) e mi chiedo come utilizzare correttamente le costanti macchina in un programma JavaScript, o se sono addirittura applicabili.
Ad esempio, dire che sto scrivendo un programma in C ++ che calcola numericamente le radici della seguente equazione:
exp (-0.7x) + sin (3x) - 1.2x + 0.3546 = 0
Una routine di ricerca delle radici dovrebbe essere in grado di calcolare le radici all'interno della macchina epsilon. In C ++, questo valore è specificato dalla lingua: DBL_EPSILON. C ++ specifica anche i valori più piccoli e più grandi che possono essere tenuti da una variabile mobile o doppia.
Tuttavia, come si converte in JavaScript? Poiché un programma Javascript viene eseguito in un browser Web e non so quale tipo di computer eseguirà il programma, e JavaScript non ha valori predefiniti corrispondenti per queste quantità, come posso implementare la mia versione di queste costanti in modo che il mio i programmi calcolano i risultati con la massima precisione consentita sul computer che esegue il browser web?
La mia prima bozza è copiare semplicemente le costanti letterali da C ++:
FLT_MIN: 1.17549435082229e-038
FLT_MAX: 3.40282346638529e + 038
DBL_EPSILON: 2.2204460492503131e-16
Sono anche disposto a scrivere piccoli blocchi di codice che potrebbero calcolare questi valori per ogni macchina su cui viene eseguito il programma. In questo modo, un supercomputer potrebbe calcolare i risultati con una precisione maggiore rispetto a un vecchio PC di basso livello.
MA, non so se una tale routine possa effettivamente raggiungere il computer, nel qual caso, perderei il mio tempo.
Qualcuno qui sa come calcolare e usare (in Javascript) i valori che corrispondono alle costanti della macchina in un linguaggio compilato?
Vale la pena di scrivere piccoli programmi in Javascript che calcolano DBL_EPSILON, FLT_MIN, FLT_MIN, ecc. per l'uso in routine numeriche? O sto meglio semplicemente assegnando costanti letterali che arrivano direttamente da C ++ su un PC Windows standard?