Test name | Executions per second |
---|---|
100 cubic polynomials with 3 real roots | 1307.6 Ops/sec |
100 cubic polynomials with random coefficients | 13637.7 Ops/sec |
100 degree 4 polynomials with 4 real roots | 514.6 Ops/sec |
100 degree 4 polynomials with random coefficients | 1896.0 Ops/sec |
100 degree 7 polynomials with 7 real roots | 136.6 Ops/sec |
100 degree 7 polynomials with random coefficients | 393.3 Ops/sec |
100 degree 12 polynomials with 12 real roots | 36.8 Ops/sec |
100 deg 12 polynomials with random coefficients | 125.9 Ops/sec |
100 degree 15 polynomials with 15 real roots | 21.6 Ops/sec |
100 deg 15 polynomials with random coefficients | 77.9 Ops/sec |
<script src="https://mat-demo.appspot.com/bower_components/flo-poly/dist/flo-poly.js"></script>
var { evaluate, allRoots, hornerErrorBound } = FloPoly;
var { flatRootsArr, flatCoefficientsArr } = FloPoly.random;
const orders = [3,4,7,12,15];
var pssRealRootsOnly = [
// Flat random distribution of roots in [-10,10]
flatRootsArr(100, orders[0], -10, 10, 11111),
flatRootsArr(100, orders[1], -10, 10, 22222),
flatRootsArr(100, orders[2], -10, 10, 33333),
flatRootsArr(100, orders[3], -10, 10, 44444),
flatRootsArr(100, orders[4], -10, 10, 55555),
];
var pssRandomCoefficients = [
// Flat random distribution of coefficients in [-10,10]
flatCoefficientsArr(100, orders[0], -10, 10, 66666),
flatCoefficientsArr(100, orders[1], -10, 10, 77777),
flatCoefficientsArr(100, orders[2], -10, 10, 88888),
flatCoefficientsArr(100, orders[3], -10, 10, 99999),
flatCoefficientsArr(100, orders[4], -10, 10, 12121),
];
for (let i=0; i<pssRealRootsOnly[0].length; i++) {
var p = pssRealRootsOnly[0][i];
var roots = allRoots(p);
}
for (let i=0; i<pssRandomCoefficients[0].length; i++) {
var p = pssRandomCoefficients[0][i];
var roots = allRoots(p);
}
for (let i=0; i<pssRealRootsOnly[1].length; i++) {
var p = pssRealRootsOnly[1][i];
var roots = allRoots(p);
}
for (let i=0; i<pssRandomCoefficients[1].length; i++) {
var p = pssRandomCoefficients[1][i];
var roots = allRoots(p);
}
for (let i=0; i<pssRealRootsOnly[2].length; i++) {
var p = pssRealRootsOnly[2][i];
var roots = allRoots(p);
}
for (let i=0; i<pssRandomCoefficients[2].length; i++) {
var p = pssRandomCoefficients[2][i];
var roots = allRoots(p);
}
for (let i=0; i<pssRealRootsOnly[3].length; i++) {
var p = pssRealRootsOnly[3][i];
var roots = allRoots(p);
}
for (let i=0; i<pssRandomCoefficients[3].length; i++) {
var p = pssRandomCoefficients[3][i];
var roots = allRoots(p);
}
for (let i=0; i<pssRealRootsOnly[4].length; i++) {
var p = pssRealRootsOnly[4][i];
var roots = allRoots(p);
}
for (let i=0; i<pssRandomCoefficients[4].length; i++) {
var p = pssRandomCoefficients[4][i];
var roots = allRoots(p);
}