//+------------------------------------------------------------------+ //| Int.mqh | //| Copyright 2026, Niquel Mendoza. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2026, Niquel Mendoza." #property link "https://www.mql5.com" #property strict #ifndef FASTCOLLECTIONSBYLEO_COLHASH_HASH_GENERIC_NUMBER_INT_MQH #define FASTCOLLECTIONSBYLEO_COLHASH_HASH_GENERIC_NUMBER_INT_MQH //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #include "Def.mqh" //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ namespace TSN { //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #define GCOL_GENERICH_HASH_SIMPLE(TYPE) \ class CGenericHash_##TYPE : public CGenericHash_eq_simple \ { \ public: \ CGenericHash_##TYPE() {} \ ~CGenericHash_##TYPE() {} \ static ulong Hash(TYPE v) \ { \ ulong x = (ulong)v; \ GENERICHHASH_SPLITMIX(x) \ return x; \ } \ }; \ class CGenericHash_##TYPE##_fmix : public CGenericHash_eq_simple \ { \ public: \ CGenericHash_##TYPE##_fmix() {} \ ~CGenericHash_##TYPE##_fmix() {} \ static ulong Hash(TYPE v) \ { \ ulong x = (ulong)v; \ GENERICHHASH_FMIX(x) \ return x; \ } \ }; \ class CGenericHash_##TYPE##_fibbo : public CGenericHash_eq_simple \ { \ public: \ CGenericHash_##TYPE##_fibbo() {} \ ~CGenericHash_##TYPE##_fibbo() {} \ static __forceinline ulong Hash(const TYPE v) \ { \ return ulong(v) * 0x9E3779B97F4A7C15; \ } \ }; \ class CGenericHash_##TYPE##_fibbo_plus : public CGenericHash_eq_simple \ { \ public: \ CGenericHash_##TYPE##_fibbo_plus() {} \ ~CGenericHash_##TYPE##_fibbo_plus() {} \ static __forceinline ulong Hash(TYPE v) \ { \ ulong x = (ulong)v; \ GENERICHHASH_FIBBO_PLUS(x) \ return x; \ } \ }; \ class CGenericHash_##TYPE##_murmur : public CGenericHash_eq_simple \ { \ public: \ CGenericHash_##TYPE##_murmur() {} \ ~CGenericHash_##TYPE##_murmur() {} \ static ulong Hash(TYPE v) \ { \ ulong x = (ulong)v; \ GENERICHHASH_FIBBO_MURMUR(x) \ return x; \ } \ }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ GCOL_GENERICH_HASH_SIMPLE(int) GCOL_GENERICH_HASH_SIMPLE(short) GCOL_GENERICH_HASH_SIMPLE(char) GCOL_GENERICH_HASH_SIMPLE(long) GCOL_GENERICH_HASH_SIMPLE(datetime) GCOL_GENERICH_HASH_SIMPLE(color) GCOL_GENERICH_HASH_SIMPLE(uint) GCOL_GENERICH_HASH_SIMPLE(ushort) GCOL_GENERICH_HASH_SIMPLE(uchar) } #endif // FASTCOLLECTIONSBYLEO_COLHASH_HASH_GENERIC_NUMBER_INT_MQH //+------------------------------------------------------------------+