32#define HRCORE_DEBUG_LEVEL 2
34#ifndef HRCORE_HIGHPERF
40#define HRCORE_HIGHPERF 0
43#ifndef HRCORE_UNIT_SIZE
49#define HRCORE_UNIT_SIZE 32
55#ifndef HRCORE_ENABLE_IO_DELIMETER
56#define HRCORE_ENABLE_IO_DELIMETER 1
59#ifndef HRCORE_ENABLE_MD
65#define HRCORE_ENABLE_MD 1
68#ifndef HRCORE_ENABLE_FP
74#define HRCORE_ENABLE_FP 1
83#ifndef HRCORE_FP_BITS_BASE
84#define HRCORE_FP_BITS_BASE 24
93#ifndef HRCORE_FP_BITS_PER_DIGIT
94#define HRCORE_FP_BITS_PER_DIGIT 8
100#ifndef HRCORE_FP_DEFAULT_PRECISION
101#define HRCORE_FP_DEFAULT_PRECISION 10
108#ifndef HRCORE_ENABLE_STORAGE_VMMU
109#define HRCORE_ENABLE_STORAGE_VMMU 1
117#ifndef HRCORE_STORAGE_VMMU_MAX_LEN
118#define HRCORE_STORAGE_VMMU_MAX_LEN 1024
124#ifndef HRCORE_ENABLE_UTILS
125#define HRCORE_ENABLE_UTILS 1
131#ifndef HRCORE_ENABLE_UTILS_IO
132#define HRCORE_ENABLE_UTILS_IO 1
154#if HRCORE_DEBUG_LEVEL >= 4
155#define HRCORE_DBG(x) x
160#if HRCORE_DEBUG_LEVEL >= 3
161#define HRCORE_DBGI(x) x
163#define HRCORE_DBGI(x)
166#if HRCORE_DEBUG_LEVEL >= 2
167#define HRCORE_DBGW(x) x
169#define HRCORE_DBGW(x)
172#if HRCORE_DEBUG_LEVEL >= 1
173#define HRCORE_DBGE(x) x
175#define HRCORE_DBGE(x)
180#if HRCORE_FP_BITS_BASE < 16
181#warning HRCORE_FP_BITS_BASE too small! Float may lose precision.
184#if HRCORE_FP_BITS_PER_DIGIT < 6
185#warning HRCORE_FP_BITS_PER_DIGIT too small! Float may lose precision.
197#if (HRCORE_UNIT_SIZE == 16)
198using ival_t = uint16_t;
199using idval_t = uint32_t;
200#define HRCORE_UNIT_DIV 4
201#elif (HRCORE_UNIT_SIZE == 32)
202using ival_t = uint32_t;
203using idval_t = uint64_t;
204#define HRCORE_UNIT_DIV 5
205#elif (HRCORE_UNIT_SIZE == 64)
206using ival_t = uint64_t;
207using idval_t = __uint128_t;
208#define HRCORE_UNIT_DIV 6
210#error Invalid Unit Size (i.e. macro HRCORE_UNIT_SIZE) provided!
229#ifndef __HRCORE_EXCEPTION_HELPER__
230#define __HRCORE_EXCEPTION_HELPER__(w) \
231 : public std::exception \
234 const char* what() const throw() override \
251#if HRCORE_ENABLE_UTILS_IO
275#if HRCORE_ENABLE_UTILS_IO
276template <
typename T,
typename U>
Linked List implement of Storage::Interface.
Privide utils for HRCore.
Implements of mathematic data type and calculation.
Virtual MMU implement of Storage::Interface.
Exception of divided by 0.
Exception os Expression failed to convert.
Exception of Expression evaluation: Invalid operation on seleted data type.
Exception of FixedPoint failed to input.
Exception of internal error. Please dig into it and solve.
Exception of Invalid Argument.
Exception of left < right.
A class to get and evaluate expression.
#define __HRCORE_EXCEPTION_HELPER__(w)
HRCore general exception implenent macro defination.
HRCore main namespace, contains all classes.
std::complex< float > complex_t
Complex number type using std::complex<float>