2026-06-27 21:28:54 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| MurMur.mqh |
|
| | | //| Copyright 2026, Niquel Mendoza. |
|
| | | //| https://www.mql5.com/ |
|
| | | //+------------------------------------------------------------------+
|
| | | #property copyright "Copyright 2026, Niquel Mendoza."
|
| | | #property link "https://www.mql5.com/"
|
| | | #property strict
|
| | |
|
| | | #ifndef SIMPHASH_SRC_HASH_UL1_MURMUR_MQH
|
| | | #define SIMPHASH_SRC_HASH_UL1_MURMUR_MQH
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | #include "..\\Def.mqh"
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | namespace TSN
|
| | | {
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | class CHash1MurMur : public IHashGeneratorWSeed
|
| | | {
|
| | | public:
|
| | | CHash1MurMur(void) {}
|
| | | ~CHash1MurMur(void) {}
|
| | |
|
2026-07-28 11:19:10 -05:00 | | | ulong Hash(ulong v, const ulong seed) override final
|
2026-06-27 21:28:54 -05:00 | | | {
|
2026-07-28 11:19:10 -05:00 | | | v ^= seed;
|
| | | v ^= v >> 16;
|
| | | v *= 0x45d9f3b37197344d;
|
| | | v ^= v >> 16;
|
| | | v *= 0x45d9f3b37197344d;
|
| | | v ^= v >> 16;
|
| | | return v;
|
2026-06-27 21:28:54 -05:00 | | | }
|
| | |
|
| | | void BuildString(string& data, const string& table_seeds_name) override final
|
| | | {
|
| | | data += "//---\r\n";
|
| | | data += StringFormat(" ulong h = key_hash ^ %s[seed_index];\r\n", table_seeds_name);
|
| | | data += " h ^= h >> 16;\r\n";
|
| | | data += " h *= 0x45d9f3b37197344d;\r\n";
|
| | | data += " h ^= h >> 16;\r\n";
|
| | | data += " h *= 0x45d9f3b37197344d;\r\n";
|
| | | data += " h ^= h >> 16;\r\n";
|
| | | data += "\r\n";
|
| | | }
|
| | | void AddIncludes(string& data) override final
|
| | | {
|
| | | // Nada
|
| | | }
|
| | | };
|
| | |
|
| | | }
|
| | | //+------------------------------------------------------------------+
|
2026-07-28 11:19:10 -05:00 | | | #endif // SIMPHASH_SRC_HASH_UL1_MURMUR_MQH
|