javascript is great for math and has great math functions but it is just that, a scripting language.. so it isn't "amazingly fast"
it is very browser reliant when getting insane amounts of data, you'll find webkit with V8 engine will fly through stuff others will struggle, so chromium/chrome is what you'd want in this case
however with such a huge amount of math, I would say to choose a different language. because you're relying on a browser probably and that's going to cause problems especially with how much numbers you're going to possibly be spitting out
complex problems like this:
https://www.google.com/search?q=sqrt%28cos%28x%29%29*cos%28300x%29%2Bsqrt %28abs%28x%29%29-0.7%29*%284-x*x%29^0.01%2C+sqrt%286-x^2%29%2C+-sqrt%286-x^2%29+from+-4.5+to+4.5&ie=utf-8&oe=utf-8
are no problem
but massive amounts of simple equations usually lead to huge lag or crashing.
either one of these would prob explode a browser
Code:
#include <stdio.h>
#include <time.h>
int dividable(int a, int b);
int isPrime(int primeNumber);
main() {
clock_t start = clock(), diff;
int i;
int primes = 0;
for (i = 2; i < 10000000; i++) {
if (isPrime(i)) {
primes += 1;
}
}
diff = clock() - start;
int msec = diff * 1000 / CLOCKS_PER_SEC;
printf("%d primes in %d seconds %d milliseconds\n", primes, msec/1000, msec%1000);
}
int isPrime(int primeNumber) {
int i;
for (i = 2; i < primeNumber; i++) {
if (i*i > primeNumber) {
break;
}
if (dividable(primeNumber, i)) {
return 0;
}
}
return 1;
}
int dividable(int a, int b) {
return (a%b == 0);
}
Code:
class Prime {
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
int i;
int primes = 0;
for (i = 2; i < 10000000; i++) {
if (isPrime(i)) {
primes += 1;
}
}
long totalTime = System.currentTimeMillis() - startTime;
System.out.printf("%d primes in %d seconds %d milliseconds\n", primes, totalTime / 1000, totalTime % 1000);
}
static boolean isPrime(int primeNumber) {
int i;
for (i = 2; i < primeNumber; i++) {
if (i * i > primeNumber) {
return true;
}
if (isDividable(primeNumber, i)) {
return false;
}
}
return true;
}
static boolean isDividable(int a, int b) {
return (a % b == 0);
}
}
Code:
~/d/c> gcc -o prime prime.c
~/d/c> ./prime
664579 primes in 8 seconds 786 milliseconds
~/d/c> javac prime.java
~/d/c> java -cp . Prime
664579 primes in 5 seconds 721 milliseconds