//+------------------------------------------------------------------+ //| Numbers.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_NUMBERS_MQH #define TSNTABES_SRC_BITS_SWAR_NUMBERS_MQH //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #define TSNTABLES_PN64_M_H (0xF0F0F0F0F0F0F0F0) #define TSNTABLES_PN64_M_L (0x0F0F0F0F0F0F0F0F) #define TSNTABLES_PN64_M_NSTART (0x3030303030303030) #define TSNTABLES_PN64_M_NMAX (0x0909090909090909) // pn = parse number #define TSNTABLES_PN64_M_40 (0x000000FF000000FF) #define TSNTABLES_PN64_M_MUL1 (0x000F424000000064) #define TSNTABLES_PN64_M_MUL2 (0x0000271000000001) #define TSNTABLES_PN64_M_P8 (100000000) //+------------------------------------------------------------------+ //| Is Digit paralelo | //+------------------------------------------------------------------+ #define TSN_TABLES_IS_DIG64(val) (((val&TSNTABLES_PN64_M_H)==TSNTABLES_PN64_M_NSTART)&&((val&TSNTABLES_PN64_M_L)<=TSNTABLES_PN64_M_NMAX)) //+------------------------------------------------------------------+ //| Parseo en si | //+------------------------------------------------------------------+ #define TSN_TABLES_PN_COMBIN_PARES(val) ((val * 10) + (val >> 8)) #define TSN_TABLES_PN_FINAL(val) \ (((val & TSNTABLES_PN64_M_40) * TSNTABLES_PN64_M_MUL1 + ((val >> 16) & TSNTABLES_PN64_M_40) * TSNTABLES_PN64_M_MUL2) >> 32) #endif // TSNTABES_SRC_BITS_SWAR_NUMBERS_MQH