Overview
Comment: | Duplicate original Smaz dictionary to be used with Natools.Smaz_256 |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
47b2749cade7ed4170f76cec161ea5ab |
User & Date: | nat on 2016-11-16 21:50:18 |
Other Links: | manifest | tags |
Context
2016-11-17
| ||
21:23 | smaz_tests: new tests suite for instantiated Smaz packages check-in: 769ae2dc25 user: nat tags: trunk | |
2016-11-16
| ||
21:50 | Duplicate original Smaz dictionary to be used with Natools.Smaz_256 check-in: 47b2749cad user: nat tags: trunk | |
2016-11-15
| ||
22:42 | smaz_256: standard Smaz algorithm built from Smaz_Generic check-in: 361f2b206c user: nat tags: trunk | |
Changes
Added generated/natools-smaz_original_hash.adb version [93f656e6af].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | with Interfaces; use Interfaces; package body Natools.Smaz_Original_Hash is P : constant array (0 .. 3) of Natural := (1, 2, 3, 4); T1 : constant array (0 .. 3) of Unsigned_16 := (205, 471, 343, 362); T2 : constant array (0 .. 3) of Unsigned_16 := (421, 215, 438, 437); G : constant array (0 .. 508) of Unsigned_8 := (19, 63, 226, 0, 0, 25, 0, 69, 0, 0, 14, 0, 0, 0, 73, 207, 92, 0, 0, 0, 48, 0, 62, 48, 123, 56, 0, 0, 11, 47, 0, 0, 167, 145, 0, 0, 0, 213, 114, 15, 0, 2, 214, 0, 161, 162, 0, 0, 0, 50, 0, 0, 0, 0, 0, 133, 0, 0, 54, 0, 0, 0, 33, 220, 0, 143, 1, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 226, 0, 0, 110, 0, 0, 0, 209, 165, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 235, 0, 0, 0, 195, 237, 0, 0, 0, 0, 238, 82, 0, 252, 26, 4, 0, 0, 205, 0, 0, 0, 0, 188, 0, 168, 0, 242, 0, 0, 0, 99, 191, 0, 103, 0, 230, 0, 0, 0, 0, 135, 0, 183, 21, 0, 11, 172, 119, 0, 208, 137, 0, 0, 0, 0, 0, 0, 180, 10, 183, 203, 0, 0, 86, 132, 8, 17, 0, 32, 0, 0, 92, 0, 0, 170, 0, 0, 94, 194, 50, 185, 0, 0, 42, 0, 185, 233, 177, 0, 0, 0, 0, 0, 0, 237, 218, 0, 0, 0, 119, 0, 181, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 201, 0, 42, 0, 0, 0, 0, 216, 0, 0, 0, 0, 158, 0, 0, 0, 141, 36, 51, 0, 27, 234, 242, 0, 43, 0, 219, 78, 169, 164, 0, 59, 33, 0, 112, 0, 31, 0, 144, 40, 0, 0, 0, 0, 0, 158, 0, 0, 0, 227, 127, 0, 154, 241, 0, 0, 209, 0, 248, 0, 0, 68, 0, 119, 0, 0, 104, 174, 79, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 206, 0, 202, 0, 0, 0, 0, 133, 71, 209, 189, 134, 0, 69, 0, 0, 226, 68, 0, 0, 189, 0, 230, 16, 0, 0, 0, 0, 181, 246, 97, 0, 88, 25, 0, 49, 0, 34, 77, 30, 210, 0, 0, 0, 0, 128, 193, 0, 116, 2, 121, 16, 0, 214, 132, 22, 116, 68, 0, 148, 0, 0, 90, 165, 218, 157, 24, 0, 0, 192, 0, 81, 0, 0, 177, 0, 98, 81, 183, 0, 0, 0, 0, 7, 161, 0, 123, 106, 0, 0, 136, 82, 51, 48, 0, 0, 169, 5, 170, 138, 66, 211, 0, 112, 1, 0, 0, 84, 220, 167, 0, 0, 161, 252, 46, 175, 95, 170, 20, 216, 177, 0, 97, 76, 44, 0, 0, 20, 0, 0, 233, 0, 0, 0, 47, 8, 116, 147, 0, 212, 0, 0, 118, 94, 0, 89, 183, 0, 0, 105, 0, 0, 74, 196, 28, 4, 0, 103, 0, 5, 0, 131, 45, 0, 177, 232, 219, 19, 228, 1, 0, 31, 90, 0, 0, 150, 23, 92, 120, 238, 48, 1, 0, 0, 37, 3, 152, 0, 0, 110, 166, 35, 13, 115, 217, 0, 0, 0, 87, 0, 126, 163, 248, 80, 9, 12, 0, 0, 52, 10, 11, 89, 0); function Hash (S : String) return Natural is F : constant Natural := S'First - 1; L : constant Natural := S'Length; F1, F2 : Natural := 0; J : Natural; begin for K in P'Range loop exit when L < P (K); J := Character'Pos (S (P (K) + F)); F1 := (F1 + Natural (T1 (K)) * J) mod 509; F2 := (F2 + Natural (T2 (K)) * J) mod 509; end loop; return (Natural (G (F1)) + Natural (G (F2))) mod 254; end Hash; end Natools.Smaz_Original_Hash; |
Added generated/natools-smaz_original_hash.ads version [d76a3861dc].
> > > > | 1 2 3 4 | package Natools.Smaz_Original_Hash is pragma Pure; function Hash (S : String) return Natural; end Natools.Smaz_Original_Hash; |
Added src/natools-smaz_original.ads version [30620f3410].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | ------------------------------------------------------------------------------ -- Copyright (c) 2016, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ with Ada.Characters.Latin_1; with Natools.Smaz_256; with Natools.Smaz_Original_Hash; package Natools.Smaz_Original is pragma Pure; LF : constant Character := Ada.Characters.Latin_1.LF; CR : constant Character := Ada.Characters.Latin_1.CR; Dictionary : constant Natools.Smaz_256.Dictionary := (Last_Code => 253, Values_Last => 593, Variable_Length_Verbatim => True, Max_Word_Length => 7, Offsets => (2, 5, 6, 7, 8, 10, 11, 14, 15, 16, 17, 19, 20, 23, 25, 27, 29, 31, 32, 35, 37, 39, 40, 42, 43, 45, 47, 49, 50, 52, 54, 56, 59, 61, 64, 66, 68, 70, 71, 73, 76, 78, 80, 85, 86, 87, 89, 91, 95, 96, 99, 101, 103, 105, 107, 110, 112, 113, 115, 116, 117, 119, 121, 124, 127, 128, 130, 137, 140, 142, 145, 147, 150, 152, 154, 156, 159, 161, 164, 166, 168, 169, 172, 173, 175, 177, 181, 183, 185, 188, 189, 191, 193, 197, 199, 201, 203, 206, 208, 211, 216, 217, 219, 223, 225, 228, 230, 233, 235, 236, 237, 239, 242, 245, 247, 249, 252, 254, 257, 260, 262, 264, 267, 269, 272, 274, 277, 279, 283, 285, 287, 289, 292, 295, 298, 301, 303, 305, 307, 309, 312, 315, 318, 321, 323, 325, 328, 330, 333, 336, 338, 340, 342, 344, 347, 351, 354, 356, 359, 362, 365, 368, 371, 373, 375, 377, 379, 382, 385, 387, 390, 392, 395, 397, 400, 403, 406, 409, 411, 413, 415, 418, 420, 422, 425, 428, 430, 432, 435, 437, 440, 443, 445, 448, 450, 452, 454, 455, 459, 462, 464, 467, 470, 473, 474, 476, 479, 482, 484, 487, 492, 495, 497, 500, 502, 504, 507, 510, 513, 514, 516, 518, 519, 521, 523, 524, 526, 529, 531, 534, 536, 539, 541, 544, 546, 548, 550, 552, 555, 557, 559, 561, 563, 566, 569, 572, 575, 578, 581, 583, 584, 587, 590), Values => " theetaofoandinse r th tinhethhhe to" & CR & LF & "ls d a" & "anerc od on ofreof t , isuat n orwhichfmasitthat" & LF & "wa" & "sen wes an i" & CR & "f gpnd snd ed wedhttp://forteingy The " & "ctir hisst inarnt, toyng hwithlealto boubewere bseo enthang th" & "eir""hifrom fin deionmev.veallre rirois cof tareea. her mer p" & "es bytheydiraicnots, d tat celah neas tioon n tiowe a om, as o" & "urlillchhadthise tg e" & CR & LF & " where coe oa us dss" & LF & CR & LF & CR & LF & CR & "="" be es amaonet tor butelsol e ss,n" & "oter waivhoe a rhats tnsch whtrut/havely ta ha ontha- latien p" & "e rethereasssi fowaecourwhoitszfors>otun<imth ncate><verad wel" & "yee nid clacil</rt widive, itwhi magexe cmen.com", Hash => Natools.Smaz_Original_Hash.Hash'Access); end Natools.Smaz_Original; |