nan, inf parser

This commit is contained in:
Max G 2015-07-13 00:59:10 +03:00
parent e07da94e9d
commit 95bb43c7d7

View File

@ -1314,6 +1314,10 @@
?: |(=(a.a 0) =(a.b 0)) ?: |(=(a.a 0) =(a.b 0))
?. &(=(a.a 0) =(a.b 0)) %- rou ?~(a.a b a) ?. &(=(a.a 0) =(a.b 0)) %- rou ?~(a.a b a)
[%f ?:(=(r %d) &(s.a s.b) |(s.a s.b)) zer:m] [%f ?:(=(r %d) &(s.a s.b) |(s.a s.b)) zer:m]
%- |= [a=fn]
?. ?=([%f *] a) a
?. =(a.a 0) a
[%f !=(r %d) zer:m]
?: =(s.a s.b) ?: =(s.a s.b)
?: s.a (add:m +>.a +>.b |) ?: s.a (add:m +>.a +>.b |)
=.(r swr:m (fli (add:m +>.a +>.b |))) =.(r swr:m (fli (add:m +>.a +>.b |)))
@ -4552,23 +4556,37 @@
:- (lent a) :- (lent a)
(scan a (bass 10 (plus sid:ab))) (scan a (bass 10 (plus sid:ab)))
=+ ^= voy =+ ^= voy
%+ cook royl-cell %+ cook royl-cell
;~ pose
;~ plug ;~ plug
;~(pose (cold | hep) (easy &)) (easy %f)
;~ pose (cold | hep) (easy &) ==
;~ plug dim:ag ;~ plug dim:ag
;~ pose ;~ pose
;~(pfix dot (cook moo (plus (shim '0' '9')))) ;~(pfix dot (cook moo (plus (shim '0' '9'))))
(easy [0 0]) (easy [0 0])
== ==
== ;~ pose
;~ pose ;~ pfix
;~ pfix (just 'e')
(just 'e') ;~(plug ;~(pose (cold | hep) (easy &)) dim:ag)
(cook some ;~(plug ;~(pose (cold | hep) (easy &)) dim:ag)) ==
(easy [& 0])
== ==
(easy ~)
== ==
== ==
;~ plug
(easy %i)
;~ sfix
;~ pose (cold | hep) (easy &) ==
(jest 'inf')
==
==
;~ plug
(easy %n)
(cold ~ (jest 'nan'))
==
==
;~ pose ;~ pose
(stag %rh (cook rylh ;~(pfix ;~(plug sig sig) voy))) (stag %rh (cook rylh ;~(pfix ;~(plug sig sig) voy)))
(stag %rq (cook rylq ;~(pfix ;~(plug sig sig sig) voy))) (stag %rq (cook rylq ;~(pfix ;~(plug sig sig sig) voy)))
@ -4577,10 +4595,14 @@
== ==
:: ::
++ royl-cell ++ royl-cell
|= [a=? b=[c=@ d=@ e=@] f=(unit ,[h=? i=@])] |= $? [%f a=? b=[c=@ [d=@ e=@] f=? i=@]]
[%i a=?]
[%n ~]
==
^- dn ^- dn
?. ?=([%f *] +<) +<
=+ ^= h =+ ^= h
(dif:si ?~(f --0 (new:si u.f)) (sun:si d.b)) (dif:si (new:si f.b i.b) (sun:si d.b))
|- ?. =(d.b 0) |- ?. =(d.b 0)
$(c.b (mul c.b 10), d.b (dec d.b)) $(c.b (mul c.b 10), d.b (dec d.b))
[%d a h (add c.b e.b)] [%d a h (add c.b e.b)]