نبذة مختصرة : Universal Numbers Library, or simply Universal, is a comprehensive, self-contained C++ header-only template library that provides implementations of various number representations and standard arithmetic operations on arbitrary configurations of integer and real numbers. With its extensive collection of number systems, including integers, decimals, fixed-points, rationals, linear floats, tapered floats, logarithmic, SORNs, interval, level-index, and adaptive-precision binary and decimal integers and floats, Universal offers a robust verification suite for each system. The primary pattern using a posit number type as example is: #include template Real MyKernel(const Real& a, const Real& b) { return a * b; // replace this with your kernel computation } constexpr double pi = 3.14159265358979323846; int main() { using Real = sw::universal::posit<32,2>; Real a = sqrt(2); Real b = pi; std::cout << "Result: " << MyKernel(a, b) << std::endl; } Universal delivers software and hardware co-design capabilities to develop low and mixed-precision algorithms for reducing energy consumption in signal processing, Industry 4.0, machine learning, robotics, and high-performance computing applications. The package includes command-line tools for visualizing and interrogating numeric encodings, an interface for setting and querying bits, and educational examples showcasing performance gain and numerical accuracy with the different number systems. In addition, a Docker container is available to experiment without cloning and building from the source code. ; C++ header-only library of plug-in replacements for native arithmetic types.
No Comments.