forked from nique_372/SimPHash
74 lines
2.6 KiB
MQL4
74 lines
2.6 KiB
MQL4
//+-------------------------------------------------------------------+
| |||
//| Include generado por la herramienta PerfectHash SimPHash |
| |||
//| Esta heramienta forma parte del ecositema TSN |
| |||
//| Repositorio: https://forge.mql5.io/nique_372/SimPHash |
| |||
//+-------------------------------------------------------------------+
| |||
#property copyright "Copyright 2026, Niquel Mendoza"
| |||
#property link "https://www.mql5.com/"
| |||
#property strict
| |||
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| |
| |||
//+------------------------------------------------------------------+
| |||
#include <TSN/Tables/AllHashes.mqh>
| |||
//+------------------------------------------------------------------+
| |||
//| |
| |||
//+------------------------------------------------------------------+
| |||
#define SIMPHASH_ENUMREG_TABLE_SIZE (7ULL)
| |||
#define SIMPHASH_ENUMREG_BUCKET_SIZE (3ULL)
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| |
| |||
//+------------------------------------------------------------------+
| |||
namespace TSN
| |||
{
| |||
const ulong g_simphash_enum_reg_seeds[SIMPHASH_ENUMREG_BUCKET_SIZE] =
| |||
{
| |||
2ULL,
| |||
0ULL,
| |||
0ULL
| |||
};
| |||
| |||
const ulong g_simphash_enum_reg_hashes[SIMPHASH_ENUMREG_TABLE_SIZE] =
| |||
{
| |||
1930730962192812994ULL, // HASH_UL1_MUR_MUR
| |||
13338143095209800316ULL, // PHASH_RANDOM_MATH_RAND
| |||
13403357614718791261ULL, // HASH_UL1_SPLITMIX
| |||
0ULL, // invalid
| |||
4487711572970010124ULL, // PHASH_RANDOM_MATH_XOSHIRO256
| |||
9986671065094935476ULL, // TSN_PHASH_TYPE_FNV1A_64
| |||
17911910621320999858ULL
| |||
};
| |||
| |||
long g_simphash_enum_reg_values[SIMPHASH_ENUMREG_TABLE_SIZE] =
| |||
{
| |||
0, // HASH_UL1_MUR_MUR
| |||
0, // PHASH_RANDOM_MATH_RAND
| |||
1, // HASH_UL1_SPLITMIX
| |||
-1,
| |||
1, // PHASH_RANDOM_MATH_XOSHIRO256
| |||
0, // TSN_PHASH_TYPE_FNV1A_64
| |||
1 // TSN_PHASH_TYPE_XXHASH_64
| |||
};
| |||
| |||
/*
| |||
long TempHashCustom(const string& key)
| |||
{
| |||
//---
| |||
const int len = StringLen(key);
| |||
ulong key_hash = 14695981039346656037ULL;
| |||
FNV1a_64_AsM_Str(key, len, key_hash, 1099511628211ULL)
| |||
| |||
const int seed_index = int(key_hash % SIMPHASH_ENUMREG_BUCKET_SIZE);
| |||
//---
| |||
ulong h = key_hash + g_simphash_enum_reg_seeds[seed_index] * 0x9e3779b97f4a7c15;
| |||
h = (h ^ (h >> 30)) * 0xbf58476d1ce4e5b9;
| |||
h = (h ^ (h >> 27)) * 0x94d049bb133111eb;
| |||
h ^= (h >> 31);
| |||
| |||
const int fi = int(h % SIMPHASH_ENUMREG_TABLE_SIZE);
| |||
return g_simphash_enum_reg_hashes[fi] == key_hash ? g_simphash_enum_reg_values[fi] : -1;
| |||
}*/
| |||
}
| |||
//+------------------------------------------------------------------+
|