1------------------------------------------------------------------------
7 ++ pram :: rabin-miller
15 ?|(=+(c=+((mul 2 b)) &(!=(a c) =(a (mul c (div a c))))) $(b +(b)))
22 $(s (rsh 0 1 s), t +(t))
24 ?> =((mul s.b (bex t.b)) (dec a))
29 =+ d=(~(raw og (add c a)) (met 0 a))
30 =+ e=(~(exp fo a) s.b d)
38 $(e (~(pro fo a) e e), f +(f))
48 ~zod/try=> =+(a=2 |-(?:(=(a 31) ~ [i=(mod 31 a) t=$(a +(a))])))
49 ~[1 1 3 1 1 3 7 4 1 9 7 5 3 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1]
50 ~zod/try=> =+(a=2 |-(?:(=(a 31) ~ [i=(mod 30 a) t=$(a +(a))])))
51 ~[0 0 2 0 0 2 6 3 0 8 6 4 2 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0]
54 ~zod/try=> (pram (dec (bex 127)))
57------------------------------------------------------------------------
63 ++ ramp :: make r-m prime
64 |= [a=@ b=(list ,@) c=@] ^- @ux :: [bits snags seed]
65 => .(c (shas %ramp c))
71 ?: &((levy b |=(f=@ !=(1 (mod e f)))) (pram e))
76Random `a` bit prime, which isn't 1 modulo a list of other numbers,
79 ~zod/try=> (ramp 20 ~ %hamelok)
81 ~zod/try=> (ramp 20 ~ %hameloe)
83 ~zod/try=> (ramp 5 ~ %kole)
85 ~zod/try=> (ramp 7 ~ %kole)
87 ~zod/try=> (ramp 7 ~[0x4e] %kole)
89 ~zod/try=> `@uw`(ramp 128 ~ %late)
90 0w3y.irKIL.l-pp1.2CkG4.3lsTF
92------------------------------------------------------------------------
101XX DO NOT RERUN GET.LS, THERE EXIST ARM COLLISIONS
103Core for performing arithmetic modulo a prime number
105 ~zod/try=> ~(. fo 79)
106 <7.get [@ud <373.jdd 100.kzl 1.ypj %164>]>
108------------------------------------------------------------------------
116 (sit (sub (add a b) (sit c)))
121 ~zod/try=> (~(dif fo 79) 10 5)
123 ~zod/try=> (~(dif fo 79) 5 10)
126------------------------------------------------------------------------
136 =+ d=$(b (rsh 0 1 b))
138 ?:(=(0 (end 0 1 b)) e (pro c e))
143 ~zod/try=> (~(exp fo 79) 3 5)
146------------------------------------------------------------------------
159 ~zod/try=> (~(fra fo 79) 20 4)
161 ~zod/try=> (~(fra fo 79) 7 11)
164------------------------------------------------------------------------
172 =+ c=(dul:si u:(egcd b a) a)
176Multiplicative inverse
178 ~zod/try=> (~(inv fo 79) 12)
180 ~zod/try=> (~(pro fo 79) 12 33)
182 ~zod/try=> (~(inv fo 79) 0)
185------------------------------------------------------------------------
198 ~zod/try=> (~(pro fo 79) 5 10)
200 ~zod/try=> (~(pro fo 79) 5 20)
203------------------------------------------------------------------------
216 ~zod/try=> (~(sit fo 79) 9)
218 ~zod/try=> (~(sit fo 79) 99)
221------------------------------------------------------------------------
234 ~zod/try=> (~(sum fo 79) 9 9)
236 ~zod/try=> (~(sum fo 79) 70 9)
239------------------------------------------------------------------------
243 ++ ga :: GF (bex p.a)
244 |= a=[p=@ q=@ r=@] :: dim poly gen
253------------------------------------------------------------------------
257 ++ dif :: add and sub
260 ?> &((lth b si) (lth c si))
266------------------------------------------------------------------------
274 ?: =(1 (cut 0 [(dec p.a) 1] b))
275 (dif (sit q.a) (sit (lsh 0 1 b)))
281------------------------------------------------------------------------
285 ++ pro :: slow multiply
290 (dif c $(b (rsh 0 1 b), c (dub c)))
291 $(b (rsh 0 1 b), c (dub c))
296------------------------------------------------------------------------
300 ++ toe :: exp/log tables
312 =+ [p=(nu 0 (bex p.a)) q=(nu ma ma)]
314 |- ^- [p=(map ,@ ,@) q=(map ,@ ,@)]
316 [(~(put by p) c b) q]
327------------------------------------------------------------------------
338------------------------------------------------------------------------
349------------------------------------------------------------------------
358 =+ d=(~(get by p) (sub ma u.c))
364------------------------------------------------------------------------
374 ?: =(1 (cut 0 [f 1] b))
375 $(d (pro d e), e (pro e e), f +(f))
376 $(e (pro e e), f +(f))
381------------------------------------------------------------------------
392 =+ f=(~(get by p) (mod (add u.d u.e) ma))
398------------------------------------------------------------------------
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list