forked from nique_372/TsnTables
57 lines
2.5 KiB
MQL5
57 lines
2.5 KiB
MQL5
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| Swar.mqh |
|
||
|
|
//| Copyright 2026, Niquel Mendoza |
|
||
|
|
//| https://www.mql5.com |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
#property copyright "Copyright 2026, Niquel Mendoza"
|
||
|
|
#property link "https://www.mql5.com"
|
||
|
|
#property strict
|
||
|
|
|
||
|
|
#ifndef TSNTABES_SRC_BITS_SWAR_SWAR_MQH
|
||
|
|
#define TSNTABES_SRC_BITS_SWAR_SWAR_MQH
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
#include "Mask.mqh"
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
namespace TSN
|
||
|
|
{
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| Swar |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
// LO = 0x0101010101010101 = 72340172838076673ULL
|
||
|
|
// HI = 0x8080808080808080 = 9259542123273814144ULL
|
||
|
|
|
||
|
|
//--- Constante para compatarct ulongs en bits (ulong a uchar)
|
||
|
|
#define TSNTABLES_MAGIC_COMPACT 0x0102040810204080
|
||
|
|
// primero los bits altos ahora son los bajos luego lo muplticalos pro la constante magica
|
||
|
|
// y en los ultismo 8 bits algtos del ulong queda la mascara uchar..
|
||
|
|
#define TSNTABLES_COMPACT_UL(mask) uchar((((mask >> 7) * TSNTABLES_MAGIC_COMPACT) >> 56))
|
||
|
|
#define TSNTABLES_COMPACT_UL_F(mask) ulong((((mask >> 7) * TSNTABLES_MAGIC_COMPACT) >> 56))
|
||
|
|
|
||
|
|
//---
|
||
|
|
#define TSNTABLES_MASK_PARES (B'01010101')
|
||
|
|
#define TSNTABLES_MASK_IMPARES (B'10101010')
|
||
|
|
|
||
|
|
///--- F = Full
|
||
|
|
#define TSNTABLES_MASK_IMPARES_F (0xAAAAAAAAAAAAAAAA)
|
||
|
|
#define TSNTABLES_MASK_PARES_F (0x5555555555555555)
|
||
|
|
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| Main -- consatnes bases |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//--- Constantes
|
||
|
|
#define TSNTABLES_SWAR_LO 0x0101010101010101
|
||
|
|
#define TSNTABLES_SWAR_HI 0x8080808080808080
|
||
|
|
|
||
|
|
//--- Metodo base
|
||
|
|
#define TSNTABLES_SWAR_HAS(mask) ((mask - TSNTABLES_SWAR_LO) & ~mask & TSNTABLES_SWAR_HI)
|
||
|
|
|
||
|
|
}
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
#endif // TSNTABES_SRC_BITS_SWAR_SWAR_MQH
|