40 lines
2 KiB
MQL5
40 lines
2 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| 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
|