2026-08-27 13:13:08 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| 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
|
2026-09-23 15:22:18 -05:00 | | | #define TSNTABLES_SWAR_LO TSNTABLES_ULL_ONES
|
2026-08-27 13:13:08 -05:00 | | | #define TSNTABLES_SWAR_HI 0x8080808080808080
|
| | |
|
2026-09-04 22:08:43 -05:00 | | | #define TSNTABLES_SWAR_HAS(mask) ((mask - TSNTABLES_SWAR_LO) & ~mask & TSNTABLES_SWAR_HI)
|
2026-08-27 13:13:08 -05:00 | | |
|
2026-09-04 22:08:43 -05:00 | | |
|
| | | //---
|
| | | #define TSNTABLES_SWAR_LO9 0x0040201008040201
|
| | | #define TSNTABLES_SWAR_HI9 0x4020100804020100
|
| | |
|
| | | //---
|
| | | #define TSNTABLES_SWAR_9_MAKE_MASK(n) (n*TSNTABLES_SWAR_LO9)
|
| | | #define TSNTABLES_SWAR_HAS9(mask) (~(mask - TSNTABLES_SWAR_LO9) & TSNTABLES_SWAR_HI9)
|
| | | #define TSNTABLES_SWAR_LESS9_WGUARD(chunk, n) (~((chunk|TSNTABLES_SWAR_HI9) - TSNTABLES_SWAR_9_MAKE_MASK(n)) & TSNTABLES_SWAR_HI9)
|
| | | }
|
2026-08-27 13:13:08 -05:00 | | | //+------------------------------------------------------------------+
|
2026-09-04 22:08:43 -05:00 | | | #endif // TSNTABES_SRC_BITS_SWAR_SWAR_MQH
|