Eve Algorithms
We try to find new ways to improve performance, by using a better logic. Our strive is to create efficient software based on reduced complexity and sufficiency.
Precision
We believe, specific algorithms can be improved if we consider precision sufficient and avoid wasting time by computing high precision when it is not necessary.
Example:
Next sqrt() function has a precision parameter. If the precision is specified the number of iteration is considerable reduced. We can also have higher precision than usual.
# function with precision
driver test_sqrt:
** overwrite default precision
set $epsilon = 1^-2;
** extract square root with precision
function sqrt(x: f64, p = $epsilon :f32) => (z = 1.0 :f64):
loop
let z -= (z * z - x) / (2 * z);
repeat if (z * z - x) > p;
return;
process
** test with different precision
print sqrt(10,1^-3); -- 3.1624556228038903
print sqrt(10,1^-10); -- 3.16227766017
print sqrt(10,1^-14); -- 3.162277660168379
return;
Read next: Standard Library