mirror of
https://github.com/logos-storage/nim-goldilocks-hash.git
synced 2026-05-05 17:19:27 +00:00
210 lines
5.0 KiB
Haskell
210 lines
5.0 KiB
Haskell
|
|
module Poseidon2.T16.Constants where
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
import Data.Array
|
|
import Data.Word
|
|
|
|
import Goldilocks
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
internalDiagElems :: Array Int F
|
|
internalDiagElems = listArray (0,15) $ map toF
|
|
[ 0xde9b91a467d6afc0
|
|
, 0xc5f16b9c76a9be17
|
|
, 0x0ab0fef2d540ac55
|
|
, 0x3001d27009d05773
|
|
, 0xed23b1f906d3d9eb
|
|
, 0x5ce73743cba97054
|
|
, 0x1c3bab944af4ba24
|
|
, 0x2faa105854dbafae
|
|
, 0x53ffb3ae6d421a10
|
|
, 0xbcda9df8884ba396
|
|
, 0xfc1273e4a31807bb
|
|
, 0xc77952573d5142c0
|
|
, 0x56683339a819b85e
|
|
, 0x328fcbd8f0ddc8eb
|
|
, 0xb5101e303fce9cb7
|
|
, 0x774487b8c40089bb
|
|
]
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
initialRoundConsts :: Array Int [F]
|
|
initialRoundConsts = listArray (0,3) $ map (map toF)
|
|
[ [ 0x15ebea3fc73397c3
|
|
, 0xd73cd9fbfe8e275c
|
|
, 0x8c096bfce77f6c26
|
|
, 0x4e128f68b53d8fea
|
|
, 0x29b779a36b2763f6
|
|
, 0xfe2adc6fb65acd08
|
|
, 0x8d2520e725ad0955
|
|
, 0x1c2392b214624d2a
|
|
, 0x37482118206dcc6e
|
|
, 0x2f829bed19be019a
|
|
, 0x2fe298cb6f8159b0
|
|
, 0x2bbad982deccdbbf
|
|
, 0xbad568b8cc60a81e
|
|
, 0xb86a814265baad10
|
|
, 0xbec2005513b3acb3
|
|
, 0x6bf89b59a07c2a94
|
|
]
|
|
, [ 0xa25deeb835e230f5
|
|
, 0x3c5bad8512b8b12a
|
|
, 0x7230f73c3cb7a4f2
|
|
, 0xa70c87f095c74d0f
|
|
, 0x6b7606b830bb2e80
|
|
, 0x6cd467cfc4f24274
|
|
, 0xfeed794df42a9b0a
|
|
, 0x8cf7cf6163b7dbd3
|
|
, 0x9a6e9dda597175a0
|
|
, 0xaa52295a684faf7b
|
|
, 0x017b811cc3589d8d
|
|
, 0x55bfb699b6181648
|
|
, 0xc2ccaf71501c2421
|
|
, 0x1707950327596402
|
|
, 0xdd2fcdcd42a8229f
|
|
, 0x8b9d7d5b27778a21
|
|
]
|
|
, [ 0xac9a05525f9cf512
|
|
, 0x2ba125c58627b5e8
|
|
, 0xc74e91250a8147a5
|
|
, 0xa3e64b640d5bb384
|
|
, 0xf53047d18d1f9292
|
|
, 0xbaaeddacae3a6374
|
|
, 0xf2d0914a808b3db1
|
|
, 0x18af1a3742bfa3b0
|
|
, 0x9a621ef50c55bdb8
|
|
, 0xc615f4d1cc5466f3
|
|
, 0xb7fbac19a35cf793
|
|
, 0xd2b1a15ba517e46d
|
|
, 0x4a290c4d7fd26f6f
|
|
, 0x4f0cf1bb1770c4c4
|
|
, 0x548345386cd377f5
|
|
, 0x33978d2789fddd42
|
|
]
|
|
, [ 0xab78c59deb77e211
|
|
, 0xc485b2a933d2be7f
|
|
, 0xbde3792c00c03c53
|
|
, 0xab4cefe8f893d247
|
|
, 0xc5c0e752eab7f85f
|
|
, 0xdbf5a76f893bafea
|
|
, 0xa91f6003e3d984de
|
|
, 0x099539077f311e87
|
|
, 0x097ec52232f9559e
|
|
, 0x53641bdf8991e48c
|
|
, 0x2afe9711d5ed9d7c
|
|
, 0xa7b13d3661b5d117
|
|
, 0x5a0e243fe7af6556
|
|
, 0x1076fae8932d5f00
|
|
, 0x9b53a83d434934e3
|
|
, 0xed3fd595a3c0344a
|
|
]
|
|
]
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
finalRoundConsts :: Array Int [F]
|
|
finalRoundConsts = listArray (0,3) $ map (map toF)
|
|
[ [ 0xdacf46dc1c31a045
|
|
, 0x5d2e3c121eb387f2
|
|
, 0x51f8b0658b124499
|
|
, 0x1e7dbd1daa72167d
|
|
, 0x8275015a25c55b88
|
|
, 0xe8521c24ac7a70b3
|
|
, 0x6521d121c40b3f67
|
|
, 0xac12de797de135b0
|
|
, 0xafa28ead79f6ed6a
|
|
, 0x685174a7a8d26f0b
|
|
, 0xeff92a08d35d9874
|
|
, 0x3058734b76dd123a
|
|
, 0xfa55dcfba429f79c
|
|
, 0x559294d4324c7728
|
|
, 0x7a770f53012dc178
|
|
, 0xedd8f7c408f3883b
|
|
]
|
|
, [ 0x39b533cf8d795fa5
|
|
, 0x160ef9de243a8c0a
|
|
, 0x431d52da6215fe3f
|
|
, 0x54c51a2a2ef6d528
|
|
, 0x9b13892b46ff9d16
|
|
, 0x263c46fcee210289
|
|
, 0xb738c96d25aabdc4
|
|
, 0x5c33a5203996d38f
|
|
, 0x2626496e7c98d8dd
|
|
, 0xc669e0a52785903a
|
|
, 0xaecde726c8ae1f47
|
|
, 0x039343ef3a81e999
|
|
, 0x2615ceaf044a54f9
|
|
, 0x7e41e834662b66e1
|
|
, 0x4ca5fd4895335783
|
|
, 0x64b334d02916f2b0
|
|
]
|
|
, [ 0x87268837389a6981
|
|
, 0x034b75bcb20a6274
|
|
, 0x58e658296cc2cd6e
|
|
, 0xe2d0f759acc31df4
|
|
, 0x81a652e435093e20
|
|
, 0x0b72b6e0172eaf47
|
|
, 0x4aec43cec577d66d
|
|
, 0xde78365b028a84e6
|
|
, 0x444e19569adc0ee4
|
|
, 0x942b2451fa40d1da
|
|
, 0xe24506623ea5bd6c
|
|
, 0x082854bf2ef7c743
|
|
, 0x69dbbc566f59d62e
|
|
, 0x248c38d02a7b5cb2
|
|
, 0x4f4e8f8c09d15edb
|
|
, 0xd96682f188d310cf
|
|
]
|
|
, [ 0x6f9a25d56818b54c
|
|
, 0xb6cefed606546cd9
|
|
, 0x5bc07523da38a67b
|
|
, 0x7df5a3c35b8111cf
|
|
, 0xaaa2cc5d4db34bb0
|
|
, 0x9e673ff22a4653f8
|
|
, 0xbd8b278d60739c62
|
|
, 0xe10d20f6925b8815
|
|
, 0xf6c87b91dd4da2bf
|
|
, 0xfed623e2f71b6f1a
|
|
, 0xa0f02fa52a94d0d3
|
|
, 0xbb5794711b39fa16
|
|
, 0xd3b94fba9d005c7f
|
|
, 0x15a26e89fad946c9
|
|
, 0xf3cb87db8a67cf49
|
|
, 0x400d2bf56aa2a577
|
|
]
|
|
]
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
internalRoundConsts :: [F] -- :: Array Int F
|
|
internalRoundConsts = map toF -- listArray (0,21) $ map toF
|
|
[ 0x28eff4b01103d100
|
|
, 0x60400ca3e2685a45
|
|
, 0x1c8636beb3389b84
|
|
, 0xac1332b60e13eff0
|
|
, 0x2adafcc364e20f87
|
|
, 0x79ffc2b14054ea0b
|
|
, 0x3f98e4c0908f0a05
|
|
, 0xcdb230bc4e8a06c4
|
|
, 0x1bcaf7705b152a74
|
|
, 0xd9bca249a82a7470
|
|
, 0x91e24af19bf82551
|
|
, 0xa62b43ba5cb78858
|
|
, 0xb4898117472e797f
|
|
, 0xb3228bca606cdaa0
|
|
, 0x844461051bca39c9
|
|
, 0xf3411581f6617d68
|
|
, 0xf7fd50646782b533
|
|
, 0x6ca664253c18fb48
|
|
, 0x2d2fcdec0886a08f
|
|
, 0x29da00dd799b575e
|
|
, 0x47d966cc3b6e1e93
|
|
, 0xde884e9a17ced59e
|
|
]
|
|
|
|
--------------------------------------------------------------------------------
|