tree checksum vpatch file split hunks
all signers: bvt asciilifeform diana_coman
antecedents: ffa_ch5_egypt.kv ffa_ch13_measure_and_qshifts.kv ffa_ch12_karatsuba_redux.kv ffa_ch3_shifts.kv ffa_ch2_logicals.kv ffa_ch1_genesis.kv ffa_ch11_tuning_and_api.kv ffa_ch4_ffacalc.kv ffa_ch14_barrett.kv
press order:
patch:
(13 . 3)(13 . 4)
5 551348 ffa_w_borrow_expr diana_coman Replaces expression for calculating borrow bit with more readable version that is also symmetrical to that for carry bit.
6 551516 ffa_ch13_measure_and_qshifts "Measure and Quiet Shifts."
7 555788 ffa_ch14_barrett "Barrett's Modular Reduction."
8 557938 ffa_ch15_gcd "Greatest Common Divisor."
- E6EF90E8E81E2504052A9C3B4EBCF1F7F7ABA62E8B2330E96EAF48978E1749A0D655261B8AC31028AF0ABBD1F50AB9FD7492DD2A80852B8E8E6958A55E00ECB9(2 . 7)(2 . 7)
13 ------------------------------------------------------------------------------
14 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
15 -- --
16 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
17 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
18 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
19 -- --
20 -- You do not have, nor can you ever acquire the right to use, copy or --
- E61DA32CD223C6EB8B83C5161D88DBFAD3779A744BACCBEDD1AF357E941D0E17B324E3FF1177C72300D76A8C71486A15A473FF635005238B296BD939A85E0EDA(2 . 7)(2 . 7)
25 ------------------------------------------------------------------------------
26 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
27 -- --
28 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
29 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
30 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
31 -- --
32 -- You do not have, nor can you ever acquire the right to use, copy or --
- 888B4F60E7068F0069D7293242209AC500A7BA7F5B6F01F8EEF23DA1D52B26EAF47BC80465C9FBD5278AA677AFB27CB955427ED0D7E9A8409EF50EB763BB09F8(2 . 7)(2 . 7)
37 ------------------------------------------------------------------------------
38 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
39 -- --
40 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
41 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
42 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
43 -- --
44 -- You do not have, nor can you ever acquire the right to use, copy or --
- 064971BB7E0A8A48FA00B523083A4332B9A4589BF83BB03CA236EF15BC977BA40F7375B00A06DEAAC84081FFF7615B0BC4463EEEDED57976B1B084FB37657F46(2 . 7)(2 . 7)
49 ------------------------------------------------------------------------------
50 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
51 -- --
52 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
53 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
54 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
55 -- --
56 -- You do not have, nor can you ever acquire the right to use, copy or --
- C6CE2B2EFEC9BF6172130008C0EA7703D08D07862296A2CA5B1D790352697C3E05D2D233BFCF3F533164E45027A9BFA2815445FDB1E75807F5092335F99B03A4(2 . 7)(2 . 7)- 52B7BB186F030B62B54D315384DD843497B43154AEB4046684C7FA58C616CCE3E0694D23537489F70A83B7CB54EB23D39100066A2656045F98A9B63E471F2F8F
61 ------------------------------------------------------------------------------
62 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
63 -- --
64 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
65 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
66 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
67 -- --
68 -- You do not have, nor can you ever acquire the right to use, copy or --
(393 . 6)(393 . 27)
70 XY_Lo => Stack(SP - 1),
71 XY_Hi => Stack(SP));
72
73 -- Square, give bottom and top halves
74 when 'S' =>
75 Want(1);
76 Push;
77 FFA_FZ_Square(X => Stack(SP - 1),
78 XX_Lo => Stack(SP - 1),
79 XX_Hi => Stack(SP));
80
81 -- Greatest Common Divisor (GCD)
82 when 'G' =>
83 Want(2);
84
85 -- Note that GCD(0,0) is not factually zero, or unique.
86 -- But it is permissible to define it as zero.
87 -- (See Ch. 15 discussion.)
88
89 FFA_FZ_Greatest_Common_Divisor(X => Stack(SP - 1),
90 Y => Stack(SP),
91 Result => Stack(SP - 1));
92 Drop;
93
94 -----------------
95 -- Bitwise Ops --
96 -----------------
(492 . 14)(513 . 6)
98 FFA_FZ_Clear(Stack(SP));
99 FFA_FZ_Set_Head(Stack(SP), Word(FFA_K_Version));
100
101 -- Square, give bottom and top halves
102 when 'S' =>
103 Want(1);
104 Push;
105 FFA_FZ_Square(X => Stack(SP - 1),
106 XX_Lo => Stack(SP - 1),
107 XX_Hi => Stack(SP));
108
109 --------------
110 -- Prefixes --
111 --------------
(520 . 7)(533 . 7)
113 -- Reserved Ops, i.e. ones we have not defined yet: --
114 ---------------------------------------------------------
115 when '!' | '@' | '$' | ':' | ';' | ',' |
116 'G' | 'H' | 'I' | 'J' | 'K' | 'N' |
117 'H' | 'I' | 'J' | 'K' | 'N' |
118 'P' | 'T' | 'X' | 'Y' =>
119
120 E("This Operator is not defined yet: " & C);
(602 . 19)(615 . 27)
122 when 'R' =>
123 E("Right-Rotate not yet defined!");
124
125 -- 'Right-Multiply', give only lower half of the product XY
126 when '*' =>
127 Want(2);
128 FFA_FZ_Low_Multiply(X => Stack(SP - 1),
129 Y => Stack(SP),
130 XY => Stack(SP - 1));
131 Drop;
132
133 -- ... Unknown:
134 when others =>
135 E("Undefined Op: R" & O);
136
137 end case;
138 ---------------------------------------------------------
139 -- Modular...
140 -- Modular...
141 when 'M' =>
142
143 -- Which M-op?
144 case O is
145
146 -- ... Multiplication :
147 -- ... Multiplication (Conventional) :
148 when '*' =>
149 Want(3);
150 MustNotZero(Stack(SP));
(625 . 7)(646 . 16)
152 Drop;
153 Drop;
154
155 -- ... Exponentiation :
156 -- ... Squaring (Conventional) :
157 when 'S' =>
158 Want(2);
159 MustNotZero(Stack(SP));
160 FFA_FZ_Modular_Square(X => Stack(SP - 1),
161 Modulus => Stack(SP),
162 Product => Stack(SP - 1));
163 Drop;
164
165 -- ... Exponentiation (Barrettronic) :
166 when 'X' =>
167 Want(3);
168 MustNotZero(Stack(SP));
(2 . 7)(2 . 7)
173 ------------------------------------------------------------------------------
174 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
175 -- --
176 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
177 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
178 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
179 -- --
180 -- You do not have, nor can you ever acquire the right to use, copy or --
- 5314C163058BB201207A4CE29D8B6617C15F7B63490C445A371B3BAB4323842A948532AC92CC67C7B3E8546EB92421E75516220A27052E43BB96490D3FB1F243(2 . 7)(2 . 7)
185 ------------------------------------------------------------------------------
186 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
187 -- --
188 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
189 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
190 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
191 -- --
192 -- You do not have, nor can you ever acquire the right to use, copy or --
- 18CEFFD6E2783F1B16C6D6BBF07D5ACDF6E5F83B1181162D2DD39F449A505CCF2DB4B1C8F74CE334B53CC8C1A17ECF052A4C1DBF8C025082D2E2014A1BA12674(2 . 7)(2 . 7)
197 ------------------------------------------------------------------------------
198 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
199 -- --
200 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
201 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
202 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
203 -- --
204 -- You do not have, nor can you ever acquire the right to use, copy or --
- 336BAF1718ECF7AADA909E7A7BA8062C6107D53F397969EF3740C26A31142551EF450DEE4CBDDCD55F0673E250CE7C47520672DC8FF0EB962F4C126793E2EBAA(2 . 7)(2 . 7)
209 ------------------------------------------------------------------------------
210 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
211 -- --
212 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
213 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
214 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
215 -- --
216 -- You do not have, nor can you ever acquire the right to use, copy or --
- A6EA0FE40C8F1FFCA030C48DC252BA3D31D3765F57375EFA7F26CDD39ED56AD24527832D0FE071B8E98F4BC9793A292D167739EC0448839E75723684630D1368(2 . 7)(2 . 7)
221 ------------------------------------------------------------------------------
222 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
223 -- --
224 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
225 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
226 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
227 -- --
228 -- You do not have, nor can you ever acquire the right to use, copy or --
- 24FBDEB64A2E0F728092B5E6BE2F55D40276CBE30E500A92554B3E702FF9F128D5860664AD4BBB1E4D3DDFB4B0189E043FBA946ACEC305C24A2F216E757B8D86(2 . 7)(2 . 7)- AD4BCD1C0F26FDAE13316825F8AD112744491727D35D0645BBA892DDE1DCA9CC13FEB756EA2BF673245DAA6E027386E896E5D2975F3A53949EB210571997E9D2
233 ------------------------------------------------------------------------------
234 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
235 -- --
236 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
237 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
238 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
239 -- --
240 -- You do not have, nor can you ever acquire the right to use, copy or --
(24 . 7)(24 . 7)
242 ----------------------------------------------
243 -- Current 'deg. Kelvin' Version of FFACalc --
244 ----------------------------------------------
245 FFACalc_K_Version : constant Natural := 255;
246 FFACalc_K_Version : constant Natural := 254;
247 ----------------------------------------------
248
249 end Version;
(2 . 7)(2 . 7)
254 ------------------------------------------------------------------------------
255 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
256 -- --
257 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
258 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
259 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
260 -- --
261 -- You do not have, nor can you ever acquire the right to use, copy or --
- 20E5FD1DB56FBEDCCAD21587FE6D6AD44C6D7208CD5632A12E364B81217ACF68B1B92BC1D82E29E5C16E6CAEBB5B8DCE8C275A2E21691F5B355314B0AAC2BE7D(2 . 7)(2 . 7)
266 ------------------------------------------------------------------------------
267 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
268 -- --
269 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
270 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
271 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
272 -- --
273 -- You do not have, nor can you ever acquire the right to use, copy or --
- 1959CDA0F5A15B35A1E5B050978162E9522F3885881F98EAFF4BBDA4B314E49A6CECD3E938F4C894E1E18C64CCE7E704C63BC867FF8D5E0AC37161365B6B4B31(2 . 7)(2 . 7)
278 ------------------------------------------------------------------------------
279 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
280 -- --
281 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
282 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
283 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
284 -- --
285 -- You do not have, nor can you ever acquire the right to use, copy or --
- FF319D21D5A1B36292F185556512B4EF986CCF657610377DA93D3EFAEBA340C67ABD8AEA86423176090F7DBB9A33203740D27B87B229A70AB30E3ACE6633CB0E(2 . 7)(2 . 7)
290 ------------------------------------------------------------------------------
291 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
292 -- --
293 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
294 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
295 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
296 -- --
297 -- You do not have, nor can you ever acquire the right to use, copy or --
- D0EC9ED3535A120A612D261B779EC88A02EA7BE5A683399E8C49E2D1E8833897DD8B84F1E517DC570DE17E4CA6752B5654E5ADE3D3974D94842BCEBF57AB65BE(2 . 7)(2 . 7)
302 ------------------------------------------------------------------------------
303 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
304 -- --
305 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
306 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
307 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
308 -- --
309 -- You do not have, nor can you ever acquire the right to use, copy or --
- D2AEC7DB4CEF68A2CA7DDF2AAE62E393F228C429D60DD1AC7CBF0C7E5519B30CA053CC9C78A78438FF1108541C9F47240DA5500345C97854EFAA853A4A930C9D(2 . 7)(2 . 7)
314 ------------------------------------------------------------------------------
315 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
316 -- --
317 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
318 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
319 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
320 -- --
321 -- You do not have, nor can you ever acquire the right to use, copy or --
- 49E370ED04A5198711E8BAE455B680EC0B5E88AA2EAC1A2D6839F368792A21EFE06EC7F204B66A6956AAF1512F704928A35A4B6906EEF8355325944ED09EDDF9(2 . 7)(2 . 7)
326 ------------------------------------------------------------------------------
327 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
328 -- --
329 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
330 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
331 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
332 -- --
333 -- You do not have, nor can you ever acquire the right to use, copy or --
- D02319FE61524AD04E579446F26DF1BCF6B822050B357DCF7BF150CA553F25EBF9603C246A84B902D0E3165A71A29B519A2E9D10A0F5D150EB2DB24B44A36355(2 . 7)(2 . 7)
338 ------------------------------------------------------------------------------
339 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
340 -- --
341 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
342 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
343 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
344 -- --
345 -- You do not have, nor can you ever acquire the right to use, copy or --
- D6E5FAEE35C92B829D83F16C74EC7BCBFE66214AEB7A4AD914C5ACB84B561DCF0D311D7FBDDC4A9EDF4D5FEBA462B5BFB709AA42ADB9B75B40C515275B1454BD(2 . 7)(2 . 7)
350 ------------------------------------------------------------------------------
351 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
352 -- --
353 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
354 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
355 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
356 -- --
357 -- You do not have, nor can you ever acquire the right to use, copy or --
- 408328BDCB8543BFF0E7ADFD454105C5B1876C7EE71EF41337622BD95D269188F6643FD8BF9EA6076692AEFC59E63A9A02B986B7C4C697B76A3EA0B69A4FFB87(2 . 7)(2 . 7)
362 ------------------------------------------------------------------------------
363 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
364 -- --
365 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
366 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
367 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
368 -- --
369 -- You do not have, nor can you ever acquire the right to use, copy or --
- DE4FF4DFC81DF4A4FEBC2B5A1C359DF912969821FB3790D51D78EED6352FA52D03EB70A9226EF896CEE16DCFC40AB2FACB9FD49D54110FB86F3FEBD8CAF29E64(2 . 7)(2 . 7)
374 ------------------------------------------------------------------------------
375 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
376 -- --
377 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
378 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
379 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
380 -- --
381 -- You do not have, nor can you ever acquire the right to use, copy or --
- B8DBE89A3D907943ED0A96EF2EB23550A00FE344C5396BECC747BA8D64E1BA2D45BAF32E4DCA24630D4A2B75297FD1B79402592C07DD2949666F4A72C14406C9(2 . 7)(2 . 7)
386 ------------------------------------------------------------------------------
387 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
388 -- --
389 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
390 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
391 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
392 -- --
393 -- You do not have, nor can you ever acquire the right to use, copy or --
- 720237083E8D484B06D432529E8547D78ADB2EB1F72CF0934F7596CE8CA7AEC883C43F0951E133294B5139D4386E749C0939EFE3715EC46BC2515E3B23493A7B(2 . 7)(2 . 7)- 364F816604E2EE0FC4A07429824E32292032806456AFC794D306EE7F9A41180D9A517FB2563311F1F526F9B6512597E974321DCA2AC61251D36DA4033F18578D
398 ------------------------------------------------------------------------------
399 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
400 -- --
401 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
402 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
403 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
404 -- --
405 -- You do not have, nor can you ever acquire the right to use, copy or --
(21 . 6)(21 . 7)
407 with FZ_Shift;
408 with FZ_Mul;
409 with FZ_Sqr;
410 with FZ_GCD;
411
412
413 -- Wrapper bodies for routines that we inline, but must enforce preconditions
(117 . 4)(118 . 16)
415 FZ_Sqr.FZ_Square_Buffered(X => X, XX_Lo => XX_Lo, XX_Hi => XX_Hi);
416 end FFA_FZ_Square;
417
418 ----------------------------------------------------------------------------
419 --- Other Operations on FZ
420 ----------------------------------------------------------------------------
421
422 -- Find Greatest Common Divisor (GCD) of X and Y.
423 procedure FFA_FZ_Greatest_Common_Divisor(X : in FZ;
424 Y : in FZ;
425 Result : out FZ) is
426 begin
427 FZ_GCD.FZ_Greatest_Common_Divisor(X => X, Y => Y, Result => Result);
428 end FFA_FZ_Greatest_Common_Divisor;
429
430 end FFA;
(2 . 7)(2 . 7)- 95F8719172DC8F10159E2F6993EB5810D2A3D8DB993E3902DBDE3C32692A283A32A214E2780B37B3FDEE3995FEA2054C6DF1998CB260755E614842C8F755B8B5
435 ------------------------------------------------------------------------------
436 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
437 -- --
438 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
439 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
440 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
441 -- --
442 -- You do not have, nor can you ever acquire the right to use, copy or --
(32 . 6)(32 . 7)
444 with FZ_ModEx;
445 with FZ_Measr;
446 with FZ_QShft;
447 with FZ_LoMul;
448
449
450 -- FFA Exports
(43 . 7)(44 . 7)
452 --- Current 'deg. Kelvin' Version of FFA
453 ----------------------------------------------------------------------------
454
455 FFA_K_Version : constant Natural := 255;
456 FFA_K_Version : constant Natural := 254;
457
458 ----------------------------------------------------------------------------
459 --- Fundamental Types and Sizes
(273 . 6)(274 . 12)
461 XX_Hi'Length = X'Length and
462 X'Length mod 2 = 0;
463
464 -- Low-Only Multiplier. Preserves the inputs.
465 procedure FFA_FZ_Low_Multiply(X : in FZ;
466 Y : in FZ;
467 XY : out FZ)
468 renames FZ_LoMul.FZ_Low_Multiply_Buffered;
469
470 ----------------------------------------------------------------------------
471 --- Modular Operations on FZ
472 ----------------------------------------------------------------------------
(284 . 6)(291 . 12)
474 Product : out FZ)
475 renames FZ_ModEx.FZ_Mod_Mul;
476
477 -- Modular Squaring: Product := X*X mod Modulus
478 procedure FFA_FZ_Modular_Square(X : in FZ;
479 Modulus : in FZ;
480 Product : out FZ)
481 renames FZ_ModEx.FZ_Mod_Sqr;
482
483 -- Modular Exponent: Result := Base^Exponent mod Modulus
484 procedure FFA_FZ_Modular_Exponentiate(Base : in FZ;
485 Exponent : in FZ;
(311 . 4)(324 . 10)
487 Count : in FZBit_Index)
488 renames FZ_QShft.FZ_Quiet_ShiftLeft;
489
490 -- Find Greatest Common Divisor (GCD) of X and Y.
491 procedure FFA_FZ_Greatest_Common_Divisor(X : in FZ;
492 Y : in FZ;
493 Result : out FZ)
494 with Pre => X'Length = Y'Length and X'Length = Result'Length;
495
496 end FFA;
(2 . 7)(2 . 7)
501 ------------------------------------------------------------------------------
502 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
503 -- --
504 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
505 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
506 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
507 -- --
508 -- You do not have, nor can you ever acquire the right to use, copy or --
- 118A03B1BEAB9BFC7C517C193F333B5F9A1169CD7B3364CA7B10B7050F8AA8F85E4323B925F6534041F0F02DE5242A72CC3A9829BF9E5CF25A075AA162CB1244(2 . 7)(2 . 7)
513 ------------------------------------------------------------------------------
514 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
515 -- --
516 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
517 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
518 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
519 -- --
520 -- You do not have, nor can you ever acquire the right to use, copy or --
- 1BE9E99C85140FDBCAA506EA97DE7B3E469ED5F0D30A252CCA92DC74C0F8D77DDEA63F7552907CD0705879984CB74259A228982504C441286C56BBF1D18A14BE(2 . 7)(2 . 7)
525 ------------------------------------------------------------------------------
526 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
527 -- --
528 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
529 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
530 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
531 -- --
532 -- You do not have, nor can you ever acquire the right to use, copy or --
- 8C306BD23D12315A8D62F760968B2CF32BDA6F49279B3F995DF7A100587C7B273E79C327C295521E42BEDA4D1E0A9F0E7F4C5293D57E92843B82C69A353F4687(2 . 7)(2 . 7)- A61E949EB6A9D5EA3A15661A3E85F563512425BB3B9B88E611D7D4D1B185998B8DA2F51C730EF2453A71174ECB0B787FEDE98F5C98ACDD8434EF6AF1C03853E3
537 ------------------------------------------------------------------------------
538 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
539 -- --
540 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
541 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
542 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
543 -- --
544 -- You do not have, nor can you ever acquire the right to use, copy or --
(255 . 10)(255 . 10)
546 -- Result is initially zero (and will stay zero if Modulus = 1)
547 FZ_Clear(XReduced);
548
549 -- (1) Ns := X >> Jm
550 -- (1) Xs := X >> Jm
551 FZ_Quiet_ShiftRight(N => X, ShiftedN => Xs, Count => Bar.J);
552
553 -- (2) Z := X * Bm
554 -- (2) Z := Xs * Bm
555 FZ_Multiply_Unbuffered(X => Bar.B, Y => Xs, XY => Z);
556
557 -- (3) Zs := Z >> 2Wm - Jm (already thrown lower Wm, so only Wm - Jm now)
(2 . 7)(2 . 7)
562 ------------------------------------------------------------------------------
563 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
564 -- --
565 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
566 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
567 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
568 -- --
569 -- You do not have, nor can you ever acquire the right to use, copy or --
- 542081523450C3FF80CE87CD60AB4323268859807B8DED868BEB3E73C90689AB37502405284374F8C7165408615D117443A28CCFC627B1A475CD1408A9FFAA7C(2 . 7)(2 . 7)
574 ------------------------------------------------------------------------------
575 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
576 -- --
577 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
578 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
579 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
580 -- --
581 -- You do not have, nor can you ever acquire the right to use, copy or --
- BC0A92EB0E81A645F6F7753CD559EF65C2CEA1714B618D02E44844A3BAD48DC3402EC0646B72C087F84C289E6CA04211D856374EB18265ED9A00E73684D85905(2 . 7)(2 . 7)
586 ------------------------------------------------------------------------------
587 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
588 -- --
589 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
590 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
591 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
592 -- --
593 -- You do not have, nor can you ever acquire the right to use, copy or --
- BB3866767E020335338D99D1A1CB8E9BD058A0A3408EF6DA9AE8D7E96DBDD3E3745C9982CDCE6A0762279636CFF08DA820AAA4DB77AB54A3F95FD470ACB64E3E(2 . 7)(2 . 7)
598 ------------------------------------------------------------------------------
599 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
600 -- --
601 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
602 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
603 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
604 -- --
605 -- You do not have, nor can you ever acquire the right to use, copy or --
- 9A8EB210F888927C59827161713D88477BBA533B910993AEC0995E62B3BA8B088EA8D12522F0A395328BB9DE4184F4D4015A16367D2DC0BC86D084FB1B598C8E(2 . 7)(2 . 7)
610 ------------------------------------------------------------------------------
611 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
612 -- --
613 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
614 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
615 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
616 -- --
617 -- You do not have, nor can you ever acquire the right to use, copy or --
- BFC359EB3785DC78189DF80B099BF5DD65931766553AE519CBDD7A8320D260C16EE6B272E2C7FD2631147E0AE2519CA57D896C2C58AEB7252EAB7DC5C9563598(2 . 7)(2 . 7)
622 ------------------------------------------------------------------------------
623 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
624 -- --
625 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
626 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
627 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
628 -- --
629 -- You do not have, nor can you ever acquire the right to use, copy or --
- 9C5AEF1C8B1C06E03D55DFEEB6BCFA00BFADB33EF95541D8A1B480C71662726FD7D8EA064FF2F1BC2BBE18982FAA3EB1DB7FAE0A1C9F8FE4ABF8C21D3843710E(2 . 7)(2 . 7)
634 ------------------------------------------------------------------------------
635 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
636 -- --
637 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
638 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
639 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
640 -- --
641 -- You do not have, nor can you ever acquire the right to use, copy or --
- D2C527100E5D010D29A4515DD377D15A36B11A7AA24D526B92AAD0E37A3ADFE97093FAB5DF133A650575DDCCFDC15DBA79059DE6882C48174E067E546E9F234F(2 . 7)(2 . 7)
646 ------------------------------------------------------------------------------
647 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
648 -- --
649 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
650 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
651 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
652 -- --
653 -- You do not have, nor can you ever acquire the right to use, copy or --
- 5FB712E8CE80E8B445DB02442BA50601B9E1FDB5A2F35E97C958145C253730B080F6750FBA80878366A1505A881D5FB69AF509D4D738FBB95DB16CA66CA9DD29(2 . 7)(2 . 7)
658 ------------------------------------------------------------------------------
659 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
660 -- --
661 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
662 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
663 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
664 -- --
665 -- You do not have, nor can you ever acquire the right to use, copy or --
-(0 . 0)(1 . 89)
670 ------------------------------------------------------------------------------
671 ------------------------------------------------------------------------------
672 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
673 -- --
674 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
675 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
676 -- --
677 -- You do not have, nor can you ever acquire the right to use, copy or --
678 -- distribute this software ; Should you use this software for any purpose, --
679 -- or copy and distribute it to anyone or in any manner, you are breaking --
680 -- the laws of whatever soi-disant jurisdiction, and you promise to --
681 -- continue doing so for the indefinite future. In any case, please --
682 -- always : read and understand any software ; verify any PGP signatures --
683 -- that you use - for any purpose. --
684 -- --
685 -- See also http://trilema.com/2015/a-new-software-licensing-paradigm . --
686 ------------------------------------------------------------------------------
687
688 with Words; use Words;
689 with FZ_Basic; use FZ_Basic;
690 with FZ_Shift; use FZ_Shift;
691 with FZ_QShft; use FZ_QShft;
692 with FZ_Arith; use FZ_Arith;
693 with FZ_Pred; use FZ_Pred;
694
695
696 package body FZ_GCD is
697
698 -- Find Greatest Common Divisor (GCD) of X and Y.
699 -- Note that by convention, GCD(0, 0) = 0.
700 procedure FZ_Greatest_Common_Divisor(X : in FZ;
701 Y : in FZ;
702 Result : out FZ) is
703
704 -- Widths of X, Y, and Result are equal
705 subtype Width is Word_Index range X'Range;
706
707 -- Working buffers for GCD computation, initially equal to the inputs
708 A : FZ(Width) := X; -- GCD will appear in A in the end
709 B : FZ(Width) := Y;
710
711 -- Evenness (negation of lowest bit) of A and B respectively
712 Ae, Be : WBool;
713
714 -- Common power-of-2 factor
715 Twos : Word := 0;
716
717 -- |A - B|
718 D : FZ(Width);
719
720 -- This flag is set iff A < B
721 A_lt_B : WBool;
722
723 begin
724
725 -- For convergence, requires number of shots equal to 2 * FZ_Bitness:
726 for i in 1 .. 2 * FZ_Bitness(X) loop
727
728 -- If A is even, A := A >> 1; otherwise A := A
729 Ae := 1 - FZ_OddP(A);
730 FZ_ShiftRight(A, A, WBit_Index(Ae));
731
732 -- If B is even, B := B >> 1; otherwise B := B
733 Be := 1 - FZ_OddP(B);
734 FZ_ShiftRight(B, B, WBit_Index(Be));
735
736 -- If both A and B were even, increment the common power-of-two
737 Twos := Twos + (Ae and Be);
738
739 -- D := |A - B|
740 FZ_Sub_Abs(X => A, Y => B, Difference => D, Underflow => A_lt_B);
741
742 -- B' := min(A, B)
743 FZ_Mux(X => B, Y => A, Result => B, Sel => A_lt_B);
744
745 -- A' := |A - B|
746 A := D;
747
748 end loop;
749
750 -- Reintroduce the common power-of-2 factor stored in 'Twos'
751 FZ_Quiet_ShiftLeft(N => A, ShiftedN => A, Count => Indices(Twos));
752
753 -- Output final result
754 Result := A;
755
756 end FZ_Greatest_Common_Divisor;
757
758 end FZ_GCD;
-(0 . 0)(1 . 33)
763 ------------------------------------------------------------------------------
764 ------------------------------------------------------------------------------
765 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
766 -- --
767 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
768 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
769 -- --
770 -- You do not have, nor can you ever acquire the right to use, copy or --
771 -- distribute this software ; Should you use this software for any purpose, --
772 -- or copy and distribute it to anyone or in any manner, you are breaking --
773 -- the laws of whatever soi-disant jurisdiction, and you promise to --
774 -- continue doing so for the indefinite future. In any case, please --
775 -- always : read and understand any software ; verify any PGP signatures --
776 -- that you use - for any purpose. --
777 -- --
778 -- See also http://trilema.com/2015/a-new-software-licensing-paradigm . --
779 ------------------------------------------------------------------------------
780 ------------------------------------------------------------------------------
781
782 with FZ_Type; use FZ_Type;
783
784
785 package FZ_GCD is
786
787 pragma Pure;
788
789 -- Find Greatest Common Divisor (GCD) of X and Y.
790 procedure FZ_Greatest_Common_Divisor(X : in FZ;
791 Y : in FZ;
792 Result : out FZ);
793 pragma Inline_Always(FZ_Greatest_Common_Divisor);
794
795 end FZ_GCD;
- CA78F137EB08EDEB38BE7844D4A077A051FF6A63E8B4F294E42979C125FB3C7220EDF2DC184F788EE2872EDBA17D3C54DCC26E3F37545C6708AA1409E2F04B8C(2 . 7)(2 . 7)
800 ------------------------------------------------------------------------------
801 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
802 -- --
803 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
804 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
805 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
806 -- --
807 -- You do not have, nor can you ever acquire the right to use, copy or --
- 63AFFC9E3D7BDCC86575F87185769D7C60CC6D46B0B78BE4B05489E90096C6E2D276C1E142932F9976BABF13A2CA7EC79509D7231596DCB507F01ED36019FBEC(2 . 7)(2 . 7)
812 ------------------------------------------------------------------------------
813 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
814 -- --
815 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
816 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
817 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
818 -- --
819 -- You do not have, nor can you ever acquire the right to use, copy or --
- 2CC9761900E19AFBC04B07151108755D4AE49643A1D94DB021D400DE09B21B689FED635B5865ED0E0571BDDD8D3BC90D5447EAEB40A39171DDEAAEBB42BCE929(2 . 7)(2 . 7)
824 ------------------------------------------------------------------------------
825 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
826 -- --
827 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
828 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
829 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
830 -- --
831 -- You do not have, nor can you ever acquire the right to use, copy or --
- AC9F7762BFA90673BB7331B065910A3B2B2F62AB77420981713A4F89FF2E1A6B73D313C4E694A1D68BA8B45258ECCC8B2655C34AE252C78C710BD97F5D5EA007(2 . 7)(2 . 7)
836 ------------------------------------------------------------------------------
837 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
838 -- --
839 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
840 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
841 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
842 -- --
843 -- You do not have, nor can you ever acquire the right to use, copy or --
- B4DF4BE19361F59AE40B0E80F90E1317FD28F95F32C7F6CE98C3D028679E5F6F2B90C2749E03CE029BF924BCFAFB953226EE8173D48490E86E600E7989AA6344(2 . 7)(2 . 7)- A773D77D13DC90E23E4BDB7612C9330D5789078FF5F6E0947E90EE4060D4E254AD93758E6D3F487C3C6932FCF9E6FA2A0B479264D4CDE7B160FF4C53DD70E720
848 ------------------------------------------------------------------------------
849 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
850 -- --
851 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
852 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
853 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
854 -- --
855 -- You do not have, nor can you ever acquire the right to use, copy or --
(176 . 4)(176 . 21)
857
858 end FZ_Low_Multiply_Unbuffered;
859
860
861 -- Low-Only Multiplier. Preserves the inputs.
862 procedure FZ_Low_Multiply_Buffered(X : in FZ;
863 Y : in FZ;
864 XY : out FZ) is
865
866 -- Product buffer.
867 P : FZ(1 .. X'Length);
868
869 begin
870
871 FZ_Low_Multiply_Unbuffered(X, Y, P);
872
873 XY := P;
874
875 end FZ_Low_Multiply_Buffered;
876
877 end FZ_LoMul;
(2 . 7)(2 . 7)- 3E868323D9FB836971DBB971A2996FF7868407DF3B7CCA05E2AE02C24A919B8D0C6277F93B1A9073D612C0092D0E1280AFAFBF3996F452C053B4C1433F529C54
882 ------------------------------------------------------------------------------
883 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
884 -- --
885 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
886 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
887 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
888 -- --
889 -- You do not have, nor can you ever acquire the right to use, copy or --
(51 . 4)(51 . 12)
891 X'Length mod 2 = 0;
892 -- CAUTION: Inlining prohibited for Low_Mul !
893
894 -- Low-Only Multiplier. Preserves the inputs.
895 procedure FZ_Low_Multiply_Buffered(X : in FZ;
896 Y : in FZ;
897 XY : out FZ)
898 with Pre => X'Length = Y'Length and
899 XY'Length = X'Length and
900 X'Length mod 2 = 0;
901
902 end FZ_LoMul;
(2 . 7)(2 . 7)
907 ------------------------------------------------------------------------------
908 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
909 -- --
910 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
911 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
912 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
913 -- --
914 -- You do not have, nor can you ever acquire the right to use, copy or --
- F4B728BE332DA4162214657E54DF4A241B02DFE4781AC47E34DF24138661C9C0E0D7835E3CF34377A3E152051A17A6C7ADF0D24C793A80F93F47C117F471B3B1(2 . 7)(2 . 7)
919 ------------------------------------------------------------------------------
920 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
921 -- --
922 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
923 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
924 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
925 -- --
926 -- You do not have, nor can you ever acquire the right to use, copy or --
- 321CC7F54066CA6F0C7BE85A195A028919076A6775510F99B5C9802F093CB08042770E08E8579376A7558CEB4BA1A0F0F43D437847FD2A89CA30EC8BC48C6177(2 . 7)(2 . 7)
931 ------------------------------------------------------------------------------
932 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
933 -- --
934 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
935 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
936 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
937 -- --
938 -- You do not have, nor can you ever acquire the right to use, copy or --
- 7D2EE2B7147B289A76B8731543ADF6CC049B35350C031D1D11BBE0B1D475A879B483368B95C535AF0D10061626060F2CA1438F0AA15F198DA74B0B1F449183B2(2 . 7)(2 . 7)
943 ------------------------------------------------------------------------------
944 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
945 -- --
946 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
947 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
948 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
949 -- --
950 -- You do not have, nor can you ever acquire the right to use, copy or --
- 92BD5F707CEBADBABC29F5F02A452F8D223B640AD39BF3B08CEA613CAA9CA92A7AE91096812FFC09E895C97BCC5ABA5054E89C30A6D550926D9CC4814B3180A7(2 . 7)(2 . 7)
955 ------------------------------------------------------------------------------
956 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
957 -- --
958 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
959 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
960 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
961 -- --
962 -- You do not have, nor can you ever acquire the right to use, copy or --
- E85E9FC6E391E1332EC7AA9BBF4331BBA8E462D5C1996B497696C12BB26097F1A3E4F97A342C868C30534FF648D12C2989875ADDE9233507A656C2B28742418F(2 . 7)(2 . 7)
967 ------------------------------------------------------------------------------
968 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
969 -- --
970 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
971 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
972 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
973 -- --
974 -- You do not have, nor can you ever acquire the right to use, copy or --
- 3E8866783222849EB1341717AE473B1C1B3065BB71B119F804CD105DBA897A89A51D2190DFDC2CDF6534A2C4100D254EFADA11FEFE5A0F411B0654A2106E9512(2 . 7)(2 . 7)
979 ------------------------------------------------------------------------------
980 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
981 -- --
982 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
983 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
984 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
985 -- --
986 -- You do not have, nor can you ever acquire the right to use, copy or --
- 11EC92D638C2C6296BB9566CF34A5D7AEA57E045ACB2C30580B0DBF02B5C00D4090050B496D281B9D94B986EE34487C35BFF86A10B7C24AADBC0EAD8643C4518(2 . 7)(2 . 7)
991 ------------------------------------------------------------------------------
992 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
993 -- --
994 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
995 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
996 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
997 -- --
998 -- You do not have, nor can you ever acquire the right to use, copy or --
- 095AFD026948C5A102C32A9B442D3D4A1F721A59396B90B40479EADD243C6C66E362698749A500DE2784445860CB7B6B1B38FA5C1D07F4C86D742E40C7FAC36D(2 . 7)(2 . 7)
1003 ------------------------------------------------------------------------------
1004 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1005 -- --
1006 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
1007 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1008 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1009 -- --
1010 -- You do not have, nor can you ever acquire the right to use, copy or --
- 631501F444D2718E57C7433D448ED6F4612D3D8E5BE36B78E651BC8F54C032BD0361CC42899B69BCDEFC8B8C50F97BA64814840DCF2EBF058B40BD660872A680(2 . 7)(2 . 7)
1015 ------------------------------------------------------------------------------
1016 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1017 -- --
1018 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
1019 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1020 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1021 -- --
1022 -- You do not have, nor can you ever acquire the right to use, copy or --
- 4EE469C436ED539003D13F9247CEF562FA9AB00133A68E91C2550FD734FF4916153EC6FC3C4A4DDE4AFB25B0DA9E95EA6DD91DAD4CA16C984DEDA6BBA3BC5906(2 . 7)(2 . 7)
1027 ------------------------------------------------------------------------------
1028 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1029 -- --
1030 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
1031 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1032 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1033 -- --
1034 -- You do not have, nor can you ever acquire the right to use, copy or --
- 8F0062ED157D9EB9910C160640F3F6DA391D6724A0023DA3B21B6BB00F5391E53A35569073EA698D82A259A26F910DE0803FB8EABAC6B2694F3D43AC709AE76E(2 . 7)(2 . 7)
1039 ------------------------------------------------------------------------------
1040 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1041 -- --
1042 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
1043 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1044 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1045 -- --
1046 -- You do not have, nor can you ever acquire the right to use, copy or --
- EB5CBE08505A865FDBEC2D54434B3C1A2460D1BBF78B0CC90499B198B57BE364844BAA8A8921056A13B6F0EBC35C281E5021D7D60D931FF42F9BBCA8EF253575(2 . 7)(2 . 7)
1051 ------------------------------------------------------------------------------
1052 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1053 -- --
1054 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
1055 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1056 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1057 -- --
1058 -- You do not have, nor can you ever acquire the right to use, copy or --
- D2817DFD3E193EC26A5466791E7A55E7B781272FAA088EC051D96F622DCFFFD369AE0F2F7717C8F803A3B4AD0A278B27EE79841751B5C4F9A16A0DEC5FB7A907(2 . 7)(2 . 7)
1063 ------------------------------------------------------------------------------
1064 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1065 -- --
1066 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
1067 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1068 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1069 -- --
1070 -- You do not have, nor can you ever acquire the right to use, copy or --
- 8040F67337558BA8EBDE821CA4EDD6264A8164AA9D0CF5A44F5F270C43FCAC6D0033421B94D3BD5379B75B85A06300A271237D391ADA11B9360865AC22BC5C5B(2 . 7)(2 . 7)
1075 ------------------------------------------------------------------------------
1076 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1077 -- --
1078 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
1079 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1080 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1081 -- --
1082 -- You do not have, nor can you ever acquire the right to use, copy or --
- F79F6F0C2069D6D35E407CA4BDAB3F1B1F90CB9CA55664E64E73E7130D03AD3056C62E0DEEAC005DCB3728F3FF5CA1357AE608277F8B062BC610F7459B93E561(2 . 7)(2 . 7)
1087 ------------------------------------------------------------------------------
1088 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1089 -- --
1090 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
1091 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1092 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1093 -- --
1094 -- You do not have, nor can you ever acquire the right to use, copy or --
- CBC2184B13F61F3540BAA6350673BC3735E29C3B9F4EA9B2EBCD7525D75A51CC9A11B84FDF5F92B61661DAF3607643D6A935CB2113F8F5EDD0AE46D37F41BB9F(2 . 7)(2 . 7)
1099 ------------------------------------------------------------------------------
1100 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1101 -- --
1102 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
1103 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1104 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1105 -- --
1106 -- You do not have, nor can you ever acquire the right to use, copy or --
- 40AC064F3B287C8759527756D668349E2599F495FF6E99D5DB70BDFD5EDB46752E282631416EF35954A3A224A868485904AC172AA0959B6D28C40904B92B289E(2 . 7)(2 . 7)
1111 ------------------------------------------------------------------------------
1112 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1113 -- --
1114 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
1115 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1116 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1117 -- --
1118 -- You do not have, nor can you ever acquire the right to use, copy or --
- 942986A3E94A3B1622D397A4E4D6FF574EC85B635FC0A5248D43B6150E457CB1D5845667B1075B4D2BFC0CEF9D19997354921A453D3748D97B93D6C079F8C01C(2 . 7)(2 . 7)
1123 ------------------------------------------------------------------------------
1124 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1125 -- --
1126 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
1127 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1128 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1129 -- --
1130 -- You do not have, nor can you ever acquire the right to use, copy or --
- 0053916C4C078241C2644C24A963CEDBB3A4A5EEB7F3060893FD6E1519CB3AFE8467F23C3B7BE9892D243502D827C0C5CA7D438C629CFF580B2399B86966445D(2 . 7)(2 . 7)
1135 ------------------------------------------------------------------------------
1136 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1137 -- --
1138 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
1139 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1140 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1141 -- --
1142 -- You do not have, nor can you ever acquire the right to use, copy or --
- BCB4CC4D9466EC43F01B7B9A2F8E473B013843B6BC0DAB034782054EF73B4D961345692A645ECF9ACA3451B567F54B5D2B822687BB6F74F031FCECA8B41325CD(2 . 7)(2 . 7)
1147 ------------------------------------------------------------------------------
1148 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1149 -- --
1150 -- (C) 2018 Stanislav Datskovskiy ( www.loper-os.org ) --
1151 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1152 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1153 -- --
1154 -- You do not have, nor can you ever acquire the right to use, copy or --
- 32BE1A6D9F30D7E653BCF263BC1A38BD6D90AE642158660A8DCDAEFDB885DC8D5467925A3949671E627A0C88B734F83A96F6B05762AA232144A2D79C5EF69661(2 . 7)(2 . 7)
1159 ------------------------------------------------------------------------------
1160 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1161 -- --
1162 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
1163 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1164 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1165 -- --
1166 -- You do not have, nor can you ever acquire the right to use, copy or --
- 864714838C024EE2B0F4A2F8B3FCF5CCAE3B055429B3E1763FDFB596B9115BF964C95214674E8EEA859ADA4CAF41691362DF3083CB4EF25DD218BC9237F28DFA(2 . 7)(2 . 7)
1171 ------------------------------------------------------------------------------
1172 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
1173 -- --
1174 -- (C) 2017 Stanislav Datskovskiy ( www.loper-os.org ) --
1175 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
1176 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
1177 -- --
1178 -- You do not have, nor can you ever acquire the right to use, copy or --