Tags: stillwater-sc/universal
Tags
V3.80: fleshing out double-double and quad-double (#443) * Setting SEMVER to v3.80 * refining numeric_limits for quad-double * update headers with license SPDX * adding quad-double command line utility * adding a double-double command line utility * refining numeric_limits for double-double * WIP: implementing nextafter for double-double * bug fix on the incorrectly modified ulp() function on native ieee754 floating-point numbers * WIP: isolate double free bug in dd::to_string * WIP: found a bug in fixed format to_string for double-double * memory management bug fix in dd::to_string * bug fix memory corruption in round_string * unifying the std::ostream precision articulation * first principle construction of double-double and quad-double values * adding an double-double ulp test case * bug fix fixpnt conversion of real values smaller than half of minpos * updating fixpnt cli command with universal type name and new types * WIP: still trying to deduce the ulp algorithm for double-double * double-double ulp function * code hygiene and creating a string_utils.hpp to collect string utilities * header updates * implementation of increment and decrement * WIP: printing a double-double in fixed form destroys a leading zero * dd code hygiene, qd api test progression * WIP: first implementation of increment and decrement for quad-double * WIP: implementing extreme value API for quad-double * code hygiene: isolating internal::uint128 so bitblock is not part of double-double or quad-double dependencies * code hygiene qd: removing signed/unsigned index warnings in decimal string generation * adding a verification suite to pow() function for double-double * moving error_free_ops.hpp from native to numerics to keep ieee754.hpp lightweight * compilation fix for GCC * MSVC fix: std::isfinite() is not yet constexpr * Restructuring build process to isolate projects that depend on complex<> * bringing together all the complex<> regression suites into a consistent build flow * resolving all the missing inline keywords on the dd and qd math functions * Adding new ArXiv publication on iterative refinement with low-precision posits * unifying the to_components formatting between dd and qd types * implementing ulp() and to_binary() for quad-double * adding a math function extension mechanism so we can start experimenting with non-elemental functions * streamlining Horner's rule functionality across Universal * compilation fix for gcc/clang * code hygiene and AppleClang build restructuring * creating the first design structure to manage a generic math function library * organizing constants and complex in math library * compilation fix for gcc/clang * simpler build configuration for complex<> * adding native quad-double trigonometry function approximations * unifying the constexpr table vars with regular dd and qd constants * removal of files no longer required for dd * settling on a naming convention for the mathematical constants that is consistent across types * preparing double-double math infrastructure to mimic universal/math structure * completing generation of quad-double constants and math library structure * tracking precision difference between Debug and Release builds in quad-double * forgot to save the test src * adding Apple M2 silicon results * WIP: trying out cbrt as a test math function for specialization with generics fallback * adding compile-time messages for non-MSVC compilers * removing warnings on qd_inverse_factorial_table_size int/unsigned mismatch * code hygiene
V3.79: quad-double arithmetic type (#437) * Setting SEMVER to v3.79 * enabling CI on the new v3.79 release branch * making fixpnt trivially constructable, disabling complex<fixpnt> regression * WIP: identified double rounding as cause for complex<fixpnt> failures * labeling the complex<CustomType> use case: we'll need to create our own * fixpnt is now trivially constructable, any implicit initialiation assumptions in the regression tests need to be fixed * adding include <cstdint> to satisfy gcc builds * dd bug fix and enhancement: supporting compiler environments prior to C++20 * recorded bug in bfloat16 that converts a float qNaN to a bfloat sNaN * remove bfloat16 separate addition regression test, and replace with increased intensity of randoms * enhancing the dfloat class API as first step in implementation * WIP: adding native trig functions to double-double * bug fix: trigonometry functions * WIP: adding trigonometric function verification suites * bug fix: both shim and native sqrt function needed fixing * bug fix of inverse trigonometry functions for double-double * removing meta_programming experiment as it is causing compilation issues * removing meta_programming from build * adding clang17/18 builder containers, which now include the gdb debugger * standardizing on double-double documentation * code hygiene double-double * adding three_sum2 version of three_sum * code hygiene * initial check-in of quad-double skeleton * rewriting three_sums to reflect Li/Bailey LBNL paper * changing behavior of to_binary for double-double and quad-double * unifying the to_binary() algorithm for double-double and quad-double * implementing addition and subtraction for quad-double * reclassifying some helper class methods to be protected * adding multiplication to the quad-double * adding division to quad-double arithmetic * generating and testing the quad-precision constants * enabling native log() functions for double-double type * adding sub() and div() methods to double-double * adding classification regression test for quad-double * adding error/gamma regression test for quad-double * adding exponent regression test for quad-double: exp algorithm is way off * compilation fix for gcc * completing the double add/sub/mul/div promotion to double-double API example * adding fmod/remainder regression test for quad-double * adding hyperbolic functions regression test for quad-double * adding hypot function regression test for quad-double * adding logarithmic function regression tests for quad-double: approximations are way off * adding min/max function regression tests for quad-double * adding nextafter/toward regression tests to quad-double * adding pow function regression test to quad-double * adding truncating functions regression tests to quad-double * adding trigonometry regression tests to quad-double * adding sqrt regression test to quad-double
V3.78: adding a double-double arithmetic type (#426) * Setting SEMVER to v3.78 * Setting SEMVER to v3.78 * setting default devcontainer to clang16 * header updates for elastic integer * header update for c_api * header update for elastic float * header update for elastic posit * header updates for elastic unum * header updates of mixed-precision applications * header updates * adding mathematics section to accuracy applications * std::numbers inspired numerical constants, sans the C++20 concepts * AppleClang compilation fix * header changes for applications of accuracy * header update and code hygiene for precision applications * header updates for applications generating mathematical constants * creating a mixed-precision midpoint/lerp skeleton test to lerp test complex ranges * code hygiene on precision applications * header updates and code hygiene for precision applications * header updates and code hygiene for rest of application projects * residual compensation algorithm using the quire * code hygiene for dfloat skeleton * code hygiene for dfloat skeleton * code hygiene for bfloat16 skeleton * initial skeleton for doubledouble arithmetic type * gcc/clang compilation fix for dfloat template * adding a doubledouble skeleton * adding missing quad-double directory and build file * adding maxpos calculation to doubledouble * WIP: bootstrapping doubledouble algorithms * WIP: experiments how to verify doubledouble arithmetic correctness * compilation and test fixes of doubledouble regression tests * disabling doubledouble regression tests until coverage * WIP: bug fix in quad-double multiply operator * WIP: implementing numerics and classification functions for doubledouble * WIP: decimal string printing and parsing of doubledouble * replacing MSVC specific _fpclass API with standard C++ for doubledouble fpclassify * WIP: skeletons for doubledouble math function regression tests * bug fix for compilation guard logic for checkNaN/checkInf constexpr functions * removing BIT_CAST_SUPPORT and standardize on bit_cast.hpp auto configuration * removing constexpr from bfloat[8|16].assign() as clang doesn't have constexpr std::string * second attempt to get the BIT_CAST_CONSTEXPR compiler guards correct across the three compilers * third attempt to get BIT_CAST and LONG_DOUBLE support working across all compilers * defeaturing std::bit_cast<> from processing long doubles * removing std::bit_cast<blob, long double> * adding doubledouble constant generation example * streamlining doubledouble api tests * adding a skeleton for experimentation with doubledouble * changing to_binary of a doubledouble to reflect the hidden bit of the second segment * adding performance measurements for dd vs native and quad emulation * marking all variables and intermediates in the Kahan sums and products volatile * compilation fix for gcc * experiment with infinite sequence constants * updating build containers to contain gdb * code hygiene on volatile qualifier * implementing setbit on double-double * WIP: std::stream functionality for double-double * new utility to report on language features configured * removing <format> as gcc doesn't support it yet * quick readme update * making <stdfloat> conditional as gcc and clang do not support it yet * code hygiene for double-double * completing arithmetic regression test skeletons for double-double * removing unsafe sscanf from parse function of double-double * WIP: code streamlining and documentation * code hygiene * adding pow, exp, and sqrt algorithms for double-double courtesy of Scibuilders * adding double-double constants of note and a generator * generating exp table * code hygiene * adding shims for the rest of the math library for double-double * compilation fix for gcc and clang
V3.75: specialized posit enhancements (#407) * Bumping SEMVER to v3.75.1 * enabling CI for development branch v3.75 * codacy code hygiene fix * code hygiene fast posit<8,2> * properly standardizing on STL size_type throughout the Universal BLAS vector and matrix types * codacy hygiene for Chebyshev applications * codacy hygiene for arbitrary precision constants * codacy hygiene for DSP and Cryptography applications * codacy hygiene catastrophic cancellation demonstration application * WIP: implementing a fast posit<8,2>: new float_assign algorithm * found a fix to the weird floating-point NaN behavior in release builds: need to deal with special cases first * adding minpos/maxpos/minneg/maxneg free functions to cfloat * renaming reciprocate() to reciprocal() to reflect mathematical nomenclature * removed test_tag (#406) Signed-off-by: Theodore Omtzigt <[email protected]> Co-authored-by: Theodore Omtzigt <[email protected]> * trace variable update from reciprocate to reciprocal * fixing reciprocal regression test when exceptions can be thrown * WIP: bug fix in integer_assign of small specialized posits, and streamlined VerifyIntegerAssignment * code hygiene for posit attribute functions * codacy code hygiene * Structuring the file system to reflect the application project organization * adding mixed precision sin function learning DNN * WIP: restructuring test suites to follow the same pattern * WIP: unifying posit test suite with generic test suite API * fix regression stress level failure for binary integer arithmetic right shift * bug fix in regression test for elastic integer * bug fixes in elastic decimal regression stress test * stress level regression results * bug fix in CMakeList.txt * bug fix in regression level logic * bug fix in regression logic * simplifying the REGRESSION_LEVEL_4 to be significantly smaller to reduce running time * cleanup on isle 5, and renaming fixed-size decimal integer build target * WIP: creating posit number system checker: need to research what the right interpretation of INFINITY is for posits * posit maps INFINITE to NaR --------- Signed-off-by: Theodore Omtzigt <[email protected]> Co-authored-by: James Quinlan <[email protected]>
V3.71 (#356) * incrementing SEMVER to v3.71 * augmenting the skeleton structure to best known practice * embellishing the oneparam library standard header * cleaning up orphaned code * cleanup on the IEEE-754 quire isle * adding documentation to the quire number type for future research * WIP: adding error free transform operators * WIP: faithful skeleton * WIP: faithful addition * WIP: implementation of compensated addition twosum style * WIP: adding compensated evaluations for multiplication and division * WIP: progress to supporting cfloat in faithful arithmetic * WIP: experiment to include classic floats in the faithful shim * expanding converting constructor to support fp8/fp16/fp32/fp64 conversions * WIP: twosum and fma algorithm updates * WIP: enable custom fma for cfloats smaller than 40bits * removing warning from Clang/GCC builds * fix code documentation to reflect current design * renaming lns2b to dbns * WIP: generalizing the cfloat conversion by virtue of the blocktriple * WIP: generalizing cfloat conversion * WIP: adding a blockfraction to deliver a binary to decimal string conversion facility * WIP: declaring blockfraction to be unsigned * compilation fix for clang and gcc * WIP: reverse engineering the Dragon4 algorithm * WIP: dragon1 test case * WIP: debugging the dynamic stopping condition * Dragon1 example with correct exit * WIP: highlighting the subtleties of decimal conversion * numeric_limits fix for faithful type --------- Co-authored-by: Theodore Omtzigt <[email protected]>
PreviousNext