Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
19
Task/Approximate-equality/ALGOL-68/approximate-equality.alg
Normal file
19
Task/Approximate-equality/ALGOL-68/approximate-equality.alg
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
BEGIN # test REAL values for approximate equality #
|
||||
# returns TRUE if value is approximately equal to other, FALSE otherwide #
|
||||
PROC approx equals = ( REAL value, REAL other, REAL epsilon )BOOL: ABS ( value - other ) < epsilon;
|
||||
# shows the result of testing a for approximate equality with b #
|
||||
PROC test = ( REAL a, b )VOID:
|
||||
BEGIN
|
||||
REAL epsilon = 1e-18;
|
||||
print( ( a, ", ", b, " => ", IF approx equals( a, b, epsilon ) THEN "true" ELSE "false" FI, newline ) )
|
||||
END # test # ;
|
||||
# task test cases #
|
||||
test( 100000000000000.01, 100000000000000.011 );
|
||||
test( 100.01, 100.011 );
|
||||
test( 10000000000000.001 / 10000.0, 1000000000.0000001000);
|
||||
test( 0.001, 0.0010000001 );
|
||||
test( 0.000000000000000000000101, 0.0 );
|
||||
test( sqrt( 2 ) * sqrt( 2 ), 2.0 );
|
||||
test( - sqrt( 2 ) * sqrt( 2 ), -2.0 );
|
||||
test( 3.14159265358979323846, 3.14159265358979324 )
|
||||
END
|
||||
Loading…
Add table
Add a link
Reference in a new issue