rounding modes for rd, rq, rs

This commit is contained in:
Max G 2015-08-04 06:00:09 +03:00
parent f78f794d42
commit ca9452c21b

View File

@ -1,4 +1,4 @@
!::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::: :::::: Preface :::::: :::::: :::::: Preface ::::::
:::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
?> ?=(@ .) :: atom subject ?> ?=(@ .) :: atom subject
@ -1425,7 +1425,8 @@
:: ::
:: in order: floor, ceiling, nearest (even, away from 0, toward 0), :: in order: floor, ceiling, nearest (even, away from 0, toward 0),
:: larger, smaller; t=sticky bit :: larger, smaller; t=sticky bit
++ lug ~/ %lug ++ lug
~/ %lug
|= [t=?(%fl %ce %ne %na %nt %lg %sm) a=[e=@s a=@u] s=?] ^- fn |= [t=?(%fl %ce %ne %na %nt %lg %sm) a=[e=@s a=@u] s=?] ^- fn
=- =-
?. =(den %f) - ?. =(den %f) -
@ -1488,7 +1489,8 @@
?: =(den %i) [%f & a] ?: =(den %i) [%f & a]
?: =((cmp:si emx e.a) -1) [%i &] [%f & a] :: enforce max. exp ?: =((cmp:si emx e.a) -1) [%i &] [%f & a] :: enforce max. exp
:: ::
++ drg ~/ %drg :: dragon4 ++ drg :: dragon4
~/ %drg
|= [a=[e=@s a=@u]] ^- [@s @u] |= [a=[e=@s a=@u]] ^- [@s @u]
=. a ?: (^lth (met 0 a.a) prc) (xpd a) a =. a ?: (^lth (met 0 a.a) prc) (xpd a) a
=+ r=(lsh 0 ?:((syn:si e.a) (abs:si e.a) 0) a.a) =+ r=(lsh 0 ?:((syn:si e.a) (abs:si e.a) 0) a.a)
@ -1724,7 +1726,7 @@
|= [a=dn] ^- fn |= [a=dn] ^- fn
?: ?=([%n *] a) [%n ~] ?: ?=([%n *] a) [%n ~]
?: ?=([%i *] a) [%i s.a] ?: ?=([%i *] a) [%i s.a]
=> .(r %n) :: always rnd nearest => .(r %n)
=+ q=(abs:si e.a) =+ q=(abs:si e.a)
?: (syn:si e.a) ?: (syn:si e.a)
(mul [%f s.a --0 a.a] [%f & e.a (pow 5 q)]) (mul [%f s.a --0 a.a] [%f & e.a (pow 5 q)])
@ -1814,10 +1816,10 @@
++ rylq |= a=dn ^- @rq (grd:rq a) ++ rylq |= a=dn ^- @rq (grd:rq a)
:: ::
++ rd ++ rd
~% %rd + ~ ~% %rd +> ~
|% |_ r=?(%n %u %d %z)
++ ma ++ ma
%*(. ff w 11, p 52, b --1.023) %*(. ff w 11, p 52, b --1.023, r r)
++ sea ++ sea
|= [a=@rd] (sea:ma a) |= [a=@rd] (sea:ma a)
++ bit ++ bit
@ -1849,10 +1851,10 @@
-- --
:: ::
++ rs ++ rs
~% %rs + ~ ~% %rs +> ~
|% |_ r=?(%n %u %d %z)
++ ma ++ ma
%*(. ff w 8, p 23, b --127) %*(. ff w 8, p 23, b --127, r r)
++ sea ++ sea
|= [a=@rs] (sea:ma a) |= [a=@rs] (sea:ma a)
++ bit ++ bit
@ -1884,10 +1886,10 @@
-- --
:: ::
++ rq ++ rq
~% %rq + ~ ~% %rq +> ~
|% |_ r=?(%n %u %d %z)
++ ma ++ ma
%*(. ff w 15, p 112, b --16.383) %*(. ff w 15, p 112, b --16.383, r r)
++ sea ++ sea
|= [a=@rq] (sea:ma a) |= [a=@rq] (sea:ma a)
++ bit ++ bit
@ -1919,9 +1921,9 @@
-- --
:: ::
++ rh ++ rh
|% |_ r=?(%n %u %d %z)
++ ma ++ ma
%*(. ff w 5, p 10, b --15) %*(. ff w 5, p 10, b --15, r r)
++ sea ++ sea
|= [a=@rh] (sea:ma a) |= [a=@rh] (sea:ma a)
++ bit ++ bit
@ -5536,11 +5538,13 @@
%+ shay (add b 32) %+ shay (add b 32)
(add (lsh 3 b q) (mix k (fil 3 b 0x5c))) (add (lsh 3 b q) (mix k (fil 3 b 0x5c)))
:: ::
++ pbk ~/ %pbk :: PBKDF2-HMAC-SHA256 ++ pbk :: PBKDF2-HMAC-SHA256
~/ %pbk
|= [p=@ s=@ c=@ d=@] |= [p=@ s=@ c=@ d=@]
(pbl p (met 3 p) s (met 3 s) c d) (pbl p (met 3 p) s (met 3 s) c d)
:: ::
++ pbl ~/ %pbl :: w/length ++ pbl :: w/length
~/ %pbl
|= [p=@ pl=@ s=@ sl=@ c=@ d=@] |= [p=@ pl=@ s=@ sl=@ c=@ d=@]
=> .(p (end 3 pl p), s (end 3 sl s)) => .(p (end 3 pl p), s (end 3 sl s))
=+ h=32 =+ h=32
@ -5563,11 +5567,13 @@
$(t (add t (lsh 3 (mul (dec j) h) f)), j +(j)) $(t (add t (lsh 3 (mul (dec j) h) f)), j +(j))
(end 3 d t) (end 3 d t)
:: ::
++ hsh ~/ %hsh :: scrypt ++ hsh :: scrypt
~/ %hsh
|= [p=@ s=@ n=@ r=@ z=@ d=@] |= [p=@ s=@ n=@ r=@ z=@ d=@]
(hsl p (met 3 p) s (met 3 s) n r z d) (hsl p (met 3 p) s (met 3 s) n r z d)
:: ::
++ hsl ~/ %hsl :: w/length ++ hsl :: w/length
~/ %hsl
|= [p=@ pl=@ s=@ sl=@ n=@ r=@ z=@ d=@] |= [p=@ pl=@ s=@ sl=@ n=@ r=@ z=@ d=@]
=| v=(list (list ,@)) =| v=(list (list ,@))
=> .(p (end 3 pl p), s (end 3 sl s)) => .(p (end 3 pl p), s (end 3 sl s))