forked from nique_372/TsnTables
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
|