Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
25
Task/Approximate-equality/Jq/approximate-equality-1.jq
Normal file
25
Task/Approximate-equality/Jq/approximate-equality-1.jq
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# Return whether the two numbers `a` and `b` are close.
|
||||
# Closeness is determined by the `epsilon` parameter -
|
||||
# the numbers are considered close if the difference between them
|
||||
# is no more than epsilon * max(abs(a), abs(b)).
|
||||
def isclose(a; b; epsilon):
|
||||
((a - b) | fabs) <= (([(a|fabs), (b|fabs)] | max) * epsilon);
|
||||
|
||||
def lpad($len; $fill): tostring | ($len - length) as $l | ($fill * $l)[:$l] + .;
|
||||
|
||||
def lpad: lpad(20; " ");
|
||||
|
||||
# test values
|
||||
def tv: [
|
||||
{x: 100000000000000.01, y: 100000000000000.011 },
|
||||
{x: 100.01, y: 100.011 },
|
||||
{x: (10000000000000.001 / 10000.0), y: 1000000000.0000001000 },
|
||||
{x: 0.001, y: 0.0010000001 },
|
||||
{x: 0.000000000000000000000101, y: 0.0 },
|
||||
{x: ((2|sqrt) * (2|sqrt)), y: 2.0 },
|
||||
{x: (-(2|sqrt) * (2|sqrt)), y: -2.0 },
|
||||
{x: 3.14159265358979323846, y: 3.14159265358979324 }
|
||||
]
|
||||
;
|
||||
|
||||
tv[] | "\(.x|lpad) \(if isclose(.x; .y; 1.0e-9) then " ≈ " else " ≉ " end) \(.y|lpad)"
|
||||
8
Task/Approximate-equality/Jq/approximate-equality-2.jq
Normal file
8
Task/Approximate-equality/Jq/approximate-equality-2.jq
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
100000000000000.02 ≈ 100000000000000.02
|
||||
100.01 ≉ 100.011
|
||||
1000000000.0000002 ≈ 1000000000.0000001
|
||||
0.001 ≉ 0.0010000001
|
||||
1.01e-22 ≉ 0
|
||||
2.0000000000000004 ≈ 2
|
||||
-2.0000000000000004 ≈ -2
|
||||
3.141592653589793 ≈ 3.141592653589793
|
||||
Loading…
Add table
Add a link
Reference in a new issue