NB. default comparison tolerance matches the python result ".;._2]0 :0 100000000000000.01 = 100000000000000.011 100.01 = 100.011 (10000000000000.001 % 10000.0) = 1000000000.0000001000 0.001 = 0.0010000001 0.000000000000000000000101 = 0.0 (= ([: *~ %:)) 2 NB. sqrt(2)*sqrt(2) ((= -)~ ([: (* -) %:)) 2 NB. -sqrt(2) * sqrt(2), -2.0 3.14159265358979323846 = 3.14159265358979324 ) 1 0 1 0 0 1 1 1 NB. tolerance of 1e_12 matches the python result ".;._2]0 :0[CT=:1e_12 100000000000000.01 =!.CT 100000000000000.011 100.01 =!.CT 100.011 (10000000000000.001 % 10000.0) =!.CT 1000000000.0000001000 0.001 =!.CT 0.0010000001 0.000000000000000000000101 =!.CT 0.0 (=!.CT ([: *~ %:)) 2 NB. sqrt(2)*sqrt(2) ((=!.CT -)~ ([: (* -) %:)) 2 NB. -sqrt(2) * sqrt(2), -2.0 3.14159265358979323846 =!.CT 3.14159265358979324 ) 1 0 1 0 0 1 1 1 NB. tight tolerance ".;._2]0 :0[CT=:1e_18 100000000000000.01 =!.CT 100000000000000.011 100.01 =!.CT 100.011 (10000000000000.001 % 10000.0) =!.CT 1000000000.0000001000 0.001 =!.CT 0.0010000001 0.000000000000000000000101 =!.CT 0.0 (=!.CT ([: *~ %:)) 2 NB. sqrt(2)*sqrt(2) ((=!.CT -)~ ([: (* -) %:)) 2 NB. -sqrt(2) * sqrt(2), -2.0 3.14159265358979323846 =!.CT 3.14159265358979324 ) 1 0 0 0 0 0 0 1 2 (=!.1e_8) 9 |domain error | 2(= !.1e_8)9