smolen (OP)
|
|
October 15, 2013, 11:41:28 AM Last edit: April 15, 2015, 06:22:29 PM by smolen |
|
Since 2013 this thread was home for Smelter, the first public GPU miner for (then hot and great) Quark coin. Time passed, Quark almost faded away, open-source miners catched up, OpenCL code of Smelter got published and now old good Smelter for Quark algo is retired. Now I'm returning to this project to make an universal, versatile and hopefully the fastest miner. Currently it's way behind sgminer and friends in area of usability and GPU control. (At the moment of writing it's just ugly, to say the truth) The current 0.7 version is released with WhirlpoolX kernel and can mine only Vanillacoin. This version is free, there is no hidden fee, enforced donations or speed reduction. Also there is no solo mining (use Stratum proxy if you really need it) and Linux version (wait, it's going to be release) Tested only with single 280x, but those cards should work: Juniper (6770, 6750, 5750, 5770) Pitcairn (7850, 7870, Curacao: 265, 270, 270X) Tahiti (7870, 7950, 7970, 280, 280X) Hawaii (290, 290X) Tonga (285) [TODO: collect and put here reported hashing speeds; my 280x gets ~540MH/s with overclocking] Download zip archive, unpack, edit cmd file with pool address, username and password and launch edited cmd. To get the best performance first find the best worksize for your GPU by changing '-W 64' in .cmd file to -W 128 or 256, select the best value, lower memclock and start to raise core clock. Keep an eye '5s:' speed, it catches up quickly. Program options: -? [ --help ] This help message --copyrights Print libraries copyright message(s) -o [ --url ] arg pool url (ex: -o http://pool:port ) -u [ --user ] arg Pool username -p [ --pass ] arg Pool password -w [ --worksize ] arg Worksize -g [ --gputhreads ] arg Threads per GPU -D [ --debug ] Enable debug output
There isn't much to be configured. User can play with worksize (64, 128 and 256) and number of threads. To flood the screen with tons of diagnostics use --debug. Before claiming that I violated GPL, take a look at 'smelter --copyrights' output. To exit, use control-C or type any letter and then ENTER.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
pyromaniac
|
|
October 15, 2013, 12:14:36 PM |
|
I can't download it from there using both of my browsers (Opera 12 and IE 10). Please, upload it to any other hosting.
|
|
|
|
ig0tik3d
Legendary
Offline
Activity: 1246
Merit: 1000
|
|
October 15, 2013, 12:24:51 PM |
|
when start got some erorrs... and on my hd7850 speed 520kh )) on the same pc cpu miner on a10-5800k got 420kh ))
|
|
|
|
smolen (OP)
|
|
October 15, 2013, 12:25:56 PM |
|
I can't download it from there using both of my browsers (Opera 12 and IE 10). Please, upload it to any other hosting.
http://rghost.net/49379672
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
October 15, 2013, 12:31:06 PM |
|
when start got some erorrs... and on my hd7850 speed 520kh )) on the same pc cpu miner on a10-5800k got 420kh )) ~1.2 MH/s here on my 6770, I released it without any testing on other GPUs:(
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
dragon695
Full Member
Offline
Activity: 449
Merit: 103
Decentralized Ascending Auctions on Blockchain
|
|
October 15, 2013, 01:08:16 PM |
|
Closed source, steals 1/8, possible malware, what could go wrong?
|
|
|
|
paymetodostuff
Member
Offline
Activity: 88
Merit: 10
|
|
October 15, 2013, 01:17:18 PM |
|
Testing this out. 2.58MH on my 6970.
|
|
|
|
pyromaniac
|
|
October 15, 2013, 01:38:01 PM |
|
I can't download it from there using both of my browsers (Opera 12 and IE 10). Please, upload it to any other hosting.
http://rghost.net/49379672Thanks!
|
|
|
|
|
smolen (OP)
|
|
October 15, 2013, 02:04:19 PM |
|
7970 Looks like it's almost useless on GCN cards...
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
shaber122
|
|
October 15, 2013, 05:05:54 PM |
|
7970+7850+5870=3.79MH/s
|
|
|
|
Grogorash
Newbie
Offline
Activity: 29
Merit: 0
|
|
October 15, 2013, 05:15:20 PM |
|
Can smelter be used in mining pool or solo only?
|
|
|
|
smolen (OP)
|
|
October 15, 2013, 05:27:31 PM |
|
Can smelter be used in mining pool or solo only?
Only solo is possible now. I have plans to implement pool/miner combo, but don't expect it soon, the progress is very slow...
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
October 15, 2013, 05:29:57 PM |
|
Profit estimation per 1 MH/s for Quark and Securecoin: QRK:1000000*60*60*24*128*0.00000110/16777216/124 = 0.00584 BTC/day SRC:1000000*60*60*24*5*0.00041263/16777216/1462 = 0.00726 BTC/day
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
shaber122
|
|
October 15, 2013, 06:07:15 PM |
|
smolen a little lower intensity?
|
|
|
|
smolen (OP)
|
|
October 15, 2013, 06:09:31 PM |
|
smolen a little lower intensity?
It's in my TODO list
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
3dcgminer
|
|
October 15, 2013, 06:14:38 PM Last edit: October 15, 2013, 06:24:49 PM by 3dcgminer |
|
Wanted to check if NVIDIA cards may be of any use, but I get: "The procedure entry point clRetinDevice could not be located in the dynamic link library." Updating the driver...
Edit, updated from 320.00 to 320.86, no change, driver is supposed to support OpenCL 1.1, is it too old?
|
|
|
|
smolen (OP)
|
|
October 15, 2013, 06:19:53 PM |
|
Updating the driver...
Don't do it, NVidia is not supported anyway. (I'd better update the first post)
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
murraypaul
|
|
October 15, 2013, 06:26:55 PM |
|
Crashes after about 20-30 seconds for me.
|
BTC: 16TgAGdiTSsTWSsBDphebNJCFr1NT78xFW SRC: scefi1XMhq91n3oF5FrE3HqddVvvCZP9KB
|
|
|
3dcgminer
|
|
October 15, 2013, 06:30:31 PM |
|
Updating the driver...
Don't do it, NVidia is not supported anyway. (I'd better update the first post) Answering myself: Looks like it may be the old nvidia opencl driver that is the problem: http://stackoverflow.com/questions/15456987/opencl-could-not-find-clretaindevice-in-dllIt happens when you use the C++ bindings header file with OpenCL 1.2 header. For instance, when you run an application compiled with AMD SDK (OpenCL 1.2) on NVIDIA platform (OpenCL 1.1 only). As fast and dirty work around, you can just edit the AMD SDK cl.h header and undef "CL_VERSION_1_2" preprocessor symbol. If you are not interested to 1.2 features, it should fix your problem.Any chance of a quick and dirty fix?
|
|
|
|
smolen (OP)
|
|
October 15, 2013, 06:30:48 PM |
|
Crashes after about 20-30 seconds for me.
Next version will come with debug log writer, I was too lazy to implement it properly in the first version
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
October 15, 2013, 06:47:30 PM |
|
Don't do it, NVidia is not supported anyway. (I'd better update the first post)
Any chance of a quick and dirty fix? No I work now on Primecoin miner. With all respect to mtrtl, the release of his reaper-prime was a fiasco. When my miner will be ready (let's hope it will:)), I'm going to release it to the public and get some profit. Apparently, taking preorders or donations is a wrong way, and this Quark miner was created to test waters with profit-splitting scheme (and also give miner host some real-world testing). There is some copy-protection embedded in precompiled kernel and I cannot implement it for NVidia cards without actual hardware in my hands. So no, don't expect NVidia support soon
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
3dcgminer
|
|
October 15, 2013, 06:59:13 PM |
|
Would prefer a finished Quark miner with pool support, before getting another new miner... At 12.5% fee, you should get the cash to buy a mid-range NVIDIA card in no time at all.
|
|
|
|
3dcgminer
|
|
October 15, 2013, 07:03:21 PM |
|
Runs fine and fast for 15 minutes on 7970, but 0 blocks for me and 0 payout for the author. Please add pool support.
|
|
|
|
smolen (OP)
|
|
October 15, 2013, 07:06:12 PM |
|
Runs fine and fast for 15 minutes on 7970, but 0 blocks for me and 0 payout for the author. Please add pool support.
I have plans to implement pool/miner combo, but don't expect it soon, the progress is very slow...
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
Wubbllez
Member
Offline
Activity: 75
Merit: 10
|
|
October 15, 2013, 07:15:17 PM |
|
This could be really good for the coin, or really really bad
|
|
|
|
ivanlabrie
|
|
October 15, 2013, 07:31:23 PM |
|
This should help the coins...xpm needs this as well. Props for making this op.
|
|
|
|
victzhang
|
|
October 15, 2013, 08:16:10 PM |
|
Right now it produces almost equal hash rate on my CPU and GPU. I am still doing CPU mining to avoid the royalty. However, as it is just a preview, I think there is still great potential to improve this miner. I personally like open-source miners, and in this way more people can be involved to improve this miner further. The author can still accept donations and offer early access to donors, like what the author of XPM GPU miner did. Even though right now the price of Quark is cheap, but I believe it has great potential. The GPU miner will not kill it; rather, it helps promote this coin and discourage botnet miners.
|
|
|
|
smolen (OP)
|
|
October 16, 2013, 08:08:57 AM |
|
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
ivanlabrie
|
|
October 16, 2013, 01:55:08 PM |
|
I think it's fine as long as the fee isn't too big and it's clearly stated and proven in the source code...Problem is, yeah, sharing the source code would make this pointless.
|
|
|
|
ilostcoins
|
|
October 16, 2013, 02:16:16 PM |
|
I think the profit sharing scheme makes sense. If the results are good and people like to use it, they naturally pay for it. If you try it a bit and don't like the results, you don't need to pay for it. Payment scales with the software's productivity.
(I'd also like to mention my interest in an Nvidia version.)
|
LTC: LSyqwk4YbhBRtkrUy8NRdKXFoUcgVpu8Qb NVC: 4HtynfYVyRYo6yM8BTAqyNYwqiucfoPqFW TAG id: 4313 CMC: CAHrzqveVm9UxGm7PZtT4uj6su4suxKzZv YAC: Y9m5S7M24sdkjdwxnA9GZpPez6k6EqUjUt
|
|
|
smolen (OP)
|
|
October 16, 2013, 05:23:21 PM |
|
With profit splitting miner I'm getting my reward at the same moment as the owner of hardware.
I think it's fine as long as the fee isn't too big and it's clearly stated and proven in the source code...Problem is, yeah, sharing the source code would make this pointless. Well, Smelter can be audited even without source code. There is no extra network connections, all generated blocks can be seen in the block explorer, wallet debug log can be examined. Good idea would be to run it in restricted environment with empty wallet without any funds.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
ivanlabrie
|
|
October 16, 2013, 06:35:59 PM |
|
With profit splitting miner I'm getting my reward at the same moment as the owner of hardware.
I think it's fine as long as the fee isn't too big and it's clearly stated and proven in the source code...Problem is, yeah, sharing the source code would make this pointless. Well, Smelter can be audited even without source code. There is no extra network connections, all generated blocks can be seen in the block explorer, wallet debug log can be examined. Good idea would be to run it in restricted environment with empty wallet without any funds. Right, good call...at least for solo mining it should be easy to monitor it. I'll give it a shot as soon as I get a proper gpu again mate.
|
|
|
|
Orrechorre
|
|
October 16, 2013, 09:43:12 PM |
|
Im only getting 800kh/s on my 7870, any way you can run this on muliple card on the same machine?
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
October 16, 2013, 11:24:30 PM Last edit: October 17, 2013, 09:04:04 AM by macmac__ |
|
Working here so far, just 1.05MH/s thou (7950) tomorrow morning we'll see if it has generated a block If yes +1, if no, waiting for adjustable intensity and +0.5 E:And we have a block! All we need now is adjustable intensity https://i.imgur.com/dC02Glys.png
|
|
|
|
pyromaniac
|
|
October 17, 2013, 01:41:44 PM |
|
Working here so far, just 1.05MH/s thou (7950) tomorrow morning we'll see if it has generated a block If yes +1, if no, waiting for adjustable intensity and +0.5 E:And we have a block! All we need now is adjustable intensity What CPU miner did you using?
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
October 17, 2013, 04:03:53 PM |
|
/Snip/
What CPU miner did you using? minerd_qv2.2_sse4, found if from somewhere in quarkcoin thread.
|
|
|
|
cryptrol
|
|
October 17, 2013, 05:21:15 PM |
|
What is the power drawn by mining with GPU ? I don't think GPU mining makes any sense with this performance.
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
October 17, 2013, 06:46:35 PM |
|
Around 40% of scrypts usage (atleast on my 7950) [Following data pulled from HWinfo] Quark: Core 57W Memory 14W Combined 71W Scrypt: Core 135W Memory 35W Combined 170W
These powers are measured after VRM modules so total card consumption is higher, around 200W in scrypt and 85W in quark. (Rough approximation with bad multimeter)
Hopefully the miner gets updated to support GCN cards as soon as possible, I'd be more than happy if it would pull 2.5MH/s with 200W power usage, but as performance of 6000-series is great,over 2.5MH/s with 6970, I'm hoping for over 4MH/s when it gets optimized ^^
|
|
|
|
ivanlabrie
|
|
October 17, 2013, 07:11:20 PM |
|
Around 40% of scrypts usage (atleast on my 7950) [Following data pulled from HWinfo] Quark: Core 57W Memory 14W Combined 71W Scrypt: Core 135W Memory 35W Combined 170W
These powers are measured after VRM modules so total card consumption is higher, around 200W in scrypt and 85W in quark. (Rough approximation with bad multimeter)
Hopefully the miner gets updated to support GCN cards as soon as possible, I'd be more than happy if it would pull 2.5MH/s with 200W power usage, but as performance of 6000-series is great,over 2.5MH/s with 6970, I'm hoping for over 4MH/s when it gets optimized ^^
That would be amazing!
|
|
|
|
smolen (OP)
|
|
October 17, 2013, 07:37:49 PM |
|
I read the thread expect new version soon
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
lemons
|
|
October 18, 2013, 07:01:51 AM |
|
Profit estimation per 1 MH/s for Quark and Securecoin: QRK:1000000*60*60*24*128*0.00000110/16777216/124 = 0.00584 BTC/day SRC:1000000*60*60*24*5*0.00041263/16777216/1462 = 0.00726 BTC/day
Profit less than CPU miner ?
|
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
October 18, 2013, 07:31:26 PM |
|
Good work on the program. I tried it for a couple hours crunching Quark and scored a block with it getting 1.2MH/s with an XFX 7970. Looking forward to the improvments and optimizations that will come with future versions.
I think the idea of a percent fee is an excellent idea akin to pool operators. The 1/8 (12.5%) fee is fine for the first few early versions to make development worthwile but I think something in the 2-4% would be much more reasonable once it is more widely released with a wider user base.
|
|
|
|
soulmann
|
|
October 18, 2013, 08:39:15 PM |
|
7970 is mining LTC at 700 Kilohash/s - it is about 0.68 LTC/day or 0.0082 BTC/day. 1.2 Mhash/s Quark mining is about 5000 QRK/day or 0.0051 BTC/day and 12.5% to author. So it is more profitable to mine LTC or FTC, then Quark with GPU.
Am I right?
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
October 18, 2013, 09:21:07 PM |
|
Yes. Simple question and simple answer
|
|
|
|
dragon695
Full Member
Offline
Activity: 449
Merit: 103
Decentralized Ascending Auctions on Blockchain
|
|
October 18, 2013, 10:16:29 PM |
|
Yes. Simple question and simple answer Obviously, skimming 1/8 is highway robbery.
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
October 18, 2013, 11:59:08 PM |
|
Snip
Obviously, skimming 1/8 is highway robbery. I wouldn't say it's robbing to get paid for what you do, 12.5% of income is alot but consider this: you wouldn't get any income if he wouldn't have shared his miner, on 6000-series gpus it's highly profitable even with the fee at the moment
|
|
|
|
smolen (OP)
|
|
October 19, 2013, 08:16:57 PM |
|
7970 is mining LTC at 700 Kilohash/s - it is about 0.68 LTC/day or 0.0082 BTC/day. 1.2 Mhash/s Quark mining is about 5000 QRK/day or 0.0051 BTC/day and 12.5% to author. So it is more profitable to mine LTC or FTC, then Quark with GPU.
Am I right?
That's correct. My trick with groestl hash works well for VLIW5, but not for GCN I think the idea of a percent fee is an excellent idea akin to pool operators.
Thank you! (And there is no risk of 51% attack from me ) Obviously, skimming 1/8 is highway robbery.
12.5% of mined Quarks is a lot, but I hope that 12.5% of mined Primecoins will be generous. I'll lower royalty percent in the next Quark kernel.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
cinnamon_carter
Legendary
Offline
Activity: 1148
Merit: 1018
It's about time -- All merrit accepted !!!
|
|
October 19, 2013, 09:14:30 PM |
|
My thoughts exactly, There are countless people in the world trying to hustle money away from each other. This is a good example. Closed source, steals 1/8, possible malware, what could go wrong?
|
Check out my coin Photon Merge Mine 5 other Blake 256 coins - 6x your hash power https://www.blakecoin.org/The obvious choice is not always the best choice. LOOK DEEPER - Look into the Blake 256 Family -- CC
|
|
|
picbb1
Newbie
Offline
Activity: 20
Merit: 0
|
|
October 20, 2013, 04:57:23 PM |
|
6930+6770=3.2MH/s
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
October 24, 2013, 10:13:53 AM |
|
When can we expect to see a new version? I haven't been able to mine as the intensity is way too high to be run in background.
|
|
|
|
cyruss
Newbie
Offline
Activity: 33
Merit: 0
|
|
October 26, 2013, 03:21:47 AM |
|
smelter miner give 112 quark of 128 block bounty, but in Block explorer absent transaction difference. Where is 16 quark?
|
|
|
|
smolen (OP)
|
|
October 26, 2013, 01:08:17 PM |
|
When can we expect to see a new version? I haven't been able to mine as the intensity is way too high to be run in background.
I hope to release new version tomorrow. (The kernel was done on August 2nd, the first smelter version was ready on October 15th. You got the idea about the development speed ) smelter miner give 112 quark of 128 block bounty, but in Block explorer absent transaction difference. Where is 16 quark?
They are in my wallet I'll lower royalty a bit in the next version.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
October 27, 2013, 11:33:46 PM |
|
New version is ready, download it hereRoyalty decreased from 12.5% to 10% Kernel speed improved for ~40%, from 1.04 to 1.47 MH/s on my 6770 New command line options -w - worksize, can be 32,64,128 or 256 -g - number of GPU threads -i - intensity, measures as milliseconds to run the kernel. Don't worry, 100 is pretty small value Happy mining!
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
picbb1
Newbie
Offline
Activity: 20
Merit: 0
|
|
October 28, 2013, 04:34:00 AM |
|
6930+6770=3.7MH/s speed improved for 15%
|
|
|
|
feeleep
Legendary
Offline
Activity: 1197
Merit: 1000
|
|
October 28, 2013, 04:58:13 AM |
|
New version is ready, download it hereRoyalty decreased from 12.5% to 10% Kernel speed improved for ~40%, from 1.04 to 1.47 MH/s on my 6770 New command line options -w - worksize, can be 32,64,128 or 256 -g - number of GPU threads -i - intensity, measures as milliseconds to run the kernel. Don't worry, 100 is pretty small value Happy mining! linux version available?
|
|
|
|
ivanlabrie
|
|
October 28, 2013, 08:37:21 AM |
|
Gonna try it...we need pool support. I think 10% is a fair cut for a capable gpu miner.
|
|
|
|
smolen (OP)
|
|
October 28, 2013, 08:50:39 AM |
|
6930+6770=3.7MH/s speed improved for 15%
Worse than expected Quark and Securecoin fall faster than I can boost the kernel, I'll wait and watch exchange rate before putting more work into Quark kernel... linux version available?
Which flavor of Linux do you use? Actually, smelter is developed on Linux I must check that nothing GPL'ed gets into the binary and setup VMs for most popular distributions. I think 10% is a fair cut for a capable gpu miner.
10% is a fair cut for the only gpu miner, a good competing miner will force me to drop the royalty. Or improve the speed
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
feeleep
Legendary
Offline
Activity: 1197
Merit: 1000
|
|
October 28, 2013, 08:55:21 AM |
|
linux version available?
I am using ubuntu
|
|
|
|
smolen (OP)
|
|
October 28, 2013, 09:06:38 AM |
|
I am using ubuntu
Saucy Salamander, x64? (I'm on debian, may be there is some way to build universal linux binary, but VM route would be faster)
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
feeleep
Legendary
Offline
Activity: 1197
Merit: 1000
|
|
October 28, 2013, 09:26:01 AM |
|
I am using ubuntu
Saucy Salamander, x64? (I'm on debian, may be there is some way to build universal linux binary, but VM route would be faster) actually 12.10 x64
|
|
|
|
applsdev
|
|
October 28, 2013, 10:23:23 AM |
|
Saucy Salamander, x64? (I'm on debian, may be there is some way to build universal linux binary, but VM route would be faster)
Simple build miner and link with all static libraries gcc -static (libc, libstdc++, boost, curl, openssl & e.t.c. ) ... (Or build two versions static+dynamic linked)
|
|
|
|
Orrechorre
|
|
October 28, 2013, 12:31:20 PM |
|
my 7870 went from 880kh/s to 1.20mh/s with the new version which flags do everyone use? i use -w128 -g4
|
|
|
|
abdulmad
|
|
October 28, 2013, 12:33:45 PM |
|
Solo or poolmine with the latest version?
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
October 28, 2013, 09:05:04 PM Last edit: October 28, 2013, 09:31:42 PM by macmac__ |
|
Great update! Got a 32% boost AND a fluid desktop, awesome Running at following settings: https://i.imgur.com/LyulNT8l.jpgI can keep it running at all times with no effect to my work/media experience and that's why I'll keep it running 'till the end of the world When I want to play something I just pause the miner with Process Explorer and when I'm finished I'll let it to roll again. Solo or poolmine with the latest version?
It's solo E: Tested Intensity's effect to performance, short 60 second rounds, so it's not 100% waterproof, but it shows to me that going over about 20-30 doesn't give a considerable boots: (yeah, it's low resolution data but it tells something) [Spreadsheet]
|
|
|
|
cyruss
Newbie
Offline
Activity: 33
Merit: 0
|
|
October 30, 2013, 04:49:23 PM |
|
best i1000
|
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
October 30, 2013, 08:31:47 PM |
|
Latest version works great. Computer remains usable and no freezing so far. Now we just need QRK price to @$#&ing go up!
|
|
|
|
smolen (OP)
|
|
October 30, 2013, 09:09:36 PM |
|
Saucy Salamander, x64? (I'm on debian, may be there is some way to build universal linux binary, but VM route would be faster)
Simple build miner and link with all static libraries gcc -static (libc, libstdc++, boost, curl, openssl & e.t.c. ) libstdc++ and libgcc have special license exceptions for closed-source software, but glibc is under pure LGPL Solo or poolmine with the latest version?
Solo only, at least for the foreseeable future Got a 32% boost AND a fluid desktop, awesome Really, desktop smoothness took more efforts than kernel tweaks, but it well worth it Latest version works great. Computer remains usable and no freezing so far. Now we just need QRK price to @$#&ing go up! Let's hope, after the last reward halving traders can trade with no fear for big influx of freshly minted coins
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
int3ractivodular
Sr. Member
Offline
Activity: 280
Merit: 250
TECHNOLOGY, BABY!
|
|
October 30, 2013, 09:41:26 PM |
|
Gonna give this a try later today, haven't mined QRK in a while.
|
|
|
|
awoland
Legendary
Offline
Activity: 1498
Merit: 1021
Was mich nicht umbringt macht mich stärker [F.N.]
|
|
October 31, 2013, 06:22:14 AM |
|
libstdc++ and libgcc have special license exceptions for closed-source software, but glibc is under pure LGPL I know many examples of commercial software with a closed-source for Linux, which does not interfere with licensing restrictions GPL. Such as Autodesk Maya.
|
Was mich nicht umbringt macht mich stärker [F.N.]
|
|
|
csa1234
Full Member
Offline
Activity: 286
Merit: 100
O2-Protocol.com Carbon Offset DeFi
|
|
November 01, 2013, 02:49:15 PM |
|
Problem: I run the miner on desktop PC, it opens and then close the miner after 5 secs. No mining at all and no error message, it just quit back to cmd prompt imag
|
O2-Protocol.com Carbon Offset DeFi
|
|
|
smolen (OP)
|
|
November 01, 2013, 05:13:34 PM |
|
libstdc++ and libgcc have special license exceptions for closed-source software, but glibc is under pure LGPL I know many examples of commercial software with a closed-source for Linux, which does not interfere with licensing restrictions GPL. Such as Autodesk Maya. They have armies of lawyers, I'd better be paranoid Problem: I run the miner on desktop PC, it opens and then close the miner after 5 secs. No mining at all and no error message, it just quit back to cmd prompt
Most probably your GPU is not supported. Sorry, no efforts were put into UI, error diagnostics and such things. Well, that's preview and I hope to improve my miner in the future.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
csa1234
Full Member
Offline
Activity: 286
Merit: 100
O2-Protocol.com Carbon Offset DeFi
|
|
November 01, 2013, 05:30:14 PM |
|
on my notebook with ATI 5870 it does work at 1,20 MH/s but on my desktop with ATI 5970 it doesnt
|
O2-Protocol.com Carbon Offset DeFi
|
|
|
smolen (OP)
|
|
November 01, 2013, 05:44:31 PM |
|
on my notebook with ATI 5870 it does work at 1,20 MH/s but on my desktop with ATI 5970 it doesnt
Oops, there is a problem. Seems that Hemlock (59xx) support is missing from my ATI SDK. If you mine any other coins with 5970 with cgminer or reaper, what are the names of .bin files in miner directory? If they are named Cypress_something.bin there is a hope to resolve the issue without too much efforts.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
csa1234
Full Member
Offline
Activity: 286
Merit: 100
O2-Protocol.com Carbon Offset DeFi
|
|
November 01, 2013, 07:19:25 PM |
|
scrypt130511Cypressglg2tc8000w256l4.bin
|
O2-Protocol.com Carbon Offset DeFi
|
|
|
feeleep
Legendary
Offline
Activity: 1197
Merit: 1000
|
|
November 01, 2013, 07:21:03 PM |
|
libstdc++ and libgcc have special license exceptions for closed-source software, but glibc is under pure LGPL I know many examples of commercial software with a closed-source for Linux, which does not interfere with licensing restrictions GPL. Such as Autodesk Maya. so - will we have linux version?
|
|
|
|
smolen (OP)
|
|
November 01, 2013, 07:32:13 PM |
|
so - will we have linux version?
Yes, on this weekends. Actually, it's ready, but I want to push some changes into release.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
dragon695
Full Member
Offline
Activity: 449
Merit: 103
Decentralized Ascending Auctions on Blockchain
|
|
November 02, 2013, 01:18:45 AM |
|
Saucy Salamander, x64? (I'm on debian, may be there is some way to build universal linux binary, but VM route would be faster)
Simple build miner and link with all static libraries gcc -static (libc, libstdc++, boost, curl, openssl & e.t.c. ) ... (Or build two versions static+dynamic linked) Or he could just stop being greedy and release a modified version of cgminer like YaCoin does so you can compile it yourself.
|
|
|
|
mattle74
|
|
November 02, 2013, 12:37:20 PM |
|
So my GPU's are mining at 5.2 Mh/s. How often should I find a block at that rate on average?
|
|
|
|
csa1234
Full Member
Offline
Activity: 286
Merit: 100
O2-Protocol.com Carbon Offset DeFi
|
|
November 02, 2013, 09:36:30 PM |
|
any news on the fixed miner version for ATI 5970? on my notebook with ATI 5870 it does work at 1,20 MH/s but on my desktop with ATI 5970 it doesnt
Oops, there is a problem. Seems that Hemlock (59xx) support is missing from my ATI SDK. If you mine any other coins with 5970 with cgminer or reaper, what are the names of .bin files in miner directory? If they are named Cypress_something.bin there is a hope to resolve the issue without too much efforts.
|
O2-Protocol.com Carbon Offset DeFi
|
|
|
smolen (OP)
|
|
November 04, 2013, 08:48:02 PM |
|
New version is out The code went through massive refactoring (if everything is OK, nobody will notice ), no kernel updates, statically linked linux x64 binary added, new command line switch --debug for troubleshooting.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
November 04, 2013, 09:12:45 PM |
|
Or he could just stop being greedy and release a modified version of cgminer like YaCoin does so you can compile it yourself.
Guess what will happen if I release all the code under BSD/MIT license? The end of free miners era, that's what - every kernel author will wrap their cl code into my monetization framework. Now this scenarion is prevented by GPL, it protects cgminer and reaper from such hijacking. Regarding Quark mining kernel - it eventually be released, but give me some time to roll out new miner for another coin So my GPU's are mining at 5.2 Mh/s. How often should I find a block at that rate on average?
Let's see, Quark difficulty is 128, one 1-diff share gets 2^24 hashes, so on average it should take 128*16777216/5200000 = 413 seconds to find a block. any news on the fixed miner version for ATI 5970?
Run new version with --debug, it will produce a lot of debugging garbage messages, I hope there will be some hints to solve this problem.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
November 05, 2013, 12:40:35 AM |
|
Sorry, I've messed up with the release, new binaries are here
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
csa1234
Full Member
Offline
Activity: 286
Merit: 100
O2-Protocol.com Carbon Offset DeFi
|
|
November 05, 2013, 04:58:11 PM |
|
Royalty is 1/10, shouldnt it be 1/8? Sorry, I've messed up with the release, new binaries are here
|
O2-Protocol.com Carbon Offset DeFi
|
|
|
csa1234
Full Member
Offline
Activity: 286
Merit: 100
O2-Protocol.com Carbon Offset DeFi
|
|
November 05, 2013, 05:18:51 PM |
|
This are the results of the debug for my 5970 c:\smelter>smelter -o http://127.0.0.1:8385 -u user -p password -w 64 -g 1 -i 20 0 -a sTpJCcM1QhotTWd51RjK4dYRZkGVbNdmMK --debug smelter v0.3 (c) Smolen Royalty: 1/10 Pool::Start() Pool::ThreadFunc() started nPlatforms==1 Platform #0 id:65FD4514 CL_PLATFORM_PROFILE:FULL_PROFILE CL_PLATFORM_VERSION:OpenCL 1.2 AMD-APP (923.1) CL_PLATFORM_NAME:AMD Accelerated Parallel Processing CL_PLATFORM_VENDOR:Advanced Micro Devices, Inc. CL_PLATFORM_EXTENSIONS:cl_khr_icd cl_amd_event_callback cl_amd_offline_devices c l_khr_d3d10_sharing # of devices: 2 Device #0 id==00D20FD0 CL_DEVICE_NAME:Cypress CL_DEVICE_VENDOR:Advanced Micro Devices, Inc. CL_DEVICE_VERSION:OpenCL 1.2 AMD-APP (923.1) CL_DRIVER_VERSION:CAL 1.4.1720 (VM) CL_DEVICE_ADDRESS_BITS:32 CL_DEVICE_AVAILABLE:1 CL_DEVICE_COMPILER_AVAILABLE:1 CL_DEVICE_ENDIAN_LITTLE:1 CL_DEVICE_ERROR_CORRECTION_SUPPORT:0 CL_DEVICE_EXTENSIONS:cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_at omics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_kh r_local_int32_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_st ore cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl _amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_popcnt cl_khr_d3d10_sharing CL_DEVICE_GLOBAL_MEM_CACHE_SIZE:0 CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE:0 CL_DEVICE_GLOBAL_MEM_SIZE:1073741824 CL_DEVICE_LOCAL_MEM_SIZE:32768 CL_DEVICE_MAX_CLOCK_FREQUENCY:725 CL_DEVICE_MAX_COMPUTE_UNITS:20 CL_DEVICE_MAX_CONSTANT_ARGS:8 CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:65536 CL_DEVICE_MAX_MEM_ALLOC_SIZE:536870912 CL_DEVICE_MAX_PARAMETER_SIZE:1024 CL_DEVICE_MAX_WORK_GROUP_SIZE:256 CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:3 CL_DEVICE_MEM_BASE_ADDR_ALIGN:2048
Loaded from archive Building from binary quark0td_Cypress_W64.bin Building from binary done: quark0td_Cypress_W64.bin SummonProgram done Device #1 id==052AF868 CL_DEVICE_NAME:Cypress CL_DEVICE_VENDOR:Advanced Micro Devices, Inc. CL_DEVICE_VERSION:OpenCL 1.2 AMD-APP (923.1) CL_DRIVER_VERSION:CAL 1.4.1720 (VM) CL_DEVICE_ADDRESS_BITS:32 CL_DEVICE_AVAILABLE:1 CL_DEVICE_COMPILER_AVAILABLE:1 CL_DEVICE_ENDIAN_LITTLE:1 CL_DEVICE_ERROR_CORRECTION_SUPPORT:0 CL_DEVICE_EXTENSIONS:cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_at omics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_kh r_local_int32_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_st ore cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl _amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_popcnt cl_khr_d3d10_sharing CL_DEVICE_GLOBAL_MEM_CACHE_SIZE:0 CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE:0 CL_DEVICE_GLOBAL_MEM_SIZE:1073741824 CL_DEVICE_LOCAL_MEM_SIZE:32768 CL_DEVICE_MAX_CLOCK_FREQUENCY:725 CL_DEVICE_MAX_COMPUTE_UNITS:20 CL_DEVICE_MAX_CONSTANT_ARGS:8 CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:65536 CL_DEVICE_MAX_MEM_ALLOC_SIZE:536870912 CL_DEVICE_MAX_PARAMETER_SIZE:1024 CL_DEVICE_MAX_WORK_GROUP_SIZE:256 CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:3 CL_DEVICE_MEM_BASE_ADDR_ALIGN:2048
Loaded from archive Building from binary quark0td_Cypress_W64.bin
c:\smelter>
|
O2-Protocol.com Carbon Offset DeFi
|
|
|
smolen (OP)
|
|
November 05, 2013, 05:27:39 PM |
|
Royalty is 1/10, shouldnt it be 1/8?
I reduced my royalty, 10% is lesser than 12.5% This are the results of the debug for my 5970
Thank you, I'll take a look at it. Something is wrong with OpenCL or with a way I use it
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
Orrechorre
|
|
November 05, 2013, 10:26:13 PM |
|
how can 5870 get the same mh/s as my 7870? im also getting 1.20mh/s
|
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
November 05, 2013, 11:19:40 PM |
|
Another usage update for shits n giggles:
I have been using Version2 (not the latest update) for a while now and it seems to run as long as I want without issues on system#1 (Windows7 64 4x MSI 7950s total 5.9Mhash/s) and system #2 (Windows7 64 2x PowerColour 7970 + 1x PowerColour 6970 Total 4.7MHash/s) but tends to freeze up within 30minutes on system #3 (Windows8 64 1x XFX 7970 1.7MHash/s). Not sure why it isn't happy on system#3.
|
|
|
|
Spoetnik
Legendary
Offline
Activity: 1540
Merit: 1011
FUD Philanthropist™
|
|
November 06, 2013, 03:16:42 AM |
|
Or he could just stop being greedy and release a modified version of cgminer like YaCoin does so you can compile it yourself.
Guess what will happen if I release all the code under BSD/MIT license? The end of free miners era, that's what - every kernel author will wrap their cl code into my monetization framework. Now this scenarion is prevented by GPL, it protects cgminer and reaper from such hijacking. Regarding Quark mining kernel - it eventually be released, but give me some time to roll out new miner for another coin So my GPU's are mining at 5.2 Mh/s. How often should I find a block at that rate on average?
Let's see, Quark difficulty is 128, one 1-diff share gets 2^24 hashes, so on average it should take 128*16777216/5200000 = 413 seconds to find a block. any news on the fixed miner version for ATI 5970?
Run new version with --debug, it will produce a lot of debugging garbage messages, I hope there will be some hints to solve this problem. The end of free miners era ? ahaahahahaa
|
FUD first & ask questions later™
|
|
|
verloren
|
|
November 06, 2013, 04:05:37 AM |
|
how can 5870 get the same mh/s as my 7870? im also getting 1.20mh/s
Miner seems to be gpu-clock limited atm. I've been hitting 1.4Mh/s with a 7950 set at 1000/1250. Intensity of 100 (or thereabouts).
|
|
|
|
FlipPro
Legendary
Offline
Activity: 1764
Merit: 1015
|
|
November 06, 2013, 06:24:29 AM |
|
How much QRK would it take you to open source this bad boy ?
[serious question] response appreciated.
|
|
|
|
OZR
Sr. Member
Offline
Activity: 281
Merit: 250
You're in my wonderland!
|
|
November 06, 2013, 07:22:09 AM |
|
Thx - Error on start "smelter has stopped working" Debug message. "correctly" smelter v0.3 (c) Smolen Royalty: 1/10 Pool::Start() Pool::ThreadFunc() started nPlatforms==1 Platform #0 id:65F93864 CL_PLATFORM_PROFILE:FULL_PROFILE CL_PLATFORM_VERSION:OpenCL 1.2 AMD-APP (1084.2) CL_PLATFORM_NAME:AMD Accelerated Parallel Processing CL_PLATFORM_VENDOR:Advanced Micro Devices, Inc. CL_PLATFORM_EXTENSIONS:cl_khr_icd cl_amd_event_callback cl_amd_offline_devices c l_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing # of devices: 1 Device #0 id==04BEE818 CL_DEVICE_NAME:Pitcairn CL_DEVICE_VENDOR:Advanced Micro Devices, Inc. CL_DEVICE_VERSION:OpenCL 1.2 AMD-APP (1084.2) CL_DRIVER_VERSION:1084.2 (VM) CL_DEVICE_ADDRESS_BITS:32 CL_DEVICE_AVAILABLE:1 CL_DEVICE_COMPILER_AVAILABLE:1 CL_DEVICE_ENDIAN_LITTLE:1 CL_DEVICE_ERROR_CORRECTION_SUPPORT:0 CL_DEVICE_EXTENSIONS:cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_at omics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_kh r_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_a tomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl _ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_popcnt cl_khr_d3d10_sharing cl_khr_dx9_media_sharing cl_ amd_c1x_atomics CL_DEVICE_GLOBAL_MEM_CACHE_SIZE:16384 CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE:64 CL_DEVICE_GLOBAL_MEM_SIZE:1073741824 CL_DEVICE_LOCAL_MEM_SIZE:32768 CL_DEVICE_MAX_CLOCK_FREQUENCY:950 CL_DEVICE_MAX_COMPUTE_UNITS:16 CL_DEVICE_MAX_CONSTANT_ARGS:8 CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:65536 CL_DEVICE_MAX_MEM_ALLOC_SIZE:804257792 CL_DEVICE_MAX_PARAMETER_SIZE:1024 CL_DEVICE_MAX_WORK_GROUP_SIZE:256 CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:3 CL_DEVICE_MEM_BASE_ADDR_ALIGN:2048
Loaded from archive Building from binary quark0td_Pitcairn_W64.bin Building from binary done: quark0td_Pitcairn_W64.bin SummonProgram done main loop ThreadHost::Thread() started 1:0 A:0 R:0 HW:0 Speed: 745.47KH/s 5s: 747.10KH/s Exi^CTerminate batch job (Y/N)? y
Debug message. "Error" smelter v0.3 (c) Smolen Royalty: 1/10 Pool::Start() Pool::ThreadFunc() started nPlatforms==1 Platform #0 id:65F93864 CL_PLATFORM_PROFILE:FULL_PROFILE CL_PLATFORM_VERSION:OpenCL 1.2 AMD-APP (1084.2) CL_PLATFORM_NAME:AMD Accelerated Parallel Processing CL_PLATFORM_VENDOR:Advanced Micro Devices, Inc. CL_PLATFORM_EXTENSIONS:cl_khr_icd cl_amd_event_callback cl_amd_offline_devices c l_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing # of devices: 1 Device #0 id==04BEE818 CL_DEVICE_NAME:Pitcairn CL_DEVICE_VENDOR:Advanced Micro Devices, Inc. CL_DEVICE_VERSION:OpenCL 1.2 AMD-APP (1084.2) CL_DRIVER_VERSION:1084.2 (VM) CL_DEVICE_ADDRESS_BITS:32 CL_DEVICE_AVAILABLE:1 CL_DEVICE_COMPILER_AVAILABLE:1 CL_DEVICE_ENDIAN_LITTLE:1 CL_DEVICE_ERROR_CORRECTION_SUPPORT:0 CL_DEVICE_EXTENSIONS:cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_at omics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_kh r_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_a tomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl _ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_popcnt cl_khr_d3d10_sharing cl_khr_dx9_media_sharing cl_ amd_c1x_atomics CL_DEVICE_GLOBAL_MEM_CACHE_SIZE:16384 CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE:64 CL_DEVICE_GLOBAL_MEM_SIZE:1073741824 CL_DEVICE_LOCAL_MEM_SIZE:32768 CL_DEVICE_MAX_CLOCK_FREQUENCY:950 CL_DEVICE_MAX_COMPUTE_UNITS:16 CL_DEVICE_MAX_CONSTANT_ARGS:8 CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:65536 CL_DEVICE_MAX_MEM_ALLOC_SIZE:804257792 CL_DEVICE_MAX_PARAMETER_SIZE:1024 CL_DEVICE_MAX_WORK_GROUP_SIZE:256 CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:3 CL_DEVICE_MEM_BASE_ADDR_ALIGN:2048
Loaded from archive Building from binary quark0td_Pitcairn_W64.bin
I want to support nvidia. (amd and so works on the script)
|
|
|
|
smolen (OP)
|
|
November 06, 2013, 04:56:01 PM |
|
how can 5870 get the same mh/s as my 7870? im also getting 1.20mh/s
My trick with groestl hash works well for VLIW5, but not for GCN - Error on start "smelter has stopped working" Debug message. "Error" Loaded from archive Building from binary quark0td_Pitcairn_W64.bin
Seems the same error as with 5970, a crash inside clBuildProgram(). I'm looking into it. logDbg << "Building from binary " << strBinaryFilename << endl; try { WRAPOPENCL::clBuildProgram(program, 1, ¶mCreate.device, NULL, NULL, NULL ); logDbg << "Building from binary done: " << strBinaryFilename << endl; return program; } catch(const SMError &err) { logErr << "clBuildProgram call failed, error:" << err.what() << endl; logErr << "Build log:" << endl << SMCL::GetBuildLog(program, paramCreate.device) << endl; }
I want to support nvidia. (amd and so works on the script)
Not with current Quark price, it's too low How much QRK would it take you to open source this bad boy ?
[serious question] response appreciated.
How much QRK would it take to pass the software to good QA lab? And I'm getting good bug reports for free Regarding Quark mining kernel - it eventually be released, but give me some time to roll out new miner for another coin
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
ivanlabrie
|
|
November 06, 2013, 09:07:59 PM |
|
Mate, couldn't get this to run on dual 7970s using win 8. What settings do you reccomend? Maybe I need to install distributables and whatnot...fresh win 8 install.
|
|
|
|
pyromaniac
|
|
November 07, 2013, 03:39:20 PM |
|
Mate, couldn't get this to run on dual 7970s using win 8. What settings do you reccomend? Maybe I need to install distributables and whatnot...fresh win 8 install. I have a same problem with the same card. It's didn't work for me.
|
|
|
|
feeleep
Legendary
Offline
Activity: 1197
Merit: 1000
|
|
November 07, 2013, 03:57:40 PM |
|
tried to run it on ubuntu but got this error: Royalty: 1/10 Pool::Start() Pool::ThreadFunc() started nPlatforms==1 Platform #0 id:0x7f9ae3ca5ee0 CL_PLATFORM_PROFILE:FULL_PROFILE CL_PLATFORM_VERSION:OpenCL 1.2 AMD-APP (1084.4) CL_PLATFORM_NAME:AMD Accelerated Parallel Processing CL_PLATFORM_VENDOR:Advanced Micro Devices, Inc. CL_PLATFORM_EXTENSIONS:cl_khr_icd cl_amd_event_callback cl_amd_offline_devices # of devices: 2 Device #0 id==0x1eab3a0 CL_DEVICE_NAME:Cypress CL_DEVICE_VENDOR:Advanced Micro Devices, Inc. CL_DEVICE_VERSION:OpenCL 1.2 AMD-APP (1084.4) CL_DRIVER_VERSION:1084.4 CL_DEVICE_ADDRESS_BITS:32 CL_DEVICE_AVAILABLE:1 CL_DEVICE_COMPILER_AVAILABLE:1 CL_DEVICE_ENDIAN_LITTLE:1 CL_DEVICE_ERROR_CORRECTION_SUPPORT:0 CL_DEVICE_EXTENSIONS:cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt CL_DEVICE_GLOBAL_MEM_CACHE_SIZE:0 CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE:0 CL_DEVICE_GLOBAL_MEM_SIZE:536870912 CL_DEVICE_LOCAL_MEM_SIZE:32768 CL_DEVICE_MAX_CLOCK_FREQUENCY:785 CL_DEVICE_MAX_COMPUTE_UNITS:20 CL_DEVICE_MAX_CONSTANT_ARGS:8 CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:65536 CL_DEVICE_MAX_MEM_ALLOC_SIZE:536870912 CL_DEVICE_MAX_PARAMETER_SIZE:1024 CL_DEVICE_MAX_WORK_GROUP_SIZE:256 CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:3 CL_DEVICE_MEM_BASE_ADDR_ALIGN:2048
No binary found: quark0td_Cypress_W64.bin Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed Device #1 id==0x1f75600 CL_DEVICE_NAME:Cypress CL_DEVICE_VENDOR:Advanced Micro Devices, Inc. CL_DEVICE_VERSION:OpenCL 1.2 AMD-APP (1084.4) CL_DRIVER_VERSION:1084.4 CL_DEVICE_ADDRESS_BITS:32 CL_DEVICE_AVAILABLE:1 CL_DEVICE_COMPILER_AVAILABLE:1 CL_DEVICE_ENDIAN_LITTLE:1 CL_DEVICE_ERROR_CORRECTION_SUPPORT:0 CL_DEVICE_EXTENSIONS:cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt CL_DEVICE_GLOBAL_MEM_CACHE_SIZE:0 CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE:0 CL_DEVICE_GLOBAL_MEM_SIZE:536870912 CL_DEVICE_LOCAL_MEM_SIZE:32768 CL_DEVICE_MAX_CLOCK_FREQUENCY:785 CL_DEVICE_MAX_COMPUTE_UNITS:18 CL_DEVICE_MAX_CONSTANT_ARGS:8 CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:65536 CL_DEVICE_MAX_MEM_ALLOC_SIZE:536870912 CL_DEVICE_MAX_PARAMETER_SIZE:1024 CL_DEVICE_MAX_WORK_GROUP_SIZE:256 CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:3 CL_DEVICE_MEM_BASE_ADDR_ALIGN:2048
No binary found: quark0td_Cypress_W64.bin Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed main loop ThreadHost::Thread() started ThreadHost::Thread() started ThreadHost::Thread() unexpected exception:clCreateKernel call failed ThreadHost::Thread() finished ThreadHost::Thread() unexpected exception:clCreateKernel call failed ThreadHost::Thread() finished
|
|
|
|
csa1234
Full Member
Offline
Activity: 286
Merit: 100
O2-Protocol.com Carbon Offset DeFi
|
|
November 08, 2013, 03:30:27 AM |
|
any release fix for the ATI 5970? cmon, i dont wanna go with the other miner guy
|
O2-Protocol.com Carbon Offset DeFi
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
November 08, 2013, 09:01:53 PM |
|
After my last post I am now tending to get eventual freezes on any system with a 7970 in it anywhere from 30 minutes to 8 hours after start. The 7950s run for days with no issues.
One thing I like about Smelter is that is is obvously much less stressing on teh video cards than running Scrypt miners. They stay 50-60oC with no additional fans blowing on them. For me this is great as it is quiter and cooler and my wife doesn't freak out having them running overnight. So I can scrypt in the day and smelt at night...
|
|
|
|
ivanlabrie
|
|
November 08, 2013, 10:58:00 PM |
|
After my last post I am now tending to get eventual freezes on any system with a 7970 in it anywhere from 30 minutes to 8 hours after start. The 7950s run for days with no issues.
One thing I like about Smelter is that is is obvously much less stressing on teh video cards than running Scrypt miners. They stay 50-60oC with no additional fans blowing on them. For me this is great as it is quiter and cooler and my wife doesn't freak out having them running overnight. So I can scrypt in the day and smelt at night...
Scrypt and smelt! Can you help me out with settings for 7970s? I couldn't get it to run, do I need any extra dependencies or libraries for win 8?
|
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
November 09, 2013, 12:11:55 AM |
|
I have not had to do anything extra to get it running on the 7970s but as I mentioned it does seem prone to freezing after some time on any of my systems that have 1 or more 7970s on them. The only optional flag commands I use are -g 2.
I don't know if it is the XFX vs PowerColour or Windows8 vs Windows7 but the system I have the most trouble with is Windows8 with a single XFX 7970. Smelter freezes a lot on it but it always starts up fine. If I start it running before going to work this system will have always frozen at some point before getting back home. The Windows7 PowerColour system can usually go 8hrs+ but the few times I have tried to let it run 24hrs/day it will freeze at some point.
What brand of 7970 do you have out of interest?
|
|
|
|
ivanlabrie
|
|
November 09, 2013, 01:38:21 AM |
|
I have not had to do anything extra to get it running on the 7970s but as I mentioned it does seem prone to freezing after some time on any of my systems that have 1 or more 7970s on them. The only optional flag commands I use are -g 2.
I don't know if it is the XFX vs PowerColour or Windows8 vs Windows7 but the system I have the most trouble with is Windows8 with a single XFX 7970. Smelter freezes a lot on it but it always starts up fine. If I start it running before going to work this system will have always frozen at some point before getting back home. The Windows7 PowerColour system can usually go 8hrs+ but the few times I have tried to let it run 24hrs/day it will freeze at some point.
What brand of 7970 do you have out of interest?
A friend has two msi 7970 ref pcb, older revisions. 925/1375 stock clocks and driver 13.4 with win 8 64. I can't get it to start and mine. Maybe my conf is wrong? Can you post your quarkcoin conf and the smelter cmd? Thanks! I'll tip ya :p
|
|
|
|
csa1234
Full Member
Offline
Activity: 286
Merit: 100
O2-Protocol.com Carbon Offset DeFi
|
|
November 09, 2013, 05:48:11 AM |
|
smelter .03 1.20 Mh/s only (config: smelter -o http://127.0.0.1:8770 -u username -p password -w 64 -g 1 -i 1000) ATI Mobility 5870 with latest ATI BETA driver sube
|
O2-Protocol.com Carbon Offset DeFi
|
|
|
asor
|
|
November 15, 2013, 04:00:23 PM |
|
Any chance to add the parameter/argument d like cgminer has to use a specific device?
|
|
|
|
pvkpgp
|
|
November 21, 2013, 01:08:33 AM |
|
Problem: I run the miner on desktop PC, Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed Error: curl_easy_perform() failed: Couldn't connect to server
|
|
|
|
csa1234
Full Member
Offline
Activity: 286
Merit: 100
O2-Protocol.com Carbon Offset DeFi
|
|
November 21, 2013, 02:43:30 AM |
|
this thread is dead
|
O2-Protocol.com Carbon Offset DeFi
|
|
|
nikmal
Newbie
Offline
Activity: 6
Merit: 0
|
|
November 25, 2013, 05:04:23 PM |
|
Hi. When to expect the development of miner? With the growth of the received many users, solo mining there will be no result. Need a miner, working with the pool.
|
|
|
|
dE_logics
|
|
November 26, 2013, 03:49:35 AM |
|
Closed source Windows malware.
|
|
|
|
Spoetnik
Legendary
Offline
Activity: 1540
Merit: 1011
FUD Philanthropist™
|
|
November 26, 2013, 10:37:10 PM |
|
busted
scam
gpl
yadaddadadada
|
FUD first & ask questions later™
|
|
|
smolen (OP)
|
|
November 27, 2013, 05:26:41 AM |
|
Sorry for abandoning the thread. I have working Protoshares kernel (once profitable but now useless), half-done Primecoin kernel and no time to finish the work and do a new release
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
Spoetnik
Legendary
Offline
Activity: 1540
Merit: 1011
FUD Philanthropist™
|
|
November 27, 2013, 05:51:18 AM |
|
i hear ya man
i worked soooooooo bloody much on my miner mod i got Super burnt out and needed a break this stuff is exhausting. especially with tech support lol
gl
|
FUD first & ask questions later™
|
|
|
Pure-Gold
Newbie
Offline
Activity: 10
Merit: 0
|
|
November 27, 2013, 08:55:51 PM |
|
I'm getting the error: Request error:Server report an error, request:{"result":null,"error":{"code":-10,"message":"Quarkcoi n is downloading blocks..."},"id":null} https://i.imgur.com/Rr5cJpG.png
|
|
|
|
SpeedDemon13
|
|
November 27, 2013, 11:52:43 PM |
|
Does this work fine for a HD 5870? Does this work both for solo and pools?
|
CRYPTSY exchange: https://www.cryptsy.com/users/register?refid=9017 BURST= BURST-TE3W-CFGH-7343-6VM6R BTC=1CNsqGUR9YJNrhydQZnUPbaDv6h4uaYCHv ETH=0x144bc9fe471d3c71d8e09d58060d78661b1d4f32 SHF=0x13a0a2cb0d55eca975cf2d97015f7d580ce52d85 EXP=0xd71921dca837e415a58ca0d6dd2223cc84e0ea2f SC=6bdf9d12a983fed6723abad91a39be4f95d227f9bdb0490de3b8e5d45357f63d564638b1bd71 CLAMS=xGVTdM9EJpNBCYAjHFVxuZGcqvoL22nP6f SOIL=0x8b5c989bc931c0769a50ecaf9ffe490c67cb5911
|
|
|
duuuuude
|
|
November 27, 2013, 11:58:04 PM |
|
nope solo only, which makes it almost worthless now, it was pretty good while the difficulty was low though.
J
|
|
|
|
SpeedDemon13
|
|
November 28, 2013, 12:42:18 AM |
|
nope solo only, which makes it almost worthless now, it was pretty good while the difficulty was low though.
J
That's kind of sucks. This can be adapted for a pool, if someone wanted to take that challenge on.
|
CRYPTSY exchange: https://www.cryptsy.com/users/register?refid=9017 BURST= BURST-TE3W-CFGH-7343-6VM6R BTC=1CNsqGUR9YJNrhydQZnUPbaDv6h4uaYCHv ETH=0x144bc9fe471d3c71d8e09d58060d78661b1d4f32 SHF=0x13a0a2cb0d55eca975cf2d97015f7d580ce52d85 EXP=0xd71921dca837e415a58ca0d6dd2223cc84e0ea2f SC=6bdf9d12a983fed6723abad91a39be4f95d227f9bdb0490de3b8e5d45357f63d564638b1bd71 CLAMS=xGVTdM9EJpNBCYAjHFVxuZGcqvoL22nP6f SOIL=0x8b5c989bc931c0769a50ecaf9ffe490c67cb5911
|
|
|
Fablio2
|
|
November 28, 2013, 09:08:41 AM |
|
Is it possible to mine with GPU miner on pool? What pool works with GPU-miner?
|
|
|
|
lemons
|
|
November 28, 2013, 02:18:26 PM |
|
Sorry for abandoning the thread. I have working Protoshares kernel (once profitable but now useless), half-done Primecoin kernel and no time to finish the work and do a new release GPU miner for Protoshare / Primecoin ?
|
|
|
|
flayway
|
|
November 28, 2013, 04:39:58 PM |
|
Working this with GeForce GTX 650 Ti Boost?
|
XCP: 19zzpgk3oakH2b7zd63mw3DadtNkvefVfo BTC: 1ASSkiRsqRUUp5Y8YQYnuc41fBbYR3iRD2
|
|
|
Spoetnik
Legendary
Offline
Activity: 1540
Merit: 1011
FUD Philanthropist™
|
|
November 28, 2013, 05:59:30 PM |
|
read page 1 guys
|
FUD first & ask questions later™
|
|
|
Fablio2
|
|
November 29, 2013, 06:09:20 AM |
|
read page 1 guys SOLO mine works well, but GPU mining on pool doesn't work. If You know something about mining on pool - please write, but we don't need comments like this - "read page 1 guys".
|
|
|
|
||bit
|
|
November 30, 2013, 02:06:49 PM Last edit: November 30, 2013, 02:57:56 PM by ||bit |
|
I finally got rid from the last pieces of GPL'ed code in my own miner and can now release it to the public. This miner is not free, a royalty of 1/8 (12.5%) is deducted from every mined block. (Coinbase transaction have 2 outputs, so I get my fee at exactly the same moment you'll get your coins). Download link:https://mega.co.nz/#!QMMEFBYY!AgH4OGrKaRHkRjiVfVXXzxBHbTIlgdD5o3ak2VFuU78 Edit quarkcoin.conf (or Offering.conf, or securecoin.conf) file of your wallet to enable solo-mining, put your own username and password there: listen=1 rpcallowip=127.0.0.1 rpcuser=username rpcpassword=password rpcport=8772 server=1 Edit sm.cmd from downloaded archive, put your own username, password and wallet address there: smelter -o http://127.0.0.1:8772 -u username -p password -a QNiGvoYctyMwzV1ZjNbjhEoKdQVzFKsmVw This is pre-alpha software, expect all kinds of bugs to be found, don't hesitate to report it here! NVidia and old/rare AMD cards are not supported. Please, give me some time to iron out bugs Where is this quarkcoin.conf file located exactly? Searching the computer finds nothing. Nothing in the wallet data folder or the folder that launches the wallet executable.
|
|
|
|
Wubbllez
Member
Offline
Activity: 75
Merit: 10
|
|
December 01, 2013, 03:00:13 AM |
|
what card gets the best hashes?
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
December 02, 2013, 05:35:52 AM |
|
/snip/
Where is this quarkcoin.conf file located exactly? Searching the computer finds nothing. Nothing in the wallet data folder or the folder that launches the wallet executable. It does not exist by default, you must create it at %appdata%/Quarkcoin/quarkcoin.conf (wallet data folder) what card gets the best hashes?
Radeon 5000 and 6000 series cards run great. The best single die gpu would be 6970, I think
|
|
|
|
zoro
|
|
December 02, 2013, 06:25:03 AM |
|
2x5870 = 4MH good or bad?
|
|
|
|
BitcoinBA
Member
Offline
Activity: 74
Merit: 10
|
|
December 03, 2013, 03:42:46 PM |
|
Hi guys, just wanted to give it a try but keep getting this message: NVIDIA GeForce GT 220M (old laptop) Any ideas? Thank you!
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
December 04, 2013, 12:27:39 AM |
|
2x5870 = 4MH good or bad?
That's really nice! It equates to around 73 quarks per day and 14 SRCs at current difficulty. (Minus the 10% royalty) You should've read the 1st post completely NVidia and old/rare AMD cards are not supported.
|
|
|
|
Iced
Full Member
Offline
Activity: 628
Merit: 208
Belgian based crypto-enthusiast
|
|
December 04, 2013, 01:37:23 AM |
|
Posting to follow up this thread
|
No signature for now
|
|
|
busoni
Sr. Member
Offline
Activity: 364
Merit: 250
Owner of Poloniex
|
|
December 05, 2013, 01:30:29 AM |
|
This seems to work pretty well. My 5850s get about 2.5MH/s each. If the reported hash rate is accurate, then SecureCoin is the most profitable coin to mine with GPUs now. Not sure about the reality yet; I've only found one block, and it has been about 7 hours. With my total of 18MH/s, I should be getting a block about every 2.7 hours. We shall see.
|
Poloniex.com - Fast crypto exchange with margin trading, advanced charts, and stop-limit orders
|
|
|
Remember remember the 5th of November
Legendary
Offline
Activity: 1862
Merit: 1011
Reverse engineer from time to time
|
|
December 05, 2013, 04:47:09 AM |
|
The ability to specify which gpu to mine would be great..I use my 5870 for normal activities and my second card for mining.
|
BTC:1AiCRMxgf1ptVQwx6hDuKMu4f7F27QmJC2
|
|
|
fyubr
|
|
December 05, 2013, 08:58:54 AM |
|
I am getting Created the config file and everything
|
|
|
|
busoni
Sr. Member
Offline
Activity: 364
Merit: 250
Owner of Poloniex
|
|
December 05, 2013, 09:43:59 PM |
|
I am getting
...
Created the config file and everything
Looks like you're using an old version. The newest version (I think) is here: http://rghost.net/49940688(See smolen's post a couple pages back if you don't trust me)
|
Poloniex.com - Fast crypto exchange with margin trading, advanced charts, and stop-limit orders
|
|
|
crazyearner
Legendary
Offline
Activity: 1820
Merit: 1001
|
|
December 05, 2013, 10:18:59 PM |
|
Help needed. On the latest verison I see that -I is set to 200 is this a typeo or actualy ment to be 200
|
|
|
|
verloren
|
|
December 06, 2013, 03:39:36 AM |
|
Help needed. On the latest verison I see that -I is set to 200 is this a typeo or actualy ment to be 200
Meant to be 200. The intensity scaling for Smelter has a bigger range than cgminer or guiminer.
|
|
|
|
gizzig
|
|
December 06, 2013, 04:39:05 PM |
|
Any idea how to use a pool? In "solo" mode is just impossible to get a block! perhaps using a proxy?
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 07, 2013, 01:00:51 AM |
|
You're not the only one - I've not managed to overcome the "couldn't connect to server" issue.
|
|
|
|
tucksmcgucks
Newbie
Offline
Activity: 56
Merit: 0
|
|
December 07, 2013, 07:32:22 AM |
|
|
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
December 07, 2013, 07:38:17 AM |
|
I'll try it on a crashbox
|
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
December 07, 2013, 08:22:23 AM |
|
ok, I'm running it and it appears to be mining. though I don't see any activity on qrk.coinmine.pl. I"ll let it run overnight and see what it does.
|
|
|
|
Tenchi
|
|
December 07, 2013, 08:27:19 AM |
|
the GPU miner from ScarletRose only detects the Intel HD 4000 GPU of my CPU and not my Radeon 7850... anyone knows how to change that?
|
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
December 07, 2013, 08:33:26 AM |
|
how do you tell what it finds?
|
|
|
|
Tenchi
|
|
December 07, 2013, 08:41:25 AM |
|
when you start the program it writes: #Detecting GPU....
|
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
December 07, 2013, 09:26:18 AM |
|
hmm, it doesn't list anything when it does that for me. just says detecting gpu[]
|
|
|
|
hobbster
Newbie
Offline
Activity: 28
Merit: 0
|
|
December 07, 2013, 10:23:54 AM |
|
miner found by tucksmcgucks works and reports findings (yay !!!) but nothing appears in http://www.coinmine.pl/qrk??Anyone got QRK from this?
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 07, 2013, 12:41:36 PM |
|
Re: ScarletRose miner - it does show a hash rate of about ~700-800 and has activity but AMD Catalyst shows 0% GPU activity whilst it's running AND the hashrate on my Quark CPU miner seems to more than halve.
No other GPUs, on board or otherwise in this system.
Oh and qcore64.dll was still active in Task Manager after closing the ScarletRose miner.... no thanks. I wish I could get Smelter working but I still have the "couldn't connect to server" issue.
|
|
|
|
MBTY
Newbie
Offline
Activity: 41
Merit: 0
|
|
December 07, 2013, 01:38:56 PM |
|
How long should I wait to mine quark in solo mode? 1:1262 A:0 R:0 HW:0 Speed: 1.47MH/s 5s: 1.46MH/s Sb.bat is smelter -o http://127.0.0.1:8772 -u username -p password -a QPuJArgxtDD997qUmkxLehRhxf7QST3SY8 -w 64 -g 2 -i 200
|
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
December 07, 2013, 02:14:44 PM |
|
Re: ScarletRose miner - it does show a hash rate of about ~700-800 and has activity but AMD Catalyst shows 0% GPU activity whilst it's running AND the hashrate on my Quark CPU miner seems to more than halve.
No other GPUs, on board or otherwise in this system.
Oh and qcore64.dll was still active in Task Manager after closing the ScarletRose miner.... no thanks. I wish I could get Smelter working but I still have the "couldn't connect to server" issue.
yup, exact same here. it's gone
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
December 07, 2013, 06:23:10 PM Last edit: December 07, 2013, 06:59:22 PM by macmac__ |
|
Looks like someone beat the OP to the catch on a QRK GPU miner that connects to a pool! Download link: http://rghost.net/50746534I just found this tonight, and it appears to be very recent. Not sure if I trust it yet, however.... as others have found out too: SCAM ALERT1. Libsnd is a email tool. 2. Qminer gets detected as a backdoor 3. You can give it any username/password combo you want, it doesn't care of authenticity 4. Fake stats 1) No gpu usage at all, cards power consumption same as in idle 2) qcore uses cpu to mine something, or just to cover it's steps, but the shown khash/s doesn't correlate in any way to either cpu, gpu or integrated gpu speed. 5. Libsnd starts to send data to a russian email server (smtp.yandex.ru) So if you've run this, on a machine with a wallets, I suggest you to move coins away from your current wallets! Your coinmine passwords are compromised too, so change them as soon as the site comes back. Some have fallen to this, atleast the account shown in miner window, if it's legit, has gotten some balance to it :/ http://176.221.46.81/address/QWu8maYVxDAmLG9VUyq7kdRQXLP8jksTNM
|
|
|
|
hobbster
Newbie
Offline
Activity: 28
Merit: 0
|
|
December 07, 2013, 08:23:39 PM |
|
Hello, i downloaded and used the scarletrose-thing around 11:00. I just synced my Quarkcoin Wallet and found a transaction to QXVK7V3vEEMPe8DaVTyqcSbDJ6WKGzcPHS I just wanted to start with a crypto and now lost my whole balance Status: 1177 Bestätigungen Datum: 07.12.2013 11:58 An: QXVK7V3vEEMPe8DaVTyqcSbDJ6WKGzcPHS Belastung: -17.9964 QRK Nettobetrag: -17.9964 QRK Transaktions-ID: 4364a8b239fa4e0aae34afc0727e8c450182996c6f736a9b646195935e945aa9 I could kick myself I just wanted to trade something around, now my trust and work is useless SCAM :/
|
|
|
|
Tenchi
|
|
December 07, 2013, 08:27:55 PM |
|
have used it to but no transactions so far. have you encrypted your wallet? because I have.
|
|
|
|
hobbster
Newbie
Offline
Activity: 28
Merit: 0
|
|
December 07, 2013, 08:36:56 PM |
|
No,
i just started with cryptocurrencys 6 days ago. I just mined with the cpu of my laptop
Anyone know how to remove this? Maybe macmac__?
|
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
December 07, 2013, 10:01:38 PM |
|
luckily, I had no quarks to hijack
|
|
|
|
hobbster
Newbie
Offline
Activity: 28
Merit: 0
|
|
December 07, 2013, 10:06:32 PM |
|
did you have other unencrypted wallets?
Was something stolen from them?
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
December 07, 2013, 10:13:49 PM |
|
Sorry for you loss I just finished analyzing the app' doings and atleast in my crapbox it did the following, 1) Grabbed the dummy wallets, (bitcoin, litecoin, quark) 2) Sent them to russia 3) Started mining with the cpu and sent the shares to a kimisufi server. It did not create any files or install watchers or keyloggers so you should (I take no responsibility thou) be safe when you delete the files and create a new wallet.
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
December 07, 2013, 10:29:05 PM |
|
Did more research and the server that it sents the the shares is this: ks211165.kimsufi.com:6010 and when you access you get redirected to http://www.coinmine.pl/yacp/So he is mining YaCoins... If he is the miner with highest hashrate in the pool he has a power of three 2600ks in his control. Here is a capture of the program doing it's dirty work, cought it red handed https://i.imgur.com/RKYQlrol.pngand here it's getting job from pool: https://i.imgur.com/Gpnadw0l.png
|
|
|
|
theprofileth
Full Member
Offline
Activity: 239
Merit: 100
Socialist Cryptocurrency Devote
|
|
December 07, 2013, 10:52:15 PM |
|
http://quarkcoin.tumblr.com/^^^^^^^^^^^^^^^^^ this motherfucker don't download, pay or use anything from them I just had 880 quark stolen from my wallet and all sent to QWu8maYVxDAmLG9VUyq7kdRQXLP8jksTNM which is the donation address for that person fucking bullshit
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
December 07, 2013, 11:08:20 PM Last edit: December 07, 2013, 11:20:19 PM by macmac__ |
|
You lost the most in this pulloff :/ So far he has gotten 1,6k quarks of this and who knows how many bitcoins, litecoins and whatever coins... Block explorer: http://176.221.46.81/address/QWu8maYVxDAmLG9VUyq7kdRQXLP8jksTNM[Yeah, this is a fair bit OT but... (Speaking words of wisdom, let it be / Let it be, let it be / Let it be, let it be / Whisper words of wisdom / Let it be)] E: His bitcoin donation address is empty so far, he hasn't moved anything there yet E2: Simple googling with that qrk address shows us that he has posted the same shit in some russian forums, good thing is that it didn't catch a flame and burn everyone with no encryption
|
|
|
|
hobbster
Newbie
Offline
Activity: 28
Merit: 0
|
|
December 07, 2013, 11:35:29 PM Last edit: December 07, 2013, 11:45:55 PM by hobbster |
|
macmac__ you are awesome!
Although i and others lost something, i am somewhat happy for your posts. Thank you for your Work!
And you are right, its lost. It will be the best to arrange with it and look forward. Luckily deleting is enough, and luckily i did not have any bitcoin or litecoin, what i had was my main Treasure, lol
Keep on being awesome macmac__!
BTW: virustotal says Backdoor.Win32.Hupigon (v)
|
|
|
|
theprofileth
Full Member
Offline
Activity: 239
Merit: 100
Socialist Cryptocurrency Devote
|
|
December 08, 2013, 12:19:55 AM |
|
Well from the logs in the pictures above I thought it had corrupted the files C:\Windows\SysWOW64\tzres.dll C:\Windows\System32\WSHTCPIP.DLL So I am hesitant to say just deleting is enough moral of the story is lock all your wallets, quarks were the only one that I have much in that wasn't locked and now well doesnt have anything
|
|
|
|
TBoneLouie
Newbie
Offline
Activity: 2
Merit: 0
|
|
December 08, 2013, 06:35:28 AM |
|
It's a shame about the ScarletRose scam. I know we were all looking for something that was (at least for now) too good to be true. I imagine smolen is probably snickering at us all right now A question about smelter, then, specifically worksize. When I am pool mining with scrypt, I notice that when I raise my worksize the pool server notes a higher share rate even though my hashrate is less than if I lower my worksize. Is the same true with solo mining for QRK or SRC with smelter? I notice a hashrate drop of 40% when I increase my WS from 128 -> 256, but will this translate to a 40% drop in block discovery rate or does the worksize compensate for that? I have managed to find 1 block of SRC with smelter, so I am definitely looking forward to future development of this project. Keep up the good work.
|
|
|
|
hobbster
Newbie
Offline
Activity: 28
Merit: 0
|
|
December 08, 2013, 07:29:50 AM |
|
Well from the logs in the pictures above I thought it had corrupted the files C:\Windows\SysWOW64\tzres.dll C:\Windows\System32\WSHTCPIP.DLL
Both files have a "last changed" Date in 2009 and 2010, so there could not have been a modification or am i wrong?
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
December 08, 2013, 11:06:50 AM Last edit: December 08, 2013, 11:17:57 AM by macmac__ |
|
Well from the logs in the pictures above I thought it had corrupted the files C:\Windows\SysWOW64\tzres.dll C:\Windows\System32\WSHTCPIP.DLL So I am hesitant to say just deleting is enough moral of the story is lock all your wallets, quarks were the only one that I have much in that wasn't locked and now well doesnt have anything Nope, it doesn't corrupt the files, it just opens them to access the dll's features. WSHTCPIP.dll is a WinSock Helper plugin, used in networking. Tzres.dll is used to manage timezones. Changing files last modified date back to what it was before is easy. Attribute changer 7E: Here are logs from CGminer doing the same things to the dlls https://i.imgur.com/CvoeqUIl.pnghttps://i.imgur.com/T4CGshEl.png
|
|
|
|
hobbster
Newbie
Offline
Activity: 28
Merit: 0
|
|
December 08, 2013, 12:16:16 PM |
|
again ty i think about crypting my wallets and put testpayments from the pools before getting all from the pool
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 09, 2013, 10:39:39 AM |
|
Is there a specific location I should be saving Smelter and its files to in order to avoid the "couldn't connect to server" issue? Should it be in with the Quark QT wallet or something?
btw - I didn't get stung by that nasty Quark Stealing fake miner even though I downloaded it. I guess I'd deleted its files before it took the opportunity to steal from my formerly unencrypted wallet.
|
|
|
|
smolen (OP)
|
|
December 09, 2013, 01:28:34 PM |
|
I imagine smolen is probably snickering at us all right now Smolen is pulling his hair being out of all recent events on altcrypto world A question about smelter, then, specifically worksize. When I am pool mining with scrypt, I notice that when I raise my worksize the pool server notes a higher share rate even though my hashrate is less than if I lower my worksize. Is the same true with solo mining for QRK or SRC with smelter? I notice a hashrate drop of 40% when I increase my WS from 128 -> 256, but will this translate to a 40% drop in block discovery rate or does the worksize compensate for that?
The best indicator is reported hashrate, adjust your settings for the best hashrate, there is no "compensation" or any other accounting tricks. Quark kernel uses too much registers, so increasing worksize lead to so-called "register spill" and GPU power is wasted on useless memory <-> register file transfers. The ability to specify which gpu to mine would be great..I use my 5870 for normal activities and my second card for mining.
Already in my TODO list Help needed. On the latest verison I see that -I is set to 200 is this a typeo or actualy ment to be 200
Meant to be 200. The intensity scaling for Smelter has a bigger range than cgminer or guiminer. Intensity value is time for a single clEnqueueNDRangeKernel call in milliseconds. 200 ms is a good value for dedicated mining PC, but you'd lower it to gain better desktop interactivity. Any idea how to use a pool?
Currently Smelter is for solo mining only, don't expect pool server soon Downloaded the latest version of smelter, edited the sm file, and get "couldn't connect to server"
Try adding "--debug" option, may be there will be a hint in log messages. Error diagnostics in Smelter is rudimentary, I know
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
verloren
|
|
December 09, 2013, 02:13:09 PM |
|
Possible to get a version for the Hawaii GPUs?
|
|
|
|
STT
Legendary
Online
Activity: 3906
Merit: 1414
Leading Crypto Sports Betting & Casino Platform
|
|
December 10, 2013, 03:20:15 AM |
|
4500 - I shouldnt bother trying to use this on such a lowly gpu I guess
|
..Stake.com.. | | | ▄████████████████████████████████████▄ ██ ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ██ ▄████▄ ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██ ██████ ██ ██████████ ██ ██ ██████████ ██ ▀██▀ ██ ██ ██ ██████ ██ ██ ██ ██ ██ ██ ██████ ██ █████ ███ ██████ ██ ████▄ ██ ██ █████ ███ ████ ████ █████ ███ ████████ ██ ████ ████ ██████████ ████ ████ ████▀ ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██ ██ ▀▀▀▀▀▀▀▀▀▀ ██ ▀█████████▀ ▄████████████▄ ▀█████████▀ ▄▄▄▄▄▄▄▄▄▄▄▄███ ██ ██ ███▄▄▄▄▄▄▄▄▄▄▄▄ ██████████████████████████████████████████ | | | | | | ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ █ ▄▀▄ █▀▀█▀▄▄ █ █▀█ █ ▐ ▐▌ █ ▄██▄ █ ▌ █ █ ▄██████▄ █ ▌ ▐▌ █ ██████████ █ ▐ █ █ ▐██████████▌ █ ▐ ▐▌ █ ▀▀██████▀▀ █ ▌ █ █ ▄▄▄██▄▄▄ █ ▌▐▌ █ █▐ █ █ █▐▐▌ █ █▐█ ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█ | | | | | | ▄▄█████████▄▄ ▄██▀▀▀▀█████▀▀▀▀██▄ ▄█▀ ▐█▌ ▀█▄ ██ ▐█▌ ██ ████▄ ▄█████▄ ▄████ ████████▄███████████▄████████ ███▀ █████████████ ▀███ ██ ███████████ ██ ▀█▄ █████████ ▄█▀ ▀█▄ ▄██▀▀▀▀▀▀▀██▄ ▄▄▄█▀ ▀███████ ███████▀ ▀█████▄ ▄█████▀ ▀▀▀███▄▄▄███▀▀▀ | | | ..PLAY NOW.. |
|
|
|
danbi
|
|
December 10, 2013, 07:08:44 PM |
|
Tried both 0.3 and 0.3a and they both quit with
Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed
|
BTC: 15cJkRupKAkGr6sTxj1Uzb6uHbvuRyK1GL DMD: dJZEqNcjiUiMMd8DKBFS9oMWtArAD2GCHr
|
|
|
shark255
|
|
December 11, 2013, 05:45:39 PM |
|
there is no linux version of smolens gpu miner - am i right?
|
|
|
|
CoinBuzz
|
|
December 11, 2013, 10:10:40 PM |
|
how much is it's performance for example for a 7950 ?
How much better than pure cpu ?
|
|
|
|
macmac__
Newbie
Offline
Activity: 56
Merit: 0
|
|
December 11, 2013, 10:29:43 PM |
|
Tried both 0.3 and 0.3a and they both quit with
Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed
Try 0.2, it has the same features and speed there is no linux version of smolens gpu miner - am i right?
yes, there is no common build available how much is it's performance for example for a 7950 ?
How much better than pure cpu ?
My sapphire 7950 used to mine around 1,45Mhash/s at 1050/1400 clocks at 1.1v 3570k running at 4,2GHz got to 750khash/s Mining SRC or QRK is pretty much waste of time considering network speeds and block rewards, if one without botnet wants those, best way would to buy them and mine something more profitable´or usable (like curecoin ^^)
|
|
|
|
FSB
Member
Offline
Activity: 94
Merit: 10
|
|
December 12, 2013, 05:11:35 AM |
|
After 2-3 hours miner work, speed suddenly drops to "0". GPU load is also 0%. Helps only restart miner. What could be the problem?
|
|
|
|
roganbear
Newbie
Offline
Activity: 13
Merit: 0
|
|
December 13, 2013, 04:16:31 AM |
|
Really hoping pool support is in the works
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 13, 2013, 11:41:42 AM |
|
I really want to get this working and I've tried so many times and failed due to the "Cannot connect to server issue". I've decided to delete everything and start again, hopefully someone can tell me where I'm going wrong! 1. Downloaded Smelter 0.3a from http://rghost.net/499406882. Found the folder where my Quark QT wallet is installed and extracted the 3 files from the zip into this folder: - smd.cmd
- smelter
- smelter.exe
3. In the same folder I created quarkcoin.conf, Offering.conf and securecoin.conf and added the following information listen=1 rpcallowip=127.0.0.1 rpcuser=username rpcpassword=password rpcport=8772 server=1 4. Checked the smd.cmd file to make sure it had the same username/password. I didn't alter this file, even left the original wallet file is as this is just a test. 5. Double clicked smd.cmd.... Smelter opens.... Error: curl_easy_perform() failed: Couldn't connect to server http://i43.tinypic.com/2d0ynt4.pngHELP! PLEASE! I'm going insane6. Added --debug to the smd.cmd file and ran again and got the following: http://i40.tinypic.com/2hz242v.png
|
|
|
|
verloren
|
|
December 13, 2013, 02:26:48 PM |
|
I really want to get this working and I've tried so many times and failed due to the "Cannot connect to server issue". I've decided to delete everything and start again, hopefully someone can tell me where I'm going wrong! 3. In the same folder I created quarkcoin.conf, Offering.conf and securecoin.conf and added the following information listen=1 rpcallowip=127.0.0.1 rpcuser=username rpcpassword=password rpcport=8772 server=1 4. Checked the smd.cmd file to make sure it had the same username/password. I didn't alter this file, even left the original wallet file is as this is just a test. 5. Double clicked smd.cmd.... Smelter opens.... Error: curl_easy_perform() failed: Couldn't connect to server quarkcoin.conf goes in C:\Users\[USERNAME]\AppData\Roaming\Quarkcoin
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 13, 2013, 07:30:42 PM |
|
Thanks, moved the file to that folder and I got the same problem - Cannot connect to server.
|
|
|
|
roganbear
Newbie
Offline
Activity: 13
Merit: 0
|
|
December 13, 2013, 07:48:05 PM |
|
Thanks, moved the file to that folder and I got the same problem - Cannot connect to server.
Try changing the port in your cmd file to the one you have in your .conf file.
|
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
December 13, 2013, 08:23:17 PM |
|
I really want to get this working and I've tried so many times and failed due to the "Cannot connect to server issue". I've decided to delete everything and start again, hopefully someone can tell me where I'm going wrong! 1. Downloaded Smelter 0.3a from http://rghost.net/499406882. Found the folder where my Quark QT wallet is installed and extracted the 3 files from the zip into this folder: - smd.cmd
- smelter
- smelter.exe
3. In the same folder I created quarkcoin.conf, Offering.conf and securecoin.conf and added the following information listen=1 rpcallowip=127.0.0.1 rpcuser=username rpcpassword=password rpcport=8772 server=1 4. Checked the smd.cmd file to make sure it had the same username/password. I didn't alter this file, even left the original wallet file is as this is just a test. 5. Double clicked smd.cmd.... Smelter opens.... Error: curl_easy_perform() failed: Couldn't connect to server HELP! PLEASE! I'm going insane6. Added --debug to the smd.cmd file and ran again and got the following: You have your Quark wallet open right? It has to be running and up to date. Also your smd.cmd file shows 8385 as port while your config files shows 8772. They have to match to connect. Also your .conf files should be in the respective coins appdata folder not in teh smelter folder.
|
|
|
|
MrMirkin
Newbie
Offline
Activity: 24
Merit: 0
|
|
December 13, 2013, 08:25:48 PM |
|
Tried both 0.3 and 0.3a and they both quit with
Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed
Try 0.2, it has the same features and speed there is no linux version of smolens gpu miner - am i right?
yes, there is no common build available how much is it's performance for example for a 7950 ?
How much better than pure cpu ?
My sapphire 7950 used to mine around 1,45Mhash/s at 1050/1400 clocks at 1.1v 3570k running at 4,2GHz got to 750khash/s Mining SRC or QRK is pretty much waste of time considering network speeds and block rewards, if one without botnet wants those, best way would to buy them and mine something more profitable´or usable (like curecoin ^^) So what kind rewards on average do you guys get? Average time to find a block? Im interested, but seems the rewards is pretty low atm?
|
|
|
|
LiteMine
|
|
December 13, 2013, 09:35:49 PM |
|
Will this fire up all GPU's by default, or only by a particular command?
Thank you
|
|
|
|
TheMightyX
Sr. Member
Offline
Activity: 350
Merit: 250
Vires in Numeris
|
|
December 13, 2013, 10:25:41 PM |
|
Hey Smolen, Thanks for your work on these miners. I'm not sure how I feel about the 1/10th reward share at this time (as I'm not able to run the miner), but in theory I think its a viable business model. That being said I have a decent Radeon 4850 and a Nvideo 280 GTX. Not new by any standards but decent ass cards.
Unfortunately I'm getting the errors: Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed
Any chance of getting this to run on my rigs or is it a lost cause? I've tried v2 and v3.
|
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
December 13, 2013, 10:45:03 PM |
|
Hey Smolen, Thanks for your work on these miners. I'm not sure how I feel about the 1/10th reward share at this time (as I'm not able to run the miner), but in theory I think its a viable business model. That being said I have a decent Radeon 4850 and a Nvideo 280 GTX. Not new by any standards but decent ass cards.
Unfortunately I'm getting the errors: Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed
Any chance of getting this to run on my rigs or is it a lost cause? I've tried v2 and v3.
page 1 post 1
|
|
|
|
TheMightyX
Sr. Member
Offline
Activity: 350
Merit: 250
Vires in Numeris
|
|
December 13, 2013, 10:59:27 PM |
|
Hey Smolen, Thanks for your work on these miners. I'm not sure how I feel about the 1/10th reward share at this time (as I'm not able to run the miner), but in theory I think its a viable business model. That being said I have a decent Radeon 4850 and a Nvideo 280 GTX. Not new by any standards but decent ass cards.
Unfortunately I'm getting the errors: Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed
Any chance of getting this to run on my rigs or is it a lost cause? I've tried v2 and v3.
page 1 post 1 Not helpful but yes, I can read, no nvidia support. But one of my cards is radeon. Also I didn't mention the nvidia gets a different error:
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 13, 2013, 11:39:58 PM Last edit: December 14, 2013, 12:25:26 AM by Pk9499 |
|
FIXED!! Thank you guys, I love you and I want to have your children xx EDIT: Here's my rate on a 5830. Makes the computer laggy as hell, typing this was painful, but I guess these settings will do for overnight mining. Now if I only knew what 1: A: R: and HW: meant! F:\quarkcoin083r6win>smelter -o http://127.0.0.1:8385 -u username -p password -w 64 -g 1 -i 200 -a XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX smelter v0.3 (c) Smolen Royalty: 1/10 1:0 A:0 R:0 HW:0 Speed: 1.58MH/s 5s: 1.86MH/s 1:0 A:0 R:0 HW:0 Speed: 1.72MH/s 5s: 1.88MH/s 1:0 A:0 R:0 HW:0 Speed: 1.78MH/s 5s: 1.89MH/s 1:0 A:0 R:0 HW:0 Speed: 1.81MH/s 5s: 1.91MH/s 1:0 A:0 R:0 HW:0 Speed: 1.81MH/s 5s: 1.84MH/s 1:1 A:0 R:0 HW:0 Speed: 1.83MH/s 5s: 1.90MH/s 1:2 A:0 R:0 HW:0 Speed: 1.85MH/s 5s: 1.96MH/s 1:2 A:0 R:0 HW:0 Speed: 1.85MH/s 5s: 1.89MH/s 1:2 A:0 R:0 HW:0 Speed: 1.86MH/s 5s: 1.89MH/s 1:3 A:0 R:0 HW:0 Speed: 1.85MH/s 5s: 1.85MH/s 1:4 A:0 R:0 HW:0 Speed: 1.86MH/s 5s: 1.89MH/s 1:4 A:0 R:0 HW:0 Speed: 1.86MH/s 5s: 1.89MH/s 1:4 A:0 R:0 HW:0 Speed: 1.87MH/s 5s: 1.96MH/s 1:4 A:0 R:0 HW:0 Speed: 1.87MH/s 5s: 1.89MH/s 1:4 A:0 R:0 HW:0 Speed: 1.87MH/s 5s: 1.86MH/s 1:5 A:0 R:0 HW:0 Speed: 1.87MH/s 5s: 1.86MH/s 1:5 A:0 R:0 HW:0 Speed: 1.87MH/s 5s: 1.90MH/s 1:7 A:0 R:0 HW:0 Speed: 1.87MH/s 5s: 1.88MH/s 1:8 A:0 R:0 HW:0 Speed: 1.87MH/s 5s: 1.89MH/s 1:9 A:0 R:0 HW:0 Speed: 1.87MH/s 5s: 1.90MH/s 1:10 A:0 R:0 HW:0 Speed: 1.88MH/s 5s: 1.91MH/s 1:11 A:0 R:0 HW:0 Speed: 1.88MH/s 5s: 1.90MH/s
|
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
December 14, 2013, 12:30:18 AM |
|
A= Accepted (ie you solved a block ding ding winner winner chicken dinner!!) R= Rejected (ie you solved a block but someone else did faster than you...doh!) HW = Hardware Errors (do not want to see this change from 0)
|
|
|
|
verloren
|
|
December 14, 2013, 03:39:56 AM |
|
Hey Smolen, Thanks for your work on these miners. I'm not sure how I feel about the 1/10th reward share at this time (as I'm not able to run the miner), but in theory I think its a viable business model. That being said I have a decent Radeon 4850 and a Nvideo 280 GTX. Not new by any standards but decent ass cards.
Unfortunately I'm getting the errors: Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed
Any chance of getting this to run on my rigs or is it a lost cause? I've tried v2 and v3.
Certain Radeon series don't work. Oldest reported working GPU is a 58xx.
|
|
|
|
TheMightyX
Sr. Member
Offline
Activity: 350
Merit: 250
Vires in Numeris
|
|
December 14, 2013, 05:40:33 AM |
|
Hey Smolen, Thanks for your work on these miners. I'm not sure how I feel about the 1/10th reward share at this time (as I'm not able to run the miner), but in theory I think its a viable business model. That being said I have a decent Radeon 4850 and a Nvideo 280 GTX. Not new by any standards but decent ass cards.
Unfortunately I'm getting the errors: Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed
Any chance of getting this to run on my rigs or is it a lost cause? I've tried v2 and v3.
Certain Radeon series don't work. Oldest reported working GPU is a 58xx. Ahh thank you very much for that info. That should be added to the OP.
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 14, 2013, 09:22:46 AM |
|
Thanks Hilux74 ....10 hours after I first got it to work..... 1:3554 A:0 R:0 HW:0 Speed: 1.78MH/s 5s: 1.88MH/s Aww man, I was expecting to be rolling in Quarks now! Is the effort of this cumulative in some way, ie if I switch it off now will I have lost some progress?
|
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
December 14, 2013, 09:34:35 AM |
|
Thanks Hilux74 ....10 hours after I first got it to work..... 1:3554 A:0 R:0 HW:0 Speed: 1.78MH/s 5s: 1.88MH/s Aww man, I was expecting to be rolling in Quarks now! Is the effort of this cumulative in some way, ie if I switch it off now will I have lost some progress? Very hard to get solo Quark or SecureCoin blocks now. Best use for Smelter on a single GPU now is Cthulu or Frozen and hope one of them gets worth something...hopefully Cthulu.
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 14, 2013, 01:20:51 PM |
|
Thanks Hilux, you rock. I hope someone creates a QRK pool GPU miner soon though I guess Smolen isn't too motivated as she/he might lose their cut that they skim off at the moment.
I'd never heard of Cthulu or Frozen crypto coins before. I think I'll leave Smelter running on Quark and just hope I'm lucky - just under 2MHs doesn't seem too bad. How many million (!) QRK could I expect to receive if I found a block?
|
|
|
|
ptraf
Member
Offline
Activity: 138
Merit: 10
Mining. Hosting. Cloud Mining.
|
|
December 15, 2013, 09:15:58 PM |
|
Please add the support for graphics cards Hawaii ( Radeon R290, 290X) Now when you run any version gives an error
Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed
|
|
|
|
busoni
Sr. Member
Offline
Activity: 364
Merit: 250
Owner of Poloniex
|
|
December 16, 2013, 09:04:45 PM |
|
Certain Radeon series don't work. Oldest reported working GPU is a 58xx.
I'm not sure if they're older, but I have several 5750s mining with smelter, and they work very well.
|
Poloniex.com - Fast crypto exchange with margin trading, advanced charts, and stop-limit orders
|
|
|
Fletch
Full Member
Offline
Activity: 168
Merit: 100
I'll have a steak sandwich and a... steak sandwich
|
|
December 16, 2013, 09:36:03 PM |
|
I'm not sure if they're older, but I have several 5750s mining with smelter, and they work very well.
What kind of hashrates are you getting? Solving any blocks?
|
|
|
|
busoni
Sr. Member
Offline
Activity: 364
Merit: 250
Owner of Poloniex
|
|
December 17, 2013, 12:57:08 AM |
|
I'm not sure if they're older, but I have several 5750s mining with smelter, and they work very well.
What kind of hashrates are you getting? Solving any blocks? My 5750s get about 1.38MH/s each; my 5850s get about 2.5MH/s each. (I overclock them.) All my cards together amount to about 18MH/s, and I find plenty of blocks--about what I should according to the estimates on pools. Of course, there is a huge amount of random variance in solo mining. Some days I find twice as many as I should, other days I find just one. It is still the most profitable use of these cards, but that may change soon, as the price drops and the difficulty rises.
|
Poloniex.com - Fast crypto exchange with margin trading, advanced charts, and stop-limit orders
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 17, 2013, 09:28:48 AM |
|
I'm running a 5830 and get ~1.8Mh/s and have been running it overnight every night for about 5 nights. I found my first block last night and got 14.4QRKS I'm thinking that I should try and overclock my card. It's currently at GPU 825MHz Memory 1025MHz running at 65 degrees. I'll have a play around and report back.
|
|
|
|
Fletch
Full Member
Offline
Activity: 168
Merit: 100
I'll have a steak sandwich and a... steak sandwich
|
|
December 17, 2013, 09:35:09 AM |
|
I'm running a 5830 and get ~1.8Mh/s and have been running it overnight every night for about 5 nights. I found my first block last night and got 14.4QRKS You'd get a lot more CPU-mining with a pool. You could then use the GPU to mine litecoin or any other scrypt based crypto.
|
|
|
|
|
STT
Legendary
Online
Activity: 3906
Merit: 1414
Leading Crypto Sports Betting & Casino Platform
|
|
December 18, 2013, 02:37:23 AM |
|
Does cpu use less watts then a gpu, my guess is a i7 is similar to a 7950
|
..Stake.com.. | | | ▄████████████████████████████████████▄ ██ ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ██ ▄████▄ ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██ ██████ ██ ██████████ ██ ██ ██████████ ██ ▀██▀ ██ ██ ██ ██████ ██ ██ ██ ██ ██ ██ ██████ ██ █████ ███ ██████ ██ ████▄ ██ ██ █████ ███ ████ ████ █████ ███ ████████ ██ ████ ████ ██████████ ████ ████ ████▀ ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██ ██ ▀▀▀▀▀▀▀▀▀▀ ██ ▀█████████▀ ▄████████████▄ ▀█████████▀ ▄▄▄▄▄▄▄▄▄▄▄▄███ ██ ██ ███▄▄▄▄▄▄▄▄▄▄▄▄ ██████████████████████████████████████████ | | | | | | ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ █ ▄▀▄ █▀▀█▀▄▄ █ █▀█ █ ▐ ▐▌ █ ▄██▄ █ ▌ █ █ ▄██████▄ █ ▌ ▐▌ █ ██████████ █ ▐ █ █ ▐██████████▌ █ ▐ ▐▌ █ ▀▀██████▀▀ █ ▌ █ █ ▄▄▄██▄▄▄ █ ▌▐▌ █ █▐ █ █ █▐▐▌ █ █▐█ ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█ | | | | | | ▄▄█████████▄▄ ▄██▀▀▀▀█████▀▀▀▀██▄ ▄█▀ ▐█▌ ▀█▄ ██ ▐█▌ ██ ████▄ ▄█████▄ ▄████ ████████▄███████████▄████████ ███▀ █████████████ ▀███ ██ ███████████ ██ ▀█▄ █████████ ▄█▀ ▀█▄ ▄██▀▀▀▀▀▀▀██▄ ▄▄▄█▀ ▀███████ ███████▀ ▀█████▄ ▄█████▀ ▀▀▀███▄▄▄███▀▀▀ | | | ..PLAY NOW.. |
|
|
|
ptraf
Member
Offline
Activity: 138
Merit: 10
Mining. Hosting. Cloud Mining.
|
|
December 18, 2013, 12:48:12 PM |
|
Smelter when will the new version? supporting hawaii
|
|
|
|
rahlquist
Newbie
Offline
Activity: 46
Merit: 0
|
|
December 18, 2013, 06:24:31 PM |
|
Certain Radeon series don't work. Oldest reported working GPU is a 58xx.
My 5770 worked
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 19, 2013, 10:03:56 AM |
|
Ooo I came down this morning to see what Smelter has had two blocks accepted over night. Easily a personal best for me. I saw the Quarkcoin QT wallet system tray note flash up with a transaction but unfortunately it vanished as soon as I moved my mouse. Looking in the transaction history of the wallet shows no transactions though I checked my cmd file and the wallet address is correct. I closed and reopened my Quark wallet and it claims to be up to date. Where'd my QRKs go ? http://i39.tinypic.com/30jn4go.png
|
|
|
|
picbb1
Newbie
Offline
Activity: 20
Merit: 0
|
|
December 19, 2013, 12:24:49 PM |
|
Ooo I came down this morning to see what Smelter has had two blocks accepted over night. Easily a personal best for me. I saw the Quarkcoin QT wallet system tray note flash up with a transaction but unfortunately it vanished as soon as I moved my mouse. Looking in the transaction history of the wallet shows no transactions though I checked my cmd file and the wallet address is correct. I closed and reopened my Quark wallet and it claims to be up to date. Where'd my QRKs go ? http://i39.tinypic.com/30jn4go.png+
|
|
|
|
theprofileth
Full Member
Offline
Activity: 239
Merit: 100
Socialist Cryptocurrency Devote
|
|
December 20, 2013, 02:48:15 AM |
|
Those my friend, are called orphans, they suck just like Quark.
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 23, 2013, 08:37:03 AM |
|
Well that sucks! Went away for about 36 hours, dropped the intensity slightly and left Smelter running. Pff! http://i44.tinypic.com/2v1mfdt.jpg
|
|
|
|
lonesoul
|
|
December 23, 2013, 11:09:18 AM |
|
not quite sure what im doing wrong here but it would appear that my cards want to mine at 20GH-70GH for 3 attempts then the miner crashes. it seems like something is wrong due to getting such high rates! has anyone discovered this? (its almost like when you forget to include the --scrypt when mining with cgminer) any help would be great thank you :-) picture of the error
|
Please click this link-> https://mcxnow.com/?r=Stuartnorth (The link is a referral link, it costs you nothing, but provides a little bonus for me if you click through to the site. Please help feed my baby. Thanks :-) )
|
|
|
NUFCrichard
Legendary
Offline
Activity: 1218
Merit: 1003
|
|
December 23, 2013, 11:39:16 AM |
|
So is GPU Mining actually better than CPU mining for quarks? I haven't seen any great sucess stories yet.
|
|
|
|
Shadow_Runner
|
|
December 23, 2013, 11:46:07 AM |
|
Please add choose second videocard option like in CGMiner, for people who use GeForce for games and Radeon for mining.
|
|
|
|
hud
Newbie
Offline
Activity: 25
Merit: 0
|
|
December 23, 2013, 04:35:24 PM |
|
installation in ubuntu help.
|
|
|
|
casper77
Legendary
Offline
Activity: 2884
Merit: 1035
|
|
December 24, 2013, 03:33:33 AM |
|
I don't understand - if smelter could mine solo to adress 127.0.0.1, why its could't mine at any other one ? such as adress of some pool ?
|
|
|
|
busoni
Sr. Member
Offline
Activity: 364
Merit: 250
Owner of Poloniex
|
|
December 25, 2013, 07:44:43 PM |
|
So is GPU Mining actually better than CPU mining for quarks? I haven't seen any great sucess stories yet.
Yes, it is much better if you have 5xxx cards.
|
Poloniex.com - Fast crypto exchange with margin trading, advanced charts, and stop-limit orders
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 27, 2013, 09:56:55 AM |
|
Got up to 3500 submissions overnight on my 5830 with nothing accepted 5xxx aren't that good!
|
|
|
|
subhead
Member
Offline
Activity: 75
Merit: 10
|
|
December 27, 2013, 09:17:04 PM |
|
i can´t get this miner running with my r9 290. any advices? error v2: smelter v0.2 (c) Smolen Royalty: 1/10 Failed to read source file: ./quark0td/kernelQuark.cl SummonProgram failed clCreateKernel call failed! error v3: smelter v0.3 (c) Smolen Royalty: 1/10 Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed
|
|
|
|
verloren
|
|
December 28, 2013, 02:26:30 AM |
|
i can´t get this miner running with my r9 290. any advices? error v2: smelter v0.2 (c) Smolen Royalty: 1/10 Failed to read source file: ./quark0td/kernelQuark.cl SummonProgram failed clCreateKernel call failed! error v3: smelter v0.3 (c) Smolen Royalty: 1/10 Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed Smelter doesn't work with Hawaii (290 or 290x) GPUs yet.
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 28, 2013, 10:56:01 AM |
|
Another stack of submissions and nothing accepted - has the difficulty shot up, am I unlucky, is my 5830 rubbish or is this just a total waste of time? http://i43.tinypic.com/2zzop06.jpgQuark's aren't moving much on volume either http://coinmarketcap.com/
|
|
|
|
verloren
|
|
December 28, 2013, 11:50:34 AM |
|
Another stack of submissions and nothing accepted - has the difficulty shot up, am I unlucky, is my 5830 rubbish or is this just a total waste of time? Quark's aren't moving much on volume either http://coinmarketcap.com/The accepted value in Smelter is for blocks solved, not shares accepted. Law of averages states that you will get x amount of QRK/SRC per day over the long run, when comparing the same hash rate to the pool.
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 28, 2013, 12:12:30 PM Last edit: December 28, 2013, 01:14:08 PM by Pk9499 |
|
And the 1: value is what? Maybe submissions was the wrong word - attempts at blocks?
I understand it's luck of the draw - hence the questions about my luck. How do you do?
|
|
|
|
chip99
|
|
December 31, 2013, 08:38:02 AM |
|
something is very wrong with your miner i thought its supposed to take only 12.5% as fee and not all the coins ?? mined a coin where a block is 50k reward. here is what is left 6.1k is version1 posted from OP and v2 is 6.5k
|
|
|
|
verloren
|
|
December 31, 2013, 09:18:07 AM |
|
And the 1: value is what? Maybe submissions was the wrong word - attempts at blocks?
I understand it's luck of the draw - hence the questions about my luck. How do you do?
The 1: [Number] refers to the number of blocks that have passed by since you started Smelter. A: [Number] - Number of solved blocks (including orphans). R: [Number] - Rejected.
|
|
|
|
mtbitcoin
Legendary
Offline
Activity: 876
Merit: 1000
Etherscan.io
|
|
December 31, 2013, 01:21:46 PM |
|
something is very wrong with your miner i thought its supposed to take only 12.5% as fee and not all the coins ?? mined a coin where a block is 50k reward. here is what is left 6.1k is version1 posted from OP and v2 is 6.5k It most likely unable to send the actual amount because it was designed for Quark and not Particle. So you only get the donation amount and not the full amount
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
December 31, 2013, 03:15:17 PM |
|
And the 1: value is what? Maybe submissions was the wrong word - attempts at blocks?
I understand it's luck of the draw - hence the questions about my luck. How do you do?
The 1: [Number] refers to the number of blocks that have passed by since you started Smelter. A: [Number] - Number of solved blocks (including orphans). R: [Number] - Rejected. Thank you. Well I've had 3 solved blocks now that have resulted in payments of 14.4, 7.20009 and 7.20. To be honest I'm wondering whether it's worth it.
|
|
|
|
coingeter
Jr. Member
Offline
Activity: 56
Merit: 10
|
|
December 31, 2013, 04:12:45 PM |
|
something is very wrong with your miner i thought its supposed to take only 12.5% as fee and not all the coins ?? mined a coin where a block is 50k reward. here is what is left 6.1k is version1 posted from OP and v2 is 6.5k It most likely unable to send the actual amount because it was designed for Quark and not Particle. So you only get the donation amount and not the full amount How to solve the problem
|
BTC: 18eyP3XmcgsJ8sPhQaPNM8wvF5ArJarDts
|
|
|
nuno12345
|
|
January 02, 2014, 01:05:28 AM |
|
Just my 2 cents. I wonder if we can get this to work on a pool with ypool.net xptProxy. Source: https://github.com/jh000/xptProxyIts used to mine dogecoin and "converts" the protocol into json. Currently it supports sha-256, scrypt and primecoin algos. There are no arguments to provide and connects by default on ypool.net port 10034 and rpc port 8332. I made some changes to the source to allow arguments such as pool port rpcport. main.cpp(int function, modified) int main(int argc, char** argv) { printf("\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB\n"); printf("\xBA xptProxy (v0.2b) \xBA\n"); printf("\xBA contributors: jh \xBA\n"); printf("\xBA local protocols: getwork(8332)+longpoll \xBA\n"); printf("\xBA algorithms: scrypt \xBA\n"); printf("\xBA params: xptProxy.exe pool port rpcport \xBA\n"); printf("\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC\n"); printf("Launching proxy...\n");
char* poolURL = "ypool.net"; if(argv[1]) { poolURL = argv[1]; }
proxySettings.poolPort = 10034; if(argv[2]) { proxySettings.poolPort = atoi(argv[2]); }
proxySettings.rpcPort = 8332; if(argv[3]) { proxySettings.rpcPort = atoi(argv[3]); } // init winsock WSADATA wsa; WSAStartup(MAKEWORD(2,2),&wsa);
hostent* hostInfo = gethostbyname(poolURL); if( hostInfo == NULL ) { printf("Cannot resolve '%s'. Is it a valid URL?\n", poolURL); exit(-1); } void** ipListPtr = (void**)hostInfo->h_addr_list; uint32 ip = 0xFFFFFFFF; if( ipListPtr[0] ) { ip = *(uint32*)ipListPtr[0]; } char ipText[32]; sprintf(ipText, "%d.%d.%d.%d", ((ip>>0)&0xFF), ((ip>>8)&0xFF), ((ip>>16)&0xFF), ((ip>>24)&0xFF)); // set default proxy settings (todo: Add config) proxySettings.poolIP = ipText; // init xpt proxy stuff xptProxy_init(); // start json server thread printf("Starting JSON-RPC server on port %d...\n", proxySettings.rpcPort); jsonRpcServer_t* jrs = jsonRpc_createServer(proxySettings.rpcPort); if( jrs == NULL ) { printf("Failed to open a server on port %d, try again\n", proxySettings.rpcPort); return -1; } CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)jsonRpc_run, jrs, 0, NULL); // start processing xpt clients printf("xptProxy ready to accept connections!\n"); xptProxy_mainloop(); return 0; } After the changes it compiles and runs successfully with "xptProxy ypool.net 10034 8332" I also added all the quark files/algos to the project and they needed no changes at all Got the files from miner, https://github.com/Neisklar/quarkcoin-cpuminerFiles: blake.c, bmw.c, groestl.c, jh.c, keccak.c, skein.c, the respective sph_headers.h and sph_types.h The file wich actually exports quark hash and verify functions(quark.c) gives a missing function error After the quark hashing functions can included without errors i think there are just some minor changes to do at xptProxy itself to actually recognize the algorithm. A simple search shows: xptClient.cpp else if( xptShareToSubmit->algorithm == ALGORITHM_SHA256 || xptShareToSubmit->algorithm == ALGORITHM_SCRYPT ) xptProxy.cpp if( xpc->algorithm == ALGORITHM_SCRYPT ) Not sure if the protocols are the same but maybe some one more skilled can give this a try?
|
|
|
|
smolen (OP)
|
|
January 03, 2014, 05:49:09 PM |
|
something is very wrong with your miner i thought its supposed to take only 12.5% as fee and not all the coins ?? mined a coin where a block is 50k reward. here is what is left 6.1k is version1 posted from OP and v2 is 6.5k I think something is wrong with the wallet code Posted response with technical details here, let's hope Particle developers will take a look at it.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
ocminer
Legendary
Offline
Activity: 2660
Merit: 1240
|
|
January 04, 2014, 11:16:15 PM |
|
If you guys are still looking for a (backup) pool try: https://qrk.suprnova.cc for Quark or https://prt.suprnova.cc for Particle. I'm testing new stratum/vardiff code there, would really appreciate some more power than few cpu's in there. If you need a pool for an other coinbase, message me.
|
suprnova pools - reliable mining pools - #suprnova on freenet https://www.suprnova.cc - FOLLOW us @ Twitter ! twitter.com/SuprnovaPools
|
|
|
oox
Newbie
Offline
Activity: 27
Merit: 0
|
|
January 08, 2014, 06:28:21 PM |
|
Hi all Are there any details on what cards don't work or do work with settings & performance ? I'm looking to put a new low profile card into a slim pc that i can dabble with smelter & quark based coins. Seems to be 7750, 6670, 6450 & 5450 low profile cards available mainly 1GB & a 2GB 6450. p.s. Also if vital info could be edited into the 1st post it would make it a lot easier for everyone to find the latest version, for example, instead of having to read the whole topic looking
|
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
January 08, 2014, 06:53:22 PM |
|
I'm trying to mine frozen w/ a 5850, smelter crashes almost immediately. Is this a compatible card?
|
|
|
|
Benezivas
|
|
January 10, 2014, 01:23:20 AM |
|
I am currently trying to mine Offerings with smelter, while I was successful with getting it to work with frozen, I can't seem to find the error here: offering.conf: [...] listen=1 rpcuser=1 rpcpassword=x rpcallowip=127.0.0.1 rpcport=1928 server=1 [...] And calling smelter with open wallet (same directory as .conf, of course) and: smelter -o http://127.0.0.1:1928 -u 1 -p x -w 64 -g 1 -i 200 -a QQcS8oJyWH2UiTZUN6qBZjYBWXtWFzhC4J getting the following result: Path/to/smelter>smelter -o http://127.0.0.1:1928 -u 1 -p x -w 64 -g 1 -i 200 -a QQcS8oJyWH2UiTZUN6qBZjYBWXtWFzhC4J smelter v0.3 (c) Smolen Royalty: 1/10 Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed Error: Parse error, request:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit ional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <HTML> <HEAD> <TITLE>Error</TITLE> <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'> </HEAD> <BODY><H1>401 Unauthorized.</H1></BODY> </HTML>
Error: Parse error, request:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit ional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <HTML> <HEAD> <TITLE>Error</TITLE> <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'> </HEAD> <BODY><H1>401 Unauthorized.</H1></BODY> </HTML>
Error: Parse error, request:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit ional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <HTML> <HEAD> <TITLE>Error</TITLE> <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'> </HEAD> <BODY><H1>401 Unauthorized.</H1></BODY> </HTML>
And so on, resulting in a crash. Did I mess up the config?
|
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
January 10, 2014, 02:57:36 AM |
|
the the smelter files have to be in the same dir as the wallet? that could be my issue
|
|
|
|
Its About Sharing
Legendary
Offline
Activity: 1442
Merit: 1000
Antifragile
|
|
January 10, 2014, 10:46:29 AM |
|
i can´t get this miner running with my r9 290. any advices? error v2: smelter v0.2 (c) Smolen Royalty: 1/10 Failed to read source file: ./quark0td/kernelQuark.cl SummonProgram failed clCreateKernel call failed! error v3: smelter v0.3 (c) Smolen Royalty: 1/10 Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed Smelter doesn't work with Hawaii (290 or 290x) GPUs yet. Any idea on when we might get Smelter working on the 290's? (I will be using my CPU for Quarks and the 290 for LTC until then.)
|
BTC = Black Swan. BTC = Antifragile - "Some things benefit from shocks; they thrive and grow when exposed to volatility, randomness, disorder, and stressors and love adventure, risk, and uncertainty. Robust is not the opposite of fragile.
|
|
|
smolen (OP)
|
|
January 10, 2014, 12:13:25 PM |
|
Are there any details on what cards don't work or do work with settings & performance ? p.s. Also if vital info could be edited into the 1st post it would make it a lot easier for everyone to find the latest version, for example, instead of having to read the whole topic looking Any idea on when we might get Smelter working on the 290's? (I will be using my CPU for Quarks and the 290 for LTC until then.)
Sorry again for abandoning the thread. My short term plans are: - buy new GPU (They all are sold out now And to finish PTS miner I need 64 bit atomics missed in VLIW5) - get the code in good shape and open source it (Hoping for community review And right now the code does not even compile ) - make new closed-source release for PTS or XPM So soon there will be open-source, commission-free Quark miner not bounded to any particular GPU. Just wait a bit.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
January 10, 2014, 12:18:31 PM |
|
401 Unauthorized
Something wrong with authorization, may be username '1' is parsed as a number. Try naming your user 'user'.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
January 10, 2014, 12:22:57 PM |
|
I'm trying to mine frozen w/ a 5850, smelter crashes almost immediately. Is this a compatible card?
5850 is supported. Try --debug switch, debug output can give an idea what's wrong. Just in case, the list of currently supported GPUs: const char *arrDevices[] = { "Cypress", // 5830, 5850, 5870 "Cayman", // Radeon HD 6900: Radeon HD 6950 and Radeon HD 6970 "Barts", // HD 6850 HD 6870 "Turks", // HD 6570 and HD 6670, 7510, 7570, 7670 "Juniper", // 6770 and 6750, 5750, 5770 "Tahiti", // 7870, 7950, 7970 "Pitcairn", // 7850, 7870 "Capeverde", // 7730, 7750, 7770 "Bonaire", // 7790 0 };
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
Benezivas
|
|
January 10, 2014, 12:37:35 PM |
|
401 Unauthorized
Something wrong with authorization, may be username '1' is parsed as a number. Try naming your user 'user'. Edited my conf: rpcuser=user rpcpassword=pass And the sm.cmd: smelter -o http://127.0.0.1:1928 -u 1 -p x -a QQcS8oJyWH2UiTZUN6qBZjYBWXtWFzhC4J And yet, this: (btw: running on a 6870) Path/to/smelter>smelter -o http://127.0.0.1:1928 -u user -p pass -w 64 -g 1 -i 200 -a QQcS8oJyWH2UiTZUN6qBZjYBWXtWFzhC4J smelter v0.3 (c) Smolen Royalty: 1/10 Error: Parse error, request:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit ional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <HTML> <HEAD> <TITLE>Error</TITLE> <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'> </HEAD> <BODY><H1>401 Unauthorized.</H1></BODY> </HTML>
Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed Error: Parse error, request:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit ional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <HTML> <HEAD> <TITLE>Error</TITLE> <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'> </HEAD> <BODY><H1>401 Unauthorized.</H1></BODY> </HTML>
I think that aside from the 401 these lines may be of interest as well: Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed
|
|
|
|
surphactone
|
|
January 10, 2014, 02:47:47 PM |
|
1:11 A:0 R:0 MW:0 speed : 1.13mh/s ... what's this ? oO
why it's in MH/s ?
|
<!>Help the guy with any amount of BTC : 1FbWe8Dq8cLx3UHF385EtCLyVz6UFXgs8k Thank yO ! -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
verloren
|
|
January 10, 2014, 03:04:41 PM |
|
1:11 A:0 R:0 MW:0 speed : 1.13mh/s ... what's this ? oO
why it's in MH/s ?
Quark doesn't rely completely on scrypt.
|
|
|
|
Benezivas
|
|
January 10, 2014, 05:44:19 PM |
|
401 Unauthorized
Something wrong with authorization, may be username '1' is parsed as a number. Try naming your user 'user'. Edited my conf: rpcuser=user rpcpassword=pass And the sm.cmd: smelter -o http://127.0.0.1:1928 -u 1 -p x -a QQcS8oJyWH2UiTZUN6qBZjYBWXtWFzhC4J And yet, this: (btw: running on a 6870) Path/to/smelter>smelter -o http://127.0.0.1:1928 -u user -p pass -w 64 -g 1 -i 200 -a QQcS8oJyWH2UiTZUN6qBZjYBWXtWFzhC4J smelter v0.3 (c) Smolen Royalty: 1/10 Error: Parse error, request:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit ional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <HTML> <HEAD> <TITLE>Error</TITLE> <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'> </HEAD> <BODY><H1>401 Unauthorized.</H1></BODY> </HTML>
Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed Error: Parse error, request:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit ional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <HTML> <HEAD> <TITLE>Error</TITLE> <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'> </HEAD> <BODY><H1>401 Unauthorized.</H1></BODY> </HTML>
I think that aside from the 401 these lines may be of interest as well: Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed ThreadHost::Thread() unexpected exception:clCreateKernel call failed Willing to pay 1 Block (5 offerings) to the one that can help me get it running.
|
|
|
|
Benezivas
|
|
January 11, 2014, 06:46:57 PM Last edit: January 11, 2014, 09:26:43 PM by Benezivas |
|
Willing to pay 1 Block (5 offerings) to the one that can help me get it running.
Raising the reward to 2 blocks, see above. EDIT: Found the fix myself. It turns out that I shouldn't have openened the wallet with . Duh.
|
|
|
|
renegadepcsolutions
Full Member
Offline
Activity: 182
Merit: 100
Yeah... I mined your mom last night.
|
|
January 12, 2014, 08:23:41 PM |
|
You know... after having some issues with your program here... as well as an issue that you want to take 1/8th of everyone's work... I decided to pull this apart.
"This program cannot be run in DOS mode"
Really? A DOS program that can't be run in DOS? Silly me...
"Smolen.Royalty: 1/8....main loop...Exit!"
Explain this one... ^ ^ I can understand the royalty, because you were up-front about it...
But I've ran this program on my quarkcoinQT server for 24 hours, and didn't get a single quark out of it on my 7870 pitcairn. On top of that... to be quite honest... it's more profitable to mine with a good i7 or xeon cpu than it is with any gpu due to power usage.
|
Those who make peaceful revolution impossible will make violent revolution inevitable. -John F. Kennedy
|
|
|
smolen (OP)
|
|
January 13, 2014, 11:35:30 PM |
|
You know... after having some issues with your program here... as well as an issue that you want to take 1/8th of everyone's work... I decided to pull this apart.
"This program cannot be run in DOS mode"
Really? A DOS program that can't be run in DOS? Silly me...
I deserve a better cracker for my masterpiece, this one even don't know about PE format! Seriously, if you want to hack away 10% royalty, you have to hack GPU code, not only x86 one.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
January 13, 2014, 11:59:41 PM |
|
ok, so this is the output I get w/ debug. C:\fzn>smelter --debug -o http://127.0.0.1:18450 -u frozenrpc -p x -w 64 -g 1 -i Building from binary done: quark0td_Cypress_W64.bin 1:0 A:0 R:0 HW:0 Speed: 2.72GH/s 5s: 5.28GH/s NONCE overflow Thank you for the report - and sorry, I don't know what's going on. The speed is unbelievably good, most probably the compiled Quark kernel is empty, it makes no real calculation and reports hashes as done without actual hashing. So, wait and may be give Smelter next try when it will be open-sourced
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
January 14, 2014, 12:15:57 AM |
|
No worries. and I agree, the speed was phenomenal. it would make solo mining easy. lol. I think I'll try dropping the intensity down to likr 3 and work up from there
|
|
|
|
smolen (OP)
|
|
January 14, 2014, 12:26:04 AM |
|
No worries. and I agree, the speed was phenomenal. it would make solo mining easy. lol. I think I'll try dropping the intensity down to likr 3 and work up from there
Not sure if it helps, most probably something went wrong when I compiled OpenCL sources into binary blob. Just in case, what version of drivers do you have installed?
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
January 14, 2014, 01:04:29 AM |
|
Anyone have hash rate results for a 7770 card?
|
|
|
|
renegadepcsolutions
Full Member
Offline
Activity: 182
Merit: 100
Yeah... I mined your mom last night.
|
|
January 14, 2014, 08:13:31 AM |
|
You know... after having some issues with your program here... as well as an issue that you want to take 1/8th of everyone's work... I decided to pull this apart.
"This program cannot be run in DOS mode"
Really? A DOS program that can't be run in DOS? Silly me...
I deserve a better cracker for my masterpiece, this one even don't know about PE format! Seriously, if you want to hack away 10% royalty, you have to hack GPU code, not only x86 one. Thought I'd catch your attention with that one. Nah, I'm not gonna hack your 10% away. Hell... if you can get one up and running that supports stratum pools... I'll toss you 10 QRK for every 50 QRK that I mine for the next 3 months.
|
Those who make peaceful revolution impossible will make violent revolution inevitable. -John F. Kennedy
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
January 14, 2014, 08:41:10 AM |
|
No worries. and I agree, the speed was phenomenal. it would make solo mining easy. lol. I think I'll try dropping the intensity down to likr 3 and work up from there
Not sure if it helps, most probably something went wrong when I compiled OpenCL sources into binary blob. Just in case, what version of drivers do you have installed? I"m running 12.8
|
|
|
|
soulmann
|
|
January 14, 2014, 08:50:01 AM |
|
- make new closed-source release for PTS
Will it be faster then the existed one?
|
|
|
|
smolen (OP)
|
|
January 14, 2014, 07:55:58 PM |
|
I"m running 12.8
Thank you, It gives a hope that the error is on AMD side I used 13.x to compile the kernel, may be the support for old version is rusted. Well, let's postpone bughunting a bit. - make new closed-source release for PTS
Will it be faster then the existed one? That depends on the exact meaning of the word 'will' If it will be superior to the existing miners, it will not be released so there will be no Smelter for PTS Hell... if you can get one up and running that supports stratum pools... I'll toss you 10 QRK for every 50 QRK that I mine for the next 3 months. Quark mining is almost over, if you really want to reward me - wait for the sources and invent better trick around Groestl hash, I'd like to see how this beast can be tamed
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
January 14, 2014, 08:40:27 PM |
|
I can update my drivers easy enough, and if things don't work, roll back to 12.8. that's not an issue.
|
|
|
|
smolen (OP)
|
|
January 14, 2014, 09:22:58 PM |
|
I can update my drivers easy enough, and if things don't work, roll back to 12.8. that's not an issue.
TL;DR - just wait It's not going to help - the problem is most probably caused by drivers on my PC, where I did compile OpenCL sources into binary blobs. The right way to fix it (at least, to try to fix) would be releasing kernel sources and compiling it on your PC, with your drivers. I want to withhold some parts of the kernel (mostly related to copy-protection), to do it I have to do some programming and testing and that is postponed until arrival of new GPU.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
January 15, 2014, 02:44:14 AM |
|
No worries. I have no idea how to compile things anyway.
|
|
|
|
sameev29
|
|
January 15, 2014, 03:06:16 AM |
|
Can we mine any cpu coin with this?
|
|
|
|
tucksmcgucks
Newbie
Offline
Activity: 56
Merit: 0
|
|
January 16, 2014, 03:20:51 AM |
|
Can we mine any cpu coin with this?
You can mine any CPU coin that uses quark algorithm. i.e. PRT, Offerings, ATOM, FRQ, etc..
|
|
|
|
sameev29
|
|
January 16, 2014, 03:26:45 AM |
|
Profit estimation per 1 MH/s for Quark and Securecoin: QRK:1000000*60*60*24*128*0.00000110/16777216/124 = 0.00584 BTC/day SRC:1000000*60*60*24*5*0.00041263/16777216/1462 = 0.00726 BTC/day
How much accurate is this?
|
|
|
|
verloren
|
|
January 16, 2014, 06:39:31 AM |
|
Profit estimation per 1 MH/s for Quark and Securecoin: QRK:1000000*60*60*24*128*0.00000110/16777216/124 = 0.00584 BTC/day SRC:1000000*60*60*24*5*0.00041263/16777216/1462 = 0.00726 BTC/day
How much accurate is this? That's from October. Profit is much less now because of increased hash rates on QRK and SRC.
|
|
|
|
chowdan
|
|
January 17, 2014, 02:27:24 AM |
|
something is very wrong with your miner i thought its supposed to take only 12.5% as fee and not all the coins ?? mined a coin where a block is 50k reward. here is what is left 6.1k is version1 posted from OP and v2 is 6.5k It most likely unable to send the actual amount because it was designed for Quark and not Particle. So you only get the donation amount and not the full amount How to solve the problem I'm curious how you are mining through PRT wallet? Shouldnt it display the transaction as a incoming transaction icon and not mining icons?
|
|
|
|
sameev29
|
|
January 17, 2014, 02:30:35 AM |
|
Profit estimation per 1 MH/s for Quark and Securecoin: QRK:1000000*60*60*24*128*0.00000110/16777216/124 = 0.00584 BTC/day SRC:1000000*60*60*24*5*0.00041263/16777216/1462 = 0.00726 BTC/day
How much accurate is this? That's from October. Profit is much less now because of increased hash rates on QRK and SRC. How many SRC and QRK can we generate at current difficulty with 1MH/sec?
|
|
|
|
verloren
|
|
January 17, 2014, 03:39:54 AM |
|
Profit estimation per 1 MH/s for Quark and Securecoin: QRK:1000000*60*60*24*128*0.00000110/16777216/124 = 0.00584 BTC/day SRC:1000000*60*60*24*5*0.00041263/16777216/1462 = 0.00726 BTC/day
How much accurate is this? That's from October. Profit is much less now because of increased hash rates on QRK and SRC. How many SRC and QRK can we generate at current difficulty with 1MH/sec? Will average 7QRK or 0.8SRC a day. Since Smelter doesn't work with pools, it averages out to: ~2 QRK blocks a day. 1 block on SRC every 5 days
|
|
|
|
Pk9499
Newbie
Offline
Activity: 22
Merit: 0
|
|
January 17, 2014, 09:06:56 AM |
|
I'm down to 3.6 QRK for every block that smelter finds now
|
|
|
|
verloren
|
|
January 19, 2014, 11:45:33 AM |
|
I'm down to 3.6 QRK for every block that smelter finds now I forgot to take into account the 10% royalty..
|
|
|
|
HencHMaN
Newbie
Offline
Activity: 48
Merit: 0
|
|
January 20, 2014, 10:19:43 AM |
|
Anyone have hash rate results for a 7770 card?
Im have 500 khash
|
|
|
|
BitCoinPokerBro
|
|
January 20, 2014, 12:33:24 PM |
|
Can someone make a tutorial for tech illiterate types? I know it's difficult, but surely someone can dumb themselves down for a minute or two to help.
|
|
|
|
Drewdy
Newbie
Offline
Activity: 39
Merit: 0
|
|
January 21, 2014, 09:57:00 PM |
|
Any chance you have a version ready for beta testing that supports the r9-290x cards? PM me if you do. Thanks.
|
|
|
|
axiong
Newbie
Offline
Activity: 1
Merit: 0
|
|
January 22, 2014, 07:25:58 AM |
|
Any chance you have a version ready for beta testing that supports the r9-290x cards? PM me if you do. Thanks.
|
|
|
|
pyromaniac
|
|
January 22, 2014, 02:51:56 PM |
|
Anyone have hash rate results for a 7770 card?
Im have 500 khash It's much slower, than my CPU.
|
|
|
|
ycui7
Newbie
Offline
Activity: 3
Merit: 0
|
|
January 23, 2014, 01:20:10 AM |
|
I'm trying to mine frozen w/ a 5850, smelter crashes almost immediately. Is this a compatible card?
5850 is supported. Try --debug switch, debug output can give an idea what's wrong. Just in case, the list of currently supported GPUs: const char *arrDevices[] = { "Cypress", // 5830, 5850, 5870 "Cayman", // Radeon HD 6900: Radeon HD 6950 and Radeon HD 6970 "Barts", // HD 6850 HD 6870 "Turks", // HD 6570 and HD 6670, 7510, 7570, 7670 "Juniper", // 6770 and 6750, 5750, 5770 "Tahiti", // 7870, 7950, 7970 "Pitcairn", // 7850, 7870 "Capeverde", // 7730, 7750, 7770 "Bonaire", // 7790 0 };
You can add 5770 into you list. I tested it, and it works great. I get 1.4 MH/s on a 5770!
|
|
|
|
smolen (OP)
|
|
January 24, 2014, 04:51:08 AM |
|
My short term plans are: - buy new GPU
Done, finally I'm returning to the project, expect open-source version really soon now.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
3yM
Newbie
Offline
Activity: 45
Merit: 0
|
|
January 24, 2014, 12:19:30 PM |
|
My short term plans are: - buy new GPU
Done, finally I'm returning to the project, expect open-source version really soon now. Please make version, compatible with PRT (Particle Coin) & pools... We really need R2xx support too, please!
|
|
|
|
Buratino
Legendary
Offline
Activity: 1151
Merit: 1003
|
|
January 27, 2014, 04:16:23 AM |
|
My short term plans are: - buy new GPU
Done, finally I'm returning to the project, expect open-source version really soon now. It would be great, if you add anime algo (modified quark algo) support to your project. Animecoin is here: https://bitcointalk.org/index.php?topic=423339.0
|
|
|
|
Kohan
Newbie
Offline
Activity: 17
Merit: 0
|
|
January 27, 2014, 07:26:53 AM |
|
My short term plans are: - buy new GPU
Done, finally I'm returning to the project, expect open-source version really soon now. What video card did you end up getting. With the open source there should be nvida support if someone codes it in?
|
|
|
|
dE_logics
|
|
January 28, 2014, 03:27:39 PM |
|
I seriously doubt a single GPU can can compute 9 rounds of hashing at a time.
I mean, if you got a single algo, yeah, I get it, but 9 chained? I doubt.
|
|
|
|
apple_talk
Sr. Member
Offline
Activity: 473
Merit: 250
"Proof-of-Asset Protocol"
|
|
January 29, 2014, 07:33:59 AM |
|
My short term plans are: - buy new GPU
Done, finally I'm returning to the project, expect open-source version really soon now. Smolen, I don't mind if you want to increase share to 25%. Hope to see R9 2XX (290X) support in the coming one. Please PM me I don't mind testing.
|
|
|
|
murdick
Newbie
Offline
Activity: 1
Merit: 0
|
|
January 30, 2014, 03:15:39 PM |
|
My short term plans are: - buy new GPU
Done, finally I'm returning to the project, expect open-source version really soon now. Great! Since everyone else is sending you wishlish items, I thought I'd add stratum support. Would love to get this on to a pool. 1.5Mh/s on a 5770 is a good start. Thanks for all your hard work!
|
|
|
|
zerodrama
|
|
January 30, 2014, 03:26:29 PM |
|
I finally got rid from the last pieces of GPL'ed code in my own miner and can now release it to the public. This miner is not free, a royalty of 1/8 (12.5%) is deducted from every mined block. (Coinbase transaction have 2 outputs, so I get my fee at exactly the same moment you'll get your coins). Download link:https://mega.co.nz/#!QMMEFBYY!AgH4OGrKaRHkRjiVfVXXzxBHbTIlgdD5o3ak2VFuU78 Edit quarkcoin.conf (or Offering.conf, or securecoin.conf) file of your wallet to enable solo-mining, put your own username and password there: listen=1 rpcallowip=127.0.0.1 rpcuser=username rpcpassword=password rpcport=8772 server=1 Edit sm.cmd from downloaded archive, put your own username, password and wallet address there: smelter -o http://127.0.0.1:8772 -u username -p password -a QNiGvoYctyMwzV1ZjNbjhEoKdQVzFKsmVw This is pre-alpha software, expect all kinds of bugs to be found, don't hesitate to report it here! NVidia and old/rare AMD cards are not supported. Please, give me some time to iron out bugs Let me just say that I, resent, having a permanent relationship with the producer of a tool I use. This is an obsolete release model. Consider this the research phase. Followed by the release phase. I have no problem donating and even contributing to a project.
|
EASY CALCULATION FOR TRADES: 1 Million is 1x10e6. 1 Satoshi is 1x10e-8. 1 M sat is 1x10e-2. 100 M sat is 1. If 1 herpcoin = 100 derptoshi then 1 M herpcoin @ 001 derptoshi = 0.01 derpcoin, 1 M herpcoin @ 100 derptoshi = 1.00 derpcoin Post Scarcity Economics thread https://bitcointalk.org/index.php?topic=3773185
|
|
|
Nataly2014
Newbie
Offline
Activity: 40
Merit: 0
|
|
January 30, 2014, 07:32:36 PM |
|
Subscribe to the previous post! Many peoples haved video cards r9 290x and would be grateful for your work! 25% of your profit from our work - it's very good, because we are many! Awaiting your news! Sincerely, Natalie!!!
|
|
|
|
Nataly2014
Newbie
Offline
Activity: 40
Merit: 0
|
|
February 01, 2014, 09:12:41 PM |
|
Hi - Smolen! Where are you lost, what you have news for us?
|
|
|
|
angel.sky
Newbie
Offline
Activity: 1
Merit: 0
|
|
February 01, 2014, 11:32:56 PM |
|
I'm trying to mine frozen w/ a 5850, smelter crashes almost immediately. Is this a compatible card?
5850 is supported. Try --debug switch, debug output can give an idea what's wrong. Just in case, the list of currently supported GPUs: const char *arrDevices[] = { "Cypress", // 5830, 5850, 5870 "Cayman", // Radeon HD 6900: Radeon HD 6950 and Radeon HD 6970 "Barts", // HD 6850 HD 6870 "Turks", // HD 6570 and HD 6670, 7510, 7570, 7670 "Juniper", // 6770 and 6750, 5750, 5770 "Tahiti", // 7870, 7950, 7970 "Pitcairn", // 7850, 7870 "Capeverde", // 7730, 7750, 7770 "Bonaire", // 7790 0 };
Hi Smolen. In you list present card 7790 but my 7790 card not worked correctly. Is there any hope to work in the future? Or what am I doing wrong? smelter -o http://127.0.0.1:8385 -u user -p password -w 64 -g 1 -i 200 -a ______________ --debug smelter v0.3 (c) Smolen Royalty: 1/10 Pool::Start() Pool::ThreadFunc() started nPlatforms==2 Platform #0 id:00276D90 CL_PLATFORM_PROFILE:FULL_PROFILE CL_PLATFORM_VERSION:OpenCL 1.1 CL_PLATFORM_NAME:Intel(R) OpenCL CL_PLATFORM_VENDOR:Intel(R) Corporation CL_PLATFORM_EXTENSIONS:cl_khr_fp64 cl_khr_icd cl_khr_global_int32_base_atomics c l_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local _int32_extended_atomics cl_khr_byte_addressable_store cl_intel_printf cl_ext_dev ice_fission cl_intel_exec_by_local_thread cl_khr_gl_sharing cl_intel_dx9_media_s haring Platform is not supported! Platform #1 id:53D8B864 CL_PLATFORM_PROFILE:FULL_PROFILE CL_PLATFORM_VERSION:OpenCL 1.2 AMD-APP (1124.2) CL_PLATFORM_NAME:AMD Accelerated Parallel Processing CL_PLATFORM_VENDOR:Advanced Micro Devices, Inc. CL_PLATFORM_EXTENSIONS:cl_khr_icd cl_amd_event_callback cl_amd_offline_devices c l_khr_d3d10_sharing cl_khr_d3d11_sharing # of devices: 1 Device #0 id==023C84D8 CL_DEVICE_NAME:Bonaire CL_DEVICE_VENDOR:Advanced Micro Devices, Inc. CL_DEVICE_VERSION:OpenCL 1.2 AMD-APP (1124.2) CL_DRIVER_VERSION:1124.2 (VM) CL_DEVICE_ADDRESS_BITS:32 CL_DEVICE_AVAILABLE:1 CL_DEVICE_COMPILER_AVAILABLE:1 CL_DEVICE_ENDIAN_LITTLE:1 CL_DEVICE_ERROR_CORRECTION_SUPPORT:0 CL_DEVICE_EXTENSIONS:cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_at omics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_kh r_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_a tomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl _ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d10_sharing cl_amd_c1x _atomics CL_DEVICE_GLOBAL_MEM_CACHE_SIZE:16384 CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE:64 CL_DEVICE_GLOBAL_MEM_SIZE:1073741824 CL_DEVICE_LOCAL_MEM_SIZE:32768 CL_DEVICE_MAX_CLOCK_FREQUENCY:1050 CL_DEVICE_MAX_COMPUTE_UNITS:14 CL_DEVICE_MAX_CONSTANT_ARGS:8 CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:65536 CL_DEVICE_MAX_MEM_ALLOC_SIZE:804257792 CL_DEVICE_MAX_PARAMETER_SIZE:1024 CL_DEVICE_MAX_WORK_GROUP_SIZE:256 CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:3 CL_DEVICE_MEM_BASE_ADDR_ALIGN:2048
No binary found: quark0td_Bonaire_W64.bin Failed to read source file: ./quark0td/kernel/kernelQuark.cl SummonProgram failed main loop ThreadHost::Thread() started ThreadHost::Thread() unexpected exception:clCreateKernel call failed ThreadHost::Thread() finished
|
|
|
|
Justin00
Legendary
Offline
Activity: 910
Merit: 1000
★YoBit.Net★ 350+ Coins Exchange & Dice
|
|
February 02, 2014, 11:24:10 AM |
|
Im getting 415kh/s with my turks based HD 6720 (laptop.. so shouldnt really be mining) but working well.. i think.. not familiar with mining.. but this looks ok yeah ?? [2014-02-02 22:24:13] 1:4 A:0 R:0 HW:0 Speed: 410.40KH/s 5s: 417.59KH/s [2014-02-02 22:24:18] 1:4 A:0 R:0 HW:0 Speed: 410.61KH/s 5s: 417.01KH/s [2014-02-02 22:24:23] 1:4 A:0 R:0 HW:0 Speed: 410.82KH/s 5s: 417.34KH/s [2014-02-02 22:24:28] 1:4 A:0 R:0 HW:0 Speed: 411.02KH/s 5s: 417.51KH/s *edit* what does the I mean in the output ? its changed to 8 now.. seems to increase slowly ?? just one thing.. is their a way to lower the intensity.. its 100% gpu load.. but the bad 100% that freezes pc sometimes.. as oposed to the lower end of 100% that doesnt.. ? tks heaps
|
|
|
|
Justin00
Legendary
Offline
Activity: 910
Merit: 1000
★YoBit.Net★ 350+ Coins Exchange & Dice
|
|
February 02, 2014, 11:31:52 AM |
|
oic there is -w -g -i when i try those options it says -g and -i unknown options if i put them in the middle.. and if i put optins at the starts it says -w -g -i unknown.. im running version 0.1 from the OP ?
thanks
|
|
|
|
verloren
|
|
February 03, 2014, 02:28:17 AM |
|
Im getting 415kh/s with my turks based HD 6720 (laptop.. so shouldnt really be mining) but working well.. i think.. not familiar with mining.. but this looks ok yeah ?? [2014-02-02 22:24:13] 1:4 A:0 R:0 HW:0 Speed: 410.40KH/s 5s: 417.59KH/s [2014-02-02 22:24:18] 1:4 A:0 R:0 HW:0 Speed: 410.61KH/s 5s: 417.01KH/s [2014-02-02 22:24:23] 1:4 A:0 R:0 HW:0 Speed: 410.82KH/s 5s: 417.34KH/s [2014-02-02 22:24:28] 1:4 A:0 R:0 HW:0 Speed: 411.02KH/s 5s: 417.51KH/s *edit* what does the I mean in the output ? its changed to 8 now.. seems to increase slowly ?? just one thing.. is their a way to lower the intensity.. its 100% gpu load.. but the bad 100% that freezes pc sometimes.. as oposed to the lower end of 100% that doesnt.. ? tks heaps The 1:4 or 1:8 means how many blocks were solved by the program. However, it isn't a guarantee that the block is yours since it could be an orphan. Change -i in the .bat to reduce the load on the GPU.
|
|
|
|
Justin00
Legendary
Offline
Activity: 910
Merit: 1000
★YoBit.Net★ 350+ Coins Exchange & Dice
|
|
February 03, 2014, 09:03:25 AM |
|
thanks for that. I found the newer version 0.3 on page 7 or 8 or something.. and that has the options in it.. only thing is that version wont run. i have a turks card so should be supported plus it works on the first version. did a debug and it connects just fine but doesnt do anything or report anything wierd except the normal cant find kernel which v0.1 also reported.
|
|
|
|
hedgy73
Legendary
Offline
Activity: 1414
Merit: 1077
|
|
February 03, 2014, 09:29:48 AM |
|
Does anyone know if 03a.zip is the latest version and if it's still for solo mining and not pool?
|
|
|
|
peteycamey
Legendary
Offline
Activity: 1184
Merit: 1017
|
|
February 03, 2014, 11:41:30 AM |
|
reserve
|
|
|
|
gizzig
|
|
February 03, 2014, 08:14:08 PM Last edit: February 03, 2014, 08:28:15 PM by gizzig |
|
The link http://rghost.net/49940688 not work Please, where I can get version 0.3 or 0.3a ? Thanks
|
|
|
|
|
bitspill
Legendary
Offline
Activity: 2058
Merit: 1015
|
|
February 06, 2014, 03:27:17 PM |
|
Or if you wish to support bitcoin services http://bitfetch.com/ "Anonymous remote torrent downloading"
|
|
|
|
nusduq
Newbie
Offline
Activity: 8
Merit: 0
|
|
February 10, 2014, 04:39:02 PM |
|
Please add command "-d" to choose device
|
|
|
|
alicea
|
|
February 15, 2014, 09:30:03 PM |
|
Download link:https://mega.co.nz/#!QMMEFBYY!AgH4OGrKaRHkRjiVfVXXzxBHbTIlgdD5o3ak2VFuU78
This is an executable for windows, are there sources or binaries for other operating systems anywhere?
|
|
|
|
Wubbllez
Member
Offline
Activity: 75
Merit: 10
|
|
February 19, 2014, 03:44:59 AM |
|
Download link:https://mega.co.nz/#!QMMEFBYY!AgH4OGrKaRHkRjiVfVXXzxBHbTIlgdD5o3ak2VFuU78
This is an executable for windows, are there sources or binaries for other operating systems anywhere? its still closed source.
|
|
|
|
alicea
|
|
February 21, 2014, 01:28:12 PM |
|
Download link:https://mega.co.nz/#!QMMEFBYY!AgH4OGrKaRHkRjiVfVXXzxBHbTIlgdD5o3ak2VFuU78
This is an executable for windows, are there sources or binaries for other operating systems anywhere? its still closed source. I don't mind if it's closed source, but I would like binaries for Ubuntu/Mint
|
|
|
|
dE_logics
|
|
February 21, 2014, 03:39:53 PM |
|
You guys are hoping too much.
This's practically not possible. The 3 random rounds require decision making, making the algo unsuitable for GPU computation. Ever wondered why your OS doesn't run on GPU? Or Apache doesn't run on GPU?
It's the same reason as Primecoin's algo.
There can be a hybrid though. Not sure.
|
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
February 21, 2014, 05:32:21 PM |
|
You guys are hoping too much.
This's practically not possible. The 3 random rounds require decision making, making the algo unsuitable for GPU computation. Ever wondered why your OS doesn't run on GPU? Or Apache doesn't run on GPU?
It's the same reason as Primecoin's algo.
There can be a hybrid though. Not sure.
What are they hoping about? Smelter works like a hot damn.
|
|
|
|
isaevski
|
|
February 26, 2014, 07:09:45 PM |
|
solo only?
|
|
|
|
dddbtc
|
|
February 26, 2014, 07:16:09 PM |
|
solo only?
Yes unfortunately. I hope the author publicly updates this soft. otherwise, I wouldn't be opposed to organizing a bounty for private or public release
|
|
|
|
|
rmhuntley
Sr. Member
Offline
Activity: 980
Merit: 255
HALA MADRID
|
|
February 28, 2014, 02:19:48 AM |
|
Anyone know if this is compatible w/ the 5850 yet?
|
|
|
|
infinitalus
Newbie
Offline
Activity: 13
Merit: 0
|
|
March 10, 2014, 04:21:47 AM |
|
Lol looks like video card better spent on scrypt. My i7 4930k oced to 4.2ghz runs at 1250 khs using 11/12 threads to save 1 thread from bottlenecking the rest of my gpus.. but is water cooled runs stable at 70c or less.
|
|
|
|
Hilux74
Legendary
Offline
Activity: 912
Merit: 1000
|
|
March 10, 2014, 05:48:21 AM |
|
Lol looks like video card better spent on scrypt. My i7 4930k oced to 4.2ghz runs at 1250 khs using 11/12 threads to save 1 thread from bottlenecking the rest of my gpus.. but is water cooled runs stable at 70c or less.
FAIL Lol each of my $50 Radeon 5830s mines Quark related coins at 2200 khs and is aircooled and runs at 53oC and less than 100watts. Who puts an overclocked and watercooled i7 4930k in a mining rig lol.
|
|
|
|
csa1234
Full Member
Offline
Activity: 286
Merit: 100
O2-Protocol.com Carbon Offset DeFi
|
|
March 22, 2014, 05:45:25 AM |
|
Can this work on Primecoin?
|
O2-Protocol.com Carbon Offset DeFi
|
|
|
ddwy758
|
|
March 22, 2014, 12:10:54 PM |
|
China issued new currency QQ group 375065944
|
|
|
|
csa1234
Full Member
Offline
Activity: 286
Merit: 100
O2-Protocol.com Carbon Offset DeFi
|
|
March 22, 2014, 02:31:43 PM |
|
Im getting a strange message: "Share hash above the target"
I have been mining with smelter for the past 7 hours, and there was zero Accepted work A:0 R:0 HW:0
Is there something wrong here?
|
O2-Protocol.com Carbon Offset DeFi
|
|
|
verloren
|
|
March 23, 2014, 04:21:34 AM |
|
Can this work on Primecoin? Doesn't work on XPM. No idea on the share hash above the target question.
|
|
|
|
cbuchner1
|
|
March 31, 2014, 04:28:51 PM |
|
You guys are hoping too much.
This's practically not possible. The 3 random rounds require decision making, making the algo unsuitable for GPU computation. Ever wondered why your OS doesn't run on GPU? Or Apache doesn't run on GPU?
the 3 rounds of (pseudo)random 2-way divergent branching only require a bit of stream compaction, followed by sequential execution of each of the two branches. it's no obstacle for a skilled GPU programmer. Christian
|
|
|
|
smolen (OP)
|
|
October 22, 2014, 01:25:43 AM |
|
I'm publishing OpenCL code of Smelter - let's hope it will find new home in some other miner. Blake: #define M0 hash64[ 0] #define M1 hash64[ 1] #define M2 hash64[ 2] #define M3 hash64[ 3] #define M4 hash64[ 4] #define M5 hash64[ 5] #define M6 hash64[ 6] #define M7 hash64[ 7]
M0 = BSWAP64(hash64[ 0]); M1 = BSWAP64(hash64[ 1]); M2 = BSWAP64(hash64[ 2]); M3 = BSWAP64(hash64[ 3]); M4 = BSWAP64(hash64[ 4]); M5 = BSWAP64(hash64[ 5]); M6 = BSWAP64(hash64[ 6]); M7 = BSWAP64(hash64[ 7]);
V0 = 0xbb1838e7a1a34bd9ULL + (M0 ^ 0x13198A2E03707344ULL); VC = ROTR64(0x452821E638D01177ULL ^ V0, 32); V8 = 0x243F6A8885A308D3ULL + VC; V4 = ROTR64(0x510E527FADE682D1ULL ^ V8, 25); V0 += V4 + (M1 ^ 0x243F6A8885A308D3ULL); VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 = 0x566d1711b009135aULL + (M2 ^ 0x082EFA98EC4E6C89ULL); VD = ROTR64(0xBE5466CF34E90E6CULL ^ V1, 32); V9 = 0x13198A2E03707344ULL + VD; V5 = ROTR64(0x9B05688C2B3E6C1FULL ^ V9, 25); V1 += V5 + (M3 ^ 0xA4093822299F31D0ULL); VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 = 0x5bf2cd1ef9d6b596ULL + (M4 ^ 0xBE5466CF34E90C6CULL); VE = ROTR64(0xC0AC29B7C97C50DDULL ^ V2, 32); VA = 0xA4093822299F31D0ULL + VE; V6 = ROTR64(0x1F83D9ABFB41BD6BULL ^ VA, 25); V2 += V6 + (M5 ^ 0x452821E638D01377ULL); VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 = 0x0130c253729b586aULL + (M6 ^ 0x3F84D5B5B5470917ULL); VF = ROTR64(0x3F84D5B5B5470917ULL ^ V3, 32); VB = 0x082EFA98EC4E6C89ULL + VF; V7 = ROTR64(0x5BE0CD19137E2179ULL ^ VB, 25); V3 += V7 + (M7 ^ 0xC0AC29B7C97C50DDULL); VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + 0x51310BA698DFB5ACULL; VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + 0x9216D5D98979FB1BULL; VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + 0xB8E1AFED6A267E96ULL; VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + 0x2FFD72DBD01ADFB7ULL; VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + 0x24A19947B3916CF7ULL; VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + 0xBA7C9045F12C7F98ULL; VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + 0x636920D871574E69ULL; VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + 0x0801F2E2858EFE16ULL; VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + 0x2FFD72DBD01ADFB7ULL; VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + 0x0801F2E2858EFC16ULL; VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + (M4 ^ 0x9216D5D98979FB1BULL); VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + 0xC52821E638D01377ULL; VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + 0x636920D871574E69ULL; VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + 0xD1310BA698DFB7ACULL; VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + 0xC0AC29B7C97C50DCULL; VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + (M6 ^ 0x24A19947B3916CF7ULL); VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + (M1 ^ 0xBA7C9045F12C7F99ULL); VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + 0x13198A2E03707344ULL; VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + (M0 ^ 0xA4093822299F31D0ULL); VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + (M2 ^ 0x243F6A8885A308D3ULL); VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + 0x3F84D5B5B5470917ULL; VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + (M7 ^ 0xB8E1AFED6A267E96ULL); VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + (M5 ^ 0x082EFA98EC4E6C89ULL); VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + (M3 ^ 0xBE5466CF34E90C6CULL); VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + 0x9216D5D98979FB1BULL; VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + 0x38E1AFED6A267E96ULL; VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + 0x243F6A8885A308D3ULL; VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + (M0 ^ 0xBA7C9045F12C7F99ULL); VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + (M5 ^ 0xA4093822299F31D0ULL); VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + (M2 ^ 0xBE5466CF34E90C6CULL); VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + 0x24A19947B3916EF7ULL; VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + 0x636920D871574E68ULL; VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + 0x0801F2E2858EFC16ULL; VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + 0x2FFD72DBD01ADFB7ULL; VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + (M3 ^ 0xC0AC29B7C97C50DDULL); VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + (M6 ^ 0x082EFA98EC4E6C89ULL); VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + (M7 ^ 0x13198A2E03707344ULL); VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + (M1 ^ 0x3F84D5B5B5470917ULL); VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + 0x452821E638D01377ULL; VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + (M4 ^ 0xD1310BA698DFB5ACULL); VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + (M7 ^ 0xD1310BA698DFB5ACULL); VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + 0x3F84D5B5B5470917ULL; VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + (M3 ^ 0x13198A2E03707344ULL); VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + (M1 ^ 0x082EFA98EC4E6C89ULL); VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + 0xBA7C9045F12C7F98ULL; VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + 0x24A19947B3916CF7ULL; VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + 0x0801F2E2858EFC16ULL; VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + 0xB8E1AFED6A267E96ULL; VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + (M2 ^ 0xC0AC29B7C97C50DDULL); VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + (M6 ^ 0xA4093822299F31D0ULL); VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + (M5 ^ 0x2FFD72DBD01ADFB7ULL); VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + 0xBE5466CF34E90C6CULL; VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + (M4 ^ 0x243F6A8885A308D3ULL); VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + (M0 ^ 0x452821E638D01377ULL); VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + 0x9216D5D98979F91BULL; VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + 0xE36920D871574E69ULL; VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + 0x243F6A8885A308D3ULL; VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + (M0 ^ 0xD1310BA698DFB5ACULL); VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + (M5 ^ 0x3F84D5B5B5470917ULL); VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + (M7 ^ 0xBE5466CF34E90C6CULL); VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + (M2 ^ 0x452821E638D01377ULL); VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + (M4 ^ 0xA4093822299F31D0ULL); VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + 0x636920D871574E69ULL; VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + 0x2FFD72DBD01ADDB7ULL; VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + 0x13198A2E03707344ULL; VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + (M1 ^ 0x0801F2E2858EFC16ULL); VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + 0xBA7C9045F12C7F99ULL; VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + 0xB8E1AFED6A267E96ULL; VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + (M6 ^ 0x9216D5D98979FB1BULL); VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + 0x40AC29B7C97C50DDULL; VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + (M3 ^ 0x24A19947B3916CF7ULL); VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + 0x082EFA98EC4E6C88ULL; VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + (M2 ^ 0xBA7C9045F12C7F99ULL); VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + 0xA4093822299F31D0ULL; VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + (M6 ^ 0x2FFD72DBD01ADFB7ULL); VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + 0xC0AC29B7C97C50DDULL; VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + (M0 ^ 0xB8E1AFED6A267E96ULL); VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + 0x243F6A8885A308D3ULL; VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + 0x882EFA98EC4E6C89ULL; VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + (M3 ^ 0x9216D5D98979FB1BULL); VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + (M4 ^ 0x24A19947B3916CF7ULL); VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + 0x452821E638D01376ULL; VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + (M7 ^ 0xBE5466CF34E90C6CULL); VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + (M5 ^ 0x3F84D5B5B5470917ULL); VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + 0x0801F2E2858EFE16ULL; VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + 0x636920D871574E69ULL; VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + (M1 ^ 0xD1310BA698DFB5ACULL); VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + 0x13198A2E03707344ULL; VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + 0xBE5466CF34E90C6CULL; VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + (M5 ^ 0xBA7C9045F12C7F99ULL); VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + (M1 ^ 0x636920D871574E69ULL); VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + 0x13198A2E03707144ULL; VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + 0x24A19947B3916CF7ULL; VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + 0x0801F2E2858EFC17ULL; VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + (M4 ^ 0x2FFD72DBD01ADFB7ULL); VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + 0x452821E638D01377ULL; VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + (M0 ^ 0x3F84D5B5B5470917ULL); VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + (M7 ^ 0x243F6A8885A308D3ULL); VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + (M6 ^ 0x082EFA98EC4E6C89ULL); VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + (M3 ^ 0xC0AC29B7C97C50DDULL); VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + 0xA4093822299F31D0ULL; VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + (M2 ^ 0xD1310BA698DFB5ACULL); VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + 0x38E1AFED6A267E96ULL; VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + 0x9216D5D98979FB1BULL; VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + 0xB8E1AFED6A267E97ULL; VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + 0x24A19947B3916CF7ULL; VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + (M7 ^ 0x0801F2E2858EFC16ULL); VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + 0x3F84D5B5B5470917ULL; VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + 0x13198A2E03707344ULL; VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + (M1 ^ 0xBA7C9045F12C7F99ULL); VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + (M3 ^ 0xD1310BA698DFB5ACULL); VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + 0x082EFA98EC4E6C89ULL; VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + (M5 ^ 0x243F6A8885A308D3ULL); VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + (M0 ^ 0xBE5466CF34E90C6CULL); VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + 0x452821E638D01177ULL; VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + (M4 ^ 0x636920D871574E69ULL); VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + 0x40AC29B7C97C50DDULL; VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + (M6 ^ 0x9216D5D98979FB1BULL); VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + (M2 ^ 0x2FFD72DBD01ADFB7ULL); VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + 0xA4093822299F31D0ULL; VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + (M6 ^ 0x636920D871574E69ULL); VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + 0xC0AC29B7C97C52DDULL; VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + 0xD1310BA698DFB5ACULL; VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + 0x0801F2E2858EFC16ULL; VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + 0x082EFA98EC4E6C89ULL; VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + (M3 ^ 0xB8E1AFED6A267E96ULL); VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + (M0 ^ 0x9216D5D98979FB1BULL); VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + 0xA43F6A8885A308D3ULL; VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + 0xA4093822299F31D0ULL; VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + (M2 ^ 0xBA7C9045F12C7F99ULL); VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + 0x3F84D5B5B5470916ULL; VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + (M7 ^ 0x24A19947B3916CF7ULL); VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + (M1 ^ 0x452821E638D01377ULL); VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + (M4 ^ 0x13198A2E03707344ULL); VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + 0xBE5466CF34E90C6CULL; VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + (M5 ^ 0x2FFD72DBD01ADFB7ULL); VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + 0xA4093822299F31D0ULL; VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + (M2 ^ 0x2FFD72DBD01ADFB7ULL); VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + 0xC52821E638D01377ULL; VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + (M4 ^ 0x9216D5D98979FB1BULL); VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + (M7 ^ 0xC0AC29B7C97C50DDULL); VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + (M6 ^ 0x3F84D5B5B5470917ULL); VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + (M1 ^ 0xBE5466CF34E90C6CULL); VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + (M5 ^ 0x13198A2E03707344ULL); VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + 0xB8E1AFED6A267C96ULL; VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + 0x636920D871574E69ULL; VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + 0x0801F2E2858EFC16ULL; VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + 0xD1310BA698DFB5ACULL; VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + (M3 ^ 0xBA7C9045F12C7F99ULL); VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + 0x082EFA98EC4E6C89ULL; VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + 0x243F6A8885A308D2ULL; VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + (M0 ^ 0x24A19947B3916CF7ULL); VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + (M0 ^ 0x13198A2E03707344ULL); VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + (M1 ^ 0x243F6A8885A308D3ULL); VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + (M2 ^ 0x082EFA98EC4E6C89ULL); VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + (M3 ^ 0xA4093822299F31D0ULL); VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + (M4 ^ 0xBE5466CF34E90C6CULL); VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + (M5 ^ 0x452821E638D01377ULL); VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + (M6 ^ 0x3F84D5B5B5470917ULL); VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + (M7 ^ 0xC0AC29B7C97C50DDULL); VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + 0x51310BA698DFB5ACULL; VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + 0x9216D5D98979FB1BULL; VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + 0xB8E1AFED6A267E96ULL; VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + 0x2FFD72DBD01ADFB7ULL; VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + 0x24A19947B3916CF7ULL; VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + 0xBA7C9045F12C7F98ULL; VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + 0x636920D871574E69ULL; VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + 0x0801F2E2858EFE16ULL; VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + 0x2FFD72DBD01ADFB7ULL; VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + 0x0801F2E2858EFC16ULL; VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + (M4 ^ 0x9216D5D98979FB1BULL); VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + 0xC52821E638D01377ULL; VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + 0x636920D871574E69ULL; VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + 0xD1310BA698DFB7ACULL; VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + 0xC0AC29B7C97C50DCULL; VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + (M6 ^ 0x24A19947B3916CF7ULL); VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + (M1 ^ 0xBA7C9045F12C7F99ULL); VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + 0x13198A2E03707344ULL; VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + (M0 ^ 0xA4093822299F31D0ULL); VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + (M2 ^ 0x243F6A8885A308D3ULL); VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + 0x3F84D5B5B5470917ULL; VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + (M7 ^ 0xB8E1AFED6A267E96ULL); VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + (M5 ^ 0x082EFA98EC4E6C89ULL); VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + (M3 ^ 0xBE5466CF34E90C6CULL); VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + 0x9216D5D98979FB1BULL; VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + 0x38E1AFED6A267E96ULL; VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + 0x243F6A8885A308D3ULL; VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + (M0 ^ 0xBA7C9045F12C7F99ULL); VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + (M5 ^ 0xA4093822299F31D0ULL); VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + (M2 ^ 0xBE5466CF34E90C6CULL); VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + 0x24A19947B3916EF7ULL; VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + 0x636920D871574E68ULL; VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + 0x0801F2E2858EFC16ULL; VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + 0x2FFD72DBD01ADFB7ULL; VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + (M3 ^ 0xC0AC29B7C97C50DDULL); VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + (M6 ^ 0x082EFA98EC4E6C89ULL); VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + (M7 ^ 0x13198A2E03707344ULL); VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + (M1 ^ 0x3F84D5B5B5470917ULL); VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + 0x452821E638D01377ULL; VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + (M4 ^ 0xD1310BA698DFB5ACULL); VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + (M7 ^ 0xD1310BA698DFB5ACULL); VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + 0x3F84D5B5B5470917ULL; VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + (M3 ^ 0x13198A2E03707344ULL); VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + (M1 ^ 0x082EFA98EC4E6C89ULL); VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + 0xBA7C9045F12C7F98ULL; VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + 0x24A19947B3916CF7ULL; VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + 0x0801F2E2858EFC16ULL; VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + 0xB8E1AFED6A267E96ULL; VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + (M2 ^ 0xC0AC29B7C97C50DDULL); VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + (M6 ^ 0xA4093822299F31D0ULL); VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + (M5 ^ 0x2FFD72DBD01ADFB7ULL); VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + 0xBE5466CF34E90C6CULL; VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + (M4 ^ 0x243F6A8885A308D3ULL); VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + (M0 ^ 0x452821E638D01377ULL); VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + 0x9216D5D98979F91BULL; VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + 0xE36920D871574E69ULL; VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + 0x243F6A8885A308D3ULL; VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + (M0 ^ 0xD1310BA698DFB5ACULL); VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + (M5 ^ 0x3F84D5B5B5470917ULL); VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + (M7 ^ 0xBE5466CF34E90C6CULL); VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + (M2 ^ 0x452821E638D01377ULL); VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + (M4 ^ 0xA4093822299F31D0ULL); VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + 0x636920D871574E69ULL; VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + 0x2FFD72DBD01ADDB7ULL; VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + 0x13198A2E03707344ULL; VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + (M1 ^ 0x0801F2E2858EFC16ULL); VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + 0xBA7C9045F12C7F99ULL; VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + 0xB8E1AFED6A267E96ULL; VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + (M6 ^ 0x9216D5D98979FB1BULL); VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + 0x40AC29B7C97C50DDULL; VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + (M3 ^ 0x24A19947B3916CF7ULL); VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + 0x082EFA98EC4E6C88ULL; VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11); V0 += V4 + (M2 ^ 0xBA7C9045F12C7F99ULL); VC = ROTR64(VC ^ V0, 32); V8 += VC; V4 = ROTR64(V4 ^ V8, 25); V0 += V4 + 0xA4093822299F31D0ULL; VC = ROTR64(VC ^ V0, 16); V8 += VC; V4 = ROTR64(V4 ^ V8, 11); V1 += V5 + (M6 ^ 0x2FFD72DBD01ADFB7ULL); VD = ROTR64(VD ^ V1, 32); V9 += VD; V5 = ROTR64(V5 ^ V9, 25); V1 += V5 + 0xC0AC29B7C97C50DDULL; VD = ROTR64(VD ^ V1, 16); V9 += VD; V5 = ROTR64(V5 ^ V9, 11); V2 += V6 + (M0 ^ 0xB8E1AFED6A267E96ULL); VE = ROTR64(VE ^ V2, 32); VA += VE; V6 = ROTR64(V6 ^ VA, 25); V2 += V6 + 0x243F6A8885A308D3ULL; VE = ROTR64(VE ^ V2, 16); VA += VE; V6 = ROTR64(V6 ^ VA, 11); V3 += V7 + 0x882EFA98EC4E6C89ULL; VF = ROTR64(VF ^ V3, 32); VB += VF; V7 = ROTR64(V7 ^ VB, 25); V3 += V7 + (M3 ^ 0x9216D5D98979FB1BULL); VF = ROTR64(VF ^ V3, 16); VB += VF; V7 = ROTR64(V7 ^ VB, 11); V0 += V5 + (M4 ^ 0x24A19947B3916CF7ULL); VF = ROTR64(VF ^ V0, 32); VA += VF; V5 = ROTR64(V5 ^ VA, 25); V0 += V5 + 0x452821E638D01376ULL; VF = ROTR64(VF ^ V0, 16); VA += VF; V5 = ROTR64(V5 ^ VA, 11); V1 += V6 + (M7 ^ 0xBE5466CF34E90C6CULL); VC = ROTR64(VC ^ V1, 32); VB += VC; V6 = ROTR64(V6 ^ VB, 25); V1 += V6 + (M5 ^ 0x3F84D5B5B5470917ULL); VC = ROTR64(VC ^ V1, 16); VB += VC; V6 = ROTR64(V6 ^ VB, 11); V2 += V7 + 0x0801F2E2858EFE16ULL; VD = ROTR64(VD ^ V2, 32); V8 += VD; V7 = ROTR64(V7 ^ V8, 25); V2 += V7 + 0x636920D871574E69ULL; VD = ROTR64(VD ^ V2, 16); V8 += VD; V7 = ROTR64(V7 ^ V8, 11); V3 += V4 + (M1 ^ 0xD1310BA698DFB5ACULL); VE = ROTR64(VE ^ V3, 32); V9 += VE; V4 = ROTR64(V4 ^ V9, 25); V3 += V4 + 0x13198A2E03707344ULL; VE = ROTR64(VE ^ V3, 16); V9 += VE; V4 = ROTR64(V4 ^ V9, 11);
#undef M0 #undef M1 #undef M2 #undef M3 #undef M4 #undef M5 #undef M6 #undef M7
hash64[0] = BSWAP64(V0 ^ V8 ^ 0x6A09E667F3BCC908ULL); hash64[1] = BSWAP64(V1 ^ V9 ^ 0xBB67AE8584CAA73BULL); hash64[2] = BSWAP64(V2 ^ VA ^ 0x3C6EF372FE94F82BULL); hash64[3] = BSWAP64(V3 ^ VB ^ 0xA54FF53A5F1D36F1ULL); hash64[4] = BSWAP64(V4 ^ VC ^ 0x510E527FADE682D1ULL); hash64[5] = BSWAP64(V5 ^ VD ^ 0x9B05688C2B3E6C1FULL); hash64[6] = BSWAP64(V6 ^ VE ^ 0x1F83D9ABFB41BD6BULL); hash64[7] = BSWAP64(V7 ^ VF ^ 0x5BE0CD19137E2179ULL);
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
October 22, 2014, 01:33:33 AM |
|
BMW: INLINE void QuarkBMW0_64(UINT64 *hash64) { UINT64 bmw_h2[16]; UINT64 bmw_qt[32]; UINT64 bmw_xl, bmw_xh; UINT64 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; UINT64 spare0, spare1;
tmp0 = ROTL64(hash64[0], 1); tmp1 = ROTL64(hash64[1], 2); tmp2 = ROTL64(hash64[2], 3); tmp3 = ROTL64(hash64[3], 4); tmp4 = ROTL64(hash64[4], 5); tmp5 = ROTL64(hash64[5], 6); tmp6 = ROTL64(hash64[6], 7); tmp7 = ROTL64(hash64[7], 8);
bmw_qt[16] = 0xB8B9BABBBCBDBEBFULL ^ (0x5555555555555550ULL + tmp0 + tmp3); bmw_qt[17] = 0xC0C1C2C3C4C5C6C7ULL ^ (0x5aaaaaaaaaaaaaa5ULL + tmp1 + tmp4); bmw_qt[18] = 0xC8C9CACBCCCDCECFULL ^ (0x5ffffffffffffffaULL + tmp2 + tmp5); bmw_qt[19] = 0xD0D1D2D3D4D5D6D7ULL ^ (0x655555555555554fULL + tmp3 + tmp6); bmw_qt[20] = 0xD8D9DADBDCDDDEDFULL ^ (0x6aaaaaaaaaaaaaa4ULL + tmp4 + tmp7); bmw_qt[21] = 0xE0E1E2E3E4E5E6E7ULL ^ (0x6ffffffffe00fff9ULL + tmp5); bmw_qt[22] = 0xE8E9EAEBECEDEEEFULL ^ (0x755555555555554eULL + tmp6 - tmp0); bmw_qt[23] = 0xF0F1F2F3F4F5F6F7ULL ^ (0x7aaaaaaaaaaaaaa3ULL + tmp7 - tmp1); bmw_qt[24] = 0xF8F9FAFBFCFDFEFFULL ^ (0x800000000000fff8ULL - tmp2); bmw_qt[25] = 0x8081828384858687ULL ^ (0x855555555555554dULL - tmp3); bmw_qt[26] = 0x88898A8B8C8D8E8FULL ^ (0x8aaaaaaaaaaaaaa2ULL - tmp4); bmw_qt[27] = 0x9091929394959697ULL ^ (0x8ffffffffffffff7ULL - tmp5); bmw_qt[28] = 0x98999A9B9C9D9E9FULL ^ (0x955555555755554cULL - tmp6); bmw_qt[29] = 0xA0A1A2A3A4A5A6A7ULL ^ (0x9aaaaaaaaaaaaaa1ULL + tmp0 - tmp7); bmw_qt[30] = 0xA8A9AAABACADAEAFULL ^ (0x9ffffffffffefff6ULL + tmp1); bmw_qt[31] = 0xB0B1B2B3B4B5B6B7ULL ^ (0xa55555555755554bULL + tmp2); // free tmpX
tmp0 = hash64[0] ^ 0x8081828384858687ULL; tmp1 = hash64[1] ^ 0x88898A8B8C8D8E8FULL; tmp2 = hash64[2] ^ 0x9091929394959697ULL; tmp3 = hash64[3] ^ 0x98999A9B9C9D9E9FULL; tmp4 = hash64[4] ^ 0xA0A1A2A3A4A5A6A7ULL; tmp5 = hash64[5] ^ 0xA8A9AAABACADAEAFULL; tmp6 = hash64[7] ^ 0xB8B9BABBBCBDBEBFULL; tmp7 = hash64[6] ^ 0xB0B1B2B3B4B5B6B7ULL; spare0 = tmp4 + tmp6; spare1 = tmp3 - tmp7;
{ UINT64 pre_01 = (0xaaadb0b3b6b9bcbdULL + tmp5 - tmp6); bmw_qt[0] = ((pre_01 >> 1) ^ SHIFTL64(pre_01, 3) ^ ROTL64(pre_01, 4) ^ ROTL64(pre_01, 37)) + 0x88898A8B8C8D8E8FULL; bmw_qt[16] += (bmw_qt[0] >> 1) ^ SHIFTL64(bmw_qt[0], 2) ^ ROTL64(bmw_qt[0], 13) ^ ROTL64(bmw_qt[0], 43); }
{ UINT64 pre_02 = (0x1010101010101290ULL + tmp7); bmw_qt[1] = ((pre_02 >> 1) ^ SHIFTL64(pre_02, 2) ^ ROTL64(pre_02, 13) ^ ROTL64(pre_02, 43)) + 0x9091929394959697ULL; bmw_qt[16] += (bmw_qt[1] >> 2) ^ SHIFTL64(bmw_qt[1], 1) ^ ROTL64(bmw_qt[1], 19) ^ ROTL64(bmw_qt[1], 53); bmw_qt[17] += (bmw_qt[1] >> 1) ^ SHIFTL64(bmw_qt[1], 2) ^ ROTL64(bmw_qt[1], 13) ^ ROTL64(bmw_qt[1], 43); }
{ UINT64 pre_03 = (0xe0e1e2e3e4e5e4e7ULL + tmp0 + tmp6); bmw_qt[2] = ((pre_03 >> 2) ^ SHIFTL64(pre_03, 1) ^ ROTL64(pre_03, 19) ^ ROTL64(pre_03, 53)) + 0x98999A9B9C9D9E9FULL; bmw_qt[16] += (bmw_qt[2] >> 2) ^ SHIFTL64(bmw_qt[2], 2) ^ ROTL64(bmw_qt[2], 28) ^ ROTL64(bmw_qt[2], 59); bmw_qt[17] += (bmw_qt[2] >> 2) ^ SHIFTL64(bmw_qt[2], 1) ^ ROTL64(bmw_qt[2], 19) ^ ROTL64(bmw_qt[2], 53); bmw_qt[18] += bmw_qt[2] ; }
{ UINT64 pre_04 = (0xd8d9dadbdcddde5fULL + tmp0 - tmp1); bmw_qt[3] = ((pre_04 >> 2) ^ SHIFTL64(pre_04, 2) ^ ROTL64(pre_04, 28) ^ ROTL64(pre_04, 59)) + 0xA0A1A2A3A4A5A6A7ULL; bmw_qt[16] += (bmw_qt[3] >> 1) ^ SHIFTL64(bmw_qt[3], 3) ^ ROTL64(bmw_qt[3], 4) ^ ROTL64(bmw_qt[3], 37); bmw_qt[17] += (bmw_qt[3] >> 2) ^ SHIFTL64(bmw_qt[3], 2) ^ ROTL64(bmw_qt[3], 28) ^ ROTL64(bmw_qt[3], 59); bmw_qt[18] += ROTL64(bmw_qt[3], 5) ; bmw_qt[19] += bmw_qt[3] ; }
{ UINT64 pre_05 = (0xfefdfcfbfaf9f8f9ULL + tmp1 + tmp2); bmw_qt[4] = ((pre_05 >> 1) ^ pre_05) + 0xA8A9AAABACADAEAFULL; bmw_qt[16] += (bmw_qt[4] >> 1) ^ SHIFTL64(bmw_qt[4], 2) ^ ROTL64(bmw_qt[4], 13) ^ ROTL64(bmw_qt[4], 43); bmw_qt[17] += (bmw_qt[4] >> 1) ^ SHIFTL64(bmw_qt[4], 3) ^ ROTL64(bmw_qt[4], 4) ^ ROTL64(bmw_qt[4], 37); bmw_qt[18] += bmw_qt[4] ; bmw_qt[19] += ROTL64(bmw_qt[4], 5) ; bmw_qt[20] += bmw_qt[4] ; }
{ UINT64 pre_06 = (0xe8e9eaebecedecefULL + tmp3 - tmp2); bmw_qt[5] = ((pre_06 >> 1) ^ SHIFTL64(pre_06, 3) ^ ROTL64(pre_06, 4) ^ ROTL64(pre_06, 37)) + 0xB0B1B2B3B4B5B6B7ULL; bmw_qt[16] += (bmw_qt[5] >> 2) ^ SHIFTL64(bmw_qt[5], 1) ^ ROTL64(bmw_qt[5], 19) ^ ROTL64(bmw_qt[5], 53); bmw_qt[17] += (bmw_qt[5] >> 1) ^ SHIFTL64(bmw_qt[5], 2) ^ ROTL64(bmw_qt[5], 13) ^ ROTL64(bmw_qt[5], 43); bmw_qt[19] += bmw_qt[5] ; bmw_qt[20] += ROTL64(bmw_qt[5], 5) ; bmw_qt[21] += bmw_qt[5] ; }
{ UINT64 pre_00 = (0x1010101010101010ULL + tmp4 - tmp0 - tmp3); bmw_qt[6] = ((pre_00 >> 1) ^ SHIFTL64(pre_00, 2) ^ ROTL64(pre_00, 13) ^ ROTL64(pre_00, 43)) + 0xB8B9BABBBCBDBEBFULL; bmw_qt[16] += (bmw_qt[6] >> 2) ^ SHIFTL64(bmw_qt[6], 2) ^ ROTL64(bmw_qt[6], 28) ^ ROTL64(bmw_qt[6], 59); bmw_qt[17] += (bmw_qt[6] >> 2) ^ SHIFTL64(bmw_qt[6], 1) ^ ROTL64(bmw_qt[6], 19) ^ ROTL64(bmw_qt[6], 53); bmw_qt[20] += bmw_qt[6] ; bmw_qt[21] += ROTL64(bmw_qt[6], 5) ; bmw_qt[22] += bmw_qt[6] ; }
{ UINT64 pre_07 = (0x2e2c2a2826242222ULL + tmp1 - tmp4 - tmp5); bmw_qt[7] = ((pre_07 >> 2) ^ SHIFTL64(pre_07, 1) ^ ROTL64(pre_07, 19) ^ ROTL64(pre_07, 53)) + 0xC0C1C2C3C4C5C6C7ULL; bmw_qt[16] += (bmw_qt[7] >> 1) ^ SHIFTL64(bmw_qt[7], 3) ^ ROTL64(bmw_qt[7], 4) ^ ROTL64(bmw_qt[7], 37); bmw_qt[17] += (bmw_qt[7] >> 2) ^ SHIFTL64(bmw_qt[7], 2) ^ ROTL64(bmw_qt[7], 28) ^ ROTL64(bmw_qt[7], 59); bmw_qt[21] += bmw_qt[7] ; bmw_qt[22] += ROTL64(bmw_qt[7], 5) ; bmw_qt[23] += bmw_qt[7] ; }
{ UINT64 pre_08 = (0xefefefefefeff1f0ULL + tmp2 - tmp5 - tmp7); bmw_qt[8] = ((pre_08 >> 2) ^ SHIFTL64(pre_08, 2) ^ ROTL64(pre_08, 28) ^ ROTL64(pre_08, 59)) + 0xC8C9CACBCCCDCECFULL; bmw_qt[16] += (bmw_qt[8] >> 1) ^ SHIFTL64(bmw_qt[8], 2) ^ ROTL64(bmw_qt[8], 13) ^ ROTL64(bmw_qt[8], 43); bmw_qt[17] += (bmw_qt[8] >> 1) ^ SHIFTL64(bmw_qt[8], 3) ^ ROTL64(bmw_qt[8], 4) ^ ROTL64(bmw_qt[8], 37); bmw_qt[22] += bmw_qt[8] ; bmw_qt[23] += ROTL64(bmw_qt[8], 5) ; bmw_qt[24] += bmw_qt[8] ; }
{ UINT64 pre_09 = (0xF0F1F2F3F4F5F6F7ULL + tmp0 - spare1 - tmp6); bmw_qt[9] = ((pre_09 >> 1) ^ pre_09) + 0xD0D1D2D3D4D5D6D7ULL; bmw_qt[16] += (bmw_qt[9] >> 2) ^ SHIFTL64(bmw_qt[9], 1) ^ ROTL64(bmw_qt[9], 19) ^ ROTL64(bmw_qt[9], 53); bmw_qt[17] += (bmw_qt[9] >> 1) ^ SHIFTL64(bmw_qt[9], 2) ^ ROTL64(bmw_qt[9], 13) ^ ROTL64(bmw_qt[9], 43); bmw_qt[23] += bmw_qt[9] ; bmw_qt[24] += ROTL64(bmw_qt[9], 5) ; bmw_qt[25] += bmw_qt[9] ; }
{ UINT64 pre_10 = (0xb9bbbdbfc1c3c346ULL - tmp1 - spare0); bmw_qt[10] = ((pre_10 >> 1) ^ SHIFTL64(pre_10, 3) ^ ROTL64(pre_10, 4) ^ ROTL64(pre_10, 37)) + 0xD8D9DADBDCDDDEDFULL; bmw_qt[16] += (bmw_qt[10] >> 2) ^ SHIFTL64(bmw_qt[10], 2) ^ ROTL64(bmw_qt[10], 28) ^ ROTL64(bmw_qt[10], 59); bmw_qt[17] += (bmw_qt[10] >> 2) ^ SHIFTL64(bmw_qt[10], 1) ^ ROTL64(bmw_qt[10], 19) ^ ROTL64(bmw_qt[10], 53); bmw_qt[24] += bmw_qt[10]; bmw_qt[25] += ROTL64(bmw_qt[10], 5); bmw_qt[26] += bmw_qt[10]; }
{ UINT64 pre_11 = (0x898b8d8f91939516ULL - tmp0 - tmp2 - tmp5); bmw_qt[11] = ((pre_11 >> 1) ^ SHIFTL64(pre_11, 2) ^ ROTL64(pre_11, 13) ^ ROTL64(pre_11, 43)) + 0xE0E1E2E3E4E5E6E7ULL; bmw_qt[16] += (bmw_qt[11] >> 1) ^ SHIFTL64(bmw_qt[11], 3) ^ ROTL64(bmw_qt[11], 4) ^ ROTL64(bmw_qt[11], 37); bmw_qt[17] += (bmw_qt[11] >> 2) ^ SHIFTL64(bmw_qt[11], 2) ^ ROTL64(bmw_qt[11], 28) ^ ROTL64(bmw_qt[11], 59); bmw_qt[25] += bmw_qt[11]; bmw_qt[26] += ROTL64(bmw_qt[11], 5); bmw_qt[27] += bmw_qt[11]; }
{ UINT64 pre_12 = (0x0808080808080808ULL + tmp1 + spare1); bmw_qt[12] = ((pre_12 >> 2) ^ SHIFTL64(pre_12, 1) ^ ROTL64(pre_12, 19) ^ ROTL64(pre_12, 53)) + 0xE8E9EAEBECEDEEEFULL; bmw_qt[16] += (bmw_qt[12] >> 1) ^ SHIFTL64(bmw_qt[12], 2) ^ ROTL64(bmw_qt[12], 13) ^ ROTL64(bmw_qt[12], 43); bmw_qt[17] += (bmw_qt[12] >> 1) ^ SHIFTL64(bmw_qt[12], 3) ^ ROTL64(bmw_qt[12], 4) ^ ROTL64(bmw_qt[12], 37); bmw_qt[26] += bmw_qt[12]; bmw_qt[27] += ROTL64(bmw_qt[12], 5); bmw_qt[28] += bmw_qt[12]; }
{ UINT64 pre_13 = (0xa9abadafb1b3b5b6ULL + tmp2 + spare0); bmw_qt[13] = ((pre_13 >> 2) ^ SHIFTL64(pre_13, 2) ^ ROTL64(pre_13, 28) ^ ROTL64(pre_13, 59)) + 0xF0F1F2F3F4F5F6F7ULL; bmw_qt[16] += (bmw_qt[13] >> 2) ^ SHIFTL64(bmw_qt[13], 1) ^ ROTL64(bmw_qt[13], 19) ^ ROTL64(bmw_qt[13], 53); bmw_qt[17] += (bmw_qt[13] >> 1) ^ SHIFTL64(bmw_qt[13], 2) ^ ROTL64(bmw_qt[13], 13) ^ ROTL64(bmw_qt[13], 43); bmw_qt[27] += bmw_qt[13]; bmw_qt[28] += ROTL64(bmw_qt[13], 5); bmw_qt[29] += bmw_qt[13]; }
{ UINT64 pre_14 = (0x0706050403020081ULL + tmp3 - tmp5); bmw_qt[14] = ((pre_14 >> 1) ^ pre_14) + 0xF8F9FAFBFCFDFEFFULL; bmw_qt[16] += (bmw_qt[14] >> 2) ^ SHIFTL64(bmw_qt[14], 2) ^ ROTL64(bmw_qt[14], 28) ^ ROTL64(bmw_qt[14], 59); bmw_qt[17] += (bmw_qt[14] >> 2) ^ SHIFTL64(bmw_qt[14], 1) ^ ROTL64(bmw_qt[14], 19) ^ ROTL64(bmw_qt[14], 53); bmw_qt[28] += bmw_qt[14]; bmw_qt[29] += ROTL64(bmw_qt[14], 5); bmw_qt[30] += bmw_qt[14]; }
{ UINT64 pre_15 = (0x0102030405060707ULL - tmp4 - tmp7); bmw_qt[15] = ((pre_15 >> 1) ^ SHIFTL64(pre_15, 3) ^ ROTL64(pre_15, 4) ^ ROTL64(pre_15, 37)) + 0x8081828384858687ULL; bmw_qt[16] += (bmw_qt[15] >> 1) ^ SHIFTL64(bmw_qt[15], 3) ^ ROTL64(bmw_qt[15], 4) ^ ROTL64(bmw_qt[15], 37); bmw_qt[17] += (bmw_qt[15] >> 2) ^ SHIFTL64(bmw_qt[15], 2) ^ ROTL64(bmw_qt[15], 28) ^ ROTL64(bmw_qt[15], 59); bmw_qt[17] += (bmw_qt[16] >> 1) ^ SHIFTL64(bmw_qt[16], 3) ^ ROTL64(bmw_qt[16], 4) ^ ROTL64(bmw_qt[16], 37); bmw_qt[29] += bmw_qt[15]; bmw_qt[30] += ROTL64(bmw_qt[15], 5); bmw_qt[31] += bmw_qt[15]; bmw_qt[31] += ROTL64(bmw_qt[16], 5); bmw_qt[30] += bmw_qt[16]; bmw_qt[31] += bmw_qt[17]; } // free tmpX // free spare0, spare1
bmw_qt[18] += ROTL64(bmw_qt[5] , 11) + bmw_qt[6] + ROTL64(bmw_qt[7] , 27) + bmw_qt[8] + ROTL64(bmw_qt[9], 32) + bmw_qt[10] + ROTL64(bmw_qt[11], 37) + bmw_qt[12] + ROTL64(bmw_qt[13], 43) + bmw_qt[14] + ROTL64(bmw_qt[15], 53) + ((bmw_qt[16] >> 1) ^ bmw_qt[16]) + ((bmw_qt[17] >> 2) ^ bmw_qt[17]); bmw_qt[19] += ROTL64(bmw_qt[6] , 11) + bmw_qt[7] + ROTL64(bmw_qt[8] , 27) + bmw_qt[9] + ROTL64(bmw_qt[10], 32) + bmw_qt[11] + ROTL64(bmw_qt[12], 37) + bmw_qt[13] + ROTL64(bmw_qt[14], 43) + bmw_qt[15] + ROTL64(bmw_qt[16], 53) + ((bmw_qt[17] >> 1) ^ bmw_qt[17]) + ((bmw_qt[18] >> 2) ^ bmw_qt[18]); bmw_qt[20] += ROTL64(bmw_qt[7] , 11) + bmw_qt[8] + ROTL64(bmw_qt[9] , 27) + bmw_qt[10] + ROTL64(bmw_qt[11], 32) + bmw_qt[12] + ROTL64(bmw_qt[13], 37) + bmw_qt[14] + ROTL64(bmw_qt[15], 43) + bmw_qt[16] + ROTL64(bmw_qt[17], 53) + ((bmw_qt[18] >> 1) ^ bmw_qt[18]) + ((bmw_qt[19] >> 2) ^ bmw_qt[19]); bmw_qt[21] += ROTL64(bmw_qt[8] , 11) + bmw_qt[9] + ROTL64(bmw_qt[10], 27) + bmw_qt[11] + ROTL64(bmw_qt[12], 32) + bmw_qt[13] + ROTL64(bmw_qt[14], 37) + bmw_qt[15] + ROTL64(bmw_qt[16], 43) + bmw_qt[17] + ROTL64(bmw_qt[18], 53) + ((bmw_qt[19] >> 1) ^ bmw_qt[19]) + ((bmw_qt[20] >> 2) ^ bmw_qt[20]); bmw_qt[22] += ROTL64(bmw_qt[9] , 11) + bmw_qt[10] + ROTL64(bmw_qt[11], 27) + bmw_qt[12] + ROTL64(bmw_qt[13], 32) + bmw_qt[14] + ROTL64(bmw_qt[15], 37) + bmw_qt[16] + ROTL64(bmw_qt[17], 43) + bmw_qt[18] + ROTL64(bmw_qt[19], 53) + ((bmw_qt[20] >> 1) ^ bmw_qt[20]) + ((bmw_qt[21] >> 2) ^ bmw_qt[21]); bmw_qt[23] += ROTL64(bmw_qt[10], 11) + bmw_qt[11] + ROTL64(bmw_qt[12], 27) + bmw_qt[13] + ROTL64(bmw_qt[14], 32) + bmw_qt[15] + ROTL64(bmw_qt[16], 37) + bmw_qt[17] + ROTL64(bmw_qt[18], 43) + bmw_qt[19] + ROTL64(bmw_qt[20], 53) + ((bmw_qt[21] >> 1) ^ bmw_qt[21]) + ((bmw_qt[22] >> 2) ^ bmw_qt[22]); bmw_qt[24] += ROTL64(bmw_qt[11], 11) + bmw_qt[12] + ROTL64(bmw_qt[13], 27) + bmw_qt[14] + ROTL64(bmw_qt[15], 32) + bmw_qt[16] + ROTL64(bmw_qt[17], 37) + bmw_qt[18] + ROTL64(bmw_qt[19], 43) + bmw_qt[20] + ROTL64(bmw_qt[21], 53) + ((bmw_qt[22] >> 1) ^ bmw_qt[22]) + ((bmw_qt[23] >> 2) ^ bmw_qt[23]); bmw_qt[25] += ROTL64(bmw_qt[12], 11) + bmw_qt[13] + ROTL64(bmw_qt[14], 27) + bmw_qt[15] + ROTL64(bmw_qt[16], 32) + bmw_qt[17] + ROTL64(bmw_qt[18], 37) + bmw_qt[19] + ROTL64(bmw_qt[20], 43) + bmw_qt[21] + ROTL64(bmw_qt[22], 53) + ((bmw_qt[23] >> 1) ^ bmw_qt[23]) + ((bmw_qt[24] >> 2) ^ bmw_qt[24]); bmw_qt[26] += ROTL64(bmw_qt[13], 11) + bmw_qt[14] + ROTL64(bmw_qt[15], 27) + bmw_qt[16] + ROTL64(bmw_qt[17], 32) + bmw_qt[18] + ROTL64(bmw_qt[19], 37) + bmw_qt[20] + ROTL64(bmw_qt[21], 43) + bmw_qt[22] + ROTL64(bmw_qt[23], 53) + ((bmw_qt[24] >> 1) ^ bmw_qt[24]) + ((bmw_qt[25] >> 2) ^ bmw_qt[25]); bmw_qt[27] += ROTL64(bmw_qt[14], 11) + bmw_qt[15] + ROTL64(bmw_qt[16], 27) + bmw_qt[17] + ROTL64(bmw_qt[18], 32) + bmw_qt[19] + ROTL64(bmw_qt[20], 37) + bmw_qt[21] + ROTL64(bmw_qt[22], 43) + bmw_qt[23] + ROTL64(bmw_qt[24], 53) + ((bmw_qt[25] >> 1) ^ bmw_qt[25]) + ((bmw_qt[26] >> 2) ^ bmw_qt[26]); bmw_qt[28] += ROTL64(bmw_qt[15], 11) + bmw_qt[16] + ROTL64(bmw_qt[17], 27) + bmw_qt[18] + ROTL64(bmw_qt[19], 32) + bmw_qt[20] + ROTL64(bmw_qt[21], 37) + bmw_qt[22] + ROTL64(bmw_qt[23], 43) + bmw_qt[24] + ROTL64(bmw_qt[25], 53) + ((bmw_qt[26] >> 1) ^ bmw_qt[26]) + ((bmw_qt[27] >> 2) ^ bmw_qt[27]); bmw_qt[29] += ROTL64(bmw_qt[16], 11) + bmw_qt[17] + ROTL64(bmw_qt[18], 27) + bmw_qt[19] + ROTL64(bmw_qt[20], 32) + bmw_qt[21] + ROTL64(bmw_qt[22], 37) + bmw_qt[23] + ROTL64(bmw_qt[24], 43) + bmw_qt[25] + ROTL64(bmw_qt[26], 53) + ((bmw_qt[27] >> 1) ^ bmw_qt[27]) + ((bmw_qt[28] >> 2) ^ bmw_qt[28]); bmw_qt[30] += ROTL64(bmw_qt[17], 11) + bmw_qt[18] + ROTL64(bmw_qt[19], 27) + bmw_qt[20] + ROTL64(bmw_qt[21], 32) + bmw_qt[22] + ROTL64(bmw_qt[23], 37) + bmw_qt[24] + ROTL64(bmw_qt[25], 43) + bmw_qt[26] + ROTL64(bmw_qt[27], 53) + ((bmw_qt[28] >> 1) ^ bmw_qt[28]) + ((bmw_qt[29] >> 2) ^ bmw_qt[29]); bmw_qt[31] += ROTL64(bmw_qt[18], 11) + bmw_qt[19] + ROTL64(bmw_qt[20], 27) + bmw_qt[21] + ROTL64(bmw_qt[22], 32) + bmw_qt[23] + ROTL64(bmw_qt[24], 37) + bmw_qt[25] + ROTL64(bmw_qt[26], 43) + bmw_qt[27] + ROTL64(bmw_qt[28], 53) + ((bmw_qt[29] >> 1) ^ bmw_qt[29]) + ((bmw_qt[30] >> 2) ^ bmw_qt[30]);
bmw_xl = bmw_qt[16] ^ bmw_qt[17] ^ bmw_qt[18] ^ bmw_qt[19] ^ bmw_qt[20] ^ bmw_qt[21] ^ bmw_qt[22] ^ bmw_qt[23]; bmw_xh = bmw_xl ^ bmw_qt[24] ^ bmw_qt[25] ^ bmw_qt[26] ^ bmw_qt[27] ^ bmw_qt[28] ^ bmw_qt[29] ^ bmw_qt[30] ^ bmw_qt[31];
bmw_h2[0] = ((bmw_xh << 5) ^ (bmw_qt[16] >> 5) ^ hash64[0]) + (bmw_xl ^ bmw_qt[24] ^ bmw_qt[0]); bmw_h2[1] = ((bmw_xh >> 7) ^ (bmw_qt[17] << 8) ^ hash64[1]) + (bmw_xl ^ bmw_qt[25] ^ bmw_qt[1]); bmw_h2[2] = ((bmw_xh >> 5) ^ (bmw_qt[18] << 5) ^ hash64[2]) + (bmw_xl ^ bmw_qt[26] ^ bmw_qt[2]); bmw_h2[3] = ((bmw_xh >> 1) ^ (bmw_qt[19] << 5) ^ hash64[3]) + (bmw_xl ^ bmw_qt[27] ^ bmw_qt[3]); bmw_h2[4] = ((bmw_xh >> 3) ^ (bmw_qt[20] << 0) ^ hash64[4]) + (bmw_xl ^ bmw_qt[28] ^ bmw_qt[4]); bmw_h2[5] = ((bmw_xh << 6) ^ (bmw_qt[21] >> 6) ^ hash64[5]) + (bmw_xl ^ bmw_qt[29] ^ bmw_qt[5]); bmw_h2[6] = ((bmw_xh >> 4) ^ (bmw_qt[22] << 6) ^ hash64[6]) + (bmw_xl ^ bmw_qt[30] ^ bmw_qt[6]); bmw_h2[7] = ((bmw_xh >> 11) ^ (bmw_qt[23] << 2) ^ hash64[7]) + (bmw_xl ^ (bmw_qt[31]) ^ bmw_qt[7]); bmw_h2[8] = ROTL64(bmw_h2[4], 9) + (bmw_xh ^ bmw_qt[24] ^ 0x80ULL) + ((bmw_xl << 8) ^ bmw_qt[23] ^ bmw_qt[8]); bmw_h2[9] = ROTL64(bmw_h2[5], 10) + (bmw_xh ^ bmw_qt[25]) + ((bmw_xl >> 6) ^ bmw_qt[16] ^ bmw_qt[9]); bmw_h2[10] = ROTL64(bmw_h2[6], 11) + (bmw_xh ^ bmw_qt[26]) + ((bmw_xl << 6) ^ bmw_qt[17] ^ bmw_qt[10]); bmw_h2[11] = ROTL64(bmw_h2[7], 12) + (bmw_xh ^ bmw_qt[27]) + ((bmw_xl << 4) ^ bmw_qt[18] ^ bmw_qt[11]); bmw_h2[12] = ROTL64(bmw_h2[0], 13) + (bmw_xh ^ bmw_qt[28]) + ((bmw_xl >> 3) ^ bmw_qt[19] ^ bmw_qt[12]); bmw_h2[13] = ROTL64(bmw_h2[1], 14) + (bmw_xh ^ bmw_qt[29]) + ((bmw_xl >> 4) ^ bmw_qt[20] ^ bmw_qt[13]); bmw_h2[14] = ROTL64(bmw_h2[2], 15) + (bmw_xh ^ bmw_qt[30]) + ((bmw_xl >> 7) ^ bmw_qt[21] ^ bmw_qt[14]); bmw_h2[15] = ROTL64(bmw_h2[3], 16) + (bmw_xh ^ bmw_qt[31] ^ 0x200ULL) + ((bmw_xl >> 2) ^ bmw_qt[22] ^ bmw_qt[15]);
// ======
{ UINT64 hre_00 = (bmw_h2[5] ^ 0xaaaaaaaaaaaaaaa5ULL); UINT64 hre_01 = (bmw_h2[6] ^ 0xaaaaaaaaaaaaaaa6ULL); UINT64 hre_02 = (bmw_h2[7] ^ 0xaaaaaaaaaaaaaaa7ULL); UINT64 hre_03 = (bmw_h2[10] ^ 0xaaaaaaaaaaaaaaaaULL); UINT64 hre_04 = (bmw_h2[13] ^ 0xaaaaaaaaaaaaaaadULL); UINT64 hre_05 = (bmw_h2[14] ^ 0xaaaaaaaaaaaaaaaeULL); UINT64 hre_06 = (bmw_h2[8] ^ 0xaaaaaaaaaaaaaaa8ULL); UINT64 hre_07 = (bmw_h2[11] ^ 0xaaaaaaaaaaaaaaabULL); UINT64 hre_08 = (bmw_h2[0] ^ 0xaaaaaaaaaaaaaaa0ULL); UINT64 hre_09 = (bmw_h2[9] ^ 0xaaaaaaaaaaaaaaa9ULL); UINT64 hre_10 = (bmw_h2[1] ^ 0xaaaaaaaaaaaaaaa1ULL); UINT64 hre_11 = (bmw_h2[15] ^ 0xaaaaaaaaaaaaaaafULL); UINT64 hre_12 = (bmw_h2[12] ^ 0xaaaaaaaaaaaaaaacULL); UINT64 hre_13 = (bmw_h2[2] ^ 0xaaaaaaaaaaaaaaa2ULL); UINT64 hre_14 = (bmw_h2[3] ^ 0xaaaaaaaaaaaaaaa3ULL); UINT64 hre_15 = (bmw_h2[4] ^ 0xaaaaaaaaaaaaaaa4ULL); UINT64 hl_00 = (hre_00 - hre_02 + hre_03 + hre_04 + hre_05); UINT64 hl_01 = (hre_01 - hre_06 + hre_07 + hre_05 - hre_11); UINT64 hl_02 = (hre_08 + hre_02 + hre_09 - hre_12 + hre_11); UINT64 hl_03 = (hre_08 - hre_10 + hre_06 - hre_03 + hre_04); UINT64 hl_04 = (hre_10 + hre_13 + hre_09 - hre_07 - hre_05); UINT64 hl_05 = (hre_14 - hre_13 + hre_03 - hre_12 + hre_11); UINT64 hl_06 = (hre_15 - hre_08 - hre_14 - hre_07 + hre_04); UINT64 hl_07 = (hre_10 - hre_15 - hre_00 - hre_12 - hre_05); UINT64 hl_08 = (hre_13 - hre_00 - hre_01 + hre_04 - hre_11); UINT64 hl_09 = (hre_08 - hre_14 + hre_01 - hre_02 + hre_05); UINT64 hl_10 = (hre_06 - hre_10 - hre_15 - hre_02 + hre_11); UINT64 hl_11 = (hre_06 - hre_08 - hre_13 - hre_00 + hre_09); UINT64 hl_12 = (hre_10 + hre_14 - hre_01 - hre_09 + hre_03); UINT64 hl_13 = (hre_13 + hre_15 + hre_02 + hre_03 + hre_07); UINT64 hl_14 = (hre_14 - hre_00 + hre_06 - hre_07 - hre_12); UINT64 hl_15 = (hre_12 - hre_15 - hre_01 - hre_09 + hre_04);
bmw_qt[0] = ((hl_00 >> 1) ^ SHIFTL64(hl_00, 3) ^ ROTL64(hl_00, 4) ^ ROTL64(hl_00, 37)) + 0xaaaaaaaaaaaaaaa1ULL; bmw_qt[1] = ((hl_01 >> 1) ^ SHIFTL64(hl_01, 2) ^ ROTL64(hl_01, 13) ^ ROTL64(hl_01, 43)) + 0xaaaaaaaaaaaaaaa2ULL; bmw_qt[2] = ((hl_02 >> 2) ^ SHIFTL64(hl_02, 1) ^ ROTL64(hl_02, 19) ^ ROTL64(hl_02, 53)) + 0xaaaaaaaaaaaaaaa3ULL; bmw_qt[3] = ((hl_03 >> 2) ^ SHIFTL64(hl_03, 2) ^ ROTL64(hl_03, 28) ^ ROTL64(hl_03, 59)) + 0xaaaaaaaaaaaaaaa4ULL; bmw_qt[4] = ((hl_04 >> 1) ^ hl_04) + 0xaaaaaaaaaaaaaaa5ULL; bmw_qt[5] = ((hl_05 >> 1) ^ SHIFTL64(hl_05, 3) ^ ROTL64(hl_05, 4) ^ ROTL64(hl_05, 37)) + 0xaaaaaaaaaaaaaaa6ULL; bmw_qt[6] = ((hl_06 >> 1) ^ SHIFTL64(hl_06, 2) ^ ROTL64(hl_06, 13) ^ ROTL64(hl_06, 43)) + 0xaaaaaaaaaaaaaaa7ULL; bmw_qt[7] = ((hl_07 >> 2) ^ SHIFTL64(hl_07, 1) ^ ROTL64(hl_07, 19) ^ ROTL64(hl_07, 53)) + 0xaaaaaaaaaaaaaaa8ULL; bmw_qt[8] = ((hl_08 >> 2) ^ SHIFTL64(hl_08, 2) ^ ROTL64(hl_08, 28) ^ ROTL64(hl_08, 59)) + 0xaaaaaaaaaaaaaaa9ULL; bmw_qt[9] = ((hl_09 >> 1) ^ hl_09) + 0xaaaaaaaaaaaaaaaaULL; bmw_qt[10] = ((hl_10 >> 1) ^ SHIFTL64(hl_10, 3) ^ ROTL64(hl_10, 4) ^ ROTL64(hl_10, 37)) + 0xaaaaaaaaaaaaaaabULL; bmw_qt[11] = ((hl_11 >> 1) ^ SHIFTL64(hl_11, 2) ^ ROTL64(hl_11, 13) ^ ROTL64(hl_11, 43)) + 0xaaaaaaaaaaaaaaacULL; bmw_qt[12] = ((hl_12 >> 2) ^ SHIFTL64(hl_12, 1) ^ ROTL64(hl_12, 19) ^ ROTL64(hl_12, 53)) + 0xaaaaaaaaaaaaaaadULL; bmw_qt[13] = ((hl_13 >> 2) ^ SHIFTL64(hl_13, 2) ^ ROTL64(hl_13, 28) ^ ROTL64(hl_13, 59)) + 0xaaaaaaaaaaaaaaaeULL; bmw_qt[14] = ((hl_14 >> 1) ^ hl_14) + 0xaaaaaaaaaaaaaaafULL; bmw_qt[15] = ((hl_15 >> 1) ^ SHIFTL64(hl_15, 3) ^ ROTL64(hl_15, 4) ^ ROTL64(hl_15, 37)) + 0xaaaaaaaaaaaaaaa0ULL;
bmw_qt[16] = (((bmw_qt[0] >> 1) ^ SHIFTL64(bmw_qt[0], 2) ^ ROTL64(bmw_qt[0], 13) ^ ROTL64(bmw_qt[0], 43)) + ((bmw_qt[1] >> 2) ^ SHIFTL64(bmw_qt[1], 1) ^ ROTL64(bmw_qt[1], 19) ^ ROTL64(bmw_qt[1], 53)) + ((bmw_qt[2] >> 2) ^ SHIFTL64(bmw_qt[2], 2) ^ ROTL64(bmw_qt[2], 28) ^ ROTL64(bmw_qt[2], 59)) + ((bmw_qt[3] >> 1) ^ SHIFTL64(bmw_qt[3], 3) ^ ROTL64(bmw_qt[3], 4) ^ ROTL64(bmw_qt[3], 37)) + ((bmw_qt[4] >> 1) ^ SHIFTL64(bmw_qt[4], 2) ^ ROTL64(bmw_qt[4], 13) ^ ROTL64(bmw_qt[4], 43)) + ((bmw_qt[5] >> 2) ^ SHIFTL64(bmw_qt[5], 1) ^ ROTL64(bmw_qt[5], 19) ^ ROTL64(bmw_qt[5], 53)) + ((bmw_qt[6] >> 2) ^ SHIFTL64(bmw_qt[6], 2) ^ ROTL64(bmw_qt[6], 28) ^ ROTL64(bmw_qt[6], 59)) + ((bmw_qt[7] >> 1) ^ SHIFTL64(bmw_qt[7], 3) ^ ROTL64(bmw_qt[7], 4) ^ ROTL64(bmw_qt[7], 37)) + ((bmw_qt[8] >> 1) ^ SHIFTL64(bmw_qt[8], 2) ^ ROTL64(bmw_qt[8], 13) ^ ROTL64(bmw_qt[8], 43)) + ((bmw_qt[9] >> 2) ^ SHIFTL64(bmw_qt[9], 1) ^ ROTL64(bmw_qt[9], 19) ^ ROTL64(bmw_qt[9], 53)) + ((bmw_qt[10] >> 2) ^ SHIFTL64(bmw_qt[10], 2) ^ ROTL64(bmw_qt[10], 28) ^ ROTL64(bmw_qt[10], 59)) + ((bmw_qt[11] >> 1) ^ SHIFTL64(bmw_qt[11], 3) ^ ROTL64(bmw_qt[11], 4) ^ ROTL64(bmw_qt[11], 37)) + ((bmw_qt[12] >> 1) ^ SHIFTL64(bmw_qt[12], 2) ^ ROTL64(bmw_qt[12], 13) ^ ROTL64(bmw_qt[12], 43)) + ((bmw_qt[13] >> 2) ^ SHIFTL64(bmw_qt[13], 1) ^ ROTL64(bmw_qt[13], 19) ^ ROTL64(bmw_qt[13], 53)) + ((bmw_qt[14] >> 2) ^ SHIFTL64(bmw_qt[14], 2) ^ ROTL64(bmw_qt[14], 28) ^ ROTL64(bmw_qt[14], 59)) + ((bmw_qt[15] >> 1) ^ SHIFTL64(bmw_qt[15], 3) ^ ROTL64(bmw_qt[15], 4) ^ ROTL64(bmw_qt[15], 37)) + ((ROTL64(bmw_h2[0], 1) + ROTL64(bmw_h2[3], 4) - ROTL64(bmw_h2[10], 11) + 0x5555555555555550ULL) ^ 0xaaaaaaaaaaaaaaa7ULL)); bmw_qt[17] = (((bmw_qt[1] >> 1) ^ SHIFTL64(bmw_qt[1], 2) ^ ROTL64(bmw_qt[1], 13) ^ ROTL64(bmw_qt[1], 43)) + ((bmw_qt[2] >> 2) ^ SHIFTL64(bmw_qt[2], 1) ^ ROTL64(bmw_qt[2], 19) ^ ROTL64(bmw_qt[2], 53)) + ((bmw_qt[3] >> 2) ^ SHIFTL64(bmw_qt[3], 2) ^ ROTL64(bmw_qt[3], 28) ^ ROTL64(bmw_qt[3], 59)) + ((bmw_qt[4] >> 1) ^ SHIFTL64(bmw_qt[4], 3) ^ ROTL64(bmw_qt[4], 4) ^ ROTL64(bmw_qt[4], 37)) + ((bmw_qt[5] >> 1) ^ SHIFTL64(bmw_qt[5], 2) ^ ROTL64(bmw_qt[5], 13) ^ ROTL64(bmw_qt[5], 43)) + ((bmw_qt[6] >> 2) ^ SHIFTL64(bmw_qt[6], 1) ^ ROTL64(bmw_qt[6], 19) ^ ROTL64(bmw_qt[6], 53)) + ((bmw_qt[7] >> 2) ^ SHIFTL64(bmw_qt[7], 2) ^ ROTL64(bmw_qt[7], 28) ^ ROTL64(bmw_qt[7], 59)) + ((bmw_qt[8] >> 1) ^ SHIFTL64(bmw_qt[8], 3) ^ ROTL64(bmw_qt[8], 4) ^ ROTL64(bmw_qt[8], 37)) + ((bmw_qt[9] >> 1) ^ SHIFTL64(bmw_qt[9], 2) ^ ROTL64(bmw_qt[9], 13) ^ ROTL64(bmw_qt[9], 43)) + ((bmw_qt[10] >> 2) ^ SHIFTL64(bmw_qt[10], 1) ^ ROTL64(bmw_qt[10], 19) ^ ROTL64(bmw_qt[10], 53)) + ((bmw_qt[11] >> 2) ^ SHIFTL64(bmw_qt[11], 2) ^ ROTL64(bmw_qt[11], 28) ^ ROTL64(bmw_qt[11], 59)) + ((bmw_qt[12] >> 1) ^ SHIFTL64(bmw_qt[12], 3) ^ ROTL64(bmw_qt[12], 4) ^ ROTL64(bmw_qt[12], 37)) + ((bmw_qt[13] >> 1) ^ SHIFTL64(bmw_qt[13], 2) ^ ROTL64(bmw_qt[13], 13) ^ ROTL64(bmw_qt[13], 43)) + ((bmw_qt[14] >> 2) ^ SHIFTL64(bmw_qt[14], 1) ^ ROTL64(bmw_qt[14], 19) ^ ROTL64(bmw_qt[14], 53)) + ((bmw_qt[15] >> 2) ^ SHIFTL64(bmw_qt[15], 2) ^ ROTL64(bmw_qt[15], 28) ^ ROTL64(bmw_qt[15], 59)) + ((bmw_qt[16] >> 1) ^ SHIFTL64(bmw_qt[16], 3) ^ ROTL64(bmw_qt[16], 4) ^ ROTL64(bmw_qt[16], 37)) + ((ROTL64(bmw_h2[1], 2) + ROTL64(bmw_h2[4], 5) - ROTL64(bmw_h2[11], 12) + 0x5aaaaaaaaaaaaaa5ULL) ^ 0xaaaaaaaaaaaaaaa8ULL));
bmw_qt[18] = (bmw_qt[2] + ROTL64(bmw_qt[3], 5) + bmw_qt[4] + ROTL64(bmw_qt[5] , 11) + bmw_qt[6] + ROTL64(bmw_qt[7] , 27) + bmw_qt[8] + ROTL64(bmw_qt[9], 32) + bmw_qt[10] + ROTL64(bmw_qt[11], 37) + bmw_qt[12] + ROTL64(bmw_qt[13], 43) + bmw_qt[14] + ROTL64(bmw_qt[15], 53) + ((bmw_qt[16] >> 1) ^ bmw_qt[16]) + ((bmw_qt[17] >> 2) ^ bmw_qt[17]) + ((ROTL64(bmw_h2[2], 3) + ROTL64(bmw_h2[5], 6) - ROTL64(bmw_h2[12], 13) + 0x5ffffffffffffffaULL) ^ 0xaaaaaaaaaaaaaaa9ULL)); bmw_qt[19] = (bmw_qt[3] + ROTL64(bmw_qt[4], 5) + bmw_qt[5] + ROTL64(bmw_qt[6] , 11) + bmw_qt[7] + ROTL64(bmw_qt[8] , 27) + bmw_qt[9] + ROTL64(bmw_qt[10], 32) + bmw_qt[11] + ROTL64(bmw_qt[12], 37) + bmw_qt[13] + ROTL64(bmw_qt[14], 43) + bmw_qt[15] + ROTL64(bmw_qt[16], 53) + ((bmw_qt[17] >> 1) ^ bmw_qt[17]) + ((bmw_qt[18] >> 2) ^ bmw_qt[18]) + ((ROTL64(bmw_h2[3], 4) + ROTL64(bmw_h2[6], 7) - ROTL64(bmw_h2[13], 14) + 0x655555555555554fULL) ^ 0xaaaaaaaaaaaaaaaaULL)); bmw_qt[20] = (bmw_qt[4] + ROTL64(bmw_qt[5], 5) + bmw_qt[6] + ROTL64(bmw_qt[7] , 11) + bmw_qt[8] + ROTL64(bmw_qt[9] , 27) + bmw_qt[10] + ROTL64(bmw_qt[11], 32) + bmw_qt[12] + ROTL64(bmw_qt[13], 37) + bmw_qt[14] + ROTL64(bmw_qt[15], 43) + bmw_qt[16] + ROTL64(bmw_qt[17], 53) + ((bmw_qt[18] >> 1) ^ bmw_qt[18]) + ((bmw_qt[19] >> 2) ^ bmw_qt[19]) + ((ROTL64(bmw_h2[4], 5) + ROTL64(bmw_h2[7], 8) - ROTL64(bmw_h2[14], 15) + 0x6aaaaaaaaaaaaaa4ULL) ^ 0xaaaaaaaaaaaaaaabULL)); bmw_qt[21] = (bmw_qt[5] + ROTL64(bmw_qt[6], 5) + bmw_qt[7] + ROTL64(bmw_qt[8] , 11) + bmw_qt[9] + ROTL64(bmw_qt[10], 27) + bmw_qt[11] + ROTL64(bmw_qt[12], 32) + bmw_qt[13] + ROTL64(bmw_qt[14], 37) + bmw_qt[15] + ROTL64(bmw_qt[16], 43) + bmw_qt[17] + ROTL64(bmw_qt[18], 53) + ((bmw_qt[19] >> 1) ^ bmw_qt[19]) + ((bmw_qt[20] >> 2) ^ bmw_qt[20]) + ((ROTL64(bmw_h2[5], 6) + ROTL64(bmw_h2[8], 9) - ROTL64(bmw_h2[15], 16) + 0x6ffffffffffffff9ULL) ^ 0xaaaaaaaaaaaaaaacULL)); bmw_qt[22] = (bmw_qt[6] + ROTL64(bmw_qt[7], 5) + bmw_qt[8] + ROTL64(bmw_qt[9] , 11) + bmw_qt[10] + ROTL64(bmw_qt[11], 27) + bmw_qt[12] + ROTL64(bmw_qt[13], 32) + bmw_qt[14] + ROTL64(bmw_qt[15], 37) + bmw_qt[16] + ROTL64(bmw_qt[17], 43) + bmw_qt[18] + ROTL64(bmw_qt[19], 53) + ((bmw_qt[20] >> 1) ^ bmw_qt[20]) + ((bmw_qt[21] >> 2) ^ bmw_qt[21]) + ((ROTL64(bmw_h2[6], 7) + ROTL64(bmw_h2[9], 10) - ROTL64(bmw_h2[0], 1) + 0x755555555555554eULL) ^ 0xaaaaaaaaaaaaaaadULL)); bmw_qt[23] = (bmw_qt[7] + ROTL64(bmw_qt[8], 5) + bmw_qt[9] + ROTL64(bmw_qt[10], 11) + bmw_qt[11] + ROTL64(bmw_qt[12], 27) + bmw_qt[13] + ROTL64(bmw_qt[14], 32) + bmw_qt[15] + ROTL64(bmw_qt[16], 37) + bmw_qt[17] + ROTL64(bmw_qt[18], 43) + bmw_qt[19] + ROTL64(bmw_qt[20], 53) + ((bmw_qt[21] >> 1) ^ bmw_qt[21]) + ((bmw_qt[22] >> 2) ^ bmw_qt[22]) + ((ROTL64(bmw_h2[7], 8) + ROTL64(bmw_h2[10], 11) - ROTL64(bmw_h2[1], 2) + 0x7aaaaaaaaaaaaaa3ULL) ^ 0xaaaaaaaaaaaaaaaeULL)); bmw_qt[24] = (bmw_qt[8] + ROTL64(bmw_qt[9], 5) + bmw_qt[10] + ROTL64(bmw_qt[11], 11) + bmw_qt[12] + ROTL64(bmw_qt[13], 27) + bmw_qt[14] + ROTL64(bmw_qt[15], 32) + bmw_qt[16] + ROTL64(bmw_qt[17], 37) + bmw_qt[18] + ROTL64(bmw_qt[19], 43) + bmw_qt[20] + ROTL64(bmw_qt[21], 53) + ((bmw_qt[22] >> 1) ^ bmw_qt[22]) + ((bmw_qt[23] >> 2) ^ bmw_qt[23]) + ((ROTL64(bmw_h2[8], 9) + ROTL64(bmw_h2[11], 12) - ROTL64(bmw_h2[2], 3) + 0x7ffffffffffffff8ULL) ^ 0xaaaaaaaaaaaaaaafULL)); bmw_qt[25] = (bmw_qt[9] + ROTL64(bmw_qt[10], 5) + bmw_qt[11] + ROTL64(bmw_qt[12], 11) + bmw_qt[13] + ROTL64(bmw_qt[14], 27) + bmw_qt[15] + ROTL64(bmw_qt[16], 32) + bmw_qt[17] + ROTL64(bmw_qt[18], 37) + bmw_qt[19] + ROTL64(bmw_qt[20], 43) + bmw_qt[21] + ROTL64(bmw_qt[22], 53) + ((bmw_qt[23] >> 1) ^ bmw_qt[23]) + ((bmw_qt[24] >> 2) ^ bmw_qt[24]) + ((ROTL64(bmw_h2[9], 10) + ROTL64(bmw_h2[12], 13) - ROTL64(bmw_h2[3], 4) + 0x855555555555554dULL) ^ 0xaaaaaaaaaaaaaaa0ULL)); bmw_qt[26] = (bmw_qt[10] + ROTL64(bmw_qt[11], 5) + bmw_qt[12] + ROTL64(bmw_qt[13], 11) + bmw_qt[14] + ROTL64(bmw_qt[15], 27) + bmw_qt[16] + ROTL64(bmw_qt[17], 32) + bmw_qt[18] + ROTL64(bmw_qt[19], 37) + bmw_qt[20] + ROTL64(bmw_qt[21], 43) + bmw_qt[22] + ROTL64(bmw_qt[23], 53) + ((bmw_qt[24] >> 1) ^ bmw_qt[24]) + ((bmw_qt[25] >> 2) ^ bmw_qt[25]) + ((ROTL64(bmw_h2[10], 11) + ROTL64(bmw_h2[13], 14) - ROTL64(bmw_h2[4], 5) + 0x8aaaaaaaaaaaaaa2ULL) ^ 0xaaaaaaaaaaaaaaa1ULL)); bmw_qt[27] = (bmw_qt[11] + ROTL64(bmw_qt[12], 5) + bmw_qt[13] + ROTL64(bmw_qt[14], 11) + bmw_qt[15] + ROTL64(bmw_qt[16], 27) + bmw_qt[17] + ROTL64(bmw_qt[18], 32) + bmw_qt[19] + ROTL64(bmw_qt[20], 37) + bmw_qt[21] + ROTL64(bmw_qt[22], 43) + bmw_qt[23] + ROTL64(bmw_qt[24], 53) + ((bmw_qt[25] >> 1) ^ bmw_qt[25]) + ((bmw_qt[26] >> 2) ^ bmw_qt[26]) + ((ROTL64(bmw_h2[11], 12) + ROTL64(bmw_h2[14], 15) - ROTL64(bmw_h2[5], 6) + 0x8ffffffffffffff7ULL) ^ 0xaaaaaaaaaaaaaaa2ULL)); bmw_qt[28] = (bmw_qt[12] + ROTL64(bmw_qt[13], 5) + bmw_qt[14] + ROTL64(bmw_qt[15], 11) + bmw_qt[16] + ROTL64(bmw_qt[17], 27) + bmw_qt[18] + ROTL64(bmw_qt[19], 32) + bmw_qt[20] + ROTL64(bmw_qt[21], 37) + bmw_qt[22] + ROTL64(bmw_qt[23], 43) + bmw_qt[24] + ROTL64(bmw_qt[25], 53) + ((bmw_qt[26] >> 1) ^ bmw_qt[26]) + ((bmw_qt[27] >> 2) ^ bmw_qt[27]) + ((ROTL64(bmw_h2[12], 13) + ROTL64(bmw_h2[15], 16) - ROTL64(bmw_h2[6], 7) + 0x955555555555554cULL) ^ 0xaaaaaaaaaaaaaaa3ULL)); bmw_qt[29] = (bmw_qt[13] + ROTL64(bmw_qt[14], 5) + bmw_qt[15] + ROTL64(bmw_qt[16], 11) + bmw_qt[17] + ROTL64(bmw_qt[18], 27) + bmw_qt[19] + ROTL64(bmw_qt[20], 32) + bmw_qt[21] + ROTL64(bmw_qt[22], 37) + bmw_qt[23] + ROTL64(bmw_qt[24], 43) + bmw_qt[25] + ROTL64(bmw_qt[26], 53) + ((bmw_qt[27] >> 1) ^ bmw_qt[27]) + ((bmw_qt[28] >> 2) ^ bmw_qt[28]) + ((ROTL64(bmw_h2[13], 14) + ROTL64(bmw_h2[0], 1) - ROTL64(bmw_h2[7], 8) + 0x9aaaaaaaaaaaaaa1ULL) ^ 0xaaaaaaaaaaaaaaa4ULL)); bmw_qt[30] = (bmw_qt[14] + ROTL64(bmw_qt[15], 5) + bmw_qt[16] + ROTL64(bmw_qt[17], 11) + bmw_qt[18] + ROTL64(bmw_qt[19], 27) + bmw_qt[20] + ROTL64(bmw_qt[21], 32) + bmw_qt[22] + ROTL64(bmw_qt[23], 37) + bmw_qt[24] + ROTL64(bmw_qt[25], 43) + bmw_qt[26] + ROTL64(bmw_qt[27], 53) + ((bmw_qt[28] >> 1) ^ bmw_qt[28]) + ((bmw_qt[29] >> 2) ^ bmw_qt[29]) + ((ROTL64(bmw_h2[14], 15) + ROTL64(bmw_h2[1], 2) - ROTL64(bmw_h2[8], 9) + 0x9ffffffffffffff6ULL) ^ 0xaaaaaaaaaaaaaaa5ULL)); bmw_qt[31] = (bmw_qt[15] + ROTL64(bmw_qt[16], 5) + bmw_qt[17] + ROTL64(bmw_qt[18], 11) + bmw_qt[19] + ROTL64(bmw_qt[20], 27) + bmw_qt[21] + ROTL64(bmw_qt[22], 32) + bmw_qt[23] + ROTL64(bmw_qt[24], 37) + bmw_qt[25] + ROTL64(bmw_qt[26], 43) + bmw_qt[27] + ROTL64(bmw_qt[28], 53) + ((bmw_qt[29] >> 1) ^ bmw_qt[29]) + ((bmw_qt[30] >> 2) ^ bmw_qt[30]) + ((ROTL64(bmw_h2[15], 16) + ROTL64(bmw_h2[2], 3) - ROTL64(bmw_h2[9], 10) + 0xa55555555555554bULL) ^ 0xaaaaaaaaaaaaaaa6ULL));
bmw_xl = bmw_qt[16] ^ bmw_qt[17] ^ bmw_qt[18] ^ bmw_qt[19] ^ bmw_qt[20] ^ bmw_qt[21] ^ bmw_qt[22] ^ bmw_qt[23]; bmw_xh = bmw_xl ^ bmw_qt[24] ^ bmw_qt[25] ^ bmw_qt[26] ^ bmw_qt[27] ^ bmw_qt[28] ^ bmw_qt[29] ^ bmw_qt[30] ^ bmw_qt[31]; bmw_h2[0] = ((bmw_xh << 5) ^ (bmw_qt[16] >> 5) ^ bmw_h2[0]) + (bmw_xl ^ bmw_qt[24] ^ bmw_qt[0]); bmw_h2[1] = ((bmw_xh >> 7) ^ (bmw_qt[17] << 8) ^ bmw_h2[1]) + (bmw_xl ^ bmw_qt[25] ^ bmw_qt[1]); bmw_h2[2] = ((bmw_xh >> 5) ^ (bmw_qt[18] << 5) ^ bmw_h2[2]) + (bmw_xl ^ bmw_qt[26] ^ bmw_qt[2]); bmw_h2[3] = ((bmw_xh >> 1) ^ (bmw_qt[19] << 5) ^ bmw_h2[3]) + (bmw_xl ^ bmw_qt[27] ^ bmw_qt[3]); bmw_h2[4] = ((bmw_xh >> 3) ^ (bmw_qt[20] << 0) ^ bmw_h2[4]) + (bmw_xl ^ bmw_qt[28] ^ bmw_qt[4]); bmw_h2[5] = ((bmw_xh << 6) ^ (bmw_qt[21] >> 6) ^ bmw_h2[5]) + (bmw_xl ^ bmw_qt[29] ^ bmw_qt[5]); bmw_h2[6] = ((bmw_xh >> 4) ^ (bmw_qt[22] << 6) ^ bmw_h2[6]) + (bmw_xl ^ bmw_qt[30] ^ bmw_qt[6]); bmw_h2[7] = ((bmw_xh >> 11) ^ (bmw_qt[23] << 2) ^ bmw_h2[7]) + (bmw_xl ^ (bmw_qt[31]) ^ bmw_qt[7]); hash64[0] = ROTL64(bmw_h2[4], 9) + (bmw_xh ^ bmw_qt[24] ^ bmw_h2[8]) + ((bmw_xl << 8) ^ bmw_qt[23] ^ bmw_qt[8]); hash64[1] = ROTL64(bmw_h2[5], 10) + (bmw_xh ^ bmw_qt[25] ^ bmw_h2[9]) + ((bmw_xl >> 6) ^ bmw_qt[16] ^ bmw_qt[9]); hash64[2] = ROTL64(bmw_h2[6], 11) + (bmw_xh ^ bmw_qt[26] ^ bmw_h2[10]) + ((bmw_xl << 6) ^ bmw_qt[17] ^ bmw_qt[10]); hash64[3] = ROTL64(bmw_h2[7], 12) + (bmw_xh ^ bmw_qt[27] ^ bmw_h2[11]) + ((bmw_xl << 4) ^ bmw_qt[18] ^ bmw_qt[11]); hash64[4] = ROTL64(bmw_h2[0], 13) + (bmw_xh ^ bmw_qt[28] ^ bmw_h2[12]) + ((bmw_xl >> 3) ^ bmw_qt[19] ^ bmw_qt[12]); hash64[5] = ROTL64(bmw_h2[1], 14) + (bmw_xh ^ bmw_qt[29] ^ bmw_h2[13]) + ((bmw_xl >> 4) ^ bmw_qt[20] ^ bmw_qt[13]); hash64[6] = ROTL64(bmw_h2[2], 15) + (bmw_xh ^ bmw_qt[30] ^ bmw_h2[14]) + ((bmw_xl >> 7) ^ bmw_qt[21] ^ bmw_qt[14]); hash64[7] = ROTL64(bmw_h2[3], 16) + (bmw_xh ^ (bmw_qt[31]) ^ bmw_h2[15]) + ((bmw_xl >> 2) ^ bmw_qt[22] ^ bmw_qt[15]); } }
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
October 22, 2014, 01:38:00 AM |
|
Groestl: #define groestl_EXT_BYTE_0(n) EXT_BYTE32_0(n) #define groestl_EXT_BYTE_1(n) EXT_BYTE32_1(n) #define groestl_EXT_BYTE_2(n) EXT_BYTE32_2(n) #define groestl_EXT_BYTE_3(n) EXT_BYTE32_3(n)
#define groestl_PMIX(src, dst, r)\ src[ 0] ^= (r);\ src[ 2] ^= 0x00000010u^(r);\ src[ 4] ^= 0x00000020u^(r);\ src[ 6] ^= 0x00000030u^(r);\ src[ 8] ^= 0x00000040u^(r);\ src[10] ^= 0x00000050u^(r);\ src[12] ^= 0x00000060u^(r);\ src[14] ^= 0x00000070u^(r);\ src[16] ^= 0x00000080u^(r);\ src[18] ^= 0x00000090u^(r);\ src[20] ^= 0x000000a0u^(r);\ src[22] ^= 0x000000b0u^(r);\ src[24] ^= 0x000000c0u^(r);\ src[26] ^= 0x000000d0u^(r);\ src[28] ^= 0x000000e0u^(r);\ src[30] ^= 0x000000f0u^(r);\ dst[ 0] = groestl_T0[groestl_EXT_BYTE_0(src[ 0])];\ dst[ 1] = groestl_T0[groestl_EXT_BYTE_0(src[ 9])];\ dst[ 2] = groestl_T0[groestl_EXT_BYTE_0(src[ 2])];\ dst[ 3] = groestl_T0[groestl_EXT_BYTE_0(src[11])];\ dst[ 4] = groestl_T0[groestl_EXT_BYTE_0(src[ 4])];\ dst[ 5] = groestl_T0[groestl_EXT_BYTE_0(src[13])];\ dst[ 6] = groestl_T0[groestl_EXT_BYTE_0(src[ 6])];\ dst[ 7] = groestl_T0[groestl_EXT_BYTE_0(src[15])];\ dst[ 8] = groestl_T0[groestl_EXT_BYTE_0(src[ 8])];\ dst[ 9] = groestl_T0[groestl_EXT_BYTE_0(src[17])];\ dst[10] = groestl_T0[groestl_EXT_BYTE_0(src[10])];\ dst[11] = groestl_T0[groestl_EXT_BYTE_0(src[19])];\ dst[12] = groestl_T0[groestl_EXT_BYTE_0(src[12])];\ dst[13] = groestl_T0[groestl_EXT_BYTE_0(src[21])];\ dst[14] = groestl_T0[groestl_EXT_BYTE_0(src[14])];\ dst[15] = groestl_T0[groestl_EXT_BYTE_0(src[23])];\ dst[16] = groestl_T0[groestl_EXT_BYTE_0(src[16])];\ dst[17] = groestl_T0[groestl_EXT_BYTE_0(src[25])];\ dst[18] = groestl_T0[groestl_EXT_BYTE_0(src[18])];\ dst[19] = groestl_T0[groestl_EXT_BYTE_0(src[27])];\ dst[20] = groestl_T0[groestl_EXT_BYTE_0(src[20])];\ dst[21] = groestl_T0[groestl_EXT_BYTE_0(src[29])];\ dst[22] = groestl_T0[groestl_EXT_BYTE_0(src[22])];\ dst[23] = groestl_T0[groestl_EXT_BYTE_0(src[31])];\ dst[24] = groestl_T0[groestl_EXT_BYTE_0(src[24])];\ dst[25] = groestl_T0[groestl_EXT_BYTE_0(src[ 1])];\ dst[26] = groestl_T0[groestl_EXT_BYTE_0(src[26])];\ dst[27] = groestl_T0[groestl_EXT_BYTE_0(src[ 3])];\ dst[28] = groestl_T0[groestl_EXT_BYTE_0(src[28])];\ dst[29] = groestl_T0[groestl_EXT_BYTE_0(src[ 5])];\ dst[30] = groestl_T0[groestl_EXT_BYTE_0(src[30])];\ dst[31] = groestl_T0[groestl_EXT_BYTE_0(src[ 7])];\ dst[ 0] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 2])];\ dst[ 1] ^= groestl_T1[groestl_EXT_BYTE_1(src[11])];\ dst[ 2] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 4])];\ dst[ 3] ^= groestl_T1[groestl_EXT_BYTE_1(src[13])];\ dst[ 4] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 6])];\ dst[ 5] ^= groestl_T1[groestl_EXT_BYTE_1(src[15])];\ dst[ 6] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 8])];\ dst[ 7] ^= groestl_T1[groestl_EXT_BYTE_1(src[17])];\ dst[ 8] ^= groestl_T1[groestl_EXT_BYTE_1(src[10])];\ dst[ 9] ^= groestl_T1[groestl_EXT_BYTE_1(src[19])];\ dst[10] ^= groestl_T1[groestl_EXT_BYTE_1(src[12])];\ dst[11] ^= groestl_T1[groestl_EXT_BYTE_1(src[21])];\ dst[12] ^= groestl_T1[groestl_EXT_BYTE_1(src[14])];\ dst[13] ^= groestl_T1[groestl_EXT_BYTE_1(src[23])];\ dst[14] ^= groestl_T1[groestl_EXT_BYTE_1(src[16])];\ dst[15] ^= groestl_T1[groestl_EXT_BYTE_1(src[25])];\ dst[16] ^= groestl_T1[groestl_EXT_BYTE_1(src[18])];\ dst[17] ^= groestl_T1[groestl_EXT_BYTE_1(src[27])];\ dst[18] ^= groestl_T1[groestl_EXT_BYTE_1(src[20])];\ dst[19] ^= groestl_T1[groestl_EXT_BYTE_1(src[29])];\ dst[20] ^= groestl_T1[groestl_EXT_BYTE_1(src[22])];\ dst[21] ^= groestl_T1[groestl_EXT_BYTE_1(src[31])];\ dst[22] ^= groestl_T1[groestl_EXT_BYTE_1(src[24])];\ dst[23] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 1])];\ dst[24] ^= groestl_T1[groestl_EXT_BYTE_1(src[26])];\ dst[25] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 3])];\ dst[26] ^= groestl_T1[groestl_EXT_BYTE_1(src[28])];\ dst[27] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 5])];\ dst[28] ^= groestl_T1[groestl_EXT_BYTE_1(src[30])];\ dst[29] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 7])];\ dst[30] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 0])];\ dst[31] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 9])];\ dst[ 0] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 4])];\ dst[ 1] ^= groestl_T2[groestl_EXT_BYTE_2(src[13])];\ dst[ 2] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 6])];\ dst[ 3] ^= groestl_T2[groestl_EXT_BYTE_2(src[15])];\ dst[ 4] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 8])];\ dst[ 5] ^= groestl_T2[groestl_EXT_BYTE_2(src[17])];\ dst[ 6] ^= groestl_T2[groestl_EXT_BYTE_2(src[10])];\ dst[ 7] ^= groestl_T2[groestl_EXT_BYTE_2(src[19])];\ dst[ 8] ^= groestl_T2[groestl_EXT_BYTE_2(src[12])];\ dst[ 9] ^= groestl_T2[groestl_EXT_BYTE_2(src[21])];\ dst[10] ^= groestl_T2[groestl_EXT_BYTE_2(src[14])];\ dst[11] ^= groestl_T2[groestl_EXT_BYTE_2(src[23])];\ dst[12] ^= groestl_T2[groestl_EXT_BYTE_2(src[16])];\ dst[13] ^= groestl_T2[groestl_EXT_BYTE_2(src[25])];\ dst[14] ^= groestl_T2[groestl_EXT_BYTE_2(src[18])];\ dst[15] ^= groestl_T2[groestl_EXT_BYTE_2(src[27])];\ dst[16] ^= groestl_T2[groestl_EXT_BYTE_2(src[20])];\ dst[17] ^= groestl_T2[groestl_EXT_BYTE_2(src[29])];\ dst[18] ^= groestl_T2[groestl_EXT_BYTE_2(src[22])];\ dst[19] ^= groestl_T2[groestl_EXT_BYTE_2(src[31])];\ dst[20] ^= groestl_T2[groestl_EXT_BYTE_2(src[24])];\ dst[21] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 1])];\ dst[22] ^= groestl_T2[groestl_EXT_BYTE_2(src[26])];\ dst[23] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 3])];\ dst[24] ^= groestl_T2[groestl_EXT_BYTE_2(src[28])];\ dst[25] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 5])];\ dst[26] ^= groestl_T2[groestl_EXT_BYTE_2(src[30])];\ dst[27] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 7])];\ dst[28] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 0])];\ dst[29] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 9])];\ dst[30] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 2])];\ dst[31] ^= groestl_T2[groestl_EXT_BYTE_2(src[11])];\ dst[ 0] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 6])];\ dst[ 1] ^= groestl_T3[groestl_EXT_BYTE_3(src[23])];\ dst[ 2] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 8])];\ dst[ 3] ^= groestl_T3[groestl_EXT_BYTE_3(src[25])];\ dst[ 4] ^= groestl_T3[groestl_EXT_BYTE_3(src[10])];\ dst[ 5] ^= groestl_T3[groestl_EXT_BYTE_3(src[27])];\ dst[ 6] ^= groestl_T3[groestl_EXT_BYTE_3(src[12])];\ dst[ 7] ^= groestl_T3[groestl_EXT_BYTE_3(src[29])];\ dst[ 8] ^= groestl_T3[groestl_EXT_BYTE_3(src[14])];\ dst[ 9] ^= groestl_T3[groestl_EXT_BYTE_3(src[31])];\ dst[10] ^= groestl_T3[groestl_EXT_BYTE_3(src[16])];\ dst[11] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 1])];\ dst[12] ^= groestl_T3[groestl_EXT_BYTE_3(src[18])];\ dst[13] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 3])];\ dst[14] ^= groestl_T3[groestl_EXT_BYTE_3(src[20])];\ dst[15] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 5])];\ dst[16] ^= groestl_T3[groestl_EXT_BYTE_3(src[22])];\ dst[17] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 7])];\ dst[18] ^= groestl_T3[groestl_EXT_BYTE_3(src[24])];\ dst[19] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 9])];\ dst[20] ^= groestl_T3[groestl_EXT_BYTE_3(src[26])];\ dst[21] ^= groestl_T3[groestl_EXT_BYTE_3(src[11])];\ dst[22] ^= groestl_T3[groestl_EXT_BYTE_3(src[28])];\ dst[23] ^= groestl_T3[groestl_EXT_BYTE_3(src[13])];\ dst[24] ^= groestl_T3[groestl_EXT_BYTE_3(src[30])];\ dst[25] ^= groestl_T3[groestl_EXT_BYTE_3(src[15])];\ dst[26] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 0])];\ dst[27] ^= groestl_T3[groestl_EXT_BYTE_3(src[17])];\ dst[28] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 2])];\ dst[29] ^= groestl_T3[groestl_EXT_BYTE_3(src[19])];\ dst[30] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 4])];\ dst[31] ^= groestl_T3[groestl_EXT_BYTE_3(src[21])];\ dst[ 0] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 9])];\ dst[ 1] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 0])];\ dst[ 2] ^= groestl_T4[groestl_EXT_BYTE_0(src[11])];\ dst[ 3] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 2])];\ dst[ 4] ^= groestl_T4[groestl_EXT_BYTE_0(src[13])];\ dst[ 5] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 4])];\ dst[ 6] ^= groestl_T4[groestl_EXT_BYTE_0(src[15])];\ dst[ 7] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 6])];\ dst[ 8] ^= groestl_T4[groestl_EXT_BYTE_0(src[17])];\ dst[ 9] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 8])];\ dst[10] ^= groestl_T4[groestl_EXT_BYTE_0(src[19])];\ dst[11] ^= groestl_T4[groestl_EXT_BYTE_0(src[10])];\ dst[12] ^= groestl_T4[groestl_EXT_BYTE_0(src[21])];\ dst[13] ^= groestl_T4[groestl_EXT_BYTE_0(src[12])];\ dst[14] ^= groestl_T4[groestl_EXT_BYTE_0(src[23])];\ dst[15] ^= groestl_T4[groestl_EXT_BYTE_0(src[14])];\ dst[16] ^= groestl_T4[groestl_EXT_BYTE_0(src[25])];\ dst[17] ^= groestl_T4[groestl_EXT_BYTE_0(src[16])];\ dst[18] ^= groestl_T4[groestl_EXT_BYTE_0(src[27])];\ dst[19] ^= groestl_T4[groestl_EXT_BYTE_0(src[18])];\ dst[20] ^= groestl_T4[groestl_EXT_BYTE_0(src[29])];\ dst[21] ^= groestl_T4[groestl_EXT_BYTE_0(src[20])];\ dst[22] ^= groestl_T4[groestl_EXT_BYTE_0(src[31])];\ dst[23] ^= groestl_T4[groestl_EXT_BYTE_0(src[22])];\ dst[24] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 1])];\ dst[25] ^= groestl_T4[groestl_EXT_BYTE_0(src[24])];\ dst[26] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 3])];\ dst[27] ^= groestl_T4[groestl_EXT_BYTE_0(src[26])];\ dst[28] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 5])];\ dst[29] ^= groestl_T4[groestl_EXT_BYTE_0(src[28])];\ dst[30] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 7])];\ dst[31] ^= groestl_T4[groestl_EXT_BYTE_0(src[30])];\ dst[ 0] ^= groestl_T5[groestl_EXT_BYTE_1(src[11])];\ dst[ 1] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 2])];\ dst[ 2] ^= groestl_T5[groestl_EXT_BYTE_1(src[13])];\ dst[ 3] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 4])];\ dst[ 4] ^= groestl_T5[groestl_EXT_BYTE_1(src[15])];\ dst[ 5] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 6])];\ dst[ 6] ^= groestl_T5[groestl_EXT_BYTE_1(src[17])];\ dst[ 7] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 8])];\ dst[ 8] ^= groestl_T5[groestl_EXT_BYTE_1(src[19])];\ dst[ 9] ^= groestl_T5[groestl_EXT_BYTE_1(src[10])];\ dst[10] ^= groestl_T5[groestl_EXT_BYTE_1(src[21])];\ dst[11] ^= groestl_T5[groestl_EXT_BYTE_1(src[12])];\ dst[12] ^= groestl_T5[groestl_EXT_BYTE_1(src[23])];\ dst[13] ^= groestl_T5[groestl_EXT_BYTE_1(src[14])];\ dst[14] ^= groestl_T5[groestl_EXT_BYTE_1(src[25])];\ dst[15] ^= groestl_T5[groestl_EXT_BYTE_1(src[16])];\ dst[16] ^= groestl_T5[groestl_EXT_BYTE_1(src[27])];\ dst[17] ^= groestl_T5[groestl_EXT_BYTE_1(src[18])];\ dst[18] ^= groestl_T5[groestl_EXT_BYTE_1(src[29])];\ dst[19] ^= groestl_T5[groestl_EXT_BYTE_1(src[20])];\ dst[20] ^= groestl_T5[groestl_EXT_BYTE_1(src[31])];\ dst[21] ^= groestl_T5[groestl_EXT_BYTE_1(src[22])];\ dst[22] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 1])];\ dst[23] ^= groestl_T5[groestl_EXT_BYTE_1(src[24])];\ dst[24] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 3])];\ dst[25] ^= groestl_T5[groestl_EXT_BYTE_1(src[26])];\ dst[26] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 5])];\ dst[27] ^= groestl_T5[groestl_EXT_BYTE_1(src[28])];\ dst[28] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 7])];\ dst[29] ^= groestl_T5[groestl_EXT_BYTE_1(src[30])];\ dst[30] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 9])];\ dst[31] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 0])];\ dst[ 0] ^= groestl_T6[groestl_EXT_BYTE_2(src[13])];\ dst[ 1] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 4])];\ dst[ 2] ^= groestl_T6[groestl_EXT_BYTE_2(src[15])];\ dst[ 3] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 6])];\ dst[ 4] ^= groestl_T6[groestl_EXT_BYTE_2(src[17])];\ dst[ 5] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 8])];\ dst[ 6] ^= groestl_T6[groestl_EXT_BYTE_2(src[19])];\ dst[ 7] ^= groestl_T6[groestl_EXT_BYTE_2(src[10])];\ dst[ 8] ^= groestl_T6[groestl_EXT_BYTE_2(src[21])];\ dst[ 9] ^= groestl_T6[groestl_EXT_BYTE_2(src[12])];\ dst[10] ^= groestl_T6[groestl_EXT_BYTE_2(src[23])];\ dst[11] ^= groestl_T6[groestl_EXT_BYTE_2(src[14])];\ dst[12] ^= groestl_T6[groestl_EXT_BYTE_2(src[25])];\ dst[13] ^= groestl_T6[groestl_EXT_BYTE_2(src[16])];\ dst[14] ^= groestl_T6[groestl_EXT_BYTE_2(src[27])];\ dst[15] ^= groestl_T6[groestl_EXT_BYTE_2(src[18])];\ dst[16] ^= groestl_T6[groestl_EXT_BYTE_2(src[29])];\ dst[17] ^= groestl_T6[groestl_EXT_BYTE_2(src[20])];\ dst[18] ^= groestl_T6[groestl_EXT_BYTE_2(src[31])];\ dst[19] ^= groestl_T6[groestl_EXT_BYTE_2(src[22])];\ dst[20] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 1])];\ dst[21] ^= groestl_T6[groestl_EXT_BYTE_2(src[24])];\ dst[22] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 3])];\ dst[23] ^= groestl_T6[groestl_EXT_BYTE_2(src[26])];\ dst[24] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 5])];\ dst[25] ^= groestl_T6[groestl_EXT_BYTE_2(src[28])];\ dst[26] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 7])];\ dst[27] ^= groestl_T6[groestl_EXT_BYTE_2(src[30])];\ dst[28] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 9])];\ dst[29] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 0])];\ dst[30] ^= groestl_T6[groestl_EXT_BYTE_2(src[11])];\ dst[31] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 2])];\ dst[ 0] ^= groestl_T7[groestl_EXT_BYTE_3(src[23])];\ dst[ 1] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 6])];\ dst[ 2] ^= groestl_T7[groestl_EXT_BYTE_3(src[25])];\ dst[ 3] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 8])];\ dst[ 4] ^= groestl_T7[groestl_EXT_BYTE_3(src[27])];\ dst[ 5] ^= groestl_T7[groestl_EXT_BYTE_3(src[10])];\ dst[ 6] ^= groestl_T7[groestl_EXT_BYTE_3(src[29])];\ dst[ 7] ^= groestl_T7[groestl_EXT_BYTE_3(src[12])];\ dst[ 8] ^= groestl_T7[groestl_EXT_BYTE_3(src[31])];\ dst[ 9] ^= groestl_T7[groestl_EXT_BYTE_3(src[14])];\ dst[10] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 1])];\ dst[11] ^= groestl_T7[groestl_EXT_BYTE_3(src[16])];\ dst[12] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 3])];\ dst[13] ^= groestl_T7[groestl_EXT_BYTE_3(src[18])];\ dst[14] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 5])];\ dst[15] ^= groestl_T7[groestl_EXT_BYTE_3(src[20])];\ dst[16] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 7])];\ dst[17] ^= groestl_T7[groestl_EXT_BYTE_3(src[22])];\ dst[18] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 9])];\ dst[19] ^= groestl_T7[groestl_EXT_BYTE_3(src[24])];\ dst[20] ^= groestl_T7[groestl_EXT_BYTE_3(src[11])];\ dst[21] ^= groestl_T7[groestl_EXT_BYTE_3(src[26])];\ dst[22] ^= groestl_T7[groestl_EXT_BYTE_3(src[13])];\ dst[23] ^= groestl_T7[groestl_EXT_BYTE_3(src[28])];\ dst[24] ^= groestl_T7[groestl_EXT_BYTE_3(src[15])];\ dst[25] ^= groestl_T7[groestl_EXT_BYTE_3(src[30])];\ dst[26] ^= groestl_T7[groestl_EXT_BYTE_3(src[17])];\ dst[27] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 0])];\ dst[28] ^= groestl_T7[groestl_EXT_BYTE_3(src[19])];\ dst[29] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 2])];\ dst[30] ^= groestl_T7[groestl_EXT_BYTE_3(src[21])];\ dst[31] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 4])];
#define groestl_QMIX(src, dst, r)\ src[ 0] = ~src[ 0];\ src[ 1] ^= ~(r);\ src[ 2] = ~src[ 2];\ src[ 3] ^= 0xefffffffu^(r);\ src[ 4] = ~src[ 4];\ src[ 5] ^= 0xdfffffffu^(r);\ src[ 6] = ~src[ 6];\ src[ 7] ^= 0xcfffffffu^(r);\ src[ 8] = ~src[ 8];\ src[ 9] ^= 0xbfffffffu^(r);\ src[10] = ~src[10];\ src[11] ^= 0xafffffffu^(r);\ src[12] = ~src[12];\ src[13] ^= 0x9fffffffu^(r);\ src[14] = ~src[14];\ src[15] ^= 0x8fffffffu^(r);\ src[16] = ~src[16];\ src[17] ^= 0x7fffffffu^(r);\ src[18] = ~src[18];\ src[19] ^= 0x6fffffffu^(r);\ src[20] = ~src[20];\ src[21] ^= 0x5fffffffu^(r);\ src[22] = ~src[22];\ src[23] ^= 0x4fffffffu^(r);\ src[24] = ~src[24];\ src[25] ^= 0x3fffffffu^(r);\ src[26] = ~src[26];\ src[27] ^= 0x2fffffffu^(r);\ src[28] = ~src[28];\ src[29] ^= 0x1fffffffu^(r);\ src[30] = ~src[30];\ src[31] ^= 0x0fffffffu^(r);\ dst[ 0] = groestl_T0[groestl_EXT_BYTE_0(src[ 2])];\ dst[ 1] = groestl_T0[groestl_EXT_BYTE_0(src[ 1])];\ dst[ 2] = groestl_T0[groestl_EXT_BYTE_0(src[ 4])];\ dst[ 3] = groestl_T0[groestl_EXT_BYTE_0(src[ 3])];\ dst[ 4] = groestl_T0[groestl_EXT_BYTE_0(src[ 6])];\ dst[ 5] = groestl_T0[groestl_EXT_BYTE_0(src[ 5])];\ dst[ 6] = groestl_T0[groestl_EXT_BYTE_0(src[ 8])];\ dst[ 7] = groestl_T0[groestl_EXT_BYTE_0(src[ 7])];\ dst[ 8] = groestl_T0[groestl_EXT_BYTE_0(src[10])];\ dst[ 9] = groestl_T0[groestl_EXT_BYTE_0(src[ 9])];\ dst[10] = groestl_T0[groestl_EXT_BYTE_0(src[12])];\ dst[11] = groestl_T0[groestl_EXT_BYTE_0(src[11])];\ dst[12] = groestl_T0[groestl_EXT_BYTE_0(src[14])];\ dst[13] = groestl_T0[groestl_EXT_BYTE_0(src[13])];\ dst[14] = groestl_T0[groestl_EXT_BYTE_0(src[16])];\ dst[15] = groestl_T0[groestl_EXT_BYTE_0(src[15])];\ dst[16] = groestl_T0[groestl_EXT_BYTE_0(src[18])];\ dst[17] = groestl_T0[groestl_EXT_BYTE_0(src[17])];\ dst[18] = groestl_T0[groestl_EXT_BYTE_0(src[20])];\ dst[19] = groestl_T0[groestl_EXT_BYTE_0(src[19])];\ dst[20] = groestl_T0[groestl_EXT_BYTE_0(src[22])];\ dst[21] = groestl_T0[groestl_EXT_BYTE_0(src[21])];\ dst[22] = groestl_T0[groestl_EXT_BYTE_0(src[24])];\ dst[23] = groestl_T0[groestl_EXT_BYTE_0(src[23])];\ dst[24] = groestl_T0[groestl_EXT_BYTE_0(src[26])];\ dst[25] = groestl_T0[groestl_EXT_BYTE_0(src[25])];\ dst[26] = groestl_T0[groestl_EXT_BYTE_0(src[28])];\ dst[27] = groestl_T0[groestl_EXT_BYTE_0(src[27])];\ dst[28] = groestl_T0[groestl_EXT_BYTE_0(src[30])];\ dst[29] = groestl_T0[groestl_EXT_BYTE_0(src[29])];\ dst[30] = groestl_T0[groestl_EXT_BYTE_0(src[ 0])];\ dst[31] = groestl_T0[groestl_EXT_BYTE_0(src[31])];\ dst[ 0] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 6])];\ dst[ 1] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 5])];\ dst[ 2] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 8])];\ dst[ 3] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 7])];\ dst[ 4] ^= groestl_T1[groestl_EXT_BYTE_1(src[10])];\ dst[ 5] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 9])];\ dst[ 6] ^= groestl_T1[groestl_EXT_BYTE_1(src[12])];\ dst[ 7] ^= groestl_T1[groestl_EXT_BYTE_1(src[11])];\ dst[ 8] ^= groestl_T1[groestl_EXT_BYTE_1(src[14])];\ dst[ 9] ^= groestl_T1[groestl_EXT_BYTE_1(src[13])];\ dst[10] ^= groestl_T1[groestl_EXT_BYTE_1(src[16])];\ dst[11] ^= groestl_T1[groestl_EXT_BYTE_1(src[15])];\ dst[12] ^= groestl_T1[groestl_EXT_BYTE_1(src[18])];\ dst[13] ^= groestl_T1[groestl_EXT_BYTE_1(src[17])];\ dst[14] ^= groestl_T1[groestl_EXT_BYTE_1(src[20])];\ dst[15] ^= groestl_T1[groestl_EXT_BYTE_1(src[19])];\ dst[16] ^= groestl_T1[groestl_EXT_BYTE_1(src[22])];\ dst[17] ^= groestl_T1[groestl_EXT_BYTE_1(src[21])];\ dst[18] ^= groestl_T1[groestl_EXT_BYTE_1(src[24])];\ dst[19] ^= groestl_T1[groestl_EXT_BYTE_1(src[23])];\ dst[20] ^= groestl_T1[groestl_EXT_BYTE_1(src[26])];\ dst[21] ^= groestl_T1[groestl_EXT_BYTE_1(src[25])];\ dst[22] ^= groestl_T1[groestl_EXT_BYTE_1(src[28])];\ dst[23] ^= groestl_T1[groestl_EXT_BYTE_1(src[27])];\ dst[24] ^= groestl_T1[groestl_EXT_BYTE_1(src[30])];\ dst[25] ^= groestl_T1[groestl_EXT_BYTE_1(src[29])];\ dst[26] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 0])];\ dst[27] ^= groestl_T1[groestl_EXT_BYTE_1(src[31])];\ dst[28] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 2])];\ dst[29] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 1])];\ dst[30] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 4])];\ dst[31] ^= groestl_T1[groestl_EXT_BYTE_1(src[ 3])];\ dst[ 0] ^= groestl_T2[groestl_EXT_BYTE_2(src[10])];\ dst[ 1] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 9])];\ dst[ 2] ^= groestl_T2[groestl_EXT_BYTE_2(src[12])];\ dst[ 3] ^= groestl_T2[groestl_EXT_BYTE_2(src[11])];\ dst[ 4] ^= groestl_T2[groestl_EXT_BYTE_2(src[14])];\ dst[ 5] ^= groestl_T2[groestl_EXT_BYTE_2(src[13])];\ dst[ 6] ^= groestl_T2[groestl_EXT_BYTE_2(src[16])];\ dst[ 7] ^= groestl_T2[groestl_EXT_BYTE_2(src[15])];\ dst[ 8] ^= groestl_T2[groestl_EXT_BYTE_2(src[18])];\ dst[ 9] ^= groestl_T2[groestl_EXT_BYTE_2(src[17])];\ dst[10] ^= groestl_T2[groestl_EXT_BYTE_2(src[20])];\ dst[11] ^= groestl_T2[groestl_EXT_BYTE_2(src[19])];\ dst[12] ^= groestl_T2[groestl_EXT_BYTE_2(src[22])];\ dst[13] ^= groestl_T2[groestl_EXT_BYTE_2(src[21])];\ dst[14] ^= groestl_T2[groestl_EXT_BYTE_2(src[24])];\ dst[15] ^= groestl_T2[groestl_EXT_BYTE_2(src[23])];\ dst[16] ^= groestl_T2[groestl_EXT_BYTE_2(src[26])];\ dst[17] ^= groestl_T2[groestl_EXT_BYTE_2(src[25])];\ dst[18] ^= groestl_T2[groestl_EXT_BYTE_2(src[28])];\ dst[19] ^= groestl_T2[groestl_EXT_BYTE_2(src[27])];\ dst[20] ^= groestl_T2[groestl_EXT_BYTE_2(src[30])];\ dst[21] ^= groestl_T2[groestl_EXT_BYTE_2(src[29])];\ dst[22] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 0])];\ dst[23] ^= groestl_T2[groestl_EXT_BYTE_2(src[31])];\ dst[24] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 2])];\ dst[25] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 1])];\ dst[26] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 4])];\ dst[27] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 3])];\ dst[28] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 6])];\ dst[29] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 5])];\ dst[30] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 8])];\ dst[31] ^= groestl_T2[groestl_EXT_BYTE_2(src[ 7])];\ dst[ 0] ^= groestl_T3[groestl_EXT_BYTE_3(src[22])];\ dst[ 1] ^= groestl_T3[groestl_EXT_BYTE_3(src[13])];\ dst[ 2] ^= groestl_T3[groestl_EXT_BYTE_3(src[24])];\ dst[ 3] ^= groestl_T3[groestl_EXT_BYTE_3(src[15])];\ dst[ 4] ^= groestl_T3[groestl_EXT_BYTE_3(src[26])];\ dst[ 5] ^= groestl_T3[groestl_EXT_BYTE_3(src[17])];\ dst[ 6] ^= groestl_T3[groestl_EXT_BYTE_3(src[28])];\ dst[ 7] ^= groestl_T3[groestl_EXT_BYTE_3(src[19])];\ dst[ 8] ^= groestl_T3[groestl_EXT_BYTE_3(src[30])];\ dst[ 9] ^= groestl_T3[groestl_EXT_BYTE_3(src[21])];\ dst[10] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 0])];\ dst[11] ^= groestl_T3[groestl_EXT_BYTE_3(src[23])];\ dst[12] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 2])];\ dst[13] ^= groestl_T3[groestl_EXT_BYTE_3(src[25])];\ dst[14] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 4])];\ dst[15] ^= groestl_T3[groestl_EXT_BYTE_3(src[27])];\ dst[16] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 6])];\ dst[17] ^= groestl_T3[groestl_EXT_BYTE_3(src[29])];\ dst[18] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 8])];\ dst[19] ^= groestl_T3[groestl_EXT_BYTE_3(src[31])];\ dst[20] ^= groestl_T3[groestl_EXT_BYTE_3(src[10])];\ dst[21] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 1])];\ dst[22] ^= groestl_T3[groestl_EXT_BYTE_3(src[12])];\ dst[23] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 3])];\ dst[24] ^= groestl_T3[groestl_EXT_BYTE_3(src[14])];\ dst[25] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 5])];\ dst[26] ^= groestl_T3[groestl_EXT_BYTE_3(src[16])];\ dst[27] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 7])];\ dst[28] ^= groestl_T3[groestl_EXT_BYTE_3(src[18])];\ dst[29] ^= groestl_T3[groestl_EXT_BYTE_3(src[ 9])];\ dst[30] ^= groestl_T3[groestl_EXT_BYTE_3(src[20])];\ dst[31] ^= groestl_T3[groestl_EXT_BYTE_3(src[11])];\ dst[ 0] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 1])];\ dst[ 1] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 2])];\ dst[ 2] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 3])];\ dst[ 3] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 4])];\ dst[ 4] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 5])];\ dst[ 5] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 6])];\ dst[ 6] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 7])];\ dst[ 7] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 8])];\ dst[ 8] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 9])];\ dst[ 9] ^= groestl_T4[groestl_EXT_BYTE_0(src[10])];\ dst[10] ^= groestl_T4[groestl_EXT_BYTE_0(src[11])];\ dst[11] ^= groestl_T4[groestl_EXT_BYTE_0(src[12])];\ dst[12] ^= groestl_T4[groestl_EXT_BYTE_0(src[13])];\ dst[13] ^= groestl_T4[groestl_EXT_BYTE_0(src[14])];\ dst[14] ^= groestl_T4[groestl_EXT_BYTE_0(src[15])];\ dst[15] ^= groestl_T4[groestl_EXT_BYTE_0(src[16])];\ dst[16] ^= groestl_T4[groestl_EXT_BYTE_0(src[17])];\ dst[17] ^= groestl_T4[groestl_EXT_BYTE_0(src[18])];\ dst[18] ^= groestl_T4[groestl_EXT_BYTE_0(src[19])];\ dst[19] ^= groestl_T4[groestl_EXT_BYTE_0(src[20])];\ dst[20] ^= groestl_T4[groestl_EXT_BYTE_0(src[21])];\ dst[21] ^= groestl_T4[groestl_EXT_BYTE_0(src[22])];\ dst[22] ^= groestl_T4[groestl_EXT_BYTE_0(src[23])];\ dst[23] ^= groestl_T4[groestl_EXT_BYTE_0(src[24])];\ dst[24] ^= groestl_T4[groestl_EXT_BYTE_0(src[25])];\ dst[25] ^= groestl_T4[groestl_EXT_BYTE_0(src[26])];\ dst[26] ^= groestl_T4[groestl_EXT_BYTE_0(src[27])];\ dst[27] ^= groestl_T4[groestl_EXT_BYTE_0(src[28])];\ dst[28] ^= groestl_T4[groestl_EXT_BYTE_0(src[29])];\ dst[29] ^= groestl_T4[groestl_EXT_BYTE_0(src[30])];\ dst[30] ^= groestl_T4[groestl_EXT_BYTE_0(src[31])];\ dst[31] ^= groestl_T4[groestl_EXT_BYTE_0(src[ 0])];\ dst[ 0] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 5])];\ dst[ 1] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 6])];\ dst[ 2] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 7])];\ dst[ 3] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 8])];\ dst[ 4] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 9])];\ dst[ 5] ^= groestl_T5[groestl_EXT_BYTE_1(src[10])];\ dst[ 6] ^= groestl_T5[groestl_EXT_BYTE_1(src[11])];\ dst[ 7] ^= groestl_T5[groestl_EXT_BYTE_1(src[12])];\ dst[ 8] ^= groestl_T5[groestl_EXT_BYTE_1(src[13])];\ dst[ 9] ^= groestl_T5[groestl_EXT_BYTE_1(src[14])];\ dst[10] ^= groestl_T5[groestl_EXT_BYTE_1(src[15])];\ dst[11] ^= groestl_T5[groestl_EXT_BYTE_1(src[16])];\ dst[12] ^= groestl_T5[groestl_EXT_BYTE_1(src[17])];\ dst[13] ^= groestl_T5[groestl_EXT_BYTE_1(src[18])];\ dst[14] ^= groestl_T5[groestl_EXT_BYTE_1(src[19])];\ dst[15] ^= groestl_T5[groestl_EXT_BYTE_1(src[20])];\ dst[16] ^= groestl_T5[groestl_EXT_BYTE_1(src[21])];\ dst[17] ^= groestl_T5[groestl_EXT_BYTE_1(src[22])];\ dst[18] ^= groestl_T5[groestl_EXT_BYTE_1(src[23])];\ dst[19] ^= groestl_T5[groestl_EXT_BYTE_1(src[24])];\ dst[20] ^= groestl_T5[groestl_EXT_BYTE_1(src[25])];\ dst[21] ^= groestl_T5[groestl_EXT_BYTE_1(src[26])];\ dst[22] ^= groestl_T5[groestl_EXT_BYTE_1(src[27])];\ dst[23] ^= groestl_T5[groestl_EXT_BYTE_1(src[28])];\ dst[24] ^= groestl_T5[groestl_EXT_BYTE_1(src[29])];\ dst[25] ^= groestl_T5[groestl_EXT_BYTE_1(src[30])];\ dst[26] ^= groestl_T5[groestl_EXT_BYTE_1(src[31])];\ dst[27] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 0])];\ dst[28] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 1])];\ dst[29] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 2])];\ dst[30] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 3])];\ dst[31] ^= groestl_T5[groestl_EXT_BYTE_1(src[ 4])];\ dst[ 0] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 9])];\ dst[ 1] ^= groestl_T6[groestl_EXT_BYTE_2(src[10])];\ dst[ 2] ^= groestl_T6[groestl_EXT_BYTE_2(src[11])];\ dst[ 3] ^= groestl_T6[groestl_EXT_BYTE_2(src[12])];\ dst[ 4] ^= groestl_T6[groestl_EXT_BYTE_2(src[13])];\ dst[ 5] ^= groestl_T6[groestl_EXT_BYTE_2(src[14])];\ dst[ 6] ^= groestl_T6[groestl_EXT_BYTE_2(src[15])];\ dst[ 7] ^= groestl_T6[groestl_EXT_BYTE_2(src[16])];\ dst[ 8] ^= groestl_T6[groestl_EXT_BYTE_2(src[17])];\ dst[ 9] ^= groestl_T6[groestl_EXT_BYTE_2(src[18])];\ dst[10] ^= groestl_T6[groestl_EXT_BYTE_2(src[19])];\ dst[11] ^= groestl_T6[groestl_EXT_BYTE_2(src[20])];\ dst[12] ^= groestl_T6[groestl_EXT_BYTE_2(src[21])];\ dst[13] ^= groestl_T6[groestl_EXT_BYTE_2(src[22])];\ dst[14] ^= groestl_T6[groestl_EXT_BYTE_2(src[23])];\ dst[15] ^= groestl_T6[groestl_EXT_BYTE_2(src[24])];\ dst[16] ^= groestl_T6[groestl_EXT_BYTE_2(src[25])];\ dst[17] ^= groestl_T6[groestl_EXT_BYTE_2(src[26])];\ dst[18] ^= groestl_T6[groestl_EXT_BYTE_2(src[27])];\ dst[19] ^= groestl_T6[groestl_EXT_BYTE_2(src[28])];\ dst[20] ^= groestl_T6[groestl_EXT_BYTE_2(src[29])];\ dst[21] ^= groestl_T6[groestl_EXT_BYTE_2(src[30])];\ dst[22] ^= groestl_T6[groestl_EXT_BYTE_2(src[31])];\ dst[23] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 0])];\ dst[24] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 1])];\ dst[25] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 2])];\ dst[26] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 3])];\ dst[27] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 4])];\ dst[28] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 5])];\ dst[29] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 6])];\ dst[30] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 7])];\ dst[31] ^= groestl_T6[groestl_EXT_BYTE_2(src[ 8])];\ dst[ 0] ^= groestl_T7[groestl_EXT_BYTE_3(src[13])];\ dst[ 1] ^= groestl_T7[groestl_EXT_BYTE_3(src[22])];\ dst[ 2] ^= groestl_T7[groestl_EXT_BYTE_3(src[15])];\ dst[ 3] ^= groestl_T7[groestl_EXT_BYTE_3(src[24])];\ dst[ 4] ^= groestl_T7[groestl_EXT_BYTE_3(src[17])];\ dst[ 5] ^= groestl_T7[groestl_EXT_BYTE_3(src[26])];\ dst[ 6] ^= groestl_T7[groestl_EXT_BYTE_3(src[19])];\ dst[ 7] ^= groestl_T7[groestl_EXT_BYTE_3(src[28])];\ dst[ 8] ^= groestl_T7[groestl_EXT_BYTE_3(src[21])];\ dst[ 9] ^= groestl_T7[groestl_EXT_BYTE_3(src[30])];\ dst[10] ^= groestl_T7[groestl_EXT_BYTE_3(src[23])];\ dst[11] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 0])];\ dst[12] ^= groestl_T7[groestl_EXT_BYTE_3(src[25])];\ dst[13] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 2])];\ dst[14] ^= groestl_T7[groestl_EXT_BYTE_3(src[27])];\ dst[15] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 4])];\ dst[16] ^= groestl_T7[groestl_EXT_BYTE_3(src[29])];\ dst[17] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 6])];\ dst[18] ^= groestl_T7[groestl_EXT_BYTE_3(src[31])];\ dst[19] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 8])];\ dst[20] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 1])];\ dst[21] ^= groestl_T7[groestl_EXT_BYTE_3(src[10])];\ dst[22] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 3])];\ dst[23] ^= groestl_T7[groestl_EXT_BYTE_3(src[12])];\ dst[24] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 5])];\ dst[25] ^= groestl_T7[groestl_EXT_BYTE_3(src[14])];\ dst[26] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 7])];\ dst[27] ^= groestl_T7[groestl_EXT_BYTE_3(src[16])];\ dst[28] ^= groestl_T7[groestl_EXT_BYTE_3(src[ 9])];\ dst[29] ^= groestl_T7[groestl_EXT_BYTE_3(src[18])];\ dst[30] ^= groestl_T7[groestl_EXT_BYTE_3(src[11])];\ dst[31] ^= groestl_T7[groestl_EXT_BYTE_3(src[20])];
// init const CONSTANT UINT32 groestl_T_init[256*8] = { 0xa5f432c6UL,0x84976ff8UL,0x99b05eeeUL,0x8d8c7af6UL,0x0d17e8ffUL,0xbddc0ad6UL,0xb1c816deUL,0x54fc6d91UL,0x50f09060UL,0x03050702UL,0xa9e02eceUL,0x7d87d156UL,0x192bcce7UL,0x62a613b5UL,0xe6317c4dUL,0x9ab559ecUL,0x45cf408fUL,0x9dbca31fUL,0x40c04989UL,0x879268faUL,0x153fd0efUL,0xeb2694b2UL,0xc940ce8eUL,0x0b1de6fbUL,0xec2f6e41UL,0x67a91ab3UL,0xfd1c435fUL,0xea256045UL,0xbfdaf923UL,0xf7025153UL,0x96a145e4UL,0x5bed769bUL,0xc25d2875UL,0x1c24c5e1UL,0xaee9d43dUL,0x6abef24cUL,0x5aee826cUL,0x41c3bd7eUL,0x0206f3f5UL,0x4fd15283UL,0x5ce48c68UL,0xf4075651UL,0x345c8dd1UL,0x0818e1f9UL,0x93ae4ce2UL,0x73953eabUL,0x53f59762UL,0x3f416b2aUL,0x0c141c08UL,0x52f66395UL,0x65afe946UL,0x5ee27f9dUL,0x28784830UL,0xa1f8cf37UL,0x0f111b0aUL,0xb5c4eb2fUL,0x091b150eUL,0x365a7e24UL,0x9bb6ad1bUL,0x3d4798dfUL,0x266aa7cdUL,0x69bbf54eUL,0xcd4c337fUL,0x9fba50eaUL,0x1b2d3f12UL,0x9eb9a41dUL,0x749cc458UL,0x2e724634UL,0x2d774136UL,0xb2cd11dcUL,0xee299db4UL,0xfb164d5bUL,0xf601a5a4UL,0x4dd7a176UL,0x61a314b7UL,0xce49347dUL,0x7b8ddf52UL,0x3e429fddUL,0x7193cd5eUL,0x97a2b113UL,0xf504a2a6UL,0x68b801b9UL,0x00000000UL,0x2c74b5c1UL,0x60a0e040UL,0x1f21c2e3UL,0xc8433a79UL,0xed2c9ab6UL,0xbed90dd4UL,0x46ca478dUL,0xd9701767UL,0x4bddaf72UL,0xde79ed94UL,0xd467ff98UL,0xe82393b0UL,0x4ade5b85UL,0x6bbd06bbUL,0x2a7ebbc5UL,0xe5347b4fUL,0x163ad7edUL,0xc554d286UL,0xd762f89aUL,0x55ff9966UL,0x94a7b611UL,0xcf4ac08aUL,0x1030d9e9UL,0x060a0e04UL,0x819866feUL,0xf00baba0UL,0x44ccb478UL,0xbad5f025UL,0xe33e754bUL,0xf30eaca2UL,0xfe19445dUL,0xc05bdb80UL,0x8a858005UL,0xadecd33fUL,0xbcdffe21UL,0x48d8a870UL,0x040cfdf1UL,0xdf7a1963UL,0xc1582f77UL,0x759f30afUL,0x63a5e742UL,0x30507020UL,0x1a2ecbe5UL,0x0e12effdUL,0x6db708bfUL,0x4cd45581UL,0x143c2418UL,0x355f7926UL,0x2f71b2c3UL,0xe13886beUL,0xa2fdc835UL,0xcc4fc788UL,0x394b652eUL,0x57f96a93UL,0xf20d5855UL,0x829d61fcUL,0x47c9b37aUL,0xacef27c8UL,0xe73288baUL,0x2b7d4f32UL,0x95a442e6UL,0xa0fb3bc0UL,0x98b3aa19UL,0xd168f69eUL,0x7f8122a3UL,0x66aaee44UL,0x7e82d654UL,0xabe6dd3bUL,0x839e950bUL,0xca45c98cUL,0x297bbcc7UL,0xd36e056bUL,0x3c446c28UL,0x798b2ca7UL,0xe23d81bcUL,0x1d273116UL,0x769a37adUL,0x3b4d96dbUL,0x56fa9e64UL,0x4ed2a674UL,0x1e223614UL,0xdb76e492UL,0x0a1e120cUL,0x6cb4fc48UL,0xe4378fb8UL,0x5de7789fUL,0x6eb20fbdUL,0xef2a6943UL,0xa6f135c4UL,0xa8e3da39UL,0xa4f7c631UL,0x37598ad3UL,0x8b8674f2UL,0x325683d5UL,0x43c54e8bUL,0x59eb856eUL,0xb7c218daUL,0x8c8f8e01UL,0x64ac1db1UL,0xd26df19cUL,0xe03b7249UL,0xb4c71fd8UL,0xfa15b9acUL,0x0709faf3UL,0x256fa0cfUL,0xafea20caUL,0x8e897df4UL,0xe9206747UL,0x18283810UL,0xd5640b6fUL,0x888373f0UL,0x6fb1fb4aUL,0x7296ca5cUL,0x246c5438UL,0xf1085f57UL,0xc7522173UL,0x51f36497UL,0x2365aecbUL,0x7c8425a1UL,0x9cbf57e8UL,0x21635d3eUL,0xdd7cea96UL,0xdc7f1e61UL,0x86919c0dUL,0x85949b0fUL,0x90ab4be0UL,0x42c6ba7cUL,0xc4572671UL,0xaae529ccUL,0xd873e390UL,0x050f0906UL,0x0103f4f7UL,0x12362a1cUL,0xa3fe3cc2UL,0x5fe18b6aUL,0xf910beaeUL,0xd06b0269UL,0x91a8bf17UL,0x58e87199UL,0x2769533aUL,0xb9d0f727UL,0x384891d9UL,0x1335deebUL,0xb3cee52bUL,0x33557722UL,0xbbd604d2UL,0x709039a9UL,0x89808707UL,0xa7f2c133UL,0xb6c1ec2dUL,0x22665a3cUL,0x92adb815UL,0x2060a9c9UL,0x49db5c87UL,0xff1ab0aaUL,0x7888d850UL,0x7a8e2ba5UL,0x8f8a8903UL,0xf8134a59UL,0x809b9209UL,0x1739231aUL,0xda751065UL,0x315384d7UL,0xc651d584UL,0xb8d303d0UL,0xc35edc82UL,0xb0cbe229UL,0x7799c35aUL,0x11332d1eUL,0xcb463d7bUL,0xfc1fb7a8UL,0xd6610c6dUL,0x3a4e622cUL, 0xf432c6c6UL,0x976ff8f8UL,0xb05eeeeeUL,0x8c7af6f6UL,0x17e8ffffUL,0xdc0ad6d6UL,0xc816dedeUL,0xfc6d9191UL,0xf0906060UL,0x05070202UL,0xe02ececeUL,0x87d15656UL,0x2bcce7e7UL,0xa613b5b5UL,0x317c4d4dUL,0xb559ececUL,0xcf408f8fUL,0xbca31f1fUL,0xc0498989UL,0x9268fafaUL,0x3fd0efefUL,0x2694b2b2UL,0x40ce8e8eUL,0x1de6fbfbUL,0x2f6e4141UL,0xa91ab3b3UL,0x1c435f5fUL,0x25604545UL,0xdaf92323UL,0x02515353UL,0xa145e4e4UL,0xed769b9bUL,0x5d287575UL,0x24c5e1e1UL,0xe9d43d3dUL,0xbef24c4cUL,0xee826c6cUL,0xc3bd7e7eUL,0x06f3f5f5UL,0xd1528383UL,0xe48c6868UL,0x07565151UL,0x5c8dd1d1UL,0x18e1f9f9UL,0xae4ce2e2UL,0x953eababUL,0xf5976262UL,0x416b2a2aUL,0x141c0808UL,0xf6639595UL,0xafe94646UL,0xe27f9d9dUL,0x78483030UL,0xf8cf3737UL,0x111b0a0aUL,0xc4eb2f2fUL,0x1b150e0eUL,0x5a7e2424UL,0xb6ad1b1bUL,0x4798dfdfUL,0x6aa7cdcdUL,0xbbf54e4eUL,0x4c337f7fUL,0xba50eaeaUL,0x2d3f1212UL,0xb9a41d1dUL,0x9cc45858UL,0x72463434UL,0x77413636UL,0xcd11dcdcUL,0x299db4b4UL,0x164d5b5bUL,0x01a5a4a4UL,0xd7a17676UL,0xa314b7b7UL,0x49347d7dUL,0x8ddf5252UL,0x429fddddUL,0x93cd5e5eUL,0xa2b11313UL,0x04a2a6a6UL,0xb801b9b9UL,0x00000000UL,0x74b5c1c1UL,0xa0e04040UL,0x21c2e3e3UL,0x433a7979UL,0x2c9ab6b6UL,0xd90dd4d4UL,0xca478d8dUL,0x70176767UL,0xddaf7272UL,0x79ed9494UL,0x67ff9898UL,0x2393b0b0UL,0xde5b8585UL,0xbd06bbbbUL,0x7ebbc5c5UL,0x347b4f4fUL,0x3ad7ededUL,0x54d28686UL,0x62f89a9aUL,0xff996666UL,0xa7b61111UL,0x4ac08a8aUL,0x30d9e9e9UL,0x0a0e0404UL,0x9866fefeUL,0x0baba0a0UL,0xccb47878UL,0xd5f02525UL,0x3e754b4bUL,0x0eaca2a2UL,0x19445d5dUL,0x5bdb8080UL,0x85800505UL,0xecd33f3fUL,0xdffe2121UL,0xd8a87070UL,0x0cfdf1f1UL,0x7a196363UL,0x582f7777UL,0x9f30afafUL,0xa5e74242UL,0x50702020UL,0x2ecbe5e5UL,0x12effdfdUL,0xb708bfbfUL,0xd4558181UL,0x3c241818UL,0x5f792626UL,0x71b2c3c3UL,0x3886bebeUL,0xfdc83535UL,0x4fc78888UL,0x4b652e2eUL,0xf96a9393UL,0x0d585555UL,0x9d61fcfcUL,0xc9b37a7aUL,0xef27c8c8UL,0x3288babaUL,0x7d4f3232UL,0xa442e6e6UL,0xfb3bc0c0UL,0xb3aa1919UL,0x68f69e9eUL,0x8122a3a3UL,0xaaee4444UL,0x82d65454UL,0xe6dd3b3bUL,0x9e950b0bUL,0x45c98c8cUL,0x7bbcc7c7UL,0x6e056b6bUL,0x446c2828UL,0x8b2ca7a7UL,0x3d81bcbcUL,0x27311616UL,0x9a37adadUL,0x4d96dbdbUL,0xfa9e6464UL,0xd2a67474UL,0x22361414UL,0x76e49292UL,0x1e120c0cUL,0xb4fc4848UL,0x378fb8b8UL,0xe7789f9fUL,0xb20fbdbdUL,0x2a694343UL,0xf135c4c4UL,0xe3da3939UL,0xf7c63131UL,0x598ad3d3UL,0x8674f2f2UL,0x5683d5d5UL,0xc54e8b8bUL,0xeb856e6eUL,0xc218dadaUL,0x8f8e0101UL,0xac1db1b1UL,0x6df19c9cUL,0x3b724949UL,0xc71fd8d8UL,0x15b9acacUL,0x09faf3f3UL,0x6fa0cfcfUL,0xea20cacaUL,0x897df4f4UL,0x20674747UL,0x28381010UL,0x640b6f6fUL,0x8373f0f0UL,0xb1fb4a4aUL,0x96ca5c5cUL,0x6c543838UL,0x085f5757UL,0x52217373UL,0xf3649797UL,0x65aecbcbUL,0x8425a1a1UL,0xbf57e8e8UL,0x635d3e3eUL,0x7cea9696UL,0x7f1e6161UL,0x919c0d0dUL,0x949b0f0fUL,0xab4be0e0UL,0xc6ba7c7cUL,0x57267171UL,0xe529ccccUL,0x73e39090UL,0x0f090606UL,0x03f4f7f7UL,0x362a1c1cUL,0xfe3cc2c2UL,0xe18b6a6aUL,0x10beaeaeUL,0x6b026969UL,0xa8bf1717UL,0xe8719999UL,0x69533a3aUL,0xd0f72727UL,0x4891d9d9UL,0x35deebebUL,0xcee52b2bUL,0x55772222UL,0xd604d2d2UL,0x9039a9a9UL,0x80870707UL,0xf2c13333UL,0xc1ec2d2dUL,0x665a3c3cUL,0xadb81515UL,0x60a9c9c9UL,0xdb5c8787UL,0x1ab0aaaaUL,0x88d85050UL,0x8e2ba5a5UL,0x8a890303UL,0x134a5959UL,0x9b920909UL,0x39231a1aUL,0x75106565UL,0x5384d7d7UL,0x51d58484UL,0xd303d0d0UL,0x5edc8282UL,0xcbe22929UL,0x99c35a5aUL,0x332d1e1eUL,0x463d7b7bUL,0x1fb7a8a8UL,0x610c6d6dUL,0x4e622c2cUL, 0x32c6c6a5UL,0x6ff8f884UL,0x5eeeee99UL,0x7af6f68dUL,0xe8ffff0dUL,0x0ad6d6bdUL,0x16dedeb1UL,0x6d919154UL,0x90606050UL,0x07020203UL,0x2ececea9UL,0xd156567dUL,0xcce7e719UL,0x13b5b562UL,0x7c4d4de6UL,0x59ecec9aUL,0x408f8f45UL,0xa31f1f9dUL,0x49898940UL,0x68fafa87UL,0xd0efef15UL,0x94b2b2ebUL,0xce8e8ec9UL,0xe6fbfb0bUL,0x6e4141ecUL,0x1ab3b367UL,0x435f5ffdUL,0x604545eaUL,0xf92323bfUL,0x515353f7UL,0x45e4e496UL,0x769b9b5bUL,0x287575c2UL,0xc5e1e11cUL,0xd43d3daeUL,0xf24c4c6aUL,0x826c6c5aUL,0xbd7e7e41UL,0xf3f5f502UL,0x5283834fUL,0x8c68685cUL,0x565151f4UL,0x8dd1d134UL,0xe1f9f908UL,0x4ce2e293UL,0x3eabab73UL,0x97626253UL,0x6b2a2a3fUL,0x1c08080cUL,0x63959552UL,0xe9464665UL,0x7f9d9d5eUL,0x48303028UL,0xcf3737a1UL,0x1b0a0a0fUL,0xeb2f2fb5UL,0x150e0e09UL,0x7e242436UL,0xad1b1b9bUL,0x98dfdf3dUL,0xa7cdcd26UL,0xf54e4e69UL,0x337f7fcdUL,0x50eaea9fUL,0x3f12121bUL,0xa41d1d9eUL,0xc4585874UL,0x4634342eUL,0x4136362dUL,0x11dcdcb2UL,0x9db4b4eeUL,0x4d5b5bfbUL,0xa5a4a4f6UL,0xa176764dUL,0x14b7b761UL,0x347d7dceUL,0xdf52527bUL,0x9fdddd3eUL,0xcd5e5e71UL,0xb1131397UL,0xa2a6a6f5UL,0x01b9b968UL,0x00000000UL,0xb5c1c12cUL,0xe0404060UL,0xc2e3e31fUL,0x3a7979c8UL,0x9ab6b6edUL,0x0dd4d4beUL,0x478d8d46UL,0x176767d9UL,0xaf72724bUL,0xed9494deUL,0xff9898d4UL,0x93b0b0e8UL,0x5b85854aUL,0x06bbbb6bUL,0xbbc5c52aUL,0x7b4f4fe5UL,0xd7eded16UL,0xd28686c5UL,0xf89a9ad7UL,0x99666655UL,0xb6111194UL,0xc08a8acfUL,0xd9e9e910UL,0x0e040406UL,0x66fefe81UL,0xaba0a0f0UL,0xb4787844UL,0xf02525baUL,0x754b4be3UL,0xaca2a2f3UL,0x445d5dfeUL,0xdb8080c0UL,0x8005058aUL,0xd33f3fadUL,0xfe2121bcUL,0xa8707048UL,0xfdf1f104UL,0x196363dfUL,0x2f7777c1UL,0x30afaf75UL,0xe7424263UL,0x70202030UL,0xcbe5e51aUL,0xeffdfd0eUL,0x08bfbf6dUL,0x5581814cUL,0x24181814UL,0x79262635UL,0xb2c3c32fUL,0x86bebee1UL,0xc83535a2UL,0xc78888ccUL,0x652e2e39UL,0x6a939357UL,0x585555f2UL,0x61fcfc82UL,0xb37a7a47UL,0x27c8c8acUL,0x88babae7UL,0x4f32322bUL,0x42e6e695UL,0x3bc0c0a0UL,0xaa191998UL,0xf69e9ed1UL,0x22a3a37fUL,0xee444466UL,0xd654547eUL,0xdd3b3babUL,0x950b0b83UL,0xc98c8ccaUL,0xbcc7c729UL,0x056b6bd3UL,0x6c28283cUL,0x2ca7a779UL,0x81bcbce2UL,0x3116161dUL,0x37adad76UL,0x96dbdb3bUL,0x9e646456UL,0xa674744eUL,0x3614141eUL,0xe49292dbUL,0x120c0c0aUL,0xfc48486cUL,0x8fb8b8e4UL,0x789f9f5dUL,0x0fbdbd6eUL,0x694343efUL,0x35c4c4a6UL,0xda3939a8UL,0xc63131a4UL,0x8ad3d337UL,0x74f2f28bUL,0x83d5d532UL,0x4e8b8b43UL,0x856e6e59UL,0x18dadab7UL,0x8e01018cUL,0x1db1b164UL,0xf19c9cd2UL,0x724949e0UL,0x1fd8d8b4UL,0xb9acacfaUL,0xfaf3f307UL,0xa0cfcf25UL,0x20cacaafUL,0x7df4f48eUL,0x674747e9UL,0x38101018UL,0x0b6f6fd5UL,0x73f0f088UL,0xfb4a4a6fUL,0xca5c5c72UL,0x54383824UL,0x5f5757f1UL,0x217373c7UL,0x64979751UL,0xaecbcb23UL,0x25a1a17cUL,0x57e8e89cUL,0x5d3e3e21UL,0xea9696ddUL,0x1e6161dcUL,0x9c0d0d86UL,0x9b0f0f85UL,0x4be0e090UL,0xba7c7c42UL,0x267171c4UL,0x29ccccaaUL,0xe39090d8UL,0x09060605UL,0xf4f7f701UL,0x2a1c1c12UL,0x3cc2c2a3UL,0x8b6a6a5fUL,0xbeaeaef9UL,0x026969d0UL,0xbf171791UL,0x71999958UL,0x533a3a27UL,0xf72727b9UL,0x91d9d938UL,0xdeebeb13UL,0xe52b2bb3UL,0x77222233UL,0x04d2d2bbUL,0x39a9a970UL,0x87070789UL,0xc13333a7UL,0xec2d2db6UL,0x5a3c3c22UL,0xb8151592UL,0xa9c9c920UL,0x5c878749UL,0xb0aaaaffUL,0xd8505078UL,0x2ba5a57aUL,0x8903038fUL,0x4a5959f8UL,0x92090980UL,0x231a1a17UL,0x106565daUL,0x84d7d731UL,0xd58484c6UL,0x03d0d0b8UL,0xdc8282c3UL,0xe22929b0UL,0xc35a5a77UL,0x2d1e1e11UL,0x3d7b7bcbUL,0xb7a8a8fcUL,0x0c6d6dd6UL,0x622c2c3aUL, 0xc6c6a597UL,0xf8f884ebUL,0xeeee99c7UL,0xf6f68df7UL,0xffff0de5UL,0xd6d6bdb7UL,0xdedeb1a7UL,0x91915439UL,0x606050c0UL,0x02020304UL,0xcecea987UL,0x56567dacUL,0xe7e719d5UL,0xb5b56271UL,0x4d4de69aUL,0xecec9ac3UL,0x8f8f4505UL,0x1f1f9d3eUL,0x89894009UL,0xfafa87efUL,0xefef15c5UL,0xb2b2eb7fUL,0x8e8ec907UL,0xfbfb0bedUL,0x4141ec82UL,0xb3b3677dUL,0x5f5ffdbeUL,0x4545ea8aUL,0x2323bf46UL,0x5353f7a6UL,0xe4e496d3UL,0x9b9b5b2dUL,0x7575c2eaUL,0xe1e11cd9UL,0x3d3dae7aUL,0x4c4c6a98UL,0x6c6c5ad8UL,0x7e7e41fcUL,0xf5f502f1UL,0x83834f1dUL,0x68685cd0UL,0x5151f4a2UL,0xd1d134b9UL,0xf9f908e9UL,0xe2e293dfUL,0xabab734dUL,0x626253c4UL,0x2a2a3f54UL,0x08080c10UL,0x95955231UL,0x4646658cUL,0x9d9d5e21UL,0x30302860UL,0x3737a16eUL,0x0a0a0f14UL,0x2f2fb55eUL,0x0e0e091cUL,0x24243648UL,0x1b1b9b36UL,0xdfdf3da5UL,0xcdcd2681UL,0x4e4e699cUL,0x7f7fcdfeUL,0xeaea9fcfUL,0x12121b24UL,0x1d1d9e3aUL,0x585874b0UL,0x34342e68UL,0x36362d6cUL,0xdcdcb2a3UL,0xb4b4ee73UL,0x5b5bfbb6UL,0xa4a4f653UL,0x76764decUL,0xb7b76175UL,0x7d7dcefaUL,0x52527ba4UL,0xdddd3ea1UL,0x5e5e71bcUL,0x13139726UL,0xa6a6f557UL,0xb9b96869UL,0x00000000UL,0xc1c12c99UL,0x40406080UL,0xe3e31fddUL,0x7979c8f2UL,0xb6b6ed77UL,0xd4d4beb3UL,0x8d8d4601UL,0x6767d9ceUL,0x72724be4UL,0x9494de33UL,0x9898d42bUL,0xb0b0e87bUL,0x85854a11UL,0xbbbb6b6dUL,0xc5c52a91UL,0x4f4fe59eUL,0xeded16c1UL,0x8686c517UL,0x9a9ad72fUL,0x666655ccUL,0x11119422UL,0x8a8acf0fUL,0xe9e910c9UL,0x04040608UL,0xfefe81e7UL,0xa0a0f05bUL,0x787844f0UL,0x2525ba4aUL,0x4b4be396UL,0xa2a2f35fUL,0x5d5dfebaUL,0x8080c01bUL,0x05058a0aUL,0x3f3fad7eUL,0x2121bc42UL,0x707048e0UL,0xf1f104f9UL,0x6363dfc6UL,0x7777c1eeUL,0xafaf7545UL,0x42426384UL,0x20203040UL,0xe5e51ad1UL,0xfdfd0ee1UL,0xbfbf6d65UL,0x81814c19UL,0x18181430UL,0x2626354cUL,0xc3c32f9dUL,0xbebee167UL,0x3535a26aUL,0x8888cc0bUL,0x2e2e395cUL,0x9393573dUL,0x5555f2aaUL,0xfcfc82e3UL,0x7a7a47f4UL,0xc8c8ac8bUL,0xbabae76fUL,0x32322b64UL,0xe6e695d7UL,0xc0c0a09bUL,0x19199832UL,0x9e9ed127UL,0xa3a37f5dUL,0x44446688UL,0x54547ea8UL,0x3b3bab76UL,0x0b0b8316UL,0x8c8cca03UL,0xc7c72995UL,0x6b6bd3d6UL,0x28283c50UL,0xa7a77955UL,0xbcbce263UL,0x16161d2cUL,0xadad7641UL,0xdbdb3badUL,0x646456c8UL,0x74744ee8UL,0x14141e28UL,0x9292db3fUL,0x0c0c0a18UL,0x48486c90UL,0xb8b8e46bUL,0x9f9f5d25UL,0xbdbd6e61UL,0x4343ef86UL,0xc4c4a693UL,0x3939a872UL,0x3131a462UL,0xd3d337bdUL,0xf2f28bffUL,0xd5d532b1UL,0x8b8b430dUL,0x6e6e59dcUL,0xdadab7afUL,0x01018c02UL,0xb1b16479UL,0x9c9cd223UL,0x4949e092UL,0xd8d8b4abUL,0xacacfa43UL,0xf3f307fdUL,0xcfcf2585UL,0xcacaaf8fUL,0xf4f48ef3UL,0x4747e98eUL,0x10101820UL,0x6f6fd5deUL,0xf0f088fbUL,0x4a4a6f94UL,0x5c5c72b8UL,0x38382470UL,0x5757f1aeUL,0x7373c7e6UL,0x97975135UL,0xcbcb238dUL,0xa1a17c59UL,0xe8e89ccbUL,0x3e3e217cUL,0x9696dd37UL,0x6161dcc2UL,0x0d0d861aUL,0x0f0f851eUL,0xe0e090dbUL,0x7c7c42f8UL,0x7171c4e2UL,0xccccaa83UL,0x9090d83bUL,0x0606050cUL,0xf7f701f5UL,0x1c1c1238UL,0xc2c2a39fUL,0x6a6a5fd4UL,0xaeaef947UL,0x6969d0d2UL,0x1717912eUL,0x99995829UL,0x3a3a2774UL,0x2727b94eUL,0xd9d938a9UL,0xebeb13cdUL,0x2b2bb356UL,0x22223344UL,0xd2d2bbbfUL,0xa9a97049UL,0x0707890eUL,0x3333a766UL,0x2d2db65aUL,0x3c3c2278UL,0x1515922aUL,0xc9c92089UL,0x87874915UL,0xaaaaff4fUL,0x505078a0UL,0xa5a57a51UL,0x03038f06UL,0x5959f8b2UL,0x09098012UL,0x1a1a1734UL,0x6565dacaUL,0xd7d731b5UL,0x8484c613UL,0xd0d0b8bbUL,0x8282c31fUL,0x2929b052UL,0x5a5a77b4UL,0x1e1e113cUL,0x7b7bcbf6UL,0xa8a8fc4bUL,0x6d6dd6daUL,0x2c2c3a58UL, 0xc6a597f4UL,0xf884eb97UL,0xee99c7b0UL,0xf68df78cUL,0xff0de517UL,0xd6bdb7dcUL,0xdeb1a7c8UL,0x915439fcUL,0x6050c0f0UL,0x02030405UL,0xcea987e0UL,0x567dac87UL,0xe719d52bUL,0xb56271a6UL,0x4de69a31UL,0xec9ac3b5UL,0x8f4505cfUL,0x1f9d3ebcUL,0x894009c0UL,0xfa87ef92UL,0xef15c53fUL,0xb2eb7f26UL,0x8ec90740UL,0xfb0bed1dUL,0x41ec822fUL,0xb3677da9UL,0x5ffdbe1cUL,0x45ea8a25UL,0x23bf46daUL,0x53f7a602UL,0xe496d3a1UL,0x9b5b2dedUL,0x75c2ea5dUL,0xe11cd924UL,0x3dae7ae9UL,0x4c6a98beUL,0x6c5ad8eeUL,0x7e41fcc3UL,0xf502f106UL,0x834f1dd1UL,0x685cd0e4UL,0x51f4a207UL,0xd134b95cUL,0xf908e918UL,0xe293dfaeUL,0xab734d95UL,0x6253c4f5UL,0x2a3f5441UL,0x080c1014UL,0x955231f6UL,0x46658cafUL,0x9d5e21e2UL,0x30286078UL,0x37a16ef8UL,0x0a0f1411UL,0x2fb55ec4UL,0x0e091c1bUL,0x2436485aUL,0x1b9b36b6UL,0xdf3da547UL,0xcd26816aUL,0x4e699cbbUL,0x7fcdfe4cUL,0xea9fcfbaUL,0x121b242dUL,0x1d9e3ab9UL,0x5874b09cUL,0x342e6872UL,0x362d6c77UL,0xdcb2a3cdUL,0xb4ee7329UL,0x5bfbb616UL,0xa4f65301UL,0x764decd7UL,0xb76175a3UL,0x7dcefa49UL,0x527ba48dUL,0xdd3ea142UL,0x5e71bc93UL,0x139726a2UL,0xa6f55704UL,0xb96869b8UL,0x00000000UL,0xc12c9974UL,0x406080a0UL,0xe31fdd21UL,0x79c8f243UL,0xb6ed772cUL,0xd4beb3d9UL,0x8d4601caUL,0x67d9ce70UL,0x724be4ddUL,0x94de3379UL,0x98d42b67UL,0xb0e87b23UL,0x854a11deUL,0xbb6b6dbdUL,0xc52a917eUL,0x4fe59e34UL,0xed16c13aUL,0x86c51754UL,0x9ad72f62UL,0x6655ccffUL,0x119422a7UL,0x8acf0f4aUL,0xe910c930UL,0x0406080aUL,0xfe81e798UL,0xa0f05b0bUL,0x7844f0ccUL,0x25ba4ad5UL,0x4be3963eUL,0xa2f35f0eUL,0x5dfeba19UL,0x80c01b5bUL,0x058a0a85UL,0x3fad7eecUL,0x21bc42dfUL,0x7048e0d8UL,0xf104f90cUL,0x63dfc67aUL,0x77c1ee58UL,0xaf75459fUL,0x426384a5UL,0x20304050UL,0xe51ad12eUL,0xfd0ee112UL,0xbf6d65b7UL,0x814c19d4UL,0x1814303cUL,0x26354c5fUL,0xc32f9d71UL,0xbee16738UL,0x35a26afdUL,0x88cc0b4fUL,0x2e395c4bUL,0x93573df9UL,0x55f2aa0dUL,0xfc82e39dUL,0x7a47f4c9UL,0xc8ac8befUL,0xbae76f32UL,0x322b647dUL,0xe695d7a4UL,0xc0a09bfbUL,0x199832b3UL,0x9ed12768UL,0xa37f5d81UL,0x446688aaUL,0x547ea882UL,0x3bab76e6UL,0x0b83169eUL,0x8cca0345UL,0xc729957bUL,0x6bd3d66eUL,0x283c5044UL,0xa779558bUL,0xbce2633dUL,0x161d2c27UL,0xad76419aUL,0xdb3bad4dUL,0x6456c8faUL,0x744ee8d2UL,0x141e2822UL,0x92db3f76UL,0x0c0a181eUL,0x486c90b4UL,0xb8e46b37UL,0x9f5d25e7UL,0xbd6e61b2UL,0x43ef862aUL,0xc4a693f1UL,0x39a872e3UL,0x31a462f7UL,0xd337bd59UL,0xf28bff86UL,0xd532b156UL,0x8b430dc5UL,0x6e59dcebUL,0xdab7afc2UL,0x018c028fUL,0xb16479acUL,0x9cd2236dUL,0x49e0923bUL,0xd8b4abc7UL,0xacfa4315UL,0xf307fd09UL,0xcf25856fUL,0xcaaf8feaUL,0xf48ef389UL,0x47e98e20UL,0x10182028UL,0x6fd5de64UL,0xf088fb83UL,0x4a6f94b1UL,0x5c72b896UL,0x3824706cUL,0x57f1ae08UL,0x73c7e652UL,0x975135f3UL,0xcb238d65UL,0xa17c5984UL,0xe89ccbbfUL,0x3e217c63UL,0x96dd377cUL,0x61dcc27fUL,0x0d861a91UL,0x0f851e94UL,0xe090dbabUL,0x7c42f8c6UL,0x71c4e257UL,0xccaa83e5UL,0x90d83b73UL,0x06050c0fUL,0xf701f503UL,0x1c123836UL,0xc2a39ffeUL,0x6a5fd4e1UL,0xaef94710UL,0x69d0d26bUL,0x17912ea8UL,0x995829e8UL,0x3a277469UL,0x27b94ed0UL,0xd938a948UL,0xeb13cd35UL,0x2bb356ceUL,0x22334455UL,0xd2bbbfd6UL,0xa9704990UL,0x07890e80UL,0x33a766f2UL,0x2db65ac1UL,0x3c227866UL,0x15922aadUL,0xc9208960UL,0x874915dbUL,0xaaff4f1aUL,0x5078a088UL,0xa57a518eUL,0x038f068aUL,0x59f8b213UL,0x0980129bUL,0x1a173439UL,0x65daca75UL,0xd731b553UL,0x84c61351UL,0xd0b8bbd3UL,0x82c31f5eUL,0x29b052cbUL,0x5a77b499UL,0x1e113c33UL,0x7bcbf646UL,0xa8fc4b1fUL,0x6dd6da61UL,0x2c3a584eUL, 0xa597f4a5UL,0x84eb9784UL,0x99c7b099UL,0x8df78c8dUL,0x0de5170dUL,0xbdb7dcbdUL,0xb1a7c8b1UL,0x5439fc54UL,0x50c0f050UL,0x03040503UL,0xa987e0a9UL,0x7dac877dUL,0x19d52b19UL,0x6271a662UL,0xe69a31e6UL,0x9ac3b59aUL,0x4505cf45UL,0x9d3ebc9dUL,0x4009c040UL,0x87ef9287UL,0x15c53f15UL,0xeb7f26ebUL,0xc90740c9UL,0x0bed1d0bUL,0xec822fecUL,0x677da967UL,0xfdbe1cfdUL,0xea8a25eaUL,0xbf46dabfUL,0xf7a602f7UL,0x96d3a196UL,0x5b2ded5bUL,0xc2ea5dc2UL,0x1cd9241cUL,0xae7ae9aeUL,0x6a98be6aUL,0x5ad8ee5aUL,0x41fcc341UL,0x02f10602UL,0x4f1dd14fUL,0x5cd0e45cUL,0xf4a207f4UL,0x34b95c34UL,0x08e91808UL,0x93dfae93UL,0x734d9573UL,0x53c4f553UL,0x3f54413fUL,0x0c10140cUL,0x5231f652UL,0x658caf65UL,0x5e21e25eUL,0x28607828UL,0xa16ef8a1UL,0x0f14110fUL,0xb55ec4b5UL,0x091c1b09UL,0x36485a36UL,0x9b36b69bUL,0x3da5473dUL,0x26816a26UL,0x699cbb69UL,0xcdfe4ccdUL,0x9fcfba9fUL,0x1b242d1bUL,0x9e3ab99eUL,0x74b09c74UL,0x2e68722eUL,0x2d6c772dUL,0xb2a3cdb2UL,0xee7329eeUL,0xfbb616fbUL,0xf65301f6UL,0x4decd74dUL,0x6175a361UL,0xcefa49ceUL,0x7ba48d7bUL,0x3ea1423eUL,0x71bc9371UL,0x9726a297UL,0xf55704f5UL,0x6869b868UL,0x00000000UL,0x2c99742cUL,0x6080a060UL,0x1fdd211fUL,0xc8f243c8UL,0xed772cedUL,0xbeb3d9beUL,0x4601ca46UL,0xd9ce70d9UL,0x4be4dd4bUL,0xde3379deUL,0xd42b67d4UL,0xe87b23e8UL,0x4a11de4aUL,0x6b6dbd6bUL,0x2a917e2aUL,0xe59e34e5UL,0x16c13a16UL,0xc51754c5UL,0xd72f62d7UL,0x55ccff55UL,0x9422a794UL,0xcf0f4acfUL,0x10c93010UL,0x06080a06UL,0x81e79881UL,0xf05b0bf0UL,0x44f0cc44UL,0xba4ad5baUL,0xe3963ee3UL,0xf35f0ef3UL,0xfeba19feUL,0xc01b5bc0UL,0x8a0a858aUL,0xad7eecadUL,0xbc42dfbcUL,0x48e0d848UL,0x04f90c04UL,0xdfc67adfUL,0xc1ee58c1UL,0x75459f75UL,0x6384a563UL,0x30405030UL,0x1ad12e1aUL,0x0ee1120eUL,0x6d65b76dUL,0x4c19d44cUL,0x14303c14UL,0x354c5f35UL,0x2f9d712fUL,0xe16738e1UL,0xa26afda2UL,0xcc0b4fccUL,0x395c4b39UL,0x573df957UL,0xf2aa0df2UL,0x82e39d82UL,0x47f4c947UL,0xac8befacUL,0xe76f32e7UL,0x2b647d2bUL,0x95d7a495UL,0xa09bfba0UL,0x9832b398UL,0xd12768d1UL,0x7f5d817fUL,0x6688aa66UL,0x7ea8827eUL,0xab76e6abUL,0x83169e83UL,0xca0345caUL,0x29957b29UL,0xd3d66ed3UL,0x3c50443cUL,0x79558b79UL,0xe2633de2UL,0x1d2c271dUL,0x76419a76UL,0x3bad4d3bUL,0x56c8fa56UL,0x4ee8d24eUL,0x1e28221eUL,0xdb3f76dbUL,0x0a181e0aUL,0x6c90b46cUL,0xe46b37e4UL,0x5d25e75dUL,0x6e61b26eUL,0xef862aefUL,0xa693f1a6UL,0xa872e3a8UL,0xa462f7a4UL,0x37bd5937UL,0x8bff868bUL,0x32b15632UL,0x430dc543UL,0x59dceb59UL,0xb7afc2b7UL,0x8c028f8cUL,0x6479ac64UL,0xd2236dd2UL,0xe0923be0UL,0xb4abc7b4UL,0xfa4315faUL,0x07fd0907UL,0x25856f25UL,0xaf8feaafUL,0x8ef3898eUL,0xe98e20e9UL,0x18202818UL,0xd5de64d5UL,0x88fb8388UL,0x6f94b16fUL,0x72b89672UL,0x24706c24UL,0xf1ae08f1UL,0xc7e652c7UL,0x5135f351UL,0x238d6523UL,0x7c59847cUL,0x9ccbbf9cUL,0x217c6321UL,0xdd377cddUL,0xdcc27fdcUL,0x861a9186UL,0x851e9485UL,0x90dbab90UL,0x42f8c642UL,0xc4e257c4UL,0xaa83e5aaUL,0xd83b73d8UL,0x050c0f05UL,0x01f50301UL,0x12383612UL,0xa39ffea3UL,0x5fd4e15fUL,0xf94710f9UL,0xd0d26bd0UL,0x912ea891UL,0x5829e858UL,0x27746927UL,0xb94ed0b9UL,0x38a94838UL,0x13cd3513UL,0xb356ceb3UL,0x33445533UL,0xbbbfd6bbUL,0x70499070UL,0x890e8089UL,0xa766f2a7UL,0xb65ac1b6UL,0x22786622UL,0x922aad92UL,0x20896020UL,0x4915db49UL,0xff4f1affUL,0x78a08878UL,0x7a518e7aUL,0x8f068a8fUL,0xf8b213f8UL,0x80129b80UL,0x17343917UL,0xdaca75daUL,0x31b55331UL,0xc61351c6UL,0xb8bbd3b8UL,0xc31f5ec3UL,0xb052cbb0UL,0x77b49977UL,0x113c3311UL,0xcbf646cbUL,0xfc4b1ffcUL,0xd6da61d6UL,0x3a584e3aUL, 0x97f4a5f4UL,0xeb978497UL,0xc7b099b0UL,0xf78c8d8cUL,0xe5170d17UL,0xb7dcbddcUL,0xa7c8b1c8UL,0x39fc54fcUL,0xc0f050f0UL,0x04050305UL,0x87e0a9e0UL,0xac877d87UL,0xd52b192bUL,0x71a662a6UL,0x9a31e631UL,0xc3b59ab5UL,0x05cf45cfUL,0x3ebc9dbcUL,0x09c040c0UL,0xef928792UL,0xc53f153fUL,0x7f26eb26UL,0x0740c940UL,0xed1d0b1dUL,0x822fec2fUL,0x7da967a9UL,0xbe1cfd1cUL,0x8a25ea25UL,0x46dabfdaUL,0xa602f702UL,0xd3a196a1UL,0x2ded5bedUL,0xea5dc25dUL,0xd9241c24UL,0x7ae9aee9UL,0x98be6abeUL,0xd8ee5aeeUL,0xfcc341c3UL,0xf1060206UL,0x1dd14fd1UL,0xd0e45ce4UL,0xa207f407UL,0xb95c345cUL,0xe9180818UL,0xdfae93aeUL,0x4d957395UL,0xc4f553f5UL,0x54413f41UL,0x10140c14UL,0x31f652f6UL,0x8caf65afUL,0x21e25ee2UL,0x60782878UL,0x6ef8a1f8UL,0x14110f11UL,0x5ec4b5c4UL,0x1c1b091bUL,0x485a365aUL,0x36b69bb6UL,0xa5473d47UL,0x816a266aUL,0x9cbb69bbUL,0xfe4ccd4cUL,0xcfba9fbaUL,0x242d1b2dUL,0x3ab99eb9UL,0xb09c749cUL,0x68722e72UL,0x6c772d77UL,0xa3cdb2cdUL,0x7329ee29UL,0xb616fb16UL,0x5301f601UL,0xecd74dd7UL,0x75a361a3UL,0xfa49ce49UL,0xa48d7b8dUL,0xa1423e42UL,0xbc937193UL,0x26a297a2UL,0x5704f504UL,0x69b868b8UL,0x00000000UL,0x99742c74UL,0x80a060a0UL,0xdd211f21UL,0xf243c843UL,0x772ced2cUL,0xb3d9bed9UL,0x01ca46caUL,0xce70d970UL,0xe4dd4bddUL,0x3379de79UL,0x2b67d467UL,0x7b23e823UL,0x11de4adeUL,0x6dbd6bbdUL,0x917e2a7eUL,0x9e34e534UL,0xc13a163aUL,0x1754c554UL,0x2f62d762UL,0xccff55ffUL,0x22a794a7UL,0x0f4acf4aUL,0xc9301030UL,0x080a060aUL,0xe7988198UL,0x5b0bf00bUL,0xf0cc44ccUL,0x4ad5bad5UL,0x963ee33eUL,0x5f0ef30eUL,0xba19fe19UL,0x1b5bc05bUL,0x0a858a85UL,0x7eecadecUL,0x42dfbcdfUL,0xe0d848d8UL,0xf90c040cUL,0xc67adf7aUL,0xee58c158UL,0x459f759fUL,0x84a563a5UL,0x40503050UL,0xd12e1a2eUL,0xe1120e12UL,0x65b76db7UL,0x19d44cd4UL,0x303c143cUL,0x4c5f355fUL,0x9d712f71UL,0x6738e138UL,0x6afda2fdUL,0x0b4fcc4fUL,0x5c4b394bUL,0x3df957f9UL,0xaa0df20dUL,0xe39d829dUL,0xf4c947c9UL,0x8befacefUL,0x6f32e732UL,0x647d2b7dUL,0xd7a495a4UL,0x9bfba0fbUL,0x32b398b3UL,0x2768d168UL,0x5d817f81UL,0x88aa66aaUL,0xa8827e82UL,0x76e6abe6UL,0x169e839eUL,0x0345ca45UL,0x957b297bUL,0xd66ed36eUL,0x50443c44UL,0x558b798bUL,0x633de23dUL,0x2c271d27UL,0x419a769aUL,0xad4d3b4dUL,0xc8fa56faUL,0xe8d24ed2UL,0x28221e22UL,0x3f76db76UL,0x181e0a1eUL,0x90b46cb4UL,0x6b37e437UL,0x25e75de7UL,0x61b26eb2UL,0x862aef2aUL,0x93f1a6f1UL,0x72e3a8e3UL,0x62f7a4f7UL,0xbd593759UL,0xff868b86UL,0xb1563256UL,0x0dc543c5UL,0xdceb59ebUL,0xafc2b7c2UL,0x028f8c8fUL,0x79ac64acUL,0x236dd26dUL,0x923be03bUL,0xabc7b4c7UL,0x4315fa15UL,0xfd090709UL,0x856f256fUL,0x8feaafeaUL,0xf3898e89UL,0x8e20e920UL,0x20281828UL,0xde64d564UL,0xfb838883UL,0x94b16fb1UL,0xb8967296UL,0x706c246cUL,0xae08f108UL,0xe652c752UL,0x35f351f3UL,0x8d652365UL,0x59847c84UL,0xcbbf9cbfUL,0x7c632163UL,0x377cdd7cUL,0xc27fdc7fUL,0x1a918691UL,0x1e948594UL,0xdbab90abUL,0xf8c642c6UL,0xe257c457UL,0x83e5aae5UL,0x3b73d873UL,0x0c0f050fUL,0xf5030103UL,0x38361236UL,0x9ffea3feUL,0xd4e15fe1UL,0x4710f910UL,0xd26bd06bUL,0x2ea891a8UL,0x29e858e8UL,0x74692769UL,0x4ed0b9d0UL,0xa9483848UL,0xcd351335UL,0x56ceb3ceUL,0x44553355UL,0xbfd6bbd6UL,0x49907090UL,0x0e808980UL,0x66f2a7f2UL,0x5ac1b6c1UL,0x78662266UL,0x2aad92adUL,0x89602060UL,0x15db49dbUL,0x4f1aff1aUL,0xa0887888UL,0x518e7a8eUL,0x068a8f8aUL,0xb213f813UL,0x129b809bUL,0x34391739UL,0xca75da75UL,0xb5533153UL,0x1351c651UL,0xbbd3b8d3UL,0x1f5ec35eUL,0x52cbb0cbUL,0xb4997799UL,0x3c331133UL,0xf646cb46UL,0x4b1ffc1fUL,0xda61d661UL,0x584e3a4eUL, 0xf4a5f432UL,0x9784976fUL,0xb099b05eUL,0x8c8d8c7aUL,0x170d17e8UL,0xdcbddc0aUL,0xc8b1c816UL,0xfc54fc6dUL,0xf050f090UL,0x05030507UL,0xe0a9e02eUL,0x877d87d1UL,0x2b192bccUL,0xa662a613UL,0x31e6317cUL,0xb59ab559UL,0xcf45cf40UL,0xbc9dbca3UL,0xc040c049UL,0x92879268UL,0x3f153fd0UL,0x26eb2694UL,0x40c940ceUL,0x1d0b1de6UL,0x2fec2f6eUL,0xa967a91aUL,0x1cfd1c43UL,0x25ea2560UL,0xdabfdaf9UL,0x02f70251UL,0xa196a145UL,0xed5bed76UL,0x5dc25d28UL,0x241c24c5UL,0xe9aee9d4UL,0xbe6abef2UL,0xee5aee82UL,0xc341c3bdUL,0x060206f3UL,0xd14fd152UL,0xe45ce48cUL,0x07f40756UL,0x5c345c8dUL,0x180818e1UL,0xae93ae4cUL,0x9573953eUL,0xf553f597UL,0x413f416bUL,0x140c141cUL,0xf652f663UL,0xaf65afe9UL,0xe25ee27fUL,0x78287848UL,0xf8a1f8cfUL,0x110f111bUL,0xc4b5c4ebUL,0x1b091b15UL,0x5a365a7eUL,0xb69bb6adUL,0x473d4798UL,0x6a266aa7UL,0xbb69bbf5UL,0x4ccd4c33UL,0xba9fba50UL,0x2d1b2d3fUL,0xb99eb9a4UL,0x9c749cc4UL,0x722e7246UL,0x772d7741UL,0xcdb2cd11UL,0x29ee299dUL,0x16fb164dUL,0x01f601a5UL,0xd74dd7a1UL,0xa361a314UL,0x49ce4934UL,0x8d7b8ddfUL,0x423e429fUL,0x937193cdUL,0xa297a2b1UL,0x04f504a2UL,0xb868b801UL,0x00000000UL,0x742c74b5UL,0xa060a0e0UL,0x211f21c2UL,0x43c8433aUL,0x2ced2c9aUL,0xd9bed90dUL,0xca46ca47UL,0x70d97017UL,0xdd4bddafUL,0x79de79edUL,0x67d467ffUL,0x23e82393UL,0xde4ade5bUL,0xbd6bbd06UL,0x7e2a7ebbUL,0x34e5347bUL,0x3a163ad7UL,0x54c554d2UL,0x62d762f8UL,0xff55ff99UL,0xa794a7b6UL,0x4acf4ac0UL,0x301030d9UL,0x0a060a0eUL,0x98819866UL,0x0bf00babUL,0xcc44ccb4UL,0xd5bad5f0UL,0x3ee33e75UL,0x0ef30eacUL,0x19fe1944UL,0x5bc05bdbUL,0x858a8580UL,0xecadecd3UL,0xdfbcdffeUL,0xd848d8a8UL,0x0c040cfdUL,0x7adf7a19UL,0x58c1582fUL,0x9f759f30UL,0xa563a5e7UL,0x50305070UL,0x2e1a2ecbUL,0x120e12efUL,0xb76db708UL,0xd44cd455UL,0x3c143c24UL,0x5f355f79UL,0x712f71b2UL,0x38e13886UL,0xfda2fdc8UL,0x4fcc4fc7UL,0x4b394b65UL,0xf957f96aUL,0x0df20d58UL,0x9d829d61UL,0xc947c9b3UL,0xefacef27UL,0x32e73288UL,0x7d2b7d4fUL,0xa495a442UL,0xfba0fb3bUL,0xb398b3aaUL,0x68d168f6UL,0x817f8122UL,0xaa66aaeeUL,0x827e82d6UL,0xe6abe6ddUL,0x9e839e95UL,0x45ca45c9UL,0x7b297bbcUL,0x6ed36e05UL,0x443c446cUL,0x8b798b2cUL,0x3de23d81UL,0x271d2731UL,0x9a769a37UL,0x4d3b4d96UL,0xfa56fa9eUL,0xd24ed2a6UL,0x221e2236UL,0x76db76e4UL,0x1e0a1e12UL,0xb46cb4fcUL,0x37e4378fUL,0xe75de778UL,0xb26eb20fUL,0x2aef2a69UL,0xf1a6f135UL,0xe3a8e3daUL,0xf7a4f7c6UL,0x5937598aUL,0x868b8674UL,0x56325683UL,0xc543c54eUL,0xeb59eb85UL,0xc2b7c218UL,0x8f8c8f8eUL,0xac64ac1dUL,0x6dd26df1UL,0x3be03b72UL,0xc7b4c71fUL,0x15fa15b9UL,0x090709faUL,0x6f256fa0UL,0xeaafea20UL,0x898e897dUL,0x20e92067UL,0x28182838UL,0x64d5640bUL,0x83888373UL,0xb16fb1fbUL,0x967296caUL,0x6c246c54UL,0x08f1085fUL,0x52c75221UL,0xf351f364UL,0x652365aeUL,0x847c8425UL,0xbf9cbf57UL,0x6321635dUL,0x7cdd7ceaUL,0x7fdc7f1eUL,0x9186919cUL,0x9485949bUL,0xab90ab4bUL,0xc642c6baUL,0x57c45726UL,0xe5aae529UL,0x73d873e3UL,0x0f050f09UL,0x030103f4UL,0x3612362aUL,0xfea3fe3cUL,0xe15fe18bUL,0x10f910beUL,0x6bd06b02UL,0xa891a8bfUL,0xe858e871UL,0x69276953UL,0xd0b9d0f7UL,0x48384891UL,0x351335deUL,0xceb3cee5UL,0x55335577UL,0xd6bbd604UL,0x90709039UL,0x80898087UL,0xf2a7f2c1UL,0xc1b6c1ecUL,0x6622665aUL,0xad92adb8UL,0x602060a9UL,0xdb49db5cUL,0x1aff1ab0UL,0x887888d8UL,0x8e7a8e2bUL,0x8a8f8a89UL,0x13f8134aUL,0x9b809b92UL,0x39173923UL,0x75da7510UL,0x53315384UL,0x51c651d5UL,0xd3b8d303UL,0x5ec35edcUL,0xcbb0cbe2UL,0x997799c3UL,0x3311332dUL,0x46cb463dUL,0x1ffc1fb7UL,0x61d6610cUL,0x4e3a4e62UL };
LOCAL UINT32 groestl_T_local[256*8]; const UINT32 LOCAL *groestl_T0 = &groestl_T_local[0 * 256]; const UINT32 LOCAL *groestl_T1 = &groestl_T_local[1 * 256]; const UINT32 LOCAL *groestl_T2 = &groestl_T_local[2 * 256]; const UINT32 LOCAL *groestl_T3 = &groestl_T_local[3 * 256]; const UINT32 LOCAL *groestl_T4 = &groestl_T_local[4 * 256]; const UINT32 LOCAL *groestl_T5 = &groestl_T_local[5 * 256]; const UINT32 LOCAL *groestl_T6 = &groestl_T_local[6 * 256]; const UINT32 LOCAL *groestl_T7 = &groestl_T_local[7 * 256];
UINT32 nLocalId = LOCALID; { for(i = 0; i < 256 * 8; i += WORKSIZE) groestl_T_local[i + nLocalId ] = groestl_T_init[i + nLocalId]; }
// body groestl_BuffC[16] = hash[16] = 0x80; groestl_BuffC[17] = hash[17] = 0; groestl_BuffC[18] = hash[18] = 0; groestl_BuffC[19] = hash[19] = 0; groestl_BuffC[20] = hash[20] = 0; groestl_BuffC[21] = hash[21] = 0; groestl_BuffC[22] = hash[22] = 0; groestl_BuffC[23] = hash[23] = 0; groestl_BuffC[24] = hash[24] = 0; groestl_BuffC[25] = hash[25] = 0; groestl_BuffC[26] = hash[26] = 0; groestl_BuffC[27] = hash[27] = 0; groestl_BuffC[28] = hash[28] = 0; groestl_BuffC[29] = hash[29] = 0; groestl_BuffC[30] = hash[30] = 0; hash[31] = 0x01000000; groestl_BuffC[31] = 0x01020000L;
#pragma unroll 16 for (groestl_i = 0; groestl_i < 16; groestl_i++) { groestl_BuffC[groestl_i] = hash[groestl_i]; }
for(groestl_i=0; groestl_i < 0x0d000000u; groestl_i+=0x01000000u) { groestl_QMIX(hash, groestl_BuffB, groestl_i) groestl_i+=0x01000000u; groestl_QMIX(groestl_BuffB, hash, groestl_i) }
for(groestl_i=0; groestl_i<13; ++groestl_i) { groestl_PMIX(groestl_BuffC, groestl_BuffB, groestl_i) ++groestl_i; groestl_PMIX(groestl_BuffB, groestl_BuffC, groestl_i) }
#pragma unroll 32 for(groestl_i = 0; groestl_i < 32-1; groestl_i++) { hash[groestl_i] ^= groestl_BuffC[groestl_i]; groestl_BuffB[groestl_i] = hash[groestl_i]; } hash[31] ^= 0x00020000UL ^ groestl_BuffC[31]; groestl_BuffB[31] = hash[31];
for(groestl_i = 0; groestl_i < 14;) { groestl_PMIX(groestl_BuffB, groestl_BuffC, groestl_i) ++groestl_i; groestl_PMIX(groestl_BuffC, groestl_BuffB, groestl_i) ++groestl_i; }
#pragma unroll 16 for(groestl_i = 0; groestl_i < 16; ++groestl_i) { hash[groestl_i] = groestl_BuffB[16+groestl_i] ^ hash[16+groestl_i]; }
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
October 22, 2014, 01:42:53 AM |
|
skein skein_p[0] = hash64[0]; skein_p[1] = hash64[1]; skein_p[2] = hash64[2]; skein_p[3] = hash64[3]; skein_p[4] = hash64[4]; skein_p[5] = hash64[5]; skein_p[6] = hash64[6]; skein_p[7] = hash64[7];
skein_p[0] += 0x4903ADFF749C51CEULL; skein_p[1] += 0x0D95DE399746DF03ULL; skein_p[2] += 0x8FD1934127C79BCEULL; skein_p[3] += 0x9A255629FF352CB1ULL; skein_p[4] += 0x5DB62599DF6CA7B0ULL; skein_p[5] += 0xEABE394CA9D5C434ULL; skein_p[6] += 0x891112C71A75B523ULL; skein_p[7] += 0xAE18A40B660FCC33ULL; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 46) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 36) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 19) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 37) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 33) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 27) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 14) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 42) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 17) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 49) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 36) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 39) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 44) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 9) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 54) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 56) ^ skein_p[4]; skein_p[0] += 0x0D95DE399746DF03ULL; skein_p[1] += 0x8FD1934127C79BCEULL; skein_p[2] += 0x9A255629FF352CB1ULL; skein_p[3] += 0x5DB62599DF6CA7B0ULL; skein_p[4] += 0xEABE394CA9D5C3F4ULL; skein_p[5] += 0x891112C71A75B523ULL; skein_p[6] += 0x9E18A40B660FCC73ULL; skein_p[7] += 0xcab2076d98173ec4ULL + (UINT64) 1; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 39) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 30) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 34) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 24) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 13) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 50) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 10) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 17) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 25) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 29) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 39) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 43) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 8) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 35) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 56) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 22) ^ skein_p[4]; skein_p[0] += 0x8FD1934127C79BCEULL; skein_p[1] += 0x9A255629FF352CB1ULL; skein_p[2] += 0x5DB62599DF6CA7B0ULL; skein_p[3] += 0xEABE394CA9D5C3F4ULL; skein_p[4] += 0x991112C71A75B523ULL; skein_p[5] += 0x9E18A40B660FCC73ULL; skein_p[6] += 0xCAB2076D98173F04ULL; skein_p[7] += 0x4903ADFF749C51D0ULL; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 46) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 36) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 19) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 37) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 33) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 27) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 14) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 42) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 17) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 49) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 36) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 39) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 44) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 9) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 54) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 56) ^ skein_p[4]; skein_p[0] += 0x9A255629FF352CB1ULL; skein_p[1] += 0x5DB62599DF6CA7B0ULL; skein_p[2] += 0xEABE394CA9D5C3F4ULL; skein_p[3] += 0x991112C71A75B523ULL; skein_p[4] += 0xAE18A40B660FCC33ULL; skein_p[5] += 0xcab2076d98173f04ULL; skein_p[6] += 0x3903ADFF749C51CEULL; skein_p[7] += 0x0D95DE399746DF03ULL + (UINT64) 3; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 39) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 30) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 34) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 24) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 13) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 50) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 10) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 17) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 25) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 29) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 39) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 43) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 8) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 35) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 56) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 22) ^ skein_p[4]; skein_p[0] += 0x5DB62599DF6CA7B0ULL; skein_p[1] += 0xEABE394CA9D5C3F4ULL; skein_p[2] += 0x991112C71A75B523ULL; skein_p[3] += 0xAE18A40B660FCC33ULL; skein_p[4] += 0xcab2076d98173ec4ULL; skein_p[5] += 0x3903ADFF749C51CEULL; skein_p[6] += 0xFD95DE399746DF43ULL; skein_p[7] += 0x8FD1934127C79BD2ULL; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 46) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 36) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 19) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 37) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 33) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 27) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 14) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 42) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 17) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 49) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 36) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 39) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 44) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 9) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 54) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 56) ^ skein_p[4]; skein_p[0] += 0xEABE394CA9D5C3F4ULL; skein_p[1] += 0x991112C71A75B523ULL; skein_p[2] += 0xAE18A40B660FCC33ULL; skein_p[3] += 0xcab2076d98173ec4ULL; skein_p[4] += 0x4903ADFF749C51CEULL; skein_p[5] += 0x0D95DE399746DF03ULL + 0xf000000000000040ULL; skein_p[6] += 0x8FD1934127C79BCEULL + 0x0000000000000040ULL; skein_p[7] += 0x9A255629FF352CB1ULL + (UINT64) 5; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 39) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 30) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 34) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 24) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 13) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 50) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 10) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 17) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 25) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 29) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 39) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 43) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 8) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 35) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 56) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 22) ^ skein_p[4]; skein_p[0] += 0x991112C71A75B523ULL; skein_p[1] += 0xAE18A40B660FCC33ULL; skein_p[2] += 0xcab2076d98173ec4ULL; skein_p[3] += 0x4903ADFF749C51CEULL; skein_p[4] += 0x0D95DE399746DF03ULL; skein_p[5] += 0x8FD1934127C79BCEULL + 0x0000000000000040ULL; skein_p[6] += 0x8A255629FF352CB1ULL; skein_p[7] += 0x5DB62599DF6CA7B0ULL + (UINT64) 6; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 46) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 36) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 19) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 37) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 33) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 27) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 14) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 42) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 17) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 49) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 36) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 39) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 44) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 9) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 54) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 56) ^ skein_p[4]; skein_p[0] += 0xAE18A40B660FCC33ULL; skein_p[1] += 0xcab2076d98173ec4ULL; skein_p[2] += 0x4903ADFF749C51CEULL; skein_p[3] += 0x0D95DE399746DF03ULL; skein_p[4] += 0x8FD1934127C79BCEULL; skein_p[5] += 0x8A255629FF352CB1ULL; skein_p[6] += 0x4DB62599DF6CA7F0ULL; skein_p[7] += 0xEABE394CA9D5C3F4ULL + (UINT64) 7; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 39) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 30) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 34) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 24) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 13) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 50) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 10) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 17) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 25) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 29) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 39) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 43) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 8) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 35) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 56) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 22) ^ skein_p[4]; skein_p[0] += 0xcab2076d98173ec4ULL; skein_p[1] += 0x4903ADFF749C51CEULL; skein_p[2] += 0x0D95DE399746DF03ULL; skein_p[3] += 0x8FD1934127C79BCEULL; skein_p[4] += 0x9A255629FF352CB1ULL; skein_p[5] += 0x4DB62599DF6CA7F0ULL; skein_p[6] += 0xEABE394CA9D5C434ULL; skein_p[7] += 0x991112C71A75B52BULL; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 46) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 36) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 19) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 37) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 33) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 27) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 14) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 42) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 17) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 49) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 36) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 39) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 44) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 9) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 54) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 56) ^ skein_p[4]; skein_p[0] += 0x4903ADFF749C51CEULL; skein_p[1] += 0x0D95DE399746DF03ULL; skein_p[2] += 0x8FD1934127C79BCEULL; skein_p[3] += 0x9A255629FF352CB1ULL; skein_p[4] += 0x5DB62599DF6CA7B0ULL; skein_p[5] += 0xEABE394CA9D5C434ULL; skein_p[6] += 0x891112C71A75B523ULL; skein_p[7] += 0xAE18A40B660FCC33ULL + (UINT64) 9; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 39) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 30) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 34) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 24) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 13) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 50) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 10) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 17) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 25) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 29) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 39) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 43) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 8) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 35) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 56) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 22) ^ skein_p[4]; skein_p[0] += 0x0D95DE399746DF03ULL; skein_p[1] += 0x8FD1934127C79BCEULL; skein_p[2] += 0x9A255629FF352CB1ULL; skein_p[3] += 0x5DB62599DF6CA7B0ULL; skein_p[4] += 0xEABE394CA9D5C3F4ULL; skein_p[5] += 0x891112C71A75B523ULL; skein_p[6] += 0x9E18A40B660FCC73ULL; skein_p[7] += 0xcab2076d98173eceULL; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 46) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 36) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 19) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 37) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 33) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 27) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 14) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 42) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 17) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 49) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 36) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 39) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 44) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 9) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 54) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 56) ^ skein_p[4]; skein_p[0] += 0x8FD1934127C79BCEULL; skein_p[1] += 0x9A255629FF352CB1ULL; skein_p[2] += 0x5DB62599DF6CA7B0ULL; skein_p[3] += 0xEABE394CA9D5C3F4ULL; skein_p[4] += 0x991112C71A75B523ULL; skein_p[5] += 0x9E18A40B660FCC73ULL; skein_p[6] += 0xcab2076d98173ec4ULL + 0x0000000000000040ULL; skein_p[7] += 0x4903ADFF749C51CEULL + (UINT64)11; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 39) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 30) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 34) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 24) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 13) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 50) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 10) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 17) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 25) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 29) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 39) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 43) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 8) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 35) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 56) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 22) ^ skein_p[4]; skein_p[0] += 0x9A255629FF352CB1ULL; skein_p[1] += 0x5DB62599DF6CA7B0ULL; skein_p[2] += 0xEABE394CA9D5C3F4ULL; skein_p[3] += 0x991112C71A75B523ULL; skein_p[4] += 0xAE18A40B660FCC33ULL; skein_p[5] += 0xcab2076d98173ec4ULL + 0x0000000000000040ULL; skein_p[6] += 0x3903ADFF749C51CEULL; skein_p[7] += 0x0D95DE399746DF03ULL + (UINT64)12; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 46) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 36) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 19) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 37) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 33) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 27) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 14) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 42) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 17) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 49) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 36) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 39) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 44) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 9) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 54) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 56) ^ skein_p[4]; skein_p[0] += 0x5DB62599DF6CA7B0ULL; skein_p[1] += 0xEABE394CA9D5C3F4ULL; skein_p[2] += 0x991112C71A75B523ULL; skein_p[3] += 0xAE18A40B660FCC33ULL; skein_p[4] += 0xcab2076d98173ec4ULL; skein_p[5] += 0x3903ADFF749C51CEULL; skein_p[6] += 0x0D95DE399746DF03ULL + 0xf000000000000040ULL; skein_p[7] += 0x8FD1934127C79BCEULL + (UINT64)13; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 39) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 30) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 34) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 24) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 13) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 50) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 10) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 17) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 25) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 29) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 39) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 43) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 8) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 35) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 56) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 22) ^ skein_p[4]; skein_p[0] += 0xEABE394CA9D5C3F4ULL; skein_p[1] += 0x991112C71A75B523ULL; skein_p[2] += 0xAE18A40B660FCC33ULL; skein_p[3] += 0xcab2076d98173ec4ULL; skein_p[4] += 0x4903ADFF749C51CEULL; skein_p[5] += 0x0D95DE399746DF03ULL + 0xf000000000000040ULL; skein_p[6] += 0x8FD1934127C79BCEULL + 0x0000000000000040ULL; skein_p[7] += 0x9A255629FF352CB1ULL + (UINT64)14; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 46) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 36) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 19) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 37) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 33) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 27) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 14) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 42) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 17) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 49) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 36) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 39) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 44) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 9) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 54) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 56) ^ skein_p[4]; skein_p[0] += 0x991112C71A75B523ULL; skein_p[1] += 0xAE18A40B660FCC33ULL; skein_p[2] += 0xcab2076d98173ec4ULL; skein_p[3] += 0x4903ADFF749C51CEULL; skein_p[4] += 0x0D95DE399746DF03ULL; skein_p[5] += 0x8FD1934127C79BCEULL + 0x0000000000000040ULL; skein_p[6] += 0x8A255629FF352CB1ULL; skein_p[7] += 0x5DB62599DF6CA7B0ULL + (UINT64)15; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 39) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 30) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 34) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 24) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 13) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 50) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 10) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 17) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 25) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 29) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 39) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 43) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 8) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 35) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 56) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 22) ^ skein_p[4]; skein_p[0] += 0xAE18A40B660FCC33ULL; skein_p[1] += 0xcab2076d98173ec4ULL; skein_p[2] += 0x4903ADFF749C51CEULL; skein_p[3] += 0x0D95DE399746DF03ULL; skein_p[4] += 0x8FD1934127C79BCEULL; skein_p[5] += 0x8A255629FF352CB1ULL; skein_p[6] += 0x4DB62599DF6CA7F0ULL; skein_p[7] += 0xEABE394CA9D5C3F4ULL + (UINT64)16; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 46) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 36) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 19) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 37) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 33) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 27) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 14) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 42) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 17) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 49) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 36) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 39) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 44) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 9) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 54) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 56) ^ skein_p[4]; skein_p[0] += 0xcab2076d98173ec4ULL; skein_p[1] += 0x4903ADFF749C51CEULL; skein_p[2] += 0x0D95DE399746DF03ULL; skein_p[3] += 0x8FD1934127C79BCEULL; skein_p[4] += 0x9A255629FF352CB1ULL; skein_p[5] += 0x4DB62599DF6CA7F0ULL; skein_p[6] += 0xEABE394CA9D5C3F4ULL + 0x0000000000000040ULL; skein_p[7] += 0x991112C71A75B523ULL + (UINT64)17; skein_p[0] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 39) ^ skein_p[0]; skein_p[2] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 30) ^ skein_p[2]; skein_p[4] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 34) ^ skein_p[4]; skein_p[6] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 24) ^ skein_p[6]; skein_p[2] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 13) ^ skein_p[2]; skein_p[4] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 50) ^ skein_p[4]; skein_p[6] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 10) ^ skein_p[6]; skein_p[0] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 17) ^ skein_p[0]; skein_p[4] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 25) ^ skein_p[4]; skein_p[6] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 29) ^ skein_p[6]; skein_p[0] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 39) ^ skein_p[0]; skein_p[2] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 43) ^ skein_p[2]; skein_p[6] += skein_p[1]; skein_p[1] = ROTL64(skein_p[1], 8) ^ skein_p[6]; skein_p[0] += skein_p[7]; skein_p[7] = ROTL64(skein_p[7], 35) ^ skein_p[0]; skein_p[2] += skein_p[5]; skein_p[5] = ROTL64(skein_p[5], 56) ^ skein_p[2]; skein_p[4] += skein_p[3]; skein_p[3] = ROTL64(skein_p[3], 22) ^ skein_p[4]; skein_p[0] += 0x4903ADFF749C51CEULL; skein_p[1] += 0x0D95DE399746DF03ULL; skein_p[2] += 0x8FD1934127C79BCEULL; skein_p[3] += 0x9A255629FF352CB1ULL; skein_p[4] += 0x5DB62599DF6CA7B0ULL; skein_p[5] += 0xEABE394CA9D5C3F4ULL + 0x0000000000000040ULL; skein_p[6] += 0x891112C71A75B523ULL; skein_p[7] += 0xAE18A40B660FCC33ULL + (UINT64)18;
#define h0 skein_p[0] #define h1 skein_p[1] #define h2 skein_p[2] #define h3 skein_p[3] #define h4 skein_p[4] #define h5 skein_p[5] #define h6 skein_p[6] #define h7 skein_p[7] h0 ^= hash64[0]; h1 ^= hash64[1]; h2 ^= hash64[2]; h3 ^= hash64[3]; h4 ^= hash64[4]; h5 ^= hash64[5]; h6 ^= hash64[6]; h7 ^= hash64[7];
hash64[0] = 0; hash64[1] = 0; hash64[2] = 0; hash64[3] = 0; hash64[4] = 0; hash64[5] = 0; hash64[6] = 0; hash64[7] = 0;
skein_h8 = h0 ^ h1 ^ h2 ^ h3 ^ h4 ^ h5 ^ h6 ^ h7 ^ 0x1BD11BDAA9FC1A22ULL;
hash64[0] = (hash64[0] + h0); hash64[1] = (hash64[1] + h1); hash64[2] = (hash64[2] + h2); hash64[3] = (hash64[3] + h3); hash64[4] = (hash64[4] + h4); hash64[5] = (hash64[5] + h5 + 8ULL); hash64[6] = (hash64[6] + h6 + 0xff00000000000000ULL); hash64[7] = (hash64[7] + h7 + (UINT64)0); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 46) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 36) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 19) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 37) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 33) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 27) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 14) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 42) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 17) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 49) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 36) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 39) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 44) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 9) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 54) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 56) ^ hash64[4]; hash64[0] = (hash64[0] + h1); hash64[1] = (hash64[1] + h2); hash64[2] = (hash64[2] + h3); hash64[3] = (hash64[3] + h4); hash64[4] = (hash64[4] + h5); hash64[5] = (hash64[5] + h6 + 0xff00000000000000ULL); hash64[6] = (hash64[6] + h7 + 0xff00000000000008ULL); hash64[7] = (hash64[7] + skein_h8 + (UINT64)1); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 39) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 30) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 34) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 24) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 13) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 50) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 10) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 17) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 25) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 29) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 39) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 43) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 8) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 35) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 56) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 22) ^ hash64[4]; hash64[0] = (hash64[0] + h2); hash64[1] = (hash64[1] + h3); hash64[2] = (hash64[2] + h4); hash64[3] = (hash64[3] + h5); hash64[4] = (hash64[4] + h6); hash64[5] = (hash64[5] + h7 + 0xff00000000000008ULL); hash64[6] = (hash64[6] + skein_h8 + 8ULL); hash64[7] = (hash64[7] + h0 + (UINT64)2); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 46) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 36) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 19) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 37) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 33) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 27) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 14) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 42) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 17) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 49) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 36) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 39) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 44) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 9) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 54) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 56) ^ hash64[4]; hash64[0] = (hash64[0] + h3); hash64[1] = (hash64[1] + h4); hash64[2] = (hash64[2] + h5); hash64[3] = (hash64[3] + h6); hash64[4] = (hash64[4] + h7); hash64[5] = (hash64[5] + skein_h8 + 8ULL); hash64[6] = (hash64[6] + h0 + 0xff00000000000000ULL); hash64[7] = (hash64[7] + h1 + (UINT64)3); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 39) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 30) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 34) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 24) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 13) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 50) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 10) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 17) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 25) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 29) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 39) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 43) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 8) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 35) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 56) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 22) ^ hash64[4]; hash64[0] = (hash64[0] + h4); hash64[1] = (hash64[1] + h5); hash64[2] = (hash64[2] + h6); hash64[3] = (hash64[3] + h7); hash64[4] = (hash64[4] + skein_h8); hash64[5] = (hash64[5] + h0 + 0xff00000000000000ULL); hash64[6] = (hash64[6] + h1 + 0xff00000000000008ULL); hash64[7] = (hash64[7] + h2 + (UINT64)4); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 46) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 36) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 19) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 37) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 33) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 27) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 14) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 42) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 17) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 49) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 36) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 39) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 44) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 9) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 54) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 56) ^ hash64[4]; hash64[0] = (hash64[0] + h5); hash64[1] = (hash64[1] + h6); hash64[2] = (hash64[2] + h7); hash64[3] = (hash64[3] + skein_h8); hash64[4] = (hash64[4] + h0); hash64[5] = (hash64[5] + h1 + 0xff00000000000008ULL); hash64[6] = (hash64[6] + h2 + 8ULL); hash64[7] = (hash64[7] + h3 + (UINT64)5); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 39) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 30) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 34) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 24) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 13) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 50) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 10) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 17) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 25) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 29) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 39) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 43) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 8) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 35) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 56) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 22) ^ hash64[4]; hash64[0] = (hash64[0] + h6); hash64[1] = (hash64[1] + h7); hash64[2] = (hash64[2] + skein_h8); hash64[3] = (hash64[3] + h0); hash64[4] = (hash64[4] + h1); hash64[5] = (hash64[5] + h2 + 8ULL); hash64[6] = (hash64[6] + h3 + 0xff00000000000000ULL); hash64[7] = (hash64[7] + h4 + (UINT64)6); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 46) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 36) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 19) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 37) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 33) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 27) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 14) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 42) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 17) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 49) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 36) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 39) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 44) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 9) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 54) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 56) ^ hash64[4]; hash64[0] = (hash64[0] + h7); hash64[1] = (hash64[1] + skein_h8); hash64[2] = (hash64[2] + h0); hash64[3] = (hash64[3] + h1); hash64[4] = (hash64[4] + h2); hash64[5] = (hash64[5] + h3 + 0xff00000000000000ULL); hash64[6] = (hash64[6] + h4 + 0xff00000000000008ULL); hash64[7] = (hash64[7] + h5 + (UINT64)7); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 39) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 30) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 34) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 24) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 13) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 50) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 10) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 17) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 25) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 29) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 39) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 43) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 8) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 35) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 56) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 22) ^ hash64[4]; hash64[0] = (hash64[0] + skein_h8); hash64[1] = (hash64[1] + h0); hash64[2] = (hash64[2] + h1); hash64[3] = (hash64[3] + h2); hash64[4] = (hash64[4] + h3); hash64[5] = (hash64[5] + h4 + 0xff00000000000008ULL); hash64[6] = (hash64[6] + h5 + 8ULL); hash64[7] = (hash64[7] + h6 + (UINT64)8); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 46) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 36) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 19) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 37) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 33) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 27) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 14) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 42) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 17) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 49) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 36) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 39) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 44) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 9) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 54) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 56) ^ hash64[4]; hash64[0] = (hash64[0] + h0); hash64[1] = (hash64[1] + h1); hash64[2] = (hash64[2] + h2); hash64[3] = (hash64[3] + h3); hash64[4] = (hash64[4] + h4); hash64[5] = (hash64[5] + h5 + 8ULL); hash64[6] = (hash64[6] + h6 + 0xff00000000000000ULL); hash64[7] = (hash64[7] + h7 + (UINT64)9); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 39) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 30) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 34) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 24) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 13) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 50) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 10) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 17) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 25) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 29) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 39) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 43) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 8) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 35) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 56) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 22) ^ hash64[4];
hash64[0] = (hash64[0] + h1); hash64[1] = (hash64[1] + h2); hash64[2] = (hash64[2] + h3); hash64[3] = (hash64[3] + h4); hash64[4] = (hash64[4] + h5); hash64[5] = (hash64[5] + h6 + 0xff00000000000000ULL); hash64[6] = (hash64[6] + h7 + 0xff00000000000008ULL); hash64[7] = (hash64[7] + skein_h8 + (UINT64)10); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 46) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 36) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 19) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 37) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 33) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 27) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 14) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 42) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 17) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 49) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 36) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 39) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 44) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 9) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 54) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 56) ^ hash64[4]; hash64[0] = (hash64[0] + h2); hash64[1] = (hash64[1] + h3); hash64[2] = (hash64[2] + h4); hash64[3] = (hash64[3] + h5); hash64[4] = (hash64[4] + h6); hash64[5] = (hash64[5] + h7 + 0xff00000000000008ULL); hash64[6] = (hash64[6] + skein_h8 + 8ULL); hash64[7] = (hash64[7] + h0 + (UINT64)11); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 39) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 30) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 34) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 24) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 13) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 50) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 10) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 17) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 25) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 29) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 39) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 43) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 8) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 35) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 56) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 22) ^ hash64[4]; hash64[0] = (hash64[0] + h3); hash64[1] = (hash64[1] + h4); hash64[2] = (hash64[2] + h5); hash64[3] = (hash64[3] + h6); hash64[4] = (hash64[4] + h7); hash64[5] = (hash64[5] + skein_h8 + 8ULL); hash64[6] = (hash64[6] + h0 + 0xff00000000000000ULL); hash64[7] = (hash64[7] + h1 + (UINT64)12); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 46) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 36) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 19) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 37) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 33) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 27) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 14) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 42) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 17) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 49) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 36) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 39) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 44) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 9) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 54) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 56) ^ hash64[4]; hash64[0] = (hash64[0] + h4); hash64[1] = (hash64[1] + h5); hash64[2] = (hash64[2] + h6); hash64[3] = (hash64[3] + h7); hash64[4] = (hash64[4] + skein_h8); hash64[5] = (hash64[5] + h0 + 0xff00000000000000ULL); hash64[6] = (hash64[6] + h1 + 0xff00000000000008ULL); hash64[7] = (hash64[7] + h2 + (UINT64)13); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 39) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 30) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 34) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 24) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 13) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 50) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 10) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 17) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 25) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 29) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 39) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 43) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 8) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 35) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 56) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 22) ^ hash64[4]; hash64[0] = (hash64[0] + h5); hash64[1] = (hash64[1] + h6); hash64[2] = (hash64[2] + h7); hash64[3] = (hash64[3] + skein_h8); hash64[4] = (hash64[4] + h0); hash64[5] = (hash64[5] + h1 + 0xff00000000000008ULL); hash64[6] = (hash64[6] + h2 + 8ULL); hash64[7] = (hash64[7] + h3 + (UINT64)14); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 46) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 36) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 19) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 37) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 33) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 27) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 14) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 42) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 17) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 49) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 36) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 39) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 44) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 9) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 54) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 56) ^ hash64[4]; hash64[0] = (hash64[0] + h6); hash64[1] = (hash64[1] + h7); hash64[2] = (hash64[2] + skein_h8); hash64[3] = (hash64[3] + h0); hash64[4] = (hash64[4] + h1); hash64[5] = (hash64[5] + h2 + 8ULL); hash64[6] = (hash64[6] + h3 + 0xff00000000000000ULL); hash64[7] = (hash64[7] + h4 + (UINT64)15); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 39) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 30) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 34) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 24) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 13) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 50) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 10) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 17) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 25) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 29) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 39) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 43) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 8) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 35) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 56) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 22) ^ hash64[4]; hash64[0] = (hash64[0] + h7); hash64[1] = (hash64[1] + skein_h8); hash64[2] = (hash64[2] + h0); hash64[3] = (hash64[3] + h1); hash64[4] = (hash64[4] + h2); hash64[5] = (hash64[5] + h3 + 0xff00000000000000ULL); hash64[6] = (hash64[6] + h4 + 0xff00000000000008ULL); hash64[7] = (hash64[7] + h5 + (UINT64)16); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 46) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 36) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 19) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 37) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 33) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 27) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 14) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 42) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 17) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 49) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 36) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 39) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 44) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 9) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 54) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 56) ^ hash64[4]; hash64[0] = (hash64[0] + skein_h8); hash64[1] = (hash64[1] + h0); hash64[2] = (hash64[2] + h1); hash64[3] = (hash64[3] + h2); hash64[4] = (hash64[4] + h3); hash64[5] = (hash64[5] + h4 + 0xff00000000000008ULL); hash64[6] = (hash64[6] + h5 + 8ULL); hash64[7] = (hash64[7] + h6 + (UINT64)17); hash64[0] += hash64[1]; hash64[1] = ROTL64(hash64[1], 39) ^ hash64[0]; hash64[2] += hash64[3]; hash64[3] = ROTL64(hash64[3], 30) ^ hash64[2]; hash64[4] += hash64[5]; hash64[5] = ROTL64(hash64[5], 34) ^ hash64[4]; hash64[6] += hash64[7]; hash64[7] = ROTL64(hash64[7], 24) ^ hash64[6]; hash64[2] += hash64[1]; hash64[1] = ROTL64(hash64[1], 13) ^ hash64[2]; hash64[4] += hash64[7]; hash64[7] = ROTL64(hash64[7], 50) ^ hash64[4]; hash64[6] += hash64[5]; hash64[5] = ROTL64(hash64[5], 10) ^ hash64[6]; hash64[0] += hash64[3]; hash64[3] = ROTL64(hash64[3], 17) ^ hash64[0]; hash64[4] += hash64[1]; hash64[1] = ROTL64(hash64[1], 25) ^ hash64[4]; hash64[6] += hash64[3]; hash64[3] = ROTL64(hash64[3], 29) ^ hash64[6]; hash64[0] += hash64[5]; hash64[5] = ROTL64(hash64[5], 39) ^ hash64[0]; hash64[2] += hash64[7]; hash64[7] = ROTL64(hash64[7], 43) ^ hash64[2]; hash64[6] += hash64[1]; hash64[1] = ROTL64(hash64[1], 8) ^ hash64[6]; hash64[0] += hash64[7]; hash64[7] = ROTL64(hash64[7], 35) ^ hash64[0]; hash64[2] += hash64[5]; hash64[5] = ROTL64(hash64[5], 56) ^ hash64[2]; hash64[4] += hash64[3]; hash64[3] = ROTL64(hash64[3], 22) ^ hash64[4];
hash64[0] = (hash64[0] + h0); hash64[1] = (hash64[1] + h1); hash64[2] = (hash64[2] + h2); hash64[3] = (hash64[3] + h3); hash64[4] = (hash64[4] + h4); hash64[5] = (hash64[5] + h5 + 8ULL); hash64[6] = (hash64[6] + h6 + 0xff00000000000000ULL); hash64[7] = (hash64[7] + h7 + (UINT64)18);
#undef h0 #undef h1 #undef h2 #undef h3 #undef h4 #undef h5 #undef h6 #undef h7
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
October 22, 2014, 01:47:45 AM |
|
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
October 22, 2014, 01:53:30 AM |
|
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
April 12, 2015, 04:58:34 AM |
|
Archiving old announcement I finally got rid from the last pieces of GPL'ed code in my own miner and can now release it to the public. This miner is not free, a royalty of 1/8 (12.5%) is deducted from every mined block. (Coinbase transaction have 2 outputs, so I get my fee at exactly the same moment you'll get your coins). Download link:https://mega.co.nz/#!QMMEFBYY!AgH4OGrKaRHkRjiVfVXXzxBHbTIlgdD5o3ak2VFuU78 Edit quarkcoin.conf (or Offering.conf, or securecoin.conf) file of your wallet to enable solo-mining, put your own username and password there: listen=1 rpcallowip=127.0.0.1 rpcuser=username rpcpassword=password rpcport=8772 server=1 Edit sm.cmd from downloaded archive, put your own username, password and wallet address there: smelter -o http://127.0.0.1:8772 -u username -p password -a QNiGvoYctyMwzV1ZjNbjhEoKdQVzFKsmVw This is pre-alpha software, expect all kinds of bugs to be found, don't hesitate to report it here! NVidia and old/rare AMD cards are not supported. Please, give me some time to iron out bugs
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
April 12, 2015, 05:08:53 AM |
|
New public version, now it's Smelter for WhirlpoolX. Closed-sourced, buggy as hell, Windows-only, Tahiti (R9 280x) only, Stratum-only - but free.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
grizscom
|
|
April 12, 2015, 05:14:23 AM |
|
And what is about linux version?
|
|
|
|
smolen (OP)
|
|
April 12, 2015, 05:17:27 AM |
|
And what is about linux version?
I'm going to release it, but later. Paranoid about "modified build process" clause in one of licenses in the toolchain, so it's time to try LLVM.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
April 14, 2015, 10:50:58 AM Last edit: April 14, 2015, 11:09:42 AM by smolen |
|
Getting Stratum work. Nicehash changes work and rises difficulty from 1/256 to 10.24, couple of stale shares slip to the server. The right thing to do is to follow protocol specification and start enforcing new work and difficulty only after mining.notify, but at such rates server may ban miner. 1:0 A:1464 R:22 HW:0 Speed: 519.26MH/s 5s: 519.67MH/s STRATUM: mining.set_extranonce: new ExtraNonce1=48001aa4eb new size of ExtraNonce2=3 STRATUM: mining.set_difficulty: 0.003906 STRATUM: mining.notify 1:0 A:1566 R:22 HW:0 Speed: 519.26MH/s 5s: 520.09MH/s 1:0 A:1734 R:22 HW:0 Speed: 519.27MH/s 5s: 520.30MH/s STRATUM: mining.set_extranonce: new ExtraNonce1=77ff7c94a8 new size of ExtraNonce2=3 STRATUM: mining.set_difficulty: 10.24 STRATUM: mining.notify STRATUM: Share rejected (Error code 21, Job not found.) STRATUM: Share rejected (Error code 21, Job not found.) STRATUM: Share rejected (Error code 21, Job not found.) 1:0 A:1735 R:25 HW:0 Speed: 519.27MH/s 5s: 519.88MH/s
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
April 14, 2015, 08:55:30 PM |
|
You were enforcing it immediately? I'm storing the new difficulty in another variable, then setting a flag if the current diff is outdated - the mining.notify handler checks the flag, and if it's set, copies the new diff from its storage space to the main diff variable, then clears the flag. I also only enforce a miner thread restart if the pool server tells me to clear the jobs.
I did postponed diff/job update, as spec says, then tried instant job change, without waiting for mining.notify, now it's time to revert back, do the build and let everyone meet the bugs Another issue with Nicehash - sometime response to mining.submit is delayed, sometime (rarely) there is no response at all. Every request has to be stored and checked for timeouts.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
April 15, 2015, 01:05:37 AM |
|
Next build is out, with more work on Stratum. Tested only with single 280x, but those cards should work: Juniper (6770, 6750, 5750, 5770) Pitcairn (7850, 7870, Curacao: 265, 270, 270X) Tahiti (7870, 7950, 7970, 280, 290X) Tonga (285)
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
JuanHungLo
|
|
April 15, 2015, 01:28:18 PM |
|
Next build is out, with more work on Stratum. Tested only with single 280x, but those cards should work: Juniper (6770, 6750, 5750, 5770) Pitcairn (7850, 7870, Curacao: 265, 270, 270X) Tahiti (7870, 7950, 7970, 280, 290X) Tonga (285) Thanks for your efforts. What command line settings work for 280x please?
|
Bull markets are born on pessimism, grow on skepticism, mature on optimism, and die on euphoria. - John Templeton
|
|
|
smolen (OP)
|
|
April 15, 2015, 05:03:52 PM |
|
Thanks for your efforts. What command line settings work for 280x please?
Oh, yes, detailed announcement and readme are missing, mea culpa There isn't much to be configured. User can play with worksize (64, 128 and 256) and number of threads. To flood the screen with tons of diagnostics use --debug. Before claiming that I violated GPL, take a look at 'smelter --copyrights' output. To exit, use control-C or type any letter and then ENTER. Intensity options is missing, it was removed to protect users from one obscure driver bug, with too high value PC is dead hang. There is no way yet to select GPU to run or set clock, those options are in my TODO list. Typical command line looks like this, just change pool address, user name and password. 280x runs well with 4 threads and worksize 64, I hope users will share best settings for other cards. smelter -o stratum+tcp://vnl.suprnova.cc:1111 -u user -p pass -g 4 -W 64
Full list of options: Program options: -? [ --help ] This help message --copyrights Print libraries copyright message(s) -o [ --url ] arg pool url (ex: -o http://pool:port ) -u [ --user ] arg Pool username -p [ --pass ] arg Pool password -w [ --worksize ] arg Worksize -g [ --gputhreads ] arg Threads per GPU -D [ --debug ] Enable debug output
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
Bombadil
|
|
April 16, 2015, 07:13:14 AM |
|
Intensity options is missing, it was removed to protect users from one obscure driver bug, with too high value PC is dead hang. There is no way yet to select GPU to run or set clock, those options are in my TODO list.
You aren't used to cudamining, I guess It's regular beef here that the system needs a complete reboot if you're playing with intensities and overclock Part of the fun, isn't it? ^^" (Sucks too, my bitcoin blockchain gets corrupted that way if I'm running it)
|
|
|
|
smolen (OP)
|
|
April 16, 2015, 07:25:52 AM |
|
Intensity options is missing, it was removed to protect users from one obscure driver bug, with too high value PC is dead hang. There is no way yet to select GPU to run or set clock, those options are in my TODO list.
You aren't used to cudamining, I guess It's regular beef here that the system needs a complete reboot if you're playing with intensities and overclock Part of the fun, isn't it? ^^" (Sucks too, my bitcoin blockchain gets corrupted that way if I'm running it) Looks like driver can't handle more than 2^32 scheduled workitems at once - no matter how splitted between threads and kernels. Not a pleasure to play with it on work PC, have I backups or not
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
elpis
Member
Offline
Activity: 64
Merit: 10
|
|
April 16, 2015, 08:01:33 AM |
|
smolen Why is the speed falls with time from 1.17 Gh under 400 Mh? AMD 3x7950 1000/625. On the other rig 4x7970 1000/625--freezes. Why is the CPU load to 100% and freezes. CPU Celeron 1620.
|
|
|
|
smolen (OP)
|
|
April 16, 2015, 08:12:45 AM |
|
smolen Why is the speed falls with time from 1.17 Gh under 400 Mh? AMD 3x7950 1000/625 Smelter is still too basic, there is no per-GPU data, nor mining thread monitoring, nor logging. Right now I can only guess that 2 of 3 your GPUs are hung. Wait a bit, I'm going to do better status reporting in next versions.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
elpis
Member
Offline
Activity: 64
Merit: 10
|
|
April 16, 2015, 09:20:16 AM |
|
Why is the CPU load to 100%? Can be corrected in newer versions GPU miner?
|
|
|
|
smolen (OP)
|
|
April 16, 2015, 12:02:57 PM |
|
Why is the CPU load to 100%? Can be corrected in newer versions GPU miner?
1) Because of some bug, may be on Smelter side, may be in AMD driver 2) Probably Try to add this in cmd file as the first line setx GPU_USE_SYNC_OBJECTS 1
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
fenomenhaa
|
|
April 16, 2015, 02:31:20 PM |
|
Is there a bug on 15.3 driver?(280x+7950) İ cannot reduce my mem clock ++ and cannot change coreclock of 7950 's . Thst's couse of smelter or driver ?
|
▄▄█▄█▄[/color] ▄▀▀▀▄ ██ ██ ▄▀▀▀▄ █ █▀▀[color=#2C97
|
|
|
z0n0
Legendary
Offline
Activity: 1274
Merit: 1006
|
|
April 16, 2015, 05:50:50 PM |
|
smolen will there be versions for other algos too or you'll stick just with whirlpoolx?
|
|
|
|
mik_druid
|
|
April 16, 2015, 07:23:44 PM |
|
Any configs for r 290? What speed do you have while mining vanilla?
|
|
|
|
smolen (OP)
|
|
April 17, 2015, 12:13:31 AM |
|
Don't worry, I do read all the feedback. Right now priorities are: - Better logging, so user could just send log file to me, without typing all needed details (OS, driver version, GPU model, pool, etc). Unless done, bugs and I have some disagreements about the idea of bughunting - Pool monitoring, balancing and failover. Must have. - Better printed statistics, now it's not always clear what Smelter is busy with smolen will there be versions for other algos too or you'll stick just with whirlpoolx?
I'm stuck not with kernel, but with miner itself. Yes, expect new kernels later, but some will be paid ones, most probably with profit splitting. Is there a bug on 15.3 driver?(280x+7950) İ cannot reduce my mem clock ++ and cannot change coreclock of 7950 's . Thst's couse of smelter or driver ?
Right now I can only guess. Wait for the next version, then I'll be able to get to it. Any configs for r 290? What speed do you have while mining vanilla?
I have only one 280x, the best settings for other cards may differ. Right now speed is 542MH/s with 280x, 4 threads, worksize 64, core 1150, mem 500 on Linux. (Linux build will be released when I figure out how to do license-safe static build)
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
Bombadil
|
|
April 17, 2015, 08:32:16 AM |
|
Don't forget an API so external tools can play with it too (While you're busy doing logging, failover, etc...)
|
|
|
|
uplodex
Jr. Member
Offline
Activity: 40
Merit: 13
|
|
April 17, 2015, 11:56:06 AM |
|
I intend to buy a AMD Radeon r9 280x for mining vanilla coin. I look for a tutorial that explains how to mining vanilla and how optimized the AMD Radeon r9 280x for 400 Mh / s
|
|
|
|
fenomenhaa
|
|
April 17, 2015, 04:12:32 PM |
|
Don't worry, I do read all the feedback. Right now priorities are: - Better logging, so user could just send log file to me, without typing all needed details (OS, driver version, GPU model, pool, etc). Unless done, bugs and I have some disagreements about the idea of bughunting - Pool monitoring, balancing and failover. Must have. - Better printed statistics, now it's not always clear what Smelter is busy with smolen will there be versions for other algos too or you'll stick just with whirlpoolx?
I'm stuck not with kernel, but with miner itself. Yes, expect new kernels later, but some will be paid ones, most probably with profit splitting. Is there a bug on 15.3 driver?(280x+7950) İ cannot reduce my mem clock ++ and cannot change coreclock of 7950 's . Thst's couse of smelter or driver ?
Right now I can only guess. Wait for the next version, then I'll be able to get to it. Any configs for r 290? What speed do you have while mining vanilla?
I have only one 280x, the best settings for other cards may differ. Right now speed is 542MH/s with 280x, 4 threads, worksize 64, core 1150, mem 500 on Linux. (Linux build will be released when I figure out how to do license-safe static build) Tried different drivers, nothing changed. i guess it's cus of smelter ))) .will wait your updates, ))
|
▄▄█▄█▄[/color] ▄▀▀▀▄ ██ ██ ▄▀▀▀▄ █ █▀▀[color=#2C97
|
|
|
M1ST3R
Member
Offline
Activity: 89
Merit: 10
|
|
April 17, 2015, 08:14:59 PM |
|
Smolen, thanks for sharing but I cannot get both version .6 and .7 to work on 4 GPUs (2 r9 290 + 2 r9 290x) rig. Doesn't matter what setting was used - max hashrate was 5+MHS for the rig. BTW, this is on Windows 8.1 pro x64 with CAT 14.6 RC3
|
|
|
|
groggin
Legendary
Offline
Activity: 1894
Merit: 1001
|
|
April 17, 2015, 09:01:38 PM |
|
yes! thank you for sharing
|
|
|
|
Vampire_sumy
Member
Offline
Activity: 110
Merit: 10
|
|
April 21, 2015, 10:41:18 PM |
|
Smolen, thanks for sharing but I cannot get both version .6 and .7 to work on 4 GPUs (2 r9 290 + 2 r9 290x) rig. Doesn't matter what setting was used - max hashrate was 5+MHS for the rig. BTW, this is on Windows 8.1 pro x64 with CAT 14.6 RC3
You must place amd_opencl64.dll , amd_opencl32.dll , amdocl64.dll and amdocl.dll files into smelter miners folder. (This files you can find in amd drivers)
|
|
|
|
cinnamon_carter
Legendary
Offline
Activity: 1148
Merit: 1018
It's about time -- All merrit accepted !!!
|
|
April 28, 2015, 06:01:30 AM |
|
Smolen do you have a github with source for anything you 'released' open , maybe others could contribute things and also end up solving other issues you may be running into.... if not , i understand , this is your 'business' and choice to release or not relase the source..... to anyone who complains be glad someone is working on a gpu miner for your algo.... gpu with fee is better than cpu without one.... mining like that is like having a ruber band slingshot while other miners have ak's lol
|
Check out my coin Photon Merge Mine 5 other Blake 256 coins - 6x your hash power https://www.blakecoin.org/The obvious choice is not always the best choice. LOOK DEEPER - Look into the Blake 256 Family -- CC
|
|
|
smolen (OP)
|
|
April 29, 2015, 06:34:44 PM |
|
Don't forget an API so external tools can play with it too (While you're busy doing logging, failover, etc...) I'm probably aiming too high here - good algo/pool switching code must be able to catch and exploit short spikes in prices and difficulties. For example, when current Vanillacoin block has low difficulty, miner should be able to temporarily switch to solo and then back to the pool. My code is not ready for it yet, not sure about standalone mining managers. I intend to buy a AMD Radeon r9 280x for mining vanilla coin. I look for a tutorial that explains how to mining vanilla and how optimized the AMD Radeon r9 280x for 400 Mh / s
Oh, no, you'd better to try water with more mature software like sgminer. yes! thank you for sharing My profit here is user feedback - never know what way to break the software will find in the wild
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
April 29, 2015, 07:35:17 PM |
|
Smolen do you have a github with source for anything you 'released' open , maybe others could contribute things and also end up solving other issues you may be running into.... if not , i understand , this is your 'business' and choice to release or not relase the source..... to anyone who complains be glad someone is working on a gpu miner for your algo.... gpu with fee is better than cpu without one.... mining like that is like having a ruber band slingshot while other miners have ak's lol
Actually my second post on this forum was about releasing Copperlark miner - with sources on github. I've sent almost all OpenCL sources (except Groestl) to someone who just asked via PM. Then all the OpenCL code from Quark kernel was published right here, in this thread - and Skein implementation found new home in sp_'s Ccminer. All but one nuances about WhirlpoolX kernel were talked about openly, everybody is welcome to use this tricks. You see, I'm reasonably open about ideas, share old code, but greedy with hot new toys I'm working on my own closed GPU miner that I plan to release, as well - from his standpoint, I don't see why he would. Should be far more flexible than the current miners and have a sane structure, as well; currently mines successfully at pools! :3
Good miner under BSD/X11 license will raise the share of all mining kernel developers. But working miner for PoS coins would be even better
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
BogdanEraser
Newbie
Offline
Activity: 17
Merit: 0
|
|
May 04, 2015, 02:48:57 PM Last edit: May 05, 2015, 06:45:14 AM by BogdanEraser |
|
With worksize 256 and 4 threads R9 270x on 1100/1400 gives 267Mh/s. Many thanx. Waiting for clocks and temp control within Smelter.
|
|
|
|
malickie
Member
Offline
Activity: 92
Merit: 10
|
|
May 07, 2015, 08:13:57 PM Last edit: May 07, 2015, 08:40:29 PM by malickie |
|
So, not sure why people are getting low rates but my R9 290x is sitting comfortably at 600+ MH/s. I did notice trying to use anything other than the most up to date driver for AMD does seem to drop the Hash rate down dramatically. Also this is on Windows 8.1 at Stock speeds, no OC. OC seems to heat the Card up way too much for my tastes. This is a HIS R9 290x base speed is 1040/1350 for this card 87c is what the temp is at and the voltage draw looks to max out at 1080ish according to MSI Afterburner.
Edit: Forgot to add, this is my settings in the .cmd file, smelter -o stratum+tcp://stratum.westhash.com:3343 -u user.name -p password -g 4 -W 64 Going up in Worksize seems to bring the hash rate down just an FYI
This software does desperately need control over Fan Speed. Auto-Fan, Gpu Over Heat/Target Temp/Temp Cutoff.
I have an old 6850 that I would like to get to work with this software. Any possibilities of seeing that card added?
|
|
|
|
|
smolen (OP)
|
|
May 08, 2015, 12:57:14 AM |
|
Heads up to any miners who may be watching this thread but not the official vanilla coin thread, PoW mining is going to be paused for 20,000 blocks starting at block 117,833
Thank you for warning. Not sure I will release new version before this pause Waiting for clocks and temp control within Smelter.
Yes, it's in work. This software does desperately need control over Fan Speed. Auto-Fan, Gpu Over Heat/Target Temp/Temp Cutoff.
Oops, sorry, not going to be implemented in the nearest releases. I cannot just copy control algorithm from cgminer and friends, getting it done from scratch will take time. I have an old 6850 that I would like to get to work with this software. Any possibilities of seeing that card added?
Yes, still possible while my code is OpenCL.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
malickie
Member
Offline
Activity: 92
Merit: 10
|
|
May 08, 2015, 08:56:44 PM Last edit: May 08, 2015, 11:22:28 PM by malickie |
|
Why not release new Versions, you can still use it to mine say WestHash/NiceHash Pools and whatever other pools offer WhirlPoolx Algo.
Edit: Found a trick with Smelter at least on my R9 290x. IT by default does GPU Clock Dynamic so it doesn't fully utilize the Overclock there. What I did was open Sgminer so it would pin GPU Clock to max and instead of using q to quit just click x on the window so your GPU Clock stays locked into whatever OC it is. Than open Smelter. Mining at 700.59 MH/s. Granted at this speed and OC 1100/1500 My card is pretty darn toasty so I wouldn't recommend it unless you have Liquid or really good Fans and Airflow for the GPU 90c with fans at 100% and 67f with fan blowing into PC.
Edit: I also just noticed that it seems the speed has way more to do with GPU Clock than Mem Clock. Sweetspot on my GPU Clock seems to be 1125, 1150 gave artifacting, so it would be 1125/1350, speed seems to be around 715 MH/s I think, although it is still climbing slowly. Still runs very toasty though at 90c.
|
|
|
|
bitspill
Legendary
Offline
Activity: 2058
Merit: 1015
|
|
May 09, 2015, 03:50:40 AM |
|
Why not release new Versions, you can still use it to mine say WestHash/NiceHash Pools and whatever other pools offer WhirlPoolx Algo. Pointing your miner at a pool won't do anything if the coins network won't accept the blocks.
|
|
|
|
smolen (OP)
|
|
May 09, 2015, 12:45:58 PM |
|
Edit: Found a trick with Smelter at least on my R9 290x. IT by default does GPU Clock Dynamic so it doesn't fully utilize the Overclock there. What I did was open Sgminer so it would pin GPU Clock to max and instead of using q to quit just click x on the window so your GPU Clock stays locked into whatever OC it is. Than open Smelter. Mining at 700.59 MH/s. Granted at this speed and OC 1100/1500 My card is pretty darn toasty so I wouldn't recommend it unless you have Liquid or really good Fans and Airflow for the GPU 90c with fans at 100% and 67f with fan blowing into PC.
Edit: I also just noticed that it seems the speed has way more to do with GPU Clock than Mem Clock. Sweetspot on my GPU Clock seems to be 1125, 1150 gave artifacting, so it would be 1125/1350, speed seems to be around 715 MH/s I think, although it is still climbing slowly. Still runs very toasty though at 90c.
Cool tricks, cool speeds! Core/mem clock control is in the work but not ready yet Why not release new Versions, you can still use it to mine say WestHash/NiceHash Pools and whatever other pools offer WhirlPoolx Algo. Pointing your miner at a pool won't do anything if the coins network won't accept the blocks. Yes, no point in releasing miner that is fast but cannot be used. So I'm working on new kernel for another algorithm, if it will be slow enough, the release will be public
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
malickie
Member
Offline
Activity: 92
Merit: 10
|
|
May 11, 2015, 03:50:37 PM |
|
Why not release new Versions, you can still use it to mine say WestHash/NiceHash Pools and whatever other pools offer WhirlPoolx Algo. Pointing your miner at a pool won't do anything if the coins network won't accept the blocks. Yea I just noticed that it does nothing on the Pools I was talking about Oh well, will have to wait until the block is back to PoW.
|
|
|
|
malickie
Member
Offline
Activity: 92
Merit: 10
|
|
May 13, 2015, 01:59:46 PM |
|
Edit: Found a trick with Smelter at least on my R9 290x. IT by default does GPU Clock Dynamic so it doesn't fully utilize the Overclock there. What I did was open Sgminer so it would pin GPU Clock to max and instead of using q to quit just click x on the window so your GPU Clock stays locked into whatever OC it is. Than open Smelter. Mining at 700.59 MH/s. Granted at this speed and OC 1100/1500 My card is pretty darn toasty so I wouldn't recommend it unless you have Liquid or really good Fans and Airflow for the GPU 90c with fans at 100% and 67f with fan blowing into PC.
Edit: I also just noticed that it seems the speed has way more to do with GPU Clock than Mem Clock. Sweetspot on my GPU Clock seems to be 1125, 1150 gave artifacting, so it would be 1125/1350, speed seems to be around 715 MH/s I think, although it is still climbing slowly. Still runs very toasty though at 90c.
Cool tricks, cool speeds! Core/mem clock control is in the work but not ready yet Why not release new Versions, you can still use it to mine say WestHash/NiceHash Pools and whatever other pools offer WhirlPoolx Algo. Pointing your miner at a pool won't do anything if the coins network won't accept the blocks. Yes, no point in releasing miner that is fast but cannot be used. So I'm working on new kernel for another algorithm, if it will be slow enough, the release will be public My miner supports three algos, full-custom stratum implementation. But it needs multiple pool support, getblocktemplate support, GPU ADL controls (fan/clocks/other shit). Also need a pool-specific mutex on the socket... I don't use cURL (because fucking ewww), but when mining at extreme low diff, stratum can die, probably cause of the socket being used by multiple threads. Well, I look forward to seeing your Miner Wolf0. I must say you do some good work, your Bin file for X11 Algo. for my R9 290x has me at darn near 9 MH/s. Granted I am also using AMD Opencl files within SGMiner to help it a bit, I think it's 14.9 or maybe 14.6 RC2. Either way with Just OpenCL it will run at around 6 MH/s. So yea your bin def. helped.
|
|
|
|
smolen (OP)
|
|
May 13, 2015, 05:25:58 PM |
|
My miner supports three algos, full-custom stratum implementation. But it needs multiple pool support, getblocktemplate support, GPU ADL controls (fan/clocks/other shit). Also need a pool-specific mutex on the socket... I don't use cURL (because fucking ewww), but when mining at extreme low diff, stratum can die, probably cause of the socket being used by multiple threads.
At very low difficulties it's possible to accidentally submit too many stale shares and get banned, may be the problem is on the pool's end. For Stratum networking I switched from curl to boost::asio, curl is still here for getwork/getwork2/getblocktemplate. Anyways, the ADL SDK is a pain in the ass, but initializing, cleaning up, and getting/setting fan speed works!
Is your CL<->ADL code done in cgminer way or in the right way?
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
_javi_
|
|
August 02, 2015, 10:53:46 PM |
|
i have problems with a rig with 4 GPUs (working fine in sgminer). This rig hashes the same as a 3 GPU rig. what should i check? (Win 7 64, catalyst 14.4, proper DLLs in smelter dir, Gigabytes 280x, -g 4 -w64.)
|
|
|
|
gaalx
|
|
August 04, 2015, 04:14:21 AM |
|
Warm algorithm, how to adjust settings fan?
|
|
|
|
z0n0
Legendary
Offline
Activity: 1274
Merit: 1006
|
|
August 04, 2015, 04:18:27 AM |
|
Warm algorithm, how to adjust settings fan?
I don't think its possible with this version
|
|
|
|
lowhashminer
Newbie
Offline
Activity: 19
Merit: 0
|
|
August 04, 2015, 08:40:33 PM |
|
Warm algorithm, how to adjust settings fan?
You can download TRIXX app from Sapphire website. Should work on any AMD card.
|
|
|
|
splootch
Newbie
Offline
Activity: 8
Merit: 0
|
|
August 05, 2015, 09:18:37 AM |
|
why is that smelter last official miner only get me 5-6 mh on nicehash?
|
|
|
|
smolen (OP)
|
|
August 07, 2015, 10:27:40 AM |
|
I'm very sorry, new version with bugfixes and better diagnostics was almost done when I was distracted by other, non-crypto things i have problems with a rig with 4 GPUs (working fine in sgminer). This rig hashes the same as a 3 GPU rig. what should i check? (Win 7 64, catalyst 14.4, proper DLLs in smelter dir, Gigabytes 280x, -g 4 -w64.) Probably one of GPUs overheated and does not work. Try to lower clock speed for all cards, then raise it back card-by-card. There is no speed settings in the released version, use external tool (Afterburner or something) for overclocking. Warm algorithm, how to adjust settings fan?
I don't think its possible with this version Yes, not yet why is that smelter last official miner only get me 5-6 mh on nicehash?
First of all wait a bit, pool calculates speed by accepted shares, give it some time (~ 5-10 min) to catch up. Look at miner window, may be there are some diagnostic messages about rejected shares and h/w errors, if yes, post it here. Lower GPU clocks with Afterburner and see if the speed raises to expected for your card. If nothing will help - take my apologies, I'm very sorry for abandoning the project, and wait for new version
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
January 15, 2016, 05:30:16 AM |
|
Smelter is again abandoned and I'm again publishing kernel source - this time for Vanillacoin WhirlpoolX algorithm static UINT64 arrPrecalc[8*256] = {
0xD83078C018601818ULL, 0x2646AF05238C2323ULL, 0xB891F97EC63FC6C6ULL, 0xFBCD6F13E887E8E8ULL, 0xCB13A14C87268787ULL, 0x116D62A9B8DAB8B8ULL, 0x0902050801040101ULL, 0x0D9E6E424F214F4FULL, 0x9B6CEEAD36D83636ULL, 0xFF510459A6A2A6A6ULL, 0x0CB9BDDED26FD2D2ULL, 0x0EF706FBF5F3F5F5ULL, 0x96F280EF79F97979ULL, 0x30DECE5F6FA16F6FULL, 0x6D3FEFFC917E9191ULL, 0xF8A407AA52555252ULL, 0x47C0FD27609D6060ULL, 0x35657689BCCABCBCULL, 0x372BCDAC9B569B9BULL, 0x8A018C048E028E8EULL, 0xD25B1571A3B6A3A3ULL, 0x6C183C600C300C0CULL, 0x84F68AFF7BF17B7BULL, 0x806AE1B535D43535ULL, 0xF53A69E81D741D1DULL, 0xB3DD4753E0A7E0E0ULL, 0x21B3ACF6D77BD7D7ULL, 0x9C99ED5EC22FC2C2ULL, 0x435C966D2EB82E2EULL, 0x29967A624B314B4BULL, 0x5DE121A3FEDFFEFEULL, 0xD5AE168257415757ULL, 0xBD2A41A815541515ULL, 0xE8EEB69F77C17777ULL, 0x926EEBA537DC3737ULL, 0x9ED7567BE5B3E5E5ULL, 0x1323D98C9F469F9FULL, 0x23FD17D3F0E7F0F0ULL, 0x20947F6A4A354A4AULL, 0x44A9959EDA4FDADAULL, 0xA2B025FA587D5858ULL, 0xCF8FCA06C903C9C9ULL, 0x7C528D5529A42929ULL, 0x5A1422500A280A0AULL, 0x507F4FE1B1FEB1B1ULL, 0xC95D1A69A0BAA0A0ULL, 0x14D6DA7F6BB16B6BULL, 0xD917AB5C852E8585ULL, 0x3C677381BDCEBDBDULL, 0x8FBA34D25D695D5DULL, 0x9020508010401010ULL, 0x07F503F3F4F7F4F4ULL, 0xDD8BC016CB0BCBCBULL, 0xD37CC6ED3EF83E3EULL, 0x2D0A112805140505ULL, 0x78CEE61F67816767ULL, 0x97D55373E4B7E4E4ULL, 0x024EBB25279C2727ULL, 0x7382583241194141ULL, 0xA70B9D2C8B168B8BULL, 0xF6530151A7A6A7A7ULL, 0xB2FA94CF7DE97D7DULL, 0x4937FBDC956E9595ULL, 0x56AD9F8ED847D8D8ULL, 0x70EB308BFBCBFBFBULL, 0xCDC17123EE9FEEEEULL, 0xBBF891C77CED7C7CULL, 0x71CCE31766856666ULL, 0x7BA78EA6DD53DDDDULL, 0xAF2E4BB8175C1717ULL, 0x458E460247014747ULL, 0x1A21DC849E429E9EULL, 0xD489C51ECA0FCACAULL, 0x585A99752DB42D2DULL, 0x2E637991BFC6BFBFULL, 0x3F0E1B38071C0707ULL, 0xAC472301AD8EADADULL, 0xB0B42FEA5A755A5AULL, 0xEF1BB56C83368383ULL, 0xB666FF8533CC3333ULL, 0x5CC6F23F63916363ULL, 0x12040A1002080202ULL, 0x93493839AA92AAAAULL, 0xDEE2A8AF71D97171ULL, 0xC68DCF0EC807C8C8ULL, 0xD1327DC819641919ULL, 0x3B92707249394949ULL, 0x5FAF9A86D943D9D9ULL, 0x31F91DC3F2EFF2F2ULL, 0xA8DB484BE3ABE3E3ULL, 0xB9B62AE25B715B5BULL, 0xBC0D9234881A8888ULL, 0x3E29C8A49A529A9AULL, 0x0B4CBE2D26982626ULL, 0xBF64FA8D32C83232ULL, 0x597D4AE9B0FAB0B0ULL, 0xF2CF6A1BE983E9E9ULL, 0x771E33780F3C0F0FULL, 0x33B7A6E6D573D5D5ULL, 0xF41DBA74803A8080ULL, 0x27617C99BEC2BEBEULL, 0xEB87DE26CD13CDCDULL, 0x8968E4BD34D03434ULL, 0x3290757A483D4848ULL, 0x54E324ABFFDBFFFFULL, 0x8DF48FF77AF57A7AULL, 0x643DEAF4907A9090ULL, 0x9DBE3EC25F615F5FULL, 0x3D40A01D20802020ULL, 0x0FD0D56768BD6868ULL, 0xCA3472D01A681A1AULL, 0xB7412C19AE82AEAEULL, 0x7D755EC9B4EAB4B4ULL, 0xCEA8199A544D5454ULL, 0x7F3BE5EC93769393ULL, 0x2F44AA0D22882222ULL, 0x63C8E907648D6464ULL, 0x2AFF12DBF1E3F1F1ULL, 0xCCE6A2BF73D17373ULL, 0x82245A9012481212ULL, 0x7A805D3A401D4040ULL, 0x4810284008200808ULL, 0x959BE856C32BC3C3ULL, 0xDFC57B33EC97ECECULL, 0x4DAB9096DB4BDBDBULL, 0xC05F1F61A1BEA1A1ULL, 0x9107831C8D0E8D8DULL, 0xC87AC9F53DF43D3DULL, 0x5B33F1CC97669797ULL, 0x0000000000000000ULL, 0xF983D436CF1BCFCFULL, 0x6E5687452BAC2B2BULL, 0xE1ECB39776C57676ULL, 0xE619B06482328282ULL, 0x28B1A9FED67FD6D6ULL, 0xC33677D81B6C1B1BULL, 0x74775BC1B5EEB5B5ULL, 0xBE432911AF86AFAFULL, 0x1DD4DF776AB56A6AULL, 0xEAA00DBA505D5050ULL, 0x578A4C1245094545ULL, 0x38FB18CBF3EBF3F3ULL, 0xAD60F09D30C03030ULL, 0xC4C3742BEF9BEFEFULL, 0xDA7EC3E53FFC3F3FULL, 0xC7AA1C9255495555ULL, 0xDB591079A2B2A2A2ULL, 0xE9C96503EA8FEAEAULL, 0x6ACAEC0F65896565ULL, 0x036968B9BAD2BABAULL, 0x4A5E93652FBC2F2FULL, 0x8E9DE74EC027C0C0ULL, 0x60A181BEDE5FDEDEULL, 0xFC386CE01C701C1CULL, 0x46E72EBBFDD3FDFDULL, 0x1F9A64524D294D4DULL, 0x7639E0E492729292ULL, 0xFAEABC8F75C97575ULL, 0x360C1E3006180606ULL, 0xAE0998248A128A8AULL, 0x4B7940F9B2F2B2B2ULL, 0x85D15963E6BFE6E6ULL, 0x7E1C36700E380E0EULL, 0xE73E63F81F7C1F1FULL, 0x55C4F73762956262ULL, 0x3AB5A3EED477D4D4ULL, 0x814D3229A89AA8A8ULL, 0x5231F4C496629696ULL, 0x62EF3A9BF9C3F9F9ULL, 0xA397F666C533C5C5ULL, 0x104AB13525942525ULL, 0xABB220F259795959ULL, 0xD015AE54842A8484ULL, 0xC5E4A7B772D57272ULL, 0xEC72DDD539E43939ULL, 0x1698615A4C2D4C4CULL, 0x94BC3BCA5E655E5EULL, 0x9FF085E778FD7878ULL, 0xE570D8DD38E03838ULL, 0x980586148C0A8C8CULL, 0x17BFB2C6D163D1D1ULL, 0xE4570B41A5AEA5A5ULL, 0xA1D94D43E2AFE2E2ULL, 0x4EC2F82F61996161ULL, 0x427B45F1B3F6B3B3ULL, 0x3442A51521842121ULL, 0x0825D6949C4A9C9CULL, 0xEE3C66F01E781E1EULL, 0x6186522243114343ULL, 0xB193FC76C73BC7C7ULL, 0x4FE52BB3FCD7FCFCULL, 0x2408142004100404ULL, 0xE3A208B251595151ULL, 0x252FC7BC995E9999ULL, 0x22DAC44F6DA96D6DULL, 0x651A39680D340D0DULL, 0x79E93583FACFFAFAULL, 0x69A384B6DF5BDFDFULL, 0xA9FC9BD77EE57E7EULL, 0x1948B43D24902424ULL, 0xFE76D7C53BEC3B3BULL, 0x9A4B3D31AB96ABABULL, 0xF081D13ECE1FCECEULL, 0x9922558811441111ULL, 0x8303890C8F068F8FULL, 0x049C6B4A4E254E4EULL, 0x667351D1B7E6B7B7ULL, 0xE0CB600BEB8BEBEBULL, 0xC178CCFD3CF03C3CULL, 0xFD1FBF7C813E8181ULL, 0x4035FED4946A9494ULL, 0x1CF30CEBF7FBF7F7ULL, 0x186F67A1B9DEB9B9ULL, 0x8B265F98134C1313ULL, 0x51589C7D2CB02C2CULL, 0x05BBB8D6D36BD3D3ULL, 0x8CD35C6BE7BBE7E7ULL, 0x39DCCB576EA56E6EULL, 0xAA95F36EC437C4C4ULL, 0x1B060F18030C0303ULL, 0xDCAC138A56455656ULL, 0x5E88491A440D4444ULL, 0xA0FE9EDF7FE17F7FULL, 0x884F3721A99EA9A9ULL, 0x6754824D2AA82A2AULL, 0x0A6B6DB1BBD6BBBBULL, 0x879FE246C123C1C1ULL, 0xF1A602A253515353ULL, 0x72A58BAEDC57DCDCULL, 0x531627580B2C0B0BULL, 0x0127D39C9D4E9D9DULL, 0x2BD8C1476CAD6C6CULL, 0xA462F59531C43131ULL, 0xF3E8B98774CD7474ULL, 0x15F109E3F6FFF6F6ULL, 0x4C8C430A46054646ULL, 0xA5452609AC8AACACULL, 0xB50F973C891E8989ULL, 0xB42844A014501414ULL, 0xBADF425BE1A3E1E1ULL, 0xA62C4EB016581616ULL, 0xF774D2CD3AE83A3AULL, 0x06D2D06F69B96969ULL, 0x41122D4809240909ULL, 0xD7E0ADA770DD7070ULL, 0x6F7154D9B6E2B6B6ULL, 0x1EBDB7CED067D0D0ULL, 0xD6C77E3BED93EDEDULL, 0xE285DB2ECC17CCCCULL, 0x6884572A42154242ULL, 0x2C2DC2B4985A9898ULL, 0xED550E49A4AAA4A4ULL, 0x7550885D28A02828ULL, 0x86B831DA5C6D5C5CULL, 0x6BED3F93F8C7F8F8ULL, 0xC211A44486228686ULL,
0x3078C018601818D8ULL, 0x46AF05238C232326ULL, 0x91F97EC63FC6C6B8ULL, 0xCD6F13E887E8E8FBULL, 0x13A14C87268787CBULL, 0x6D62A9B8DAB8B811ULL, 0x0205080104010109ULL, 0x9E6E424F214F4F0DULL, 0x6CEEAD36D836369BULL, 0x510459A6A2A6A6FFULL, 0xB9BDDED26FD2D20CULL, 0xF706FBF5F3F5F50EULL, 0xF280EF79F9797996ULL, 0xDECE5F6FA16F6F30ULL, 0x3FEFFC917E91916DULL, 0xA407AA52555252F8ULL, 0xC0FD27609D606047ULL, 0x657689BCCABCBC35ULL, 0x2BCDAC9B569B9B37ULL, 0x018C048E028E8E8AULL, 0x5B1571A3B6A3A3D2ULL, 0x183C600C300C0C6CULL, 0xF68AFF7BF17B7B84ULL, 0x6AE1B535D4353580ULL, 0x3A69E81D741D1DF5ULL, 0xDD4753E0A7E0E0B3ULL, 0xB3ACF6D77BD7D721ULL, 0x99ED5EC22FC2C29CULL, 0x5C966D2EB82E2E43ULL, 0x967A624B314B4B29ULL, 0xE121A3FEDFFEFE5DULL, 0xAE168257415757D5ULL, 0x2A41A815541515BDULL, 0xEEB69F77C17777E8ULL, 0x6EEBA537DC373792ULL, 0xD7567BE5B3E5E59EULL, 0x23D98C9F469F9F13ULL, 0xFD17D3F0E7F0F023ULL, 0x947F6A4A354A4A20ULL, 0xA9959EDA4FDADA44ULL, 0xB025FA587D5858A2ULL, 0x8FCA06C903C9C9CFULL, 0x528D5529A429297CULL, 0x1422500A280A0A5AULL, 0x7F4FE1B1FEB1B150ULL, 0x5D1A69A0BAA0A0C9ULL, 0xD6DA7F6BB16B6B14ULL, 0x17AB5C852E8585D9ULL, 0x677381BDCEBDBD3CULL, 0xBA34D25D695D5D8FULL, 0x2050801040101090ULL, 0xF503F3F4F7F4F407ULL, 0x8BC016CB0BCBCBDDULL, 0x7CC6ED3EF83E3ED3ULL, 0x0A1128051405052DULL, 0xCEE61F6781676778ULL, 0xD55373E4B7E4E497ULL, 0x4EBB25279C272702ULL, 0x8258324119414173ULL, 0x0B9D2C8B168B8BA7ULL, 0x530151A7A6A7A7F6ULL, 0xFA94CF7DE97D7DB2ULL, 0x37FBDC956E959549ULL, 0xAD9F8ED847D8D856ULL, 0xEB308BFBCBFBFB70ULL, 0xC17123EE9FEEEECDULL, 0xF891C77CED7C7CBBULL, 0xCCE3176685666671ULL, 0xA78EA6DD53DDDD7BULL, 0x2E4BB8175C1717AFULL, 0x8E46024701474745ULL, 0x21DC849E429E9E1AULL, 0x89C51ECA0FCACAD4ULL, 0x5A99752DB42D2D58ULL, 0x637991BFC6BFBF2EULL, 0x0E1B38071C07073FULL, 0x472301AD8EADADACULL, 0xB42FEA5A755A5AB0ULL, 0x1BB56C83368383EFULL, 0x66FF8533CC3333B6ULL, 0xC6F23F639163635CULL, 0x040A100208020212ULL, 0x493839AA92AAAA93ULL, 0xE2A8AF71D97171DEULL, 0x8DCF0EC807C8C8C6ULL, 0x327DC819641919D1ULL, 0x927072493949493BULL, 0xAF9A86D943D9D95FULL, 0xF91DC3F2EFF2F231ULL, 0xDB484BE3ABE3E3A8ULL, 0xB62AE25B715B5BB9ULL, 0x0D9234881A8888BCULL, 0x29C8A49A529A9A3EULL, 0x4CBE2D269826260BULL, 0x64FA8D32C83232BFULL, 0x7D4AE9B0FAB0B059ULL, 0xCF6A1BE983E9E9F2ULL, 0x1E33780F3C0F0F77ULL, 0xB7A6E6D573D5D533ULL, 0x1DBA74803A8080F4ULL, 0x617C99BEC2BEBE27ULL, 0x87DE26CD13CDCDEBULL, 0x68E4BD34D0343489ULL, 0x90757A483D484832ULL, 0xE324ABFFDBFFFF54ULL, 0xF48FF77AF57A7A8DULL, 0x3DEAF4907A909064ULL, 0xBE3EC25F615F5F9DULL, 0x40A01D208020203DULL, 0xD0D56768BD68680FULL, 0x3472D01A681A1ACAULL, 0x412C19AE82AEAEB7ULL, 0x755EC9B4EAB4B47DULL, 0xA8199A544D5454CEULL, 0x3BE5EC937693937FULL, 0x44AA0D228822222FULL, 0xC8E907648D646463ULL, 0xFF12DBF1E3F1F12AULL, 0xE6A2BF73D17373CCULL, 0x245A901248121282ULL, 0x805D3A401D40407AULL, 0x1028400820080848ULL, 0x9BE856C32BC3C395ULL, 0xC57B33EC97ECECDFULL, 0xAB9096DB4BDBDB4DULL, 0x5F1F61A1BEA1A1C0ULL, 0x07831C8D0E8D8D91ULL, 0x7AC9F53DF43D3DC8ULL, 0x33F1CC976697975BULL, 0x0000000000000000ULL, 0x83D436CF1BCFCFF9ULL, 0x5687452BAC2B2B6EULL, 0xECB39776C57676E1ULL, 0x19B06482328282E6ULL, 0xB1A9FED67FD6D628ULL, 0x3677D81B6C1B1BC3ULL, 0x775BC1B5EEB5B574ULL, 0x432911AF86AFAFBEULL, 0xD4DF776AB56A6A1DULL, 0xA00DBA505D5050EAULL, 0x8A4C124509454557ULL, 0xFB18CBF3EBF3F338ULL, 0x60F09D30C03030ADULL, 0xC3742BEF9BEFEFC4ULL, 0x7EC3E53FFC3F3FDAULL, 0xAA1C9255495555C7ULL, 0x591079A2B2A2A2DBULL, 0xC96503EA8FEAEAE9ULL, 0xCAEC0F658965656AULL, 0x6968B9BAD2BABA03ULL, 0x5E93652FBC2F2F4AULL, 0x9DE74EC027C0C08EULL, 0xA181BEDE5FDEDE60ULL, 0x386CE01C701C1CFCULL, 0xE72EBBFDD3FDFD46ULL, 0x9A64524D294D4D1FULL, 0x39E0E49272929276ULL, 0xEABC8F75C97575FAULL, 0x0C1E300618060636ULL, 0x0998248A128A8AAEULL, 0x7940F9B2F2B2B24BULL, 0xD15963E6BFE6E685ULL, 0x1C36700E380E0E7EULL, 0x3E63F81F7C1F1FE7ULL, 0xC4F7376295626255ULL, 0xB5A3EED477D4D43AULL, 0x4D3229A89AA8A881ULL, 0x31F4C49662969652ULL, 0xEF3A9BF9C3F9F962ULL, 0x97F666C533C5C5A3ULL, 0x4AB1352594252510ULL, 0xB220F259795959ABULL, 0x15AE54842A8484D0ULL, 0xE4A7B772D57272C5ULL, 0x72DDD539E43939ECULL, 0x98615A4C2D4C4C16ULL, 0xBC3BCA5E655E5E94ULL, 0xF085E778FD78789FULL, 0x70D8DD38E03838E5ULL, 0x0586148C0A8C8C98ULL, 0xBFB2C6D163D1D117ULL, 0x570B41A5AEA5A5E4ULL, 0xD94D43E2AFE2E2A1ULL, 0xC2F82F619961614EULL, 0x7B45F1B3F6B3B342ULL, 0x42A5152184212134ULL, 0x25D6949C4A9C9C08ULL, 0x3C66F01E781E1EEEULL, 0x8652224311434361ULL, 0x93FC76C73BC7C7B1ULL, 0xE52BB3FCD7FCFC4FULL, 0x0814200410040424ULL, 0xA208B251595151E3ULL, 0x2FC7BC995E999925ULL, 0xDAC44F6DA96D6D22ULL, 0x1A39680D340D0D65ULL, 0xE93583FACFFAFA79ULL, 0xA384B6DF5BDFDF69ULL, 0xFC9BD77EE57E7EA9ULL, 0x48B43D2490242419ULL, 0x76D7C53BEC3B3BFEULL, 0x4B3D31AB96ABAB9AULL, 0x81D13ECE1FCECEF0ULL, 0x2255881144111199ULL, 0x03890C8F068F8F83ULL, 0x9C6B4A4E254E4E04ULL, 0x7351D1B7E6B7B766ULL, 0xCB600BEB8BEBEBE0ULL, 0x78CCFD3CF03C3CC1ULL, 0x1FBF7C813E8181FDULL, 0x35FED4946A949440ULL, 0xF30CEBF7FBF7F71CULL, 0x6F67A1B9DEB9B918ULL, 0x265F98134C13138BULL, 0x589C7D2CB02C2C51ULL, 0xBBB8D6D36BD3D305ULL, 0xD35C6BE7BBE7E78CULL, 0xDCCB576EA56E6E39ULL, 0x95F36EC437C4C4AAULL, 0x060F18030C03031BULL, 0xAC138A56455656DCULL, 0x88491A440D44445EULL, 0xFE9EDF7FE17F7FA0ULL, 0x4F3721A99EA9A988ULL, 0x54824D2AA82A2A67ULL, 0x6B6DB1BBD6BBBB0AULL, 0x9FE246C123C1C187ULL, 0xA602A253515353F1ULL, 0xA58BAEDC57DCDC72ULL, 0x1627580B2C0B0B53ULL, 0x27D39C9D4E9D9D01ULL, 0xD8C1476CAD6C6C2BULL, 0x62F59531C43131A4ULL, 0xE8B98774CD7474F3ULL, 0xF109E3F6FFF6F615ULL, 0x8C430A460546464CULL, 0x452609AC8AACACA5ULL, 0x0F973C891E8989B5ULL, 0x2844A014501414B4ULL, 0xDF425BE1A3E1E1BAULL, 0x2C4EB016581616A6ULL, 0x74D2CD3AE83A3AF7ULL, 0xD2D06F69B9696906ULL, 0x122D480924090941ULL, 0xE0ADA770DD7070D7ULL, 0x7154D9B6E2B6B66FULL, 0xBDB7CED067D0D01EULL, 0xC77E3BED93EDEDD6ULL, 0x85DB2ECC17CCCCE2ULL, 0x84572A4215424268ULL, 0x2DC2B4985A98982CULL, 0x550E49A4AAA4A4EDULL, 0x50885D28A0282875ULL, 0xB831DA5C6D5C5C86ULL, 0xED3F93F8C7F8F86BULL, 0x11A44486228686C2ULL,
0x78C018601818D830ULL, 0xAF05238C23232646ULL, 0xF97EC63FC6C6B891ULL, 0x6F13E887E8E8FBCDULL, 0xA14C87268787CB13ULL, 0x62A9B8DAB8B8116DULL, 0x0508010401010902ULL, 0x6E424F214F4F0D9EULL, 0xEEAD36D836369B6CULL, 0x0459A6A2A6A6FF51ULL, 0xBDDED26FD2D20CB9ULL, 0x06FBF5F3F5F50EF7ULL, 0x80EF79F9797996F2ULL, 0xCE5F6FA16F6F30DEULL, 0xEFFC917E91916D3FULL, 0x07AA52555252F8A4ULL, 0xFD27609D606047C0ULL, 0x7689BCCABCBC3565ULL, 0xCDAC9B569B9B372BULL, 0x8C048E028E8E8A01ULL, 0x1571A3B6A3A3D25BULL, 0x3C600C300C0C6C18ULL, 0x8AFF7BF17B7B84F6ULL, 0xE1B535D43535806AULL, 0x69E81D741D1DF53AULL, 0x4753E0A7E0E0B3DDULL, 0xACF6D77BD7D721B3ULL, 0xED5EC22FC2C29C99ULL, 0x966D2EB82E2E435CULL, 0x7A624B314B4B2996ULL, 0x21A3FEDFFEFE5DE1ULL, 0x168257415757D5AEULL, 0x41A815541515BD2AULL, 0xB69F77C17777E8EEULL, 0xEBA537DC3737926EULL, 0x567BE5B3E5E59ED7ULL, 0xD98C9F469F9F1323ULL, 0x17D3F0E7F0F023FDULL, 0x7F6A4A354A4A2094ULL, 0x959EDA4FDADA44A9ULL, 0x25FA587D5858A2B0ULL, 0xCA06C903C9C9CF8FULL, 0x8D5529A429297C52ULL, 0x22500A280A0A5A14ULL, 0x4FE1B1FEB1B1507FULL, 0x1A69A0BAA0A0C95DULL, 0xDA7F6BB16B6B14D6ULL, 0xAB5C852E8585D917ULL, 0x7381BDCEBDBD3C67ULL, 0x34D25D695D5D8FBAULL, 0x5080104010109020ULL, 0x03F3F4F7F4F407F5ULL, 0xC016CB0BCBCBDD8BULL, 0xC6ED3EF83E3ED37CULL, 0x1128051405052D0AULL, 0xE61F6781676778CEULL, 0x5373E4B7E4E497D5ULL, 0xBB25279C2727024EULL, 0x5832411941417382ULL, 0x9D2C8B168B8BA70BULL, 0x0151A7A6A7A7F653ULL, 0x94CF7DE97D7DB2FAULL, 0xFBDC956E95954937ULL, 0x9F8ED847D8D856ADULL, 0x308BFBCBFBFB70EBULL, 0x7123EE9FEEEECDC1ULL, 0x91C77CED7C7CBBF8ULL, 0xE3176685666671CCULL, 0x8EA6DD53DDDD7BA7ULL, 0x4BB8175C1717AF2EULL, 0x460247014747458EULL, 0xDC849E429E9E1A21ULL, 0xC51ECA0FCACAD489ULL, 0x99752DB42D2D585AULL, 0x7991BFC6BFBF2E63ULL, 0x1B38071C07073F0EULL, 0x2301AD8EADADAC47ULL, 0x2FEA5A755A5AB0B4ULL, 0xB56C83368383EF1BULL, 0xFF8533CC3333B666ULL, 0xF23F639163635CC6ULL, 0x0A10020802021204ULL, 0x3839AA92AAAA9349ULL, 0xA8AF71D97171DEE2ULL, 0xCF0EC807C8C8C68DULL, 0x7DC819641919D132ULL, 0x7072493949493B92ULL, 0x9A86D943D9D95FAFULL, 0x1DC3F2EFF2F231F9ULL, 0x484BE3ABE3E3A8DBULL, 0x2AE25B715B5BB9B6ULL, 0x9234881A8888BC0DULL, 0xC8A49A529A9A3E29ULL, 0xBE2D269826260B4CULL, 0xFA8D32C83232BF64ULL, 0x4AE9B0FAB0B0597DULL, 0x6A1BE983E9E9F2CFULL, 0x33780F3C0F0F771EULL, 0xA6E6D573D5D533B7ULL, 0xBA74803A8080F41DULL, 0x7C99BEC2BEBE2761ULL, 0xDE26CD13CDCDEB87ULL, 0xE4BD34D034348968ULL, 0x757A483D48483290ULL, 0x24ABFFDBFFFF54E3ULL, 0x8FF77AF57A7A8DF4ULL, 0xEAF4907A9090643DULL, 0x3EC25F615F5F9DBEULL, 0xA01D208020203D40ULL, 0xD56768BD68680FD0ULL, 0x72D01A681A1ACA34ULL, 0x2C19AE82AEAEB741ULL, 0x5EC9B4EAB4B47D75ULL, 0x199A544D5454CEA8ULL, 0xE5EC937693937F3BULL, 0xAA0D228822222F44ULL, 0xE907648D646463C8ULL, 0x12DBF1E3F1F12AFFULL, 0xA2BF73D17373CCE6ULL, 0x5A90124812128224ULL, 0x5D3A401D40407A80ULL, 0x2840082008084810ULL, 0xE856C32BC3C3959BULL, 0x7B33EC97ECECDFC5ULL, 0x9096DB4BDBDB4DABULL, 0x1F61A1BEA1A1C05FULL, 0x831C8D0E8D8D9107ULL, 0xC9F53DF43D3DC87AULL, 0xF1CC976697975B33ULL, 0x0000000000000000ULL, 0xD436CF1BCFCFF983ULL, 0x87452BAC2B2B6E56ULL, 0xB39776C57676E1ECULL, 0xB06482328282E619ULL, 0xA9FED67FD6D628B1ULL, 0x77D81B6C1B1BC336ULL, 0x5BC1B5EEB5B57477ULL, 0x2911AF86AFAFBE43ULL, 0xDF776AB56A6A1DD4ULL, 0x0DBA505D5050EAA0ULL, 0x4C1245094545578AULL, 0x18CBF3EBF3F338FBULL, 0xF09D30C03030AD60ULL, 0x742BEF9BEFEFC4C3ULL, 0xC3E53FFC3F3FDA7EULL, 0x1C9255495555C7AAULL, 0x1079A2B2A2A2DB59ULL, 0x6503EA8FEAEAE9C9ULL, 0xEC0F658965656ACAULL, 0x68B9BAD2BABA0369ULL, 0x93652FBC2F2F4A5EULL, 0xE74EC027C0C08E9DULL, 0x81BEDE5FDEDE60A1ULL, 0x6CE01C701C1CFC38ULL, 0x2EBBFDD3FDFD46E7ULL, 0x64524D294D4D1F9AULL, 0xE0E4927292927639ULL, 0xBC8F75C97575FAEAULL, 0x1E3006180606360CULL, 0x98248A128A8AAE09ULL, 0x40F9B2F2B2B24B79ULL, 0x5963E6BFE6E685D1ULL, 0x36700E380E0E7E1CULL, 0x63F81F7C1F1FE73EULL, 0xF7376295626255C4ULL, 0xA3EED477D4D43AB5ULL, 0x3229A89AA8A8814DULL, 0xF4C4966296965231ULL, 0x3A9BF9C3F9F962EFULL, 0xF666C533C5C5A397ULL, 0xB13525942525104AULL, 0x20F259795959ABB2ULL, 0xAE54842A8484D015ULL, 0xA7B772D57272C5E4ULL, 0xDDD539E43939EC72ULL, 0x615A4C2D4C4C1698ULL, 0x3BCA5E655E5E94BCULL, 0x85E778FD78789FF0ULL, 0xD8DD38E03838E570ULL, 0x86148C0A8C8C9805ULL, 0xB2C6D163D1D117BFULL, 0x0B41A5AEA5A5E457ULL, 0x4D43E2AFE2E2A1D9ULL, 0xF82F619961614EC2ULL, 0x45F1B3F6B3B3427BULL, 0xA515218421213442ULL, 0xD6949C4A9C9C0825ULL, 0x66F01E781E1EEE3CULL, 0x5222431143436186ULL, 0xFC76C73BC7C7B193ULL, 0x2BB3FCD7FCFC4FE5ULL, 0x1420041004042408ULL, 0x08B251595151E3A2ULL, 0xC7BC995E9999252FULL, 0xC44F6DA96D6D22DAULL, 0x39680D340D0D651AULL, 0x3583FACFFAFA79E9ULL, 0x84B6DF5BDFDF69A3ULL, 0x9BD77EE57E7EA9FCULL, 0xB43D249024241948ULL, 0xD7C53BEC3B3BFE76ULL, 0x3D31AB96ABAB9A4BULL, 0xD13ECE1FCECEF081ULL, 0x5588114411119922ULL, 0x890C8F068F8F8303ULL, 0x6B4A4E254E4E049CULL, 0x51D1B7E6B7B76673ULL, 0x600BEB8BEBEBE0CBULL, 0xCCFD3CF03C3CC178ULL, 0xBF7C813E8181FD1FULL, 0xFED4946A94944035ULL, 0x0CEBF7FBF7F71CF3ULL, 0x67A1B9DEB9B9186FULL, 0x5F98134C13138B26ULL, 0x9C7D2CB02C2C5158ULL, 0xB8D6D36BD3D305BBULL, 0x5C6BE7BBE7E78CD3ULL, 0xCB576EA56E6E39DCULL, 0xF36EC437C4C4AA95ULL, 0x0F18030C03031B06ULL, 0x138A56455656DCACULL, 0x491A440D44445E88ULL, 0x9EDF7FE17F7FA0FEULL, 0x3721A99EA9A9884FULL, 0x824D2AA82A2A6754ULL, 0x6DB1BBD6BBBB0A6BULL, 0xE246C123C1C1879FULL, 0x02A253515353F1A6ULL, 0x8BAEDC57DCDC72A5ULL, 0x27580B2C0B0B5316ULL, 0xD39C9D4E9D9D0127ULL, 0xC1476CAD6C6C2BD8ULL, 0xF59531C43131A462ULL, 0xB98774CD7474F3E8ULL, 0x09E3F6FFF6F615F1ULL, 0x430A460546464C8CULL, 0x2609AC8AACACA545ULL, 0x973C891E8989B50FULL, 0x44A014501414B428ULL, 0x425BE1A3E1E1BADFULL, 0x4EB016581616A62CULL, 0xD2CD3AE83A3AF774ULL, 0xD06F69B9696906D2ULL, 0x2D48092409094112ULL, 0xADA770DD7070D7E0ULL, 0x54D9B6E2B6B66F71ULL, 0xB7CED067D0D01EBDULL, 0x7E3BED93EDEDD6C7ULL, 0xDB2ECC17CCCCE285ULL, 0x572A421542426884ULL, 0xC2B4985A98982C2DULL, 0x0E49A4AAA4A4ED55ULL, 0x885D28A028287550ULL, 0x31DA5C6D5C5C86B8ULL, 0x3F93F8C7F8F86BEDULL, 0xA44486228686C211ULL,
0xC018601818D83078ULL, 0x05238C23232646AFULL, 0x7EC63FC6C6B891F9ULL, 0x13E887E8E8FBCD6FULL, 0x4C87268787CB13A1ULL, 0xA9B8DAB8B8116D62ULL, 0x0801040101090205ULL, 0x424F214F4F0D9E6EULL, 0xAD36D836369B6CEEULL, 0x59A6A2A6A6FF5104ULL, 0xDED26FD2D20CB9BDULL, 0xFBF5F3F5F50EF706ULL, 0xEF79F9797996F280ULL, 0x5F6FA16F6F30DECEULL, 0xFC917E91916D3FEFULL, 0xAA52555252F8A407ULL, 0x27609D606047C0FDULL, 0x89BCCABCBC356576ULL, 0xAC9B569B9B372BCDULL, 0x048E028E8E8A018CULL, 0x71A3B6A3A3D25B15ULL, 0x600C300C0C6C183CULL, 0xFF7BF17B7B84F68AULL, 0xB535D43535806AE1ULL, 0xE81D741D1DF53A69ULL, 0x53E0A7E0E0B3DD47ULL, 0xF6D77BD7D721B3ACULL, 0x5EC22FC2C29C99EDULL, 0x6D2EB82E2E435C96ULL, 0x624B314B4B29967AULL, 0xA3FEDFFEFE5DE121ULL, 0x8257415757D5AE16ULL, 0xA815541515BD2A41ULL, 0x9F77C17777E8EEB6ULL, 0xA537DC3737926EEBULL, 0x7BE5B3E5E59ED756ULL, 0x8C9F469F9F1323D9ULL, 0xD3F0E7F0F023FD17ULL, 0x6A4A354A4A20947FULL, 0x9EDA4FDADA44A995ULL, 0xFA587D5858A2B025ULL, 0x06C903C9C9CF8FCAULL, 0x5529A429297C528DULL, 0x500A280A0A5A1422ULL, 0xE1B1FEB1B1507F4FULL, 0x69A0BAA0A0C95D1AULL, 0x7F6BB16B6B14D6DAULL, 0x5C852E8585D917ABULL, 0x81BDCEBDBD3C6773ULL, 0xD25D695D5D8FBA34ULL, 0x8010401010902050ULL, 0xF3F4F7F4F407F503ULL, 0x16CB0BCBCBDD8BC0ULL, 0xED3EF83E3ED37CC6ULL, 0x28051405052D0A11ULL, 0x1F6781676778CEE6ULL, 0x73E4B7E4E497D553ULL, 0x25279C2727024EBBULL, 0x3241194141738258ULL, 0x2C8B168B8BA70B9DULL, 0x51A7A6A7A7F65301ULL, 0xCF7DE97D7DB2FA94ULL, 0xDC956E95954937FBULL, 0x8ED847D8D856AD9FULL, 0x8BFBCBFBFB70EB30ULL, 0x23EE9FEEEECDC171ULL, 0xC77CED7C7CBBF891ULL, 0x176685666671CCE3ULL, 0xA6DD53DDDD7BA78EULL, 0xB8175C1717AF2E4BULL, 0x0247014747458E46ULL, 0x849E429E9E1A21DCULL, 0x1ECA0FCACAD489C5ULL, 0x752DB42D2D585A99ULL, 0x91BFC6BFBF2E6379ULL, 0x38071C07073F0E1BULL, 0x01AD8EADADAC4723ULL, 0xEA5A755A5AB0B42FULL, 0x6C83368383EF1BB5ULL, 0x8533CC3333B666FFULL, 0x3F639163635CC6F2ULL, 0x100208020212040AULL, 0x39AA92AAAA934938ULL, 0xAF71D97171DEE2A8ULL, 0x0EC807C8C8C68DCFULL, 0xC819641919D1327DULL, 0x72493949493B9270ULL, 0x86D943D9D95FAF9AULL, 0xC3F2EFF2F231F91DULL, 0x4BE3ABE3E3A8DB48ULL, 0xE25B715B5BB9B62AULL, 0x34881A8888BC0D92ULL, 0xA49A529A9A3E29C8ULL, 0x2D269826260B4CBEULL, 0x8D32C83232BF64FAULL, 0xE9B0FAB0B0597D4AULL, 0x1BE983E9E9F2CF6AULL, 0x780F3C0F0F771E33ULL, 0xE6D573D5D533B7A6ULL, 0x74803A8080F41DBAULL, 0x99BEC2BEBE27617CULL, 0x26CD13CDCDEB87DEULL, 0xBD34D034348968E4ULL, 0x7A483D4848329075ULL, 0xABFFDBFFFF54E324ULL, 0xF77AF57A7A8DF48FULL, 0xF4907A9090643DEAULL, 0xC25F615F5F9DBE3EULL, 0x1D208020203D40A0ULL, 0x6768BD68680FD0D5ULL, 0xD01A681A1ACA3472ULL, 0x19AE82AEAEB7412CULL, 0xC9B4EAB4B47D755EULL, 0x9A544D5454CEA819ULL, 0xEC937693937F3BE5ULL, 0x0D228822222F44AAULL, 0x07648D646463C8E9ULL, 0xDBF1E3F1F12AFF12ULL, 0xBF73D17373CCE6A2ULL, 0x901248121282245AULL, 0x3A401D40407A805DULL, 0x4008200808481028ULL, 0x56C32BC3C3959BE8ULL, 0x33EC97ECECDFC57BULL, 0x96DB4BDBDB4DAB90ULL, 0x61A1BEA1A1C05F1FULL, 0x1C8D0E8D8D910783ULL, 0xF53DF43D3DC87AC9ULL, 0xCC976697975B33F1ULL, 0x0000000000000000ULL, 0x36CF1BCFCFF983D4ULL, 0x452BAC2B2B6E5687ULL, 0x9776C57676E1ECB3ULL, 0x6482328282E619B0ULL, 0xFED67FD6D628B1A9ULL, 0xD81B6C1B1BC33677ULL, 0xC1B5EEB5B574775BULL, 0x11AF86AFAFBE4329ULL, 0x776AB56A6A1DD4DFULL, 0xBA505D5050EAA00DULL, 0x1245094545578A4CULL, 0xCBF3EBF3F338FB18ULL, 0x9D30C03030AD60F0ULL, 0x2BEF9BEFEFC4C374ULL, 0xE53FFC3F3FDA7EC3ULL, 0x9255495555C7AA1CULL, 0x79A2B2A2A2DB5910ULL, 0x03EA8FEAEAE9C965ULL, 0x0F658965656ACAECULL, 0xB9BAD2BABA036968ULL, 0x652FBC2F2F4A5E93ULL, 0x4EC027C0C08E9DE7ULL, 0xBEDE5FDEDE60A181ULL, 0xE01C701C1CFC386CULL, 0xBBFDD3FDFD46E72EULL, 0x524D294D4D1F9A64ULL, 0xE4927292927639E0ULL, 0x8F75C97575FAEABCULL, 0x3006180606360C1EULL, 0x248A128A8AAE0998ULL, 0xF9B2F2B2B24B7940ULL, 0x63E6BFE6E685D159ULL, 0x700E380E0E7E1C36ULL, 0xF81F7C1F1FE73E63ULL, 0x376295626255C4F7ULL, 0xEED477D4D43AB5A3ULL, 0x29A89AA8A8814D32ULL, 0xC4966296965231F4ULL, 0x9BF9C3F9F962EF3AULL, 0x66C533C5C5A397F6ULL, 0x3525942525104AB1ULL, 0xF259795959ABB220ULL, 0x54842A8484D015AEULL, 0xB772D57272C5E4A7ULL, 0xD539E43939EC72DDULL, 0x5A4C2D4C4C169861ULL, 0xCA5E655E5E94BC3BULL, 0xE778FD78789FF085ULL, 0xDD38E03838E570D8ULL, 0x148C0A8C8C980586ULL, 0xC6D163D1D117BFB2ULL, 0x41A5AEA5A5E4570BULL, 0x43E2AFE2E2A1D94DULL, 0x2F619961614EC2F8ULL, 0xF1B3F6B3B3427B45ULL, 0x15218421213442A5ULL, 0x949C4A9C9C0825D6ULL, 0xF01E781E1EEE3C66ULL, 0x2243114343618652ULL, 0x76C73BC7C7B193FCULL, 0xB3FCD7FCFC4FE52BULL, 0x2004100404240814ULL, 0xB251595151E3A208ULL, 0xBC995E9999252FC7ULL, 0x4F6DA96D6D22DAC4ULL, 0x680D340D0D651A39ULL, 0x83FACFFAFA79E935ULL, 0xB6DF5BDFDF69A384ULL, 0xD77EE57E7EA9FC9BULL, 0x3D249024241948B4ULL, 0xC53BEC3B3BFE76D7ULL, 0x31AB96ABAB9A4B3DULL, 0x3ECE1FCECEF081D1ULL, 0x8811441111992255ULL, 0x0C8F068F8F830389ULL, 0x4A4E254E4E049C6BULL, 0xD1B7E6B7B7667351ULL, 0x0BEB8BEBEBE0CB60ULL, 0xFD3CF03C3CC178CCULL, 0x7C813E8181FD1FBFULL, 0xD4946A94944035FEULL, 0xEBF7FBF7F71CF30CULL, 0xA1B9DEB9B9186F67ULL, 0x98134C13138B265FULL, 0x7D2CB02C2C51589CULL, 0xD6D36BD3D305BBB8ULL, 0x6BE7BBE7E78CD35CULL, 0x576EA56E6E39DCCBULL, 0x6EC437C4C4AA95F3ULL, 0x18030C03031B060FULL, 0x8A56455656DCAC13ULL, 0x1A440D44445E8849ULL, 0xDF7FE17F7FA0FE9EULL, 0x21A99EA9A9884F37ULL, 0x4D2AA82A2A675482ULL, 0xB1BBD6BBBB0A6B6DULL, 0x46C123C1C1879FE2ULL, 0xA253515353F1A602ULL, 0xAEDC57DCDC72A58BULL, 0x580B2C0B0B531627ULL, 0x9C9D4E9D9D0127D3ULL, 0x476CAD6C6C2BD8C1ULL, 0x9531C43131A462F5ULL, 0x8774CD7474F3E8B9ULL, 0xE3F6FFF6F615F109ULL, 0x0A460546464C8C43ULL, 0x09AC8AACACA54526ULL, 0x3C891E8989B50F97ULL, 0xA014501414B42844ULL, 0x5BE1A3E1E1BADF42ULL, 0xB016581616A62C4EULL, 0xCD3AE83A3AF774D2ULL, 0x6F69B9696906D2D0ULL, 0x480924090941122DULL, 0xA770DD7070D7E0ADULL, 0xD9B6E2B6B66F7154ULL, 0xCED067D0D01EBDB7ULL, 0x3BED93EDEDD6C77EULL, 0x2ECC17CCCCE285DBULL, 0x2A42154242688457ULL, 0xB4985A98982C2DC2ULL, 0x49A4AAA4A4ED550EULL, 0x5D28A02828755088ULL, 0xDA5C6D5C5C86B831ULL, 0x93F8C7F8F86BED3FULL, 0x4486228686C211A4ULL,
0x18601818D83078C0ULL, 0x238C23232646AF05ULL, 0xC63FC6C6B891F97EULL, 0xE887E8E8FBCD6F13ULL, 0x87268787CB13A14CULL, 0xB8DAB8B8116D62A9ULL, 0x0104010109020508ULL, 0x4F214F4F0D9E6E42ULL, 0x36D836369B6CEEADULL, 0xA6A2A6A6FF510459ULL, 0xD26FD2D20CB9BDDEULL, 0xF5F3F5F50EF706FBULL, 0x79F9797996F280EFULL, 0x6FA16F6F30DECE5FULL, 0x917E91916D3FEFFCULL, 0x52555252F8A407AAULL, 0x609D606047C0FD27ULL, 0xBCCABCBC35657689ULL, 0x9B569B9B372BCDACULL, 0x8E028E8E8A018C04ULL, 0xA3B6A3A3D25B1571ULL, 0x0C300C0C6C183C60ULL, 0x7BF17B7B84F68AFFULL, 0x35D43535806AE1B5ULL, 0x1D741D1DF53A69E8ULL, 0xE0A7E0E0B3DD4753ULL, 0xD77BD7D721B3ACF6ULL, 0xC22FC2C29C99ED5EULL, 0x2EB82E2E435C966DULL, 0x4B314B4B29967A62ULL, 0xFEDFFEFE5DE121A3ULL, 0x57415757D5AE1682ULL, 0x15541515BD2A41A8ULL, 0x77C17777E8EEB69FULL, 0x37DC3737926EEBA5ULL, 0xE5B3E5E59ED7567BULL, 0x9F469F9F1323D98CULL, 0xF0E7F0F023FD17D3ULL, 0x4A354A4A20947F6AULL, 0xDA4FDADA44A9959EULL, 0x587D5858A2B025FAULL, 0xC903C9C9CF8FCA06ULL, 0x29A429297C528D55ULL, 0x0A280A0A5A142250ULL, 0xB1FEB1B1507F4FE1ULL, 0xA0BAA0A0C95D1A69ULL, 0x6BB16B6B14D6DA7FULL, 0x852E8585D917AB5CULL, 0xBDCEBDBD3C677381ULL, 0x5D695D5D8FBA34D2ULL, 0x1040101090205080ULL, 0xF4F7F4F407F503F3ULL, 0xCB0BCBCBDD8BC016ULL, 0x3EF83E3ED37CC6EDULL, 0x051405052D0A1128ULL, 0x6781676778CEE61FULL, 0xE4B7E4E497D55373ULL, 0x279C2727024EBB25ULL, 0x4119414173825832ULL, 0x8B168B8BA70B9D2CULL, 0xA7A6A7A7F6530151ULL, 0x7DE97D7DB2FA94CFULL, 0x956E95954937FBDCULL, 0xD847D8D856AD9F8EULL, 0xFBCBFBFB70EB308BULL, 0xEE9FEEEECDC17123ULL, 0x7CED7C7CBBF891C7ULL, 0x6685666671CCE317ULL, 0xDD53DDDD7BA78EA6ULL, 0x175C1717AF2E4BB8ULL, 0x47014747458E4602ULL, 0x9E429E9E1A21DC84ULL, 0xCA0FCACAD489C51EULL, 0x2DB42D2D585A9975ULL, 0xBFC6BFBF2E637991ULL, 0x071C07073F0E1B38ULL, 0xAD8EADADAC472301ULL, 0x5A755A5AB0B42FEAULL, 0x83368383EF1BB56CULL, 0x33CC3333B666FF85ULL, 0x639163635CC6F23FULL, 0x0208020212040A10ULL, 0xAA92AAAA93493839ULL, 0x71D97171DEE2A8AFULL, 0xC807C8C8C68DCF0EULL, 0x19641919D1327DC8ULL, 0x493949493B927072ULL, 0xD943D9D95FAF9A86ULL, 0xF2EFF2F231F91DC3ULL, 0xE3ABE3E3A8DB484BULL, 0x5B715B5BB9B62AE2ULL, 0x881A8888BC0D9234ULL, 0x9A529A9A3E29C8A4ULL, 0x269826260B4CBE2DULL, 0x32C83232BF64FA8DULL, 0xB0FAB0B0597D4AE9ULL, 0xE983E9E9F2CF6A1BULL, 0x0F3C0F0F771E3378ULL, 0xD573D5D533B7A6E6ULL, 0x803A8080F41DBA74ULL, 0xBEC2BEBE27617C99ULL, 0xCD13CDCDEB87DE26ULL, 0x34D034348968E4BDULL, 0x483D48483290757AULL, 0xFFDBFFFF54E324ABULL, 0x7AF57A7A8DF48FF7ULL, 0x907A9090643DEAF4ULL, 0x5F615F5F9DBE3EC2ULL, 0x208020203D40A01DULL, 0x68BD68680FD0D567ULL, 0x1A681A1ACA3472D0ULL, 0xAE82AEAEB7412C19ULL, 0xB4EAB4B47D755EC9ULL, 0x544D5454CEA8199AULL, 0x937693937F3BE5ECULL, 0x228822222F44AA0DULL, 0x648D646463C8E907ULL, 0xF1E3F1F12AFF12DBULL, 0x73D17373CCE6A2BFULL, 0x1248121282245A90ULL, 0x401D40407A805D3AULL, 0x0820080848102840ULL, 0xC32BC3C3959BE856ULL, 0xEC97ECECDFC57B33ULL, 0xDB4BDBDB4DAB9096ULL, 0xA1BEA1A1C05F1F61ULL, 0x8D0E8D8D9107831CULL, 0x3DF43D3DC87AC9F5ULL, 0x976697975B33F1CCULL, 0x0000000000000000ULL, 0xCF1BCFCFF983D436ULL, 0x2BAC2B2B6E568745ULL, 0x76C57676E1ECB397ULL, 0x82328282E619B064ULL, 0xD67FD6D628B1A9FEULL, 0x1B6C1B1BC33677D8ULL, 0xB5EEB5B574775BC1ULL, 0xAF86AFAFBE432911ULL, 0x6AB56A6A1DD4DF77ULL, 0x505D5050EAA00DBAULL, 0x45094545578A4C12ULL, 0xF3EBF3F338FB18CBULL, 0x30C03030AD60F09DULL, 0xEF9BEFEFC4C3742BULL, 0x3FFC3F3FDA7EC3E5ULL, 0x55495555C7AA1C92ULL, 0xA2B2A2A2DB591079ULL, 0xEA8FEAEAE9C96503ULL, 0x658965656ACAEC0FULL, 0xBAD2BABA036968B9ULL, 0x2FBC2F2F4A5E9365ULL, 0xC027C0C08E9DE74EULL, 0xDE5FDEDE60A181BEULL, 0x1C701C1CFC386CE0ULL, 0xFDD3FDFD46E72EBBULL, 0x4D294D4D1F9A6452ULL, 0x927292927639E0E4ULL, 0x75C97575FAEABC8FULL, 0x06180606360C1E30ULL, 0x8A128A8AAE099824ULL, 0xB2F2B2B24B7940F9ULL, 0xE6BFE6E685D15963ULL, 0x0E380E0E7E1C3670ULL, 0x1F7C1F1FE73E63F8ULL, 0x6295626255C4F737ULL, 0xD477D4D43AB5A3EEULL, 0xA89AA8A8814D3229ULL, 0x966296965231F4C4ULL, 0xF9C3F9F962EF3A9BULL, 0xC533C5C5A397F666ULL, 0x25942525104AB135ULL, 0x59795959ABB220F2ULL, 0x842A8484D015AE54ULL, 0x72D57272C5E4A7B7ULL, 0x39E43939EC72DDD5ULL, 0x4C2D4C4C1698615AULL, 0x5E655E5E94BC3BCAULL, 0x78FD78789FF085E7ULL, 0x38E03838E570D8DDULL, 0x8C0A8C8C98058614ULL, 0xD163D1D117BFB2C6ULL, 0xA5AEA5A5E4570B41ULL, 0xE2AFE2E2A1D94D43ULL, 0x619961614EC2F82FULL, 0xB3F6B3B3427B45F1ULL, 0x218421213442A515ULL, 0x9C4A9C9C0825D694ULL, 0x1E781E1EEE3C66F0ULL, 0x4311434361865222ULL, 0xC73BC7C7B193FC76ULL, 0xFCD7FCFC4FE52BB3ULL, 0x0410040424081420ULL, 0x51595151E3A208B2ULL, 0x995E9999252FC7BCULL, 0x6DA96D6D22DAC44FULL, 0x0D340D0D651A3968ULL, 0xFACFFAFA79E93583ULL, 0xDF5BDFDF69A384B6ULL, 0x7EE57E7EA9FC9BD7ULL, 0x249024241948B43DULL, 0x3BEC3B3BFE76D7C5ULL, 0xAB96ABAB9A4B3D31ULL, 0xCE1FCECEF081D13EULL, 0x1144111199225588ULL, 0x8F068F8F8303890CULL, 0x4E254E4E049C6B4AULL, 0xB7E6B7B7667351D1ULL, 0xEB8BEBEBE0CB600BULL, 0x3CF03C3CC178CCFDULL, 0x813E8181FD1FBF7CULL, 0x946A94944035FED4ULL, 0xF7FBF7F71CF30CEBULL, 0xB9DEB9B9186F67A1ULL, 0x134C13138B265F98ULL, 0x2CB02C2C51589C7DULL, 0xD36BD3D305BBB8D6ULL, 0xE7BBE7E78CD35C6BULL, 0x6EA56E6E39DCCB57ULL, 0xC437C4C4AA95F36EULL, 0x030C03031B060F18ULL, 0x56455656DCAC138AULL, 0x440D44445E88491AULL, 0x7FE17F7FA0FE9EDFULL, 0xA99EA9A9884F3721ULL, 0x2AA82A2A6754824DULL, 0xBBD6BBBB0A6B6DB1ULL, 0xC123C1C1879FE246ULL, 0x53515353F1A602A2ULL, 0xDC57DCDC72A58BAEULL, 0x0B2C0B0B53162758ULL, 0x9D4E9D9D0127D39CULL, 0x6CAD6C6C2BD8C147ULL, 0x31C43131A462F595ULL, 0x74CD7474F3E8B987ULL, 0xF6FFF6F615F109E3ULL, 0x460546464C8C430AULL, 0xAC8AACACA5452609ULL, 0x891E8989B50F973CULL, 0x14501414B42844A0ULL, 0xE1A3E1E1BADF425BULL, 0x16581616A62C4EB0ULL, 0x3AE83A3AF774D2CDULL, 0x69B9696906D2D06FULL, 0x0924090941122D48ULL, 0x70DD7070D7E0ADA7ULL, 0xB6E2B6B66F7154D9ULL, 0xD067D0D01EBDB7CEULL, 0xED93EDEDD6C77E3BULL, 0xCC17CCCCE285DB2EULL, 0x421542426884572AULL, 0x985A98982C2DC2B4ULL, 0xA4AAA4A4ED550E49ULL, 0x28A028287550885DULL, 0x5C6D5C5C86B831DAULL, 0xF8C7F8F86BED3F93ULL, 0x86228686C211A444ULL,
0x601818D83078C018ULL, 0x8C23232646AF0523ULL, 0x3FC6C6B891F97EC6ULL, 0x87E8E8FBCD6F13E8ULL, 0x268787CB13A14C87ULL, 0xDAB8B8116D62A9B8ULL, 0x0401010902050801ULL, 0x214F4F0D9E6E424FULL, 0xD836369B6CEEAD36ULL, 0xA2A6A6FF510459A6ULL, 0x6FD2D20CB9BDDED2ULL, 0xF3F5F50EF706FBF5ULL, 0xF9797996F280EF79ULL, 0xA16F6F30DECE5F6FULL, 0x7E91916D3FEFFC91ULL, 0x555252F8A407AA52ULL, 0x9D606047C0FD2760ULL, 0xCABCBC35657689BCULL, 0x569B9B372BCDAC9BULL, 0x028E8E8A018C048EULL, 0xB6A3A3D25B1571A3ULL, 0x300C0C6C183C600CULL, 0xF17B7B84F68AFF7BULL, 0xD43535806AE1B535ULL, 0x741D1DF53A69E81DULL, 0xA7E0E0B3DD4753E0ULL, 0x7BD7D721B3ACF6D7ULL, 0x2FC2C29C99ED5EC2ULL, 0xB82E2E435C966D2EULL, 0x314B4B29967A624BULL, 0xDFFEFE5DE121A3FEULL, 0x415757D5AE168257ULL, 0x541515BD2A41A815ULL, 0xC17777E8EEB69F77ULL, 0xDC3737926EEBA537ULL, 0xB3E5E59ED7567BE5ULL, 0x469F9F1323D98C9FULL, 0xE7F0F023FD17D3F0ULL, 0x354A4A20947F6A4AULL, 0x4FDADA44A9959EDAULL, 0x7D5858A2B025FA58ULL, 0x03C9C9CF8FCA06C9ULL, 0xA429297C528D5529ULL, 0x280A0A5A1422500AULL, 0xFEB1B1507F4FE1B1ULL, 0xBAA0A0C95D1A69A0ULL, 0xB16B6B14D6DA7F6BULL, 0x2E8585D917AB5C85ULL, 0xCEBDBD3C677381BDULL, 0x695D5D8FBA34D25DULL, 0x4010109020508010ULL, 0xF7F4F407F503F3F4ULL, 0x0BCBCBDD8BC016CBULL, 0xF83E3ED37CC6ED3EULL, 0x1405052D0A112805ULL, 0x81676778CEE61F67ULL, 0xB7E4E497D55373E4ULL, 0x9C2727024EBB2527ULL, 0x1941417382583241ULL, 0x168B8BA70B9D2C8BULL, 0xA6A7A7F6530151A7ULL, 0xE97D7DB2FA94CF7DULL, 0x6E95954937FBDC95ULL, 0x47D8D856AD9F8ED8ULL, 0xCBFBFB70EB308BFBULL, 0x9FEEEECDC17123EEULL, 0xED7C7CBBF891C77CULL, 0x85666671CCE31766ULL, 0x53DDDD7BA78EA6DDULL, 0x5C1717AF2E4BB817ULL, 0x014747458E460247ULL, 0x429E9E1A21DC849EULL, 0x0FCACAD489C51ECAULL, 0xB42D2D585A99752DULL, 0xC6BFBF2E637991BFULL, 0x1C07073F0E1B3807ULL, 0x8EADADAC472301ADULL, 0x755A5AB0B42FEA5AULL, 0x368383EF1BB56C83ULL, 0xCC3333B666FF8533ULL, 0x9163635CC6F23F63ULL, 0x08020212040A1002ULL, 0x92AAAA93493839AAULL, 0xD97171DEE2A8AF71ULL, 0x07C8C8C68DCF0EC8ULL, 0x641919D1327DC819ULL, 0x3949493B92707249ULL, 0x43D9D95FAF9A86D9ULL, 0xEFF2F231F91DC3F2ULL, 0xABE3E3A8DB484BE3ULL, 0x715B5BB9B62AE25BULL, 0x1A8888BC0D923488ULL, 0x529A9A3E29C8A49AULL, 0x9826260B4CBE2D26ULL, 0xC83232BF64FA8D32ULL, 0xFAB0B0597D4AE9B0ULL, 0x83E9E9F2CF6A1BE9ULL, 0x3C0F0F771E33780FULL, 0x73D5D533B7A6E6D5ULL, 0x3A8080F41DBA7480ULL, 0xC2BEBE27617C99BEULL, 0x13CDCDEB87DE26CDULL, 0xD034348968E4BD34ULL, 0x3D48483290757A48ULL, 0xDBFFFF54E324ABFFULL, 0xF57A7A8DF48FF77AULL, 0x7A9090643DEAF490ULL, 0x615F5F9DBE3EC25FULL, 0x8020203D40A01D20ULL, 0xBD68680FD0D56768ULL, 0x681A1ACA3472D01AULL, 0x82AEAEB7412C19AEULL, 0xEAB4B47D755EC9B4ULL, 0x4D5454CEA8199A54ULL, 0x7693937F3BE5EC93ULL, 0x8822222F44AA0D22ULL, 0x8D646463C8E90764ULL, 0xE3F1F12AFF12DBF1ULL, 0xD17373CCE6A2BF73ULL, 0x48121282245A9012ULL, 0x1D40407A805D3A40ULL, 0x2008084810284008ULL, 0x2BC3C3959BE856C3ULL, 0x97ECECDFC57B33ECULL, 0x4BDBDB4DAB9096DBULL, 0xBEA1A1C05F1F61A1ULL, 0x0E8D8D9107831C8DULL, 0xF43D3DC87AC9F53DULL, 0x6697975B33F1CC97ULL, 0x0000000000000000ULL, 0x1BCFCFF983D436CFULL, 0xAC2B2B6E5687452BULL, 0xC57676E1ECB39776ULL, 0x328282E619B06482ULL, 0x7FD6D628B1A9FED6ULL, 0x6C1B1BC33677D81BULL, 0xEEB5B574775BC1B5ULL, 0x86AFAFBE432911AFULL, 0xB56A6A1DD4DF776AULL, 0x5D5050EAA00DBA50ULL, 0x094545578A4C1245ULL, 0xEBF3F338FB18CBF3ULL, 0xC03030AD60F09D30ULL, 0x9BEFEFC4C3742BEFULL, 0xFC3F3FDA7EC3E53FULL, 0x495555C7AA1C9255ULL, 0xB2A2A2DB591079A2ULL, 0x8FEAEAE9C96503EAULL, 0x8965656ACAEC0F65ULL, 0xD2BABA036968B9BAULL, 0xBC2F2F4A5E93652FULL, 0x27C0C08E9DE74EC0ULL, 0x5FDEDE60A181BEDEULL, 0x701C1CFC386CE01CULL, 0xD3FDFD46E72EBBFDULL, 0x294D4D1F9A64524DULL, 0x7292927639E0E492ULL, 0xC97575FAEABC8F75ULL, 0x180606360C1E3006ULL, 0x128A8AAE0998248AULL, 0xF2B2B24B7940F9B2ULL, 0xBFE6E685D15963E6ULL, 0x380E0E7E1C36700EULL, 0x7C1F1FE73E63F81FULL, 0x95626255C4F73762ULL, 0x77D4D43AB5A3EED4ULL, 0x9AA8A8814D3229A8ULL, 0x6296965231F4C496ULL, 0xC3F9F962EF3A9BF9ULL, 0x33C5C5A397F666C5ULL, 0x942525104AB13525ULL, 0x795959ABB220F259ULL, 0x2A8484D015AE5484ULL, 0xD57272C5E4A7B772ULL, 0xE43939EC72DDD539ULL, 0x2D4C4C1698615A4CULL, 0x655E5E94BC3BCA5EULL, 0xFD78789FF085E778ULL, 0xE03838E570D8DD38ULL, 0x0A8C8C980586148CULL, 0x63D1D117BFB2C6D1ULL, 0xAEA5A5E4570B41A5ULL, 0xAFE2E2A1D94D43E2ULL, 0x9961614EC2F82F61ULL, 0xF6B3B3427B45F1B3ULL, 0x8421213442A51521ULL, 0x4A9C9C0825D6949CULL, 0x781E1EEE3C66F01EULL, 0x1143436186522243ULL, 0x3BC7C7B193FC76C7ULL, 0xD7FCFC4FE52BB3FCULL, 0x1004042408142004ULL, 0x595151E3A208B251ULL, 0x5E9999252FC7BC99ULL, 0xA96D6D22DAC44F6DULL, 0x340D0D651A39680DULL, 0xCFFAFA79E93583FAULL, 0x5BDFDF69A384B6DFULL, 0xE57E7EA9FC9BD77EULL, 0x9024241948B43D24ULL, 0xEC3B3BFE76D7C53BULL, 0x96ABAB9A4B3D31ABULL, 0x1FCECEF081D13ECEULL, 0x4411119922558811ULL, 0x068F8F8303890C8FULL, 0x254E4E049C6B4A4EULL, 0xE6B7B7667351D1B7ULL, 0x8BEBEBE0CB600BEBULL, 0xF03C3CC178CCFD3CULL, 0x3E8181FD1FBF7C81ULL, 0x6A94944035FED494ULL, 0xFBF7F71CF30CEBF7ULL, 0xDEB9B9186F67A1B9ULL, 0x4C13138B265F9813ULL, 0xB02C2C51589C7D2CULL, 0x6BD3D305BBB8D6D3ULL, 0xBBE7E78CD35C6BE7ULL, 0xA56E6E39DCCB576EULL, 0x37C4C4AA95F36EC4ULL, 0x0C03031B060F1803ULL, 0x455656DCAC138A56ULL, 0x0D44445E88491A44ULL, 0xE17F7FA0FE9EDF7FULL, 0x9EA9A9884F3721A9ULL, 0xA82A2A6754824D2AULL, 0xD6BBBB0A6B6DB1BBULL, 0x23C1C1879FE246C1ULL, 0x515353F1A602A253ULL, 0x57DCDC72A58BAEDCULL, 0x2C0B0B531627580BULL, 0x4E9D9D0127D39C9DULL, 0xAD6C6C2BD8C1476CULL, 0xC43131A462F59531ULL, 0xCD7474F3E8B98774ULL, 0xFFF6F615F109E3F6ULL, 0x0546464C8C430A46ULL, 0x8AACACA5452609ACULL, 0x1E8989B50F973C89ULL, 0x501414B42844A014ULL, 0xA3E1E1BADF425BE1ULL, 0x581616A62C4EB016ULL, 0xE83A3AF774D2CD3AULL, 0xB9696906D2D06F69ULL, 0x24090941122D4809ULL, 0xDD7070D7E0ADA770ULL, 0xE2B6B66F7154D9B6ULL, 0x67D0D01EBDB7CED0ULL, 0x93EDEDD6C77E3BEDULL, 0x17CCCCE285DB2ECCULL, 0x1542426884572A42ULL, 0x5A98982C2DC2B498ULL, 0xAAA4A4ED550E49A4ULL, 0xA028287550885D28ULL, 0x6D5C5C86B831DA5CULL, 0xC7F8F86BED3F93F8ULL, 0x228686C211A44486ULL,
0x1818D83078C01860ULL, 0x23232646AF05238CULL, 0xC6C6B891F97EC63FULL, 0xE8E8FBCD6F13E887ULL, 0x8787CB13A14C8726ULL, 0xB8B8116D62A9B8DAULL, 0x0101090205080104ULL, 0x4F4F0D9E6E424F21ULL, 0x36369B6CEEAD36D8ULL, 0xA6A6FF510459A6A2ULL, 0xD2D20CB9BDDED26FULL, 0xF5F50EF706FBF5F3ULL, 0x797996F280EF79F9ULL, 0x6F6F30DECE5F6FA1ULL, 0x91916D3FEFFC917EULL, 0x5252F8A407AA5255ULL, 0x606047C0FD27609DULL, 0xBCBC35657689BCCAULL, 0x9B9B372BCDAC9B56ULL, 0x8E8E8A018C048E02ULL, 0xA3A3D25B1571A3B6ULL, 0x0C0C6C183C600C30ULL, 0x7B7B84F68AFF7BF1ULL, 0x3535806AE1B535D4ULL, 0x1D1DF53A69E81D74ULL, 0xE0E0B3DD4753E0A7ULL, 0xD7D721B3ACF6D77BULL, 0xC2C29C99ED5EC22FULL, 0x2E2E435C966D2EB8ULL, 0x4B4B29967A624B31ULL, 0xFEFE5DE121A3FEDFULL, 0x5757D5AE16825741ULL, 0x1515BD2A41A81554ULL, 0x7777E8EEB69F77C1ULL, 0x3737926EEBA537DCULL, 0xE5E59ED7567BE5B3ULL, 0x9F9F1323D98C9F46ULL, 0xF0F023FD17D3F0E7ULL, 0x4A4A20947F6A4A35ULL, 0xDADA44A9959EDA4FULL, 0x5858A2B025FA587DULL, 0xC9C9CF8FCA06C903ULL, 0x29297C528D5529A4ULL, 0x0A0A5A1422500A28ULL, 0xB1B1507F4FE1B1FEULL, 0xA0A0C95D1A69A0BAULL, 0x6B6B14D6DA7F6BB1ULL, 0x8585D917AB5C852EULL, 0xBDBD3C677381BDCEULL, 0x5D5D8FBA34D25D69ULL, 0x1010902050801040ULL, 0xF4F407F503F3F4F7ULL, 0xCBCBDD8BC016CB0BULL, 0x3E3ED37CC6ED3EF8ULL, 0x05052D0A11280514ULL, 0x676778CEE61F6781ULL, 0xE4E497D55373E4B7ULL, 0x2727024EBB25279CULL, 0x4141738258324119ULL, 0x8B8BA70B9D2C8B16ULL, 0xA7A7F6530151A7A6ULL, 0x7D7DB2FA94CF7DE9ULL, 0x95954937FBDC956EULL, 0xD8D856AD9F8ED847ULL, 0xFBFB70EB308BFBCBULL, 0xEEEECDC17123EE9FULL, 0x7C7CBBF891C77CEDULL, 0x666671CCE3176685ULL, 0xDDDD7BA78EA6DD53ULL, 0x1717AF2E4BB8175CULL, 0x4747458E46024701ULL, 0x9E9E1A21DC849E42ULL, 0xCACAD489C51ECA0FULL, 0x2D2D585A99752DB4ULL, 0xBFBF2E637991BFC6ULL, 0x07073F0E1B38071CULL, 0xADADAC472301AD8EULL, 0x5A5AB0B42FEA5A75ULL, 0x8383EF1BB56C8336ULL, 0x3333B666FF8533CCULL, 0x63635CC6F23F6391ULL, 0x020212040A100208ULL, 0xAAAA93493839AA92ULL, 0x7171DEE2A8AF71D9ULL, 0xC8C8C68DCF0EC807ULL, 0x1919D1327DC81964ULL, 0x49493B9270724939ULL, 0xD9D95FAF9A86D943ULL, 0xF2F231F91DC3F2EFULL, 0xE3E3A8DB484BE3ABULL, 0x5B5BB9B62AE25B71ULL, 0x8888BC0D9234881AULL, 0x9A9A3E29C8A49A52ULL, 0x26260B4CBE2D2698ULL, 0x3232BF64FA8D32C8ULL, 0xB0B0597D4AE9B0FAULL, 0xE9E9F2CF6A1BE983ULL, 0x0F0F771E33780F3CULL, 0xD5D533B7A6E6D573ULL, 0x8080F41DBA74803AULL, 0xBEBE27617C99BEC2ULL, 0xCDCDEB87DE26CD13ULL, 0x34348968E4BD34D0ULL, 0x48483290757A483DULL, 0xFFFF54E324ABFFDBULL, 0x7A7A8DF48FF77AF5ULL, 0x9090643DEAF4907AULL, 0x5F5F9DBE3EC25F61ULL, 0x20203D40A01D2080ULL, 0x68680FD0D56768BDULL, 0x1A1ACA3472D01A68ULL, 0xAEAEB7412C19AE82ULL, 0xB4B47D755EC9B4EAULL, 0x5454CEA8199A544DULL, 0x93937F3BE5EC9376ULL, 0x22222F44AA0D2288ULL, 0x646463C8E907648DULL, 0xF1F12AFF12DBF1E3ULL, 0x7373CCE6A2BF73D1ULL, 0x121282245A901248ULL, 0x40407A805D3A401DULL, 0x0808481028400820ULL, 0xC3C3959BE856C32BULL, 0xECECDFC57B33EC97ULL, 0xDBDB4DAB9096DB4BULL, 0xA1A1C05F1F61A1BEULL, 0x8D8D9107831C8D0EULL, 0x3D3DC87AC9F53DF4ULL, 0x97975B33F1CC9766ULL, 0x0000000000000000ULL, 0xCFCFF983D436CF1BULL, 0x2B2B6E5687452BACULL, 0x7676E1ECB39776C5ULL, 0x8282E619B0648232ULL, 0xD6D628B1A9FED67FULL, 0x1B1BC33677D81B6CULL, 0xB5B574775BC1B5EEULL, 0xAFAFBE432911AF86ULL, 0x6A6A1DD4DF776AB5ULL, 0x5050EAA00DBA505DULL, 0x4545578A4C124509ULL, 0xF3F338FB18CBF3EBULL, 0x3030AD60F09D30C0ULL, 0xEFEFC4C3742BEF9BULL, 0x3F3FDA7EC3E53FFCULL, 0x5555C7AA1C925549ULL, 0xA2A2DB591079A2B2ULL, 0xEAEAE9C96503EA8FULL, 0x65656ACAEC0F6589ULL, 0xBABA036968B9BAD2ULL, 0x2F2F4A5E93652FBCULL, 0xC0C08E9DE74EC027ULL, 0xDEDE60A181BEDE5FULL, 0x1C1CFC386CE01C70ULL, 0xFDFD46E72EBBFDD3ULL, 0x4D4D1F9A64524D29ULL, 0x92927639E0E49272ULL, 0x7575FAEABC8F75C9ULL, 0x0606360C1E300618ULL, 0x8A8AAE0998248A12ULL, 0xB2B24B7940F9B2F2ULL, 0xE6E685D15963E6BFULL, 0x0E0E7E1C36700E38ULL, 0x1F1FE73E63F81F7CULL, 0x626255C4F7376295ULL, 0xD4D43AB5A3EED477ULL, 0xA8A8814D3229A89AULL, 0x96965231F4C49662ULL, 0xF9F962EF3A9BF9C3ULL, 0xC5C5A397F666C533ULL, 0x2525104AB1352594ULL, 0x5959ABB220F25979ULL, 0x8484D015AE54842AULL, 0x7272C5E4A7B772D5ULL, 0x3939EC72DDD539E4ULL, 0x4C4C1698615A4C2DULL, 0x5E5E94BC3BCA5E65ULL, 0x78789FF085E778FDULL, 0x3838E570D8DD38E0ULL, 0x8C8C980586148C0AULL, 0xD1D117BFB2C6D163ULL, 0xA5A5E4570B41A5AEULL, 0xE2E2A1D94D43E2AFULL, 0x61614EC2F82F6199ULL, 0xB3B3427B45F1B3F6ULL, 0x21213442A5152184ULL, 0x9C9C0825D6949C4AULL, 0x1E1EEE3C66F01E78ULL, 0x4343618652224311ULL, 0xC7C7B193FC76C73BULL, 0xFCFC4FE52BB3FCD7ULL, 0x0404240814200410ULL, 0x5151E3A208B25159ULL, 0x9999252FC7BC995EULL, 0x6D6D22DAC44F6DA9ULL, 0x0D0D651A39680D34ULL, 0xFAFA79E93583FACFULL, 0xDFDF69A384B6DF5BULL, 0x7E7EA9FC9BD77EE5ULL, 0x24241948B43D2490ULL, 0x3B3BFE76D7C53BECULL, 0xABAB9A4B3D31AB96ULL, 0xCECEF081D13ECE1FULL, 0x1111992255881144ULL, 0x8F8F8303890C8F06ULL, 0x4E4E049C6B4A4E25ULL, 0xB7B7667351D1B7E6ULL, 0xEBEBE0CB600BEB8BULL, 0x3C3CC178CCFD3CF0ULL, 0x8181FD1FBF7C813EULL, 0x94944035FED4946AULL, 0xF7F71CF30CEBF7FBULL, 0xB9B9186F67A1B9DEULL, 0x13138B265F98134CULL, 0x2C2C51589C7D2CB0ULL, 0xD3D305BBB8D6D36BULL, 0xE7E78CD35C6BE7BBULL, 0x6E6E39DCCB576EA5ULL, 0xC4C4AA95F36EC437ULL, 0x03031B060F18030CULL, 0x5656DCAC138A5645ULL, 0x44445E88491A440DULL, 0x7F7FA0FE9EDF7FE1ULL, 0xA9A9884F3721A99EULL, 0x2A2A6754824D2AA8ULL, 0xBBBB0A6B6DB1BBD6ULL, 0xC1C1879FE246C123ULL, 0x5353F1A602A25351ULL, 0xDCDC72A58BAEDC57ULL, 0x0B0B531627580B2CULL, 0x9D9D0127D39C9D4EULL, 0x6C6C2BD8C1476CADULL, 0x3131A462F59531C4ULL, 0x7474F3E8B98774CDULL, 0xF6F615F109E3F6FFULL, 0x46464C8C430A4605ULL, 0xACACA5452609AC8AULL, 0x8989B50F973C891EULL, 0x1414B42844A01450ULL, 0xE1E1BADF425BE1A3ULL, 0x1616A62C4EB01658ULL, 0x3A3AF774D2CD3AE8ULL, 0x696906D2D06F69B9ULL, 0x090941122D480924ULL, 0x7070D7E0ADA770DDULL, 0xB6B66F7154D9B6E2ULL, 0xD0D01EBDB7CED067ULL, 0xEDEDD6C77E3BED93ULL, 0xCCCCE285DB2ECC17ULL, 0x42426884572A4215ULL, 0x98982C2DC2B4985AULL, 0xA4A4ED550E49A4AAULL, 0x28287550885D28A0ULL, 0x5C5C86B831DA5C6DULL, 0xF8F86BED3F93F8C7ULL, 0x8686C211A4448622ULL,
0x18D83078C0186018ULL, 0x232646AF05238C23ULL, 0xC6B891F97EC63FC6ULL, 0xE8FBCD6F13E887E8ULL, 0x87CB13A14C872687ULL, 0xB8116D62A9B8DAB8ULL, 0x0109020508010401ULL, 0x4F0D9E6E424F214FULL, 0x369B6CEEAD36D836ULL, 0xA6FF510459A6A2A6ULL, 0xD20CB9BDDED26FD2ULL, 0xF50EF706FBF5F3F5ULL, 0x7996F280EF79F979ULL, 0x6F30DECE5F6FA16FULL, 0x916D3FEFFC917E91ULL, 0x52F8A407AA525552ULL, 0x6047C0FD27609D60ULL, 0xBC35657689BCCABCULL, 0x9B372BCDAC9B569BULL, 0x8E8A018C048E028EULL, 0xA3D25B1571A3B6A3ULL, 0x0C6C183C600C300CULL, 0x7B84F68AFF7BF17BULL, 0x35806AE1B535D435ULL, 0x1DF53A69E81D741DULL, 0xE0B3DD4753E0A7E0ULL, 0xD721B3ACF6D77BD7ULL, 0xC29C99ED5EC22FC2ULL, 0x2E435C966D2EB82EULL, 0x4B29967A624B314BULL, 0xFE5DE121A3FEDFFEULL, 0x57D5AE1682574157ULL, 0x15BD2A41A8155415ULL, 0x77E8EEB69F77C177ULL, 0x37926EEBA537DC37ULL, 0xE59ED7567BE5B3E5ULL, 0x9F1323D98C9F469FULL, 0xF023FD17D3F0E7F0ULL, 0x4A20947F6A4A354AULL, 0xDA44A9959EDA4FDAULL, 0x58A2B025FA587D58ULL, 0xC9CF8FCA06C903C9ULL, 0x297C528D5529A429ULL, 0x0A5A1422500A280AULL, 0xB1507F4FE1B1FEB1ULL, 0xA0C95D1A69A0BAA0ULL, 0x6B14D6DA7F6BB16BULL, 0x85D917AB5C852E85ULL, 0xBD3C677381BDCEBDULL, 0x5D8FBA34D25D695DULL, 0x1090205080104010ULL, 0xF407F503F3F4F7F4ULL, 0xCBDD8BC016CB0BCBULL, 0x3ED37CC6ED3EF83EULL, 0x052D0A1128051405ULL, 0x6778CEE61F678167ULL, 0xE497D55373E4B7E4ULL, 0x27024EBB25279C27ULL, 0x4173825832411941ULL, 0x8BA70B9D2C8B168BULL, 0xA7F6530151A7A6A7ULL, 0x7DB2FA94CF7DE97DULL, 0x954937FBDC956E95ULL, 0xD856AD9F8ED847D8ULL, 0xFB70EB308BFBCBFBULL, 0xEECDC17123EE9FEEULL, 0x7CBBF891C77CED7CULL, 0x6671CCE317668566ULL, 0xDD7BA78EA6DD53DDULL, 0x17AF2E4BB8175C17ULL, 0x47458E4602470147ULL, 0x9E1A21DC849E429EULL, 0xCAD489C51ECA0FCAULL, 0x2D585A99752DB42DULL, 0xBF2E637991BFC6BFULL, 0x073F0E1B38071C07ULL, 0xADAC472301AD8EADULL, 0x5AB0B42FEA5A755AULL, 0x83EF1BB56C833683ULL, 0x33B666FF8533CC33ULL, 0x635CC6F23F639163ULL, 0x0212040A10020802ULL, 0xAA93493839AA92AAULL, 0x71DEE2A8AF71D971ULL, 0xC8C68DCF0EC807C8ULL, 0x19D1327DC8196419ULL, 0x493B927072493949ULL, 0xD95FAF9A86D943D9ULL, 0xF231F91DC3F2EFF2ULL, 0xE3A8DB484BE3ABE3ULL, 0x5BB9B62AE25B715BULL, 0x88BC0D9234881A88ULL, 0x9A3E29C8A49A529AULL, 0x260B4CBE2D269826ULL, 0x32BF64FA8D32C832ULL, 0xB0597D4AE9B0FAB0ULL, 0xE9F2CF6A1BE983E9ULL, 0x0F771E33780F3C0FULL, 0xD533B7A6E6D573D5ULL, 0x80F41DBA74803A80ULL, 0xBE27617C99BEC2BEULL, 0xCDEB87DE26CD13CDULL, 0x348968E4BD34D034ULL, 0x483290757A483D48ULL, 0xFF54E324ABFFDBFFULL, 0x7A8DF48FF77AF57AULL, 0x90643DEAF4907A90ULL, 0x5F9DBE3EC25F615FULL, 0x203D40A01D208020ULL, 0x680FD0D56768BD68ULL, 0x1ACA3472D01A681AULL, 0xAEB7412C19AE82AEULL, 0xB47D755EC9B4EAB4ULL, 0x54CEA8199A544D54ULL, 0x937F3BE5EC937693ULL, 0x222F44AA0D228822ULL, 0x6463C8E907648D64ULL, 0xF12AFF12DBF1E3F1ULL, 0x73CCE6A2BF73D173ULL, 0x1282245A90124812ULL, 0x407A805D3A401D40ULL, 0x0848102840082008ULL, 0xC3959BE856C32BC3ULL, 0xECDFC57B33EC97ECULL, 0xDB4DAB9096DB4BDBULL, 0xA1C05F1F61A1BEA1ULL, 0x8D9107831C8D0E8DULL, 0x3DC87AC9F53DF43DULL, 0x975B33F1CC976697ULL, 0x0000000000000000ULL, 0xCFF983D436CF1BCFULL, 0x2B6E5687452BAC2BULL, 0x76E1ECB39776C576ULL, 0x82E619B064823282ULL, 0xD628B1A9FED67FD6ULL, 0x1BC33677D81B6C1BULL, 0xB574775BC1B5EEB5ULL, 0xAFBE432911AF86AFULL, 0x6A1DD4DF776AB56AULL, 0x50EAA00DBA505D50ULL, 0x45578A4C12450945ULL, 0xF338FB18CBF3EBF3ULL, 0x30AD60F09D30C030ULL, 0xEFC4C3742BEF9BEFULL, 0x3FDA7EC3E53FFC3FULL, 0x55C7AA1C92554955ULL, 0xA2DB591079A2B2A2ULL, 0xEAE9C96503EA8FEAULL, 0x656ACAEC0F658965ULL, 0xBA036968B9BAD2BAULL, 0x2F4A5E93652FBC2FULL, 0xC08E9DE74EC027C0ULL, 0xDE60A181BEDE5FDEULL, 0x1CFC386CE01C701CULL, 0xFD46E72EBBFDD3FDULL, 0x4D1F9A64524D294DULL, 0x927639E0E4927292ULL, 0x75FAEABC8F75C975ULL, 0x06360C1E30061806ULL, 0x8AAE0998248A128AULL, 0xB24B7940F9B2F2B2ULL, 0xE685D15963E6BFE6ULL, 0x0E7E1C36700E380EULL, 0x1FE73E63F81F7C1FULL, 0x6255C4F737629562ULL, 0xD43AB5A3EED477D4ULL, 0xA8814D3229A89AA8ULL, 0x965231F4C4966296ULL, 0xF962EF3A9BF9C3F9ULL, 0xC5A397F666C533C5ULL, 0x25104AB135259425ULL, 0x59ABB220F2597959ULL, 0x84D015AE54842A84ULL, 0x72C5E4A7B772D572ULL, 0x39EC72DDD539E439ULL, 0x4C1698615A4C2D4CULL, 0x5E94BC3BCA5E655EULL, 0x789FF085E778FD78ULL, 0x38E570D8DD38E038ULL, 0x8C980586148C0A8CULL, 0xD117BFB2C6D163D1ULL, 0xA5E4570B41A5AEA5ULL, 0xE2A1D94D43E2AFE2ULL, 0x614EC2F82F619961ULL, 0xB3427B45F1B3F6B3ULL, 0x213442A515218421ULL, 0x9C0825D6949C4A9CULL, 0x1EEE3C66F01E781EULL, 0x4361865222431143ULL, 0xC7B193FC76C73BC7ULL, 0xFC4FE52BB3FCD7FCULL, 0x0424081420041004ULL, 0x51E3A208B2515951ULL, 0x99252FC7BC995E99ULL, 0x6D22DAC44F6DA96DULL, 0x0D651A39680D340DULL, 0xFA79E93583FACFFAULL, 0xDF69A384B6DF5BDFULL, 0x7EA9FC9BD77EE57EULL, 0x241948B43D249024ULL, 0x3BFE76D7C53BEC3BULL, 0xAB9A4B3D31AB96ABULL, 0xCEF081D13ECE1FCEULL, 0x1199225588114411ULL, 0x8F8303890C8F068FULL, 0x4E049C6B4A4E254EULL, 0xB7667351D1B7E6B7ULL, 0xEBE0CB600BEB8BEBULL, 0x3CC178CCFD3CF03CULL, 0x81FD1FBF7C813E81ULL, 0x944035FED4946A94ULL, 0xF71CF30CEBF7FBF7ULL, 0xB9186F67A1B9DEB9ULL, 0x138B265F98134C13ULL, 0x2C51589C7D2CB02CULL, 0xD305BBB8D6D36BD3ULL, 0xE78CD35C6BE7BBE7ULL, 0x6E39DCCB576EA56EULL, 0xC4AA95F36EC437C4ULL, 0x031B060F18030C03ULL, 0x56DCAC138A564556ULL, 0x445E88491A440D44ULL, 0x7FA0FE9EDF7FE17FULL, 0xA9884F3721A99EA9ULL, 0x2A6754824D2AA82AULL, 0xBB0A6B6DB1BBD6BBULL, 0xC1879FE246C123C1ULL, 0x53F1A602A2535153ULL, 0xDC72A58BAEDC57DCULL, 0x0B531627580B2C0BULL, 0x9D0127D39C9D4E9DULL, 0x6C2BD8C1476CAD6CULL, 0x31A462F59531C431ULL, 0x74F3E8B98774CD74ULL, 0xF615F109E3F6FFF6ULL, 0x464C8C430A460546ULL, 0xACA5452609AC8AACULL, 0x89B50F973C891E89ULL, 0x14B42844A0145014ULL, 0xE1BADF425BE1A3E1ULL, 0x16A62C4EB0165816ULL, 0x3AF774D2CD3AE83AULL, 0x6906D2D06F69B969ULL, 0x0941122D48092409ULL, 0x70D7E0ADA770DD70ULL, 0xB66F7154D9B6E2B6ULL, 0xD01EBDB7CED067D0ULL, 0xEDD6C77E3BED93EDULL, 0xCCE285DB2ECC17CCULL, 0x426884572A421542ULL, 0x982C2DC2B4985A98ULL, 0xA4ED550E49A4AAA4ULL, 0x287550885D28A028ULL, 0x5C86B831DA5C6D5CULL, 0xF86BED3F93F8C7F8ULL, 0x86C211A444862286ULL,
};
static UINT8 SBox[256] = {
0x18, 0x23, 0xC6, 0xE8, 0x87, 0xB8, 0x01, 0x4F, 0x36, 0xA6, 0xD2, 0xF5, 0x79, 0x6F, 0x91, 0x52,
0x60, 0xBC, 0x9B, 0x8E, 0xA3, 0x0C, 0x7B, 0x35, 0x1D, 0xE0, 0xD7, 0xC2, 0x2E, 0x4B, 0xFE, 0x57,
0x15, 0x77, 0x37, 0xE5, 0x9F, 0xF0, 0x4A, 0xDA, 0x58, 0xC9, 0x29, 0x0A, 0xB1, 0xA0, 0x6B, 0x85,
0xBD, 0x5D, 0x10, 0xF4, 0xCB, 0x3E, 0x05, 0x67, 0xE4, 0x27, 0x41, 0x8B, 0xA7, 0x7D, 0x95, 0xD8,
0xFB, 0xEE, 0x7C, 0x66, 0xDD, 0x17, 0x47, 0x9E, 0xCA, 0x2D, 0xBF, 0x07, 0xAD, 0x5A, 0x83, 0x33,
0x63, 0x02, 0xAA, 0x71, 0xC8, 0x19, 0x49, 0xD9, 0xF2, 0xE3, 0x5B, 0x88, 0x9A, 0x26, 0x32, 0xB0,
0xE9, 0x0F, 0xD5, 0x80, 0xBE, 0xCD, 0x34, 0x48, 0xFF, 0x7A, 0x90, 0x5F, 0x20, 0x68, 0x1A, 0xAE,
0xB4, 0x54, 0x93, 0x22, 0x64, 0xF1, 0x73, 0x12, 0x40, 0x08, 0xC3, 0xEC, 0xDB, 0xA1, 0x8D, 0x3D,
0x97, 0x00, 0xCF, 0x2B, 0x76, 0x82, 0xD6, 0x1B, 0xB5, 0xAF, 0x6A, 0x50, 0x45, 0xF3, 0x30, 0xEF,
0x3F, 0x55, 0xA2, 0xEA, 0x65, 0xBA, 0x2F, 0xC0, 0xDE, 0x1C, 0xFD, 0x4D, 0x92, 0x75, 0x06, 0x8A,
0xB2, 0xE6, 0x0E, 0x1F, 0x62, 0xD4, 0xA8, 0x96, 0xF9, 0xC5, 0x25, 0x59, 0x84, 0x72, 0x39, 0x4C,
0x5E, 0x78, 0x38, 0x8C, 0xD1, 0xA5, 0xE2, 0x61, 0xB3, 0x21, 0x9C, 0x1E, 0x43, 0xC7, 0xFC, 0x04,
0x51, 0x99, 0x6D, 0x0D, 0xFA, 0xDF, 0x7E, 0x24, 0x3B, 0xAB, 0xCE, 0x11, 0x8F, 0x4E, 0xB7, 0xEB,
0x3C, 0x81, 0x94, 0xF7, 0xB9, 0x13, 0x2C, 0xD3, 0xE7, 0x6E, 0xC4, 0x03, 0x56, 0x44, 0x7F, 0xA9,
0x2A, 0xBB, 0xC1, 0x53, 0xDC, 0x0B, 0x9D, 0x6C, 0x31, 0x74, 0xF6, 0x46, 0xAC, 0x89, 0x14, 0xE1,
0x16, 0x3A, 0x69, 0x09, 0x70, 0xB6, 0xD0, 0xED, 0xCC, 0x42, 0x98, 0xA4, 0x28, 0x5C, 0xF8, 0x86,
};
static const UINT64 arrRoundConstants[10] =
{
0x4F01B887E8C62318ULL,
0x52916F79F5D2A636ULL,
0x357B0CA38E9BBC60ULL,
0x57FE4B2EC2D7E01DULL,
0xDA4AF09FE5377715ULL,
0x856BA0B10A29C958ULL,
0x67053ECBF4105DBDULL,
0xD8957DA78B4127E4ULL,
0x9E4717DD667CEEFBULL,
0x33835AAD07BF2DCAULL,
};
static UINT8 SBoxCalc(UINT8 u)
{
return SBox[u];
}
static void WhirlpoolRound_Table(void *pInOut)
{
const UINT8 *pIn8 = (const UINT8 *)pInOut;
UINT64 blockResult64[8] = {0};
// by source row
for(unsigned i = 0; i < 8; i++)
{
for(unsigned k = 0; k < 8; k++)
{
UINT8 bv = pIn8[(i<<3) ^ k];
blockResult64[7&(i+k)] ^= arrPrecalc[k*256 + bv];
}
}
memcpy(pInOut, blockResult64, 64);
}
static void WhirlpoolIteration_Table(UINT8 state[64], const UINT8 block[64])
{
UINT8 tempState[64];
UINT8 tempBlock[64];
memcpy(tempState, state, 64);
memcpy(tempBlock, block, 64);
for(unsigned i = 0; i < 64; i++)
{
state[i] = tempBlock[i] = tempBlock[i] ^ tempState[i];
}
for(unsigned i = 0; i < 10; i++)
{
WhirlpoolRound_Table(tempState);
WhirlpoolRound_Table(tempBlock);
for(unsigned j = 0; j < 8; j++)
tempState[j] ^= SBoxCalc((i << 3) | j);
for(unsigned j = 0; j < 64; j++)
tempBlock[j] ^= tempState[j];
}
for(unsigned i = 0; i < 64; i++)
state[i] ^= tempBlock[i];
}
void vanilla0_Precompute(
unsigned char *pDst, unsigned sizeDst,
const unsigned char *pSrc, unsigned sizeSrc)
{
const UINT32 *pIn32 = (const UINT32 *)pSrc;
UINT8 hashA[64];
memset(hashA, 0, 64);
UINT32 blockA32[16];
UINT8 blockt[64];
memcpy(blockt, pIn32, 64);
WhirlpoolIteration_Table(hashA, blockt);
blockA32[ 0] = pIn32[16 + 0];
blockA32[ 1] = pIn32[16 + 1];
blockA32[ 2] = pIn32[16 + 2];
blockA32[ 3] = 0; // nonceA
blockA32[ 4] = 0x00000080;
blockA32[ 5] = 0;
blockA32[ 6] = 0;
blockA32[ 7] = 0;
blockA32[ 8] = 0;
blockA32[ 9] = 0;
blockA32[10] = 0;
blockA32[11] = 0;
blockA32[12] = 0;
blockA32[13] = 0;
blockA32[14] = 0;
blockA32[15] = 0x80020000;
//blockA32[ 3] = nonceA;
UINT64 tempBlock64[8];
memcpy(tempBlock64, blockA32, 64);
UINT64 tempStatesPre64[10][8];
memcpy(&tempStatesPre64[0][0], hashA, 64);
// drop hashA
for(unsigned i = 0; i < 8; i++)
{
tempBlock64[i] ^= tempStatesPre64[0][i];
}
for(unsigned i = 0; i < 10; i++)
{
WhirlpoolRound_Table(&tempStatesPre64[i][0]);
*(UINT64*)&tempStatesPre64[i][0] ^= arrRoundConstants[i];
if(i < 9)
memcpy(&tempStatesPre64[i+1][0], &tempStatesPre64[i][0], 64);
}
UINT32 preHWA32 = 0;
preHWA32 ^= *(UINT32*) &(((UINT8*)&tempBlock64[0])[3*8 + 4]);
preHWA32 ^= *(UINT32*) &(((UINT8*)&tempBlock64[0])[5*8 + 4]);
preHWA32 ^= *(UINT32*) &(((UINT8*)&tempStatesPre64[9][0])[3*8 + 4]);
preHWA32 ^= *(UINT32*) &(((UINT8*)&tempStatesPre64[9][0])[5*8 + 4]);
// drop tempStatesPre64[9]
UINT32 nonceXor = tempBlock64[1] >> 32; // XXXXXX00
tempBlock64[1] &= 0x00000000FFFFFFFFULL;
tempBlock64[1] ^= 0x8181818100000000ULL;
WhirlpoolRound_Table(tempBlock64);
for(unsigned j = 0; j < 8; j++)
{
tempBlock64[j] ^= tempStatesPre64[0][j];
}
UINT64 pre5 = tempBlock64[5];
UINT64 pre6 = tempBlock64[6];
UINT64 pre7 = tempBlock64[7];
UINT64 pre0 = tempBlock64[0];
tempBlock64[5] = 0x8181818181818181ULL;
tempBlock64[6] = 0x8181818181818181ULL;
tempBlock64[7] = 0x8181818181818181ULL;
tempBlock64[0] = 0x8181818181818181ULL;
WhirlpoolRound_Table(tempBlock64);
for(unsigned j = 0; j < 8; j++)
{
tempBlock64[j] ^= tempStatesPre64[1][j];
}
#if 1
ASSERT(616 == sizeDst);
GLOBAL UINT64 *arrMidstate = (UINT64 *)pDst;
for(unsigned i = 0; i < 8; ++i)
{
for(unsigned j = 0; j < 8; ++j)
arrMidstate[i*8+j] = tempStatesPre64[i+2][j];
}
memcpy(&arrMidstate[64], tempBlock64, 64);
arrMidstate[64+8+0] = pre5;
arrMidstate[64+8+1] = pre6;
arrMidstate[64+8+2] = pre7;
arrMidstate[64+8+3] = pre0;
arrMidstate[64+8+4] = preHWA32 ^ ((UINT64)nonceXor << 32);
#endif
#if 1
// ROL 3
for(unsigned i = 0; i < 77; ++i)
{
arrMidstate[i] = ROL64(arrMidstate[i], 3);
}
#endif
}
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
smolen (OP)
|
|
January 15, 2016, 05:30:52 AM |
|
#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable
static const CONSTANT UINT64 arrPrecalc_post_l27[4*256] =
{
0x00C300C0C6C183C6ULL, 0x291C611919323578ULL, 0xF631FE3635C48FCBULL, 0x9F443F4747DE6B78ULL, 0x6439343C3E589D0AULL, 0x4DC6D5C5C08B6B15ULL, 0x4008200808481028ULL, 0x12790A7A786CF372ULL, 0x69B6C1B1B4DB6775ULL, 0xCD35153537FA8822ULL, 0xF6937E969065CDEEULL, 0xDFAF9FAFA877B837ULL, 0x7BCFCBCBCCB79407ULL, 0xFB7D0B7B7986F672ULL, 0xE48BF48C8B69FF7FULL, 0x5292AA9297C5203DULL, 0x3B04EB03023E07E9ULL, 0x4DE655E5E1AB2BB4ULL, 0x64DAB4DCD9B95E6DULL, 0x2470147474500C60ULL, 0x8D1DB51D1E92D8ABULL, 0x006180606360C1E3ULL, 0xFBDF8BDBDC27B457ULL, 0xA9AEA1A9AC03570DULL, 0x40EBA0E8EFA9D34FULL, 0x9F053F07059EEA3AULL, 0xB6BBDEBEB90D9D67ULL, 0xF6117E1614E4CF6AULL, 0x6975C171721AE4B3ULL, 0x12598A5A594CB3D3ULL, 0x1FF6FFF7F2EF090DULL, 0x12BA0ABABEAD70B4ULL, 0x40AAA0A8ADE9520DULL, 0xFBBE0BBBBF4775B4ULL, 0x29BEE1B9BC93775DULL, 0xDF2D9F2F2CF6BAB3ULL, 0x64FA34FCF8991ECCULL, 0x9F873F87811FE8BEULL, 0x5251AA525104A3FBULL, 0xF6D27ED6D2254CACULL, 0xD2C3EAC2C515812FULL, 0x36481E4E4E7C7E50ULL, 0xA94D21494BE2946AULL, 0x8051405052D0A112ULL, 0x0D8FF58D8A83FA7FULL, 0x4D05D505064AE8D3ULL, 0xFB5D8B5B58A6B6D3ULL, 0xE429742C2EC8BD5AULL, 0x0DEE75EDE9E33B9CULL, 0x92EB4AEAEC7DD1A6ULL, 0x0082008084810284ULL, 0x9FA7BFA7A03FA81FULL, 0xB6585E5E5EEC5E00ULL, 0x69F7C1F1F69BE637ULL, 0x4028A02829685089ULL, 0xFB3C0B3B3BC67730ULL, 0x9F25BF2724BEAA9BULL, 0x293CE139381275D9ULL, 0x9208CA0A0B9C12C1ULL, 0x6458B45C5D385CE9ULL, 0x8D3D353D3FB2980AULL, 0x7BEF4BEBED97D4A6ULL, 0xE4AB74ACAA49BFDEULL, 0x76C23EC6C2B56CFCULL, 0x5FDE5FDFDB875984ULL, 0x1F74FF77766E0B89ULL, 0x3BE76BE3E5DFC48EULL, 0xBB342B33338E6718ULL, 0x36EA9EEEEBDD3C75ULL, 0xC0BAE0B8BD79725DULL, 0x12380A3A3A2C7230ULL, 0x24F214F4F0D10EE4ULL, 0xF6507E5656A44E28ULL, 0xA96DA1696AC2D4CBULL, 0x8DFE35FDF9731BCCULL, 0xC038E03839F870D9ULL, 0x0D6C756D6D623918ULL, 0x52D3AAD2D585A17FULL, 0x6419B41C1F78DDABULL, 0x299E61999DB337FCULL, 0xFB1C8B1B1AE63791ULL, 0x8010401010902050ULL, 0xCD549555549A49C1ULL, 0x7B8ECB8B8EF71545ULL, 0x76403E4646346E78ULL, 0x40CB20C8CE8993EEULL, 0x9249CA4A49DC9383ULL, 0x36CA1ECECAFD7CD4ULL, 0x1F977F97918FC8EEULL, 0x5F1D5F1F1D46DA42ULL, 0x12DB8ADADDCDB157ULL, 0xA440D44445E06C91ULL, 0x24D294D4D1F14E45ULL, 0x6934C131305A65F1ULL, 0x6996419195FB27D4ULL, 0x4D87D58582CBEA57ULL, 0xDF4C1F4F4F967B50ULL, 0xC079E0787BB8F19BULL, 0x36AB9EAEA99DBD37ULL, 0xA401D40407A0EDD3ULL, 0xCDF615F5F13B0BE4ULL, 0x36689E6E6F5C3EF1ULL, 0xE9A681A1A44B4725ULL, 0xD241EA42419483ABULL, 0x5FFEDFFFFAA71925ULL, 0xBBD7ABD3D46FA47FULL, 0xA483D4848321EF57ULL, 0x12FB0AFAFCEDF1F6ULL, 0xE904010101EA0500ULL, 0x3B45EB43407E86ABULL, 0x80D340D0D651A396ULL, 0xCD74157575BA0960ULL, 0x4DA755A5A3EBAAF6ULL, 0xD2A26AA2A67540CCULL, 0x649BB49C9BF9DF2FULL, 0x69144111117A2550ULL, 0x3B246B23231E4748ULL, 0xDF8F1F8F8957F896ULL, 0xFB9E8B9B9E673515ULL, 0x80924090941122D4ULL, 0xD200EA0203D402E9ULL, 0x0041004042408142ULL, 0xB6195E1E1CACDF42ULL, 0x9F64BF6766FE2BD9ULL, 0xB6DA5EDEDA6D5C84ULL, 0x0D0DF50D0E02F8FBULL, 0xE468746C6C883C18ULL, 0xA9EFA1E9EE43D64FULL, 0x64BB34BCBAD99F8EULL, 0x0000000000000000ULL, 0xB678DE7E7FCC1EA1ULL, 0x295D61595B72B43AULL, 0xBBB62BB3B70F659CULL, 0x241194141730CD83ULL, 0xF6B3FEB6B1458D4FULL, 0xC0DB60D8DE19B3BEULL, 0x0DAF75ADABA3BADEULL, 0x8D7C357D7DF21948ULL, 0xBB55AB5350EEA6FBULL, 0xD282EA828755006DULL, 0x92284A2A2ABC5260ULL, 0x5F9F5F9F99C7D8C6ULL, 0xE9860181856B0784ULL, 0x5F7CDF7F7E261BA1ULL, 0x29FFE1F9FED3F61FULL, 0x92AA4AAAAE3D50E4ULL, 0xCD15951516DAC883ULL, 0x1F547F57574E4B28ULL, 0x7B2C4B2B2B565760ULL, 0xCDD695D5D01B4B45ULL, 0x297DE1797A52F49BULL, 0x76013E060474EF3AULL, 0xF6F2FEF6F3050C0DULL, 0x00E380E0E7E1C367ULL, 0xDFEE9FEFEA373975ULL, 0x92694A6A68FCD322ULL, 0x2493949493B1CF07ULL, 0x7BAE4BABAFD755E4ULL, 0x8030C03031B060F1ULL, 0x2450945455704CC1ULL, 0xCD979595925BCA07ULL, 0x1F35FF37342E8ACBULL, 0x8071C07073F0E1B3ULL, 0xC0FBE0F8FF39F31FULL, 0xBB14AB1312AE27B9ULL, 0x76A3BEA6A1D5AD1FULL, 0x4D44D545440A6991ULL, 0x24B314B4B2918FA6ULL, 0xDFCE1FCFCB1779D4ULL, 0x36299E2E2D1CBFB3ULL, 0xA92CA12928825589ULL, 0x92CBCACACD5D9107ULL, 0xA42154242680AD72ULL, 0xBB96AB93962F253DULL, 0xA9CF21C9CF6396EEULL, 0xD2616A6260B4C30AULL, 0x52F32AF2F4A5E1DEULL, 0x3BC7EBC3C4FF842FULL, 0xE9C701C1C72B86C6ULL, 0xA460546464C02C30ULL, 0x368B1E8E88BDFD96ULL, 0x0D2D752D2F22B85AULL, 0x1F157F17150ECA6AULL, 0x7B0CCB0B0A7617C1ULL, 0x8D9FB59D9A13DA2FULL, 0xA90C210909A21528ULL, 0xA4E254E4E0412EB4ULL, 0x80F3C0F0F771E337ULL, 0x12188A1A1B0C3291ULL, 0xB639DE3E3D8C9FE3ULL, 0x9FE6BFE7E27F295DULL, 0x00208020212040A1ULL, 0x928ACA8A8F1D1045ULL, 0xE4CAF4CCC9297E3DULL, 0x7B6D4B6B6916D622ULL, 0x4069A0686B28D1CBULL, 0x1FD67FD7D3CF49ACULL, 0xB6FADEFEFB4D1C25ULL, 0xBBF72BF3F54FE4DEULL, 0xE924812120CA45A1ULL, 0x29DF61D9DFF3B6BEULL, 0x8D5CB55D5CD259E9ULL, 0xF670FE7677840E89ULL, 0x408A20888CC912ACULL, 0x6478347C7C181C48ULL, 0x52712A727024E35AULL, 0x8DBF35BDBB339A8EULL, 0x5F5C5F5F5F065B00ULL, 0xE9E781E1E60BC667ULL, 0xE409F40C0FE8FDFBULL, 0xA4A354A4A201AFF6ULL, 0x5FBFDFBFB8E79867ULL, 0x0DCEF5CDC8C37B3DULL, 0xC09A60989C5932FCULL, 0xE9658161628AC4E3ULL, 0xB69B5E9E982DDDC6ULL, 0x5F3DDF3F3C669AE3ULL, 0xBB752B7371CEE65AULL, 0x7621BE262554AF9BULL, 0xC018601818D83078ULL, 0x52B22AB2B6E5609CULL, 0xD2206A2222F44248ULL, 0xFBFF0BFBFD07F4F6ULL, 0x0D4CF54D4C4279B9ULL, 0x69554151533AA412ULL, 0x8DDEB5DDD8535B6DULL, 0x36091E0E0C3CFF12ULL, 0x129A8A9A9F8D3015ULL, 0x76E2BEE6E3952C5DULL, 0xC05960585A98B13AULL, 0xE4EA74ECE8093E9CULL, 0x3B656B63615EC60AULL, 0xA98E21898D2317ACULL, 0x3BA66BA3A79F45CCULL, 0x1FB7FFB7B0AF884FULL, 0x52302A3232646218ULL, 0x4D645565652A2930ULL, 0xE448F44C4DA87CB9ULL, 0x00A280A0A5A14225ULL, 0xDF0D1F0F0DD6FA12ULL, 0x80B2C0B0B5316275ULL, 0x69D741D1D7BBA696ULL, 0x7B4DCB4B48369683ULL, 0x404920484A08916AULL, 0x3B86EB8386BF056DULL, 0xCDB715B5B37B8AA6ULL, 0x76833E8680F5EDBEULL, 0xDF6C9F6F6EB63BF1ULL, 0x7660BE6667142ED9ULL, 0x5210AA12134422B9ULL, 0xA4C2D4C4C1616E15ULL, 0x4D255525276AA872ULL, 0xE945014143AA8442ULL, 0xD2E36AE2E435C18EULL, 0x9FC63FC7C35F69FCULL, 0x2431143436108D22ULL,
};
static const CONSTANT UINT64 arrPrecalc_post_r3[4*256] =
{
0xC183C600C300C0C6ULL, 0x323578291C611919ULL, 0xC48FCBF631FE3635ULL, 0xDE6B789F443F4747ULL, 0x589D0A6439343C3EULL, 0x8B6B154DC6D5C5C0ULL, 0x4810284008200808ULL, 0x6CF37212790A7A78ULL, 0xDB677569B6C1B1B4ULL, 0xFA8822CD35153537ULL, 0x65CDEEF6937E9690ULL, 0x77B837DFAF9FAFA8ULL, 0xB794077BCFCBCBCCULL, 0x86F672FB7D0B7B79ULL, 0x69FF7FE48BF48C8BULL, 0xC5203D5292AA9297ULL, 0x3E07E93B04EB0302ULL, 0xAB2BB44DE655E5E1ULL, 0xB95E6D64DAB4DCD9ULL, 0x500C602470147474ULL, 0x92D8AB8D1DB51D1EULL, 0x60C1E30061806063ULL, 0x27B457FBDF8BDBDCULL, 0x03570DA9AEA1A9ACULL, 0xA9D34F40EBA0E8EFULL, 0x9EEA3A9F053F0705ULL, 0x0D9D67B6BBDEBEB9ULL, 0xE4CF6AF6117E1614ULL, 0x1AE4B36975C17172ULL, 0x4CB3D312598A5A59ULL, 0xEF090D1FF6FFF7F2ULL, 0xAD70B412BA0ABABEULL, 0xE9520D40AAA0A8ADULL, 0x4775B4FBBE0BBBBFULL, 0x93775D29BEE1B9BCULL, 0xF6BAB3DF2D9F2F2CULL, 0x991ECC64FA34FCF8ULL, 0x1FE8BE9F873F8781ULL, 0x04A3FB5251AA5251ULL, 0x254CACF6D27ED6D2ULL, 0x15812FD2C3EAC2C5ULL, 0x7C7E5036481E4E4EULL, 0xE2946AA94D21494BULL, 0xD0A1128051405052ULL, 0x83FA7F0D8FF58D8AULL, 0x4AE8D34D05D50506ULL, 0xA6B6D3FB5D8B5B58ULL, 0xC8BD5AE429742C2EULL, 0xE33B9C0DEE75EDE9ULL, 0x7DD1A692EB4AEAECULL, 0x8102840082008084ULL, 0x3FA81F9FA7BFA7A0ULL, 0xEC5E00B6585E5E5EULL, 0x9BE63769F7C1F1F6ULL, 0x6850894028A02829ULL, 0xC67730FB3C0B3B3BULL, 0xBEAA9B9F25BF2724ULL, 0x1275D9293CE13938ULL, 0x9C12C19208CA0A0BULL, 0x385CE96458B45C5DULL, 0xB2980A8D3D353D3FULL, 0x97D4A67BEF4BEBEDULL, 0x49BFDEE4AB74ACAAULL, 0xB56CFC76C23EC6C2ULL, 0x8759845FDE5FDFDBULL, 0x6E0B891F74FF7776ULL, 0xDFC48E3BE76BE3E5ULL, 0x8E6718BB342B3333ULL, 0xDD3C7536EA9EEEEBULL, 0x79725DC0BAE0B8BDULL, 0x2C723012380A3A3AULL, 0xD10EE424F214F4F0ULL, 0xA44E28F6507E5656ULL, 0xC2D4CBA96DA1696AULL, 0x731BCC8DFE35FDF9ULL, 0xF870D9C038E03839ULL, 0x6239180D6C756D6DULL, 0x85A17F52D3AAD2D5ULL, 0x78DDAB6419B41C1FULL, 0xB337FC299E61999DULL, 0xE63791FB1C8B1B1AULL, 0x9020508010401010ULL, 0x9A49C1CD54955554ULL, 0xF715457B8ECB8B8EULL, 0x346E7876403E4646ULL, 0x8993EE40CB20C8CEULL, 0xDC93839249CA4A49ULL, 0xFD7CD436CA1ECECAULL, 0x8FC8EE1F977F9791ULL, 0x46DA425F1D5F1F1DULL, 0xCDB15712DB8ADADDULL, 0xE06C91A440D44445ULL, 0xF14E4524D294D4D1ULL, 0x5A65F16934C13130ULL, 0xFB27D46996419195ULL, 0xCBEA574D87D58582ULL, 0x967B50DF4C1F4F4FULL, 0xB8F19BC079E0787BULL, 0x9DBD3736AB9EAEA9ULL, 0xA0EDD3A401D40407ULL, 0x3B0BE4CDF615F5F1ULL, 0x5C3EF136689E6E6FULL, 0x4B4725E9A681A1A4ULL, 0x9483ABD241EA4241ULL, 0xA719255FFEDFFFFAULL, 0x6FA47FBBD7ABD3D4ULL, 0x21EF57A483D48483ULL, 0xEDF1F612FB0AFAFCULL, 0xEA0500E904010101ULL, 0x7E86AB3B45EB4340ULL, 0x51A39680D340D0D6ULL, 0xBA0960CD74157575ULL, 0xEBAAF64DA755A5A3ULL, 0x7540CCD2A26AA2A6ULL, 0xF9DF2F649BB49C9BULL, 0x7A25506914411111ULL, 0x1E47483B246B2323ULL, 0x57F896DF8F1F8F89ULL, 0x673515FB9E8B9B9EULL, 0x1122D48092409094ULL, 0xD402E9D200EA0203ULL, 0x4081420041004042ULL, 0xACDF42B6195E1E1CULL, 0xFE2BD99F64BF6766ULL, 0x6D5C84B6DA5EDEDAULL, 0x02F8FB0D0DF50D0EULL, 0x883C18E468746C6CULL, 0x43D64FA9EFA1E9EEULL, 0xD99F8E64BB34BCBAULL, 0x0000000000000000ULL, 0xCC1EA1B678DE7E7FULL, 0x72B43A295D61595BULL, 0x0F659CBBB62BB3B7ULL, 0x30CD832411941417ULL, 0x458D4FF6B3FEB6B1ULL, 0x19B3BEC0DB60D8DEULL, 0xA3BADE0DAF75ADABULL, 0xF219488D7C357D7DULL, 0xEEA6FBBB55AB5350ULL, 0x55006DD282EA8287ULL, 0xBC526092284A2A2AULL, 0xC7D8C65F9F5F9F99ULL, 0x6B0784E986018185ULL, 0x261BA15F7CDF7F7EULL, 0xD3F61F29FFE1F9FEULL, 0x3D50E492AA4AAAAEULL, 0xDAC883CD15951516ULL, 0x4E4B281F547F5757ULL, 0x5657607B2C4B2B2BULL, 0x1B4B45CDD695D5D0ULL, 0x52F49B297DE1797AULL, 0x74EF3A76013E0604ULL, 0x050C0DF6F2FEF6F3ULL, 0xE1C36700E380E0E7ULL, 0x373975DFEE9FEFEAULL, 0xFCD32292694A6A68ULL, 0xB1CF072493949493ULL, 0xD755E47BAE4BABAFULL, 0xB060F18030C03031ULL, 0x704CC12450945455ULL, 0x5BCA07CD97959592ULL, 0x2E8ACB1F35FF3734ULL, 0xF0E1B38071C07073ULL, 0x39F31FC0FBE0F8FFULL, 0xAE27B9BB14AB1312ULL, 0xD5AD1F76A3BEA6A1ULL, 0x0A69914D44D54544ULL, 0x918FA624B314B4B2ULL, 0x1779D4DFCE1FCFCBULL, 0x1CBFB336299E2E2DULL, 0x825589A92CA12928ULL, 0x5D910792CBCACACDULL, 0x80AD72A421542426ULL, 0x2F253DBB96AB9396ULL, 0x6396EEA9CF21C9CFULL, 0xB4C30AD2616A6260ULL, 0xA5E1DE52F32AF2F4ULL, 0xFF842F3BC7EBC3C4ULL, 0x2B86C6E9C701C1C7ULL, 0xC02C30A460546464ULL, 0xBDFD96368B1E8E88ULL, 0x22B85A0D2D752D2FULL, 0x0ECA6A1F157F1715ULL, 0x7617C17B0CCB0B0AULL, 0x13DA2F8D9FB59D9AULL, 0xA21528A90C210909ULL, 0x412EB4A4E254E4E0ULL, 0x71E33780F3C0F0F7ULL, 0x0C329112188A1A1BULL, 0x8C9FE3B639DE3E3DULL, 0x7F295D9FE6BFE7E2ULL, 0x2040A10020802021ULL, 0x1D1045928ACA8A8FULL, 0x297E3DE4CAF4CCC9ULL, 0x16D6227B6D4B6B69ULL, 0x28D1CB4069A0686BULL, 0xCF49AC1FD67FD7D3ULL, 0x4D1C25B6FADEFEFBULL, 0x4FE4DEBBF72BF3F5ULL, 0xCA45A1E924812120ULL, 0xF3B6BE29DF61D9DFULL, 0xD259E98D5CB55D5CULL, 0x840E89F670FE7677ULL, 0xC912AC408A20888CULL, 0x181C486478347C7CULL, 0x24E35A52712A7270ULL, 0x339A8E8DBF35BDBBULL, 0x065B005F5C5F5F5FULL, 0x0BC667E9E781E1E6ULL, 0xE8FDFBE409F40C0FULL, 0x01AFF6A4A354A4A2ULL, 0xE798675FBFDFBFB8ULL, 0xC37B3D0DCEF5CDC8ULL, 0x5932FCC09A60989CULL, 0x8AC4E3E965816162ULL, 0x2DDDC6B69B5E9E98ULL, 0x669AE35F3DDF3F3CULL, 0xCEE65ABB752B7371ULL, 0x54AF9B7621BE2625ULL, 0xD83078C018601818ULL, 0xE5609C52B22AB2B6ULL, 0xF44248D2206A2222ULL, 0x07F4F6FBFF0BFBFDULL, 0x4279B90D4CF54D4CULL, 0x3AA4126955415153ULL, 0x535B6D8DDEB5DDD8ULL, 0x3CFF1236091E0E0CULL, 0x8D3015129A8A9A9FULL, 0x952C5D76E2BEE6E3ULL, 0x98B13AC05960585AULL, 0x093E9CE4EA74ECE8ULL, 0x5EC60A3B656B6361ULL, 0x2317ACA98E21898DULL, 0x9F45CC3BA66BA3A7ULL, 0xAF884F1FB7FFB7B0ULL, 0x64621852302A3232ULL, 0x2A29304D64556565ULL, 0xA87CB9E448F44C4DULL, 0xA1422500A280A0A5ULL, 0xD6FA12DF0D1F0F0DULL, 0x31627580B2C0B0B5ULL, 0xBBA69669D741D1D7ULL, 0x3696837B4DCB4B48ULL, 0x08916A404920484AULL, 0xBF056D3B86EB8386ULL, 0x7B8AA6CDB715B5B3ULL, 0xF5EDBE76833E8680ULL, 0xB63BF1DF6C9F6F6EULL, 0x142ED97660BE6667ULL, 0x4422B95210AA1213ULL, 0x616E15A4C2D4C4C1ULL, 0x6AA8724D25552527ULL, 0xAA8442E945014143ULL, 0x35C18ED2E36AE2E4ULL, 0x5F69FC9FC63FC7C3ULL, 0x108D222431143436ULL,
};
#ifdef __OPENCL_VERSION__
#define X64 uint2
#define ASX64(v) (as_uint2(v))
#else
#define X64 UINT64
#define ASX64(v) (v)
#endif
#define Toff8(off8) (*(const LOCAL UINT64*)&(((const LOCAL UINT8*)TAll_local)[off8]))
#define TCoff8(off8) (*(const CONSTANT UINT64*)&(((const CONSTANT UINT8*)arrPrecalc_post)[off8]))
#define Toff8_r3(off8) (*(const LOCAL UINT64*)&(((const LOCAL UINT8*)TAll_local_r3)[off8]))
#define TCoff8_r3(off8) (*(const CONSTANT UINT64*)&(((const CONSTANT UINT8*)arrPrecalc_post_r3)[off8]))
#define TCoff8_l27(off8) (*(const CONSTANT UINT64*)&(((const CONSTANT UINT8*)arrPrecalc_post_l27)[off8]))
#define TC0off8_l27(off8) (*(const CONSTANT UINT64*)&(((const CONSTANT UINT8*)0)[off8]))
#ifdef __OPENCL_VERSION__
#define LUT0_r3(v) ASX64(Toff8_r3(v.x & 0x7F8))
#define LUT1_r3(v) ASX64(ROL64(Toff8_r3((v.x >> 8) & 0x7F8U), 8))
#define LUT2_r3(v) ASX64(ROL64(Toff8_r3((v.x >> 16) & 0x7F8U), 16));
#define LUT3_r3(v) ASX64(TC0off8_l27(bitselect(baseL27, (UINT32)(as_ulong(v) >> 24), 0x7F8U)))
#define LUT4_r3(v) (ASX64(Toff8_r3((v.y) & 0x7F8U))).yx
#define LUT5_r3(v) (ASX64(ROL64(Toff8_r3((v.y >> 8) & 0x7F8U), 8))).yx
#define LUT6_r3(v) (ASX64(ROL64(Toff8_r3((v.y >> 16) & 0x7F8U), 16))).yx;
#define LUT7_r3(v) (ASX64(TC0off8_l27(bitselect(baseL27, amd_bitalign(v.x, v.y, 24), 0x7F8U)))).yx
#else
#define LUT0_r3(v) ASX64(Toff8_r3((v) & 0x7F8))
#define LUT1_r3(v) ASX64(ROL64(Toff8_r3((v >> 8) & 0x7F8U), 8))
#define LUT2_r3(v) ASX64(ROL64(Toff8_r3((v >> 16) & 0x7F8U), 16))
#define LUT3_r3(v) ASX64(ROL64(Toff8_r3((v >> 24) & 0x7F8U), 24))
#define LUT4_r3(v) ASX64(ROL64(Toff8_r3((v >> 32) & 0x7F8U), 32))
#define LUT5_r3(v) ASX64(ROL64(Toff8_r3((v >> 40) & 0x7F8U), 40))
#define LUT6_r3(v) ASX64(ROL64(Toff8_r3((v >> 48) & 0x7F8U), 48))
#define LUT7_r3(v) ASX64(ROL64(Toff8_r3(ROR64(v, 56) & 0x7F8U), 56))
#endif
KERNEL void vanilla0_post(
GLOBAL UINT32 *pOut32,
GLOBAL const UINT32 *pIn32
#ifdef __OPENCL_VERSION__
, UINT32 nMask
#else
, UINT32 GLOBALID
#endif
)
{
#ifdef __OPENCL_VERSION__
#else
UINT32 nMask = 0xFFFFFFFF;
#endif
GLOBAL const UINT64 *arrMidstate = (GLOBAL const UINT64 *)pIn32;
#define baseL27 ((UINT32)&arrPrecalc_post_l27[0])
LOCAL X64 TAll_local_r3[256*1];
{
UINT32 nLocalId = LOCALID;
for(unsigned i = 0; i < 256; i += WORKSIZE)
{
TAll_local_r3[i + nLocalId]
= ASX64(arrPrecalc_post_r3[i + nLocalId]);
}
}
GLOBAL const UINT64 *post_pStatesPre64_pr3 = arrMidstate;
X64 stateAX64_pr3[8];
X64 stateBX64_pr3[8];
for(unsigned i = 0; i < 8; ++i)
{
stateAX64_pr3[i] = ASX64(arrMidstate[64+i]);
}
X64 post_pre5_pr3 = ASX64(arrMidstate[64+8+0]);
X64 post_pre6_pr3 = ASX64(arrMidstate[64+8+1]);
X64 post_pre7_pr3 = ASX64(arrMidstate[64+8+2]);
X64 post_pre0_pr3 = ASX64(arrMidstate[64+8+3]);
#ifdef __OPENCL_VERSION__
X64 post_nonceXored_pr3 = ASX64(arrMidstate[64+8+4]);
post_nonceXored_pr3.x ^= GLOBALID >> 29;
post_nonceXored_pr3.y ^= GLOBALID << 3;
#else
X64 post_tmp_pr3 = ASX64(arrMidstate[64+8+4]);
UINT32 post_preHWA32_pr0 = ROR64(post_tmp_pr3, 3) & 0xFFFFFFFF;
X64 post_nonceXored_pr3 = post_tmp_pr3 ^ ROR64(((UINT64)GLOBALID), 29); // & 0x00FFFF00
#endif
post_pre5_pr3 ^= LUT4_r3(ASX64(post_nonceXored_pr3));
stateAX64_pr3[7&(5+0)] ^= LUT0_r3(post_pre5_pr3);
stateAX64_pr3[7&(5+1)] ^= LUT1_r3(post_pre5_pr3);
stateAX64_pr3[7&(5+2)] ^= LUT2_r3(post_pre5_pr3);
stateAX64_pr3[7&(5+3)] ^= LUT3_r3(post_pre5_pr3);
stateAX64_pr3[7&(5+4)] ^= LUT4_r3(post_pre5_pr3);
stateAX64_pr3[7&(5+5)] ^= LUT5_r3(post_pre5_pr3);
stateAX64_pr3[7&(5+6)] ^= LUT6_r3(post_pre5_pr3);
stateAX64_pr3[7&(5+7)] ^= LUT7_r3(post_pre5_pr3);
post_pre6_pr3 ^= LUT5_r3(ASX64(post_nonceXored_pr3));
stateAX64_pr3[7&(6+0)] ^= LUT0_r3(post_pre6_pr3);
stateAX64_pr3[7&(6+1)] ^= LUT1_r3(post_pre6_pr3);
stateAX64_pr3[7&(6+2)] ^= LUT2_r3(post_pre6_pr3);
stateAX64_pr3[7&(6+3)] ^= LUT3_r3(post_pre6_pr3);
stateAX64_pr3[7&(6+4)] ^= LUT4_r3(post_pre6_pr3);
stateAX64_pr3[7&(6+5)] ^= LUT5_r3(post_pre6_pr3);
stateAX64_pr3[7&(6+6)] ^= LUT6_r3(post_pre6_pr3);
stateAX64_pr3[7&(6+7)] ^= LUT7_r3(post_pre6_pr3);
post_pre7_pr3 ^= LUT6_r3(ASX64(post_nonceXored_pr3));
stateAX64_pr3[7&(7+0)] ^= LUT0_r3(post_pre7_pr3);
stateAX64_pr3[7&(7+1)] ^= LUT1_r3(post_pre7_pr3);
stateAX64_pr3[7&(7+2)] ^= LUT2_r3(post_pre7_pr3);
stateAX64_pr3[7&(7+3)] ^= LUT3_r3(post_pre7_pr3);
stateAX64_pr3[7&(7+4)] ^= LUT4_r3(post_pre7_pr3);
stateAX64_pr3[7&(7+5)] ^= LUT5_r3(post_pre7_pr3);
stateAX64_pr3[7&(7+6)] ^= LUT6_r3(post_pre7_pr3);
stateAX64_pr3[7&(7+7)] ^= LUT7_r3(post_pre7_pr3);
post_pre0_pr3 ^= LUT7_r3(ASX64(post_nonceXored_pr3));
stateAX64_pr3[7&(0+0)] ^= LUT0_r3(post_pre0_pr3);
stateAX64_pr3[7&(0+1)] ^= LUT1_r3(post_pre0_pr3);
stateAX64_pr3[7&(0+2)] ^= LUT2_r3(post_pre0_pr3);
stateAX64_pr3[7&(0+3)] ^= LUT3_r3(post_pre0_pr3);
stateAX64_pr3[7&(0+4)] ^= LUT4_r3(post_pre0_pr3);
stateAX64_pr3[7&(0+5)] ^= LUT5_r3(post_pre0_pr3);
stateAX64_pr3[7&(0+6)] ^= LUT6_r3(post_pre0_pr3);
stateAX64_pr3[7&(0+7)] ^= LUT7_r3(post_pre0_pr3);
{
for(unsigned round = 0; round < 3; round++)
{
for(unsigned j = 0; j < 8; j++)
{
stateBX64_pr3[j] = ASX64(post_pStatesPre64_pr3[round*16 + 0 +j]);
}
for(unsigned p = 0; p < 8; ++p)
{
stateBX64_pr3[7&(p+0)] ^= LUT0_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+1)] ^= LUT1_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+2)] ^= LUT2_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+3)] ^= LUT3_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+4)] ^= LUT4_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+5)] ^= LUT5_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+6)] ^= LUT6_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+7)] ^= LUT7_r3(stateAX64_pr3[p]);
}
for(unsigned j = 0; j < 8; j++)
{
stateAX64_pr3[j] = ASX64(post_pStatesPre64_pr3[round*16 + 8 +j]);
}
for(unsigned p = 0; p < 8; ++p)
{
stateAX64_pr3[7&(p+0)] ^= LUT0_r3(stateBX64_pr3[p]);
stateAX64_pr3[7&(p+1)] ^= LUT1_r3(stateBX64_pr3[p]);
stateAX64_pr3[7&(p+2)] ^= LUT2_r3(stateBX64_pr3[p]);
stateAX64_pr3[7&(p+3)] ^= LUT3_r3(stateBX64_pr3[p]);
stateAX64_pr3[7&(p+4)] ^= LUT4_r3(stateBX64_pr3[p]);
stateAX64_pr3[7&(p+5)] ^= LUT5_r3(stateBX64_pr3[p]);
stateAX64_pr3[7&(p+6)] ^= LUT6_r3(stateBX64_pr3[p]);
stateAX64_pr3[7&(p+7)] ^= LUT7_r3(stateBX64_pr3[p]);
}
}
for(unsigned j = 0; j < 8; j++)
{
stateBX64_pr3[j] = ASX64(post_pStatesPre64_pr3[6*8 + 0 +j]);
}
for(unsigned p = 0; p < 8; ++p)
{
stateBX64_pr3[7&(p+0)] ^= LUT0_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+1)] ^= LUT1_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+2)] ^= LUT2_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+3)] ^= LUT3_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+4)] ^= LUT4_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+5)] ^= LUT5_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+6)] ^= LUT6_r3(stateAX64_pr3[p]);
stateBX64_pr3[7&(p+7)] ^= LUT7_r3(stateAX64_pr3[p]);
}
// by result row; 3,5
X64 result64_pr3 = LUT0_r3(stateBX64_pr3[7&(8+3-0)]);
result64_pr3 ^= LUT1_r3(stateBX64_pr3[7&(8+3-1)]);
result64_pr3 ^= LUT2_r3(stateBX64_pr3[7&(8+3-2)]);
result64_pr3 ^= LUT3_r3(stateBX64_pr3[7&(8+3-3)]);
result64_pr3 ^= LUT4_r3(stateBX64_pr3[7&(8+3-4)]);
result64_pr3 ^= LUT5_r3(stateBX64_pr3[7&(8+3-5)]);
result64_pr3 ^= LUT6_r3(stateBX64_pr3[7&(8+3-6)]);
result64_pr3 ^= LUT7_r3(stateBX64_pr3[7&(8+3-7)]);
result64_pr3 ^= LUT0_r3(stateBX64_pr3[7&(8+5-0)]);
result64_pr3 ^= LUT1_r3(stateBX64_pr3[7&(8+5-1)]);
result64_pr3 ^= LUT2_r3(stateBX64_pr3[7&(8+5-2)]);
result64_pr3 ^= LUT3_r3(stateBX64_pr3[7&(8+5-3)]);
result64_pr3 ^= LUT4_r3(stateBX64_pr3[7&(8+5-4)]);
result64_pr3 ^= LUT5_r3(stateBX64_pr3[7&(8+5-5)]);
result64_pr3 ^= LUT6_r3(stateBX64_pr3[7&(8+5-6)]);
result64_pr3 ^= LUT7_r3(stateBX64_pr3[7&(8+5-7)]);
#ifdef __OPENCL_VERSION__
X64 post_tmp_pr3 = ASX64(arrMidstate[64+8+4]);
UINT32 post_preHWA32_pr0 = amd_bitalign(post_tmp_pr3.y, post_tmp_pr3.x, 3);
if(!(nMask & (post_preHWA32_pr0 ^ amd_bitalign(result64_pr3.x, result64_pr3.y, 3))))
{
pOut32[atom_inc(&pOut32[0]) + 1] = GLOBALID;
}
#else
post_preHWA32_pr0 ^= ROR64(result64_pr3, 32+3);
if(!(post_preHWA32_pr0 & nMask))
{
pOut32[++pOut32[0]] = GLOBALID;
}
#endif
}
}
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
pallas
Legendary
Offline
Activity: 2716
Merit: 1094
Black Belt Developer
|
|
January 15, 2016, 09:51:47 AM |
|
interesting, I'll have a look asap, thanks for sharing. but my kernel, which is a little faster on hawaii and little slower on tahiti, is just 1/4 lines of code.
|
|
|
|
smolen (OP)
|
|
January 21, 2016, 08:24:48 AM |
|
interesting, I'll have a look asap, thanks for sharing. but my kernel, which is a little faster on hawaii and little slower on tahiti, is just 1/4 lines of code.
Yes, it's overengineered, some failed optimization attempts still live in the code. OTOH, smelter still has no overclocking code, may be putting this kernel as-is into sgminer will bring some speed boost.
|
Of course I gave you bad advice. Good one is way out of your price range.
|
|
|
|