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
|