• ANN: Simple Components 4.74

    From Dmitry A. Kazakov@mailbox@dmitry-kazakov.de to comp.lang.ada on Mon Jun 30 12:48:16 2025
    From Newsgroup: comp.lang.ada

    The current version provides implementations of smart pointers, directed graphs, sets, maps, B-trees, stacks, tables, string editing, unbounded
    arrays, expression analyzers, lock-free data structures, synchronization primitives (events, race condition free pulse events, arrays of events, reentrant mutexes, deadlock-free arrays of mutexes), arbitrary precision arithmetic, pseudo-random non-repeating numbers, symmetric encoding and decoding, IEEE 754 representations support, streams, persistent storage, multiple connections server/client designing tools and protocols implementations.

    https://www.dmitry-kazakov.de/ada/components.htm

    The focus of this release is an implementation of arbitrary precision
    rational numbers. The difference to standard library Ada.Numerics.Big_Numbers.Big_Reals:

    - No limits, except for the pool size;
    - String edit packages representing a number in a usual form (with the specified accuracy) rather than as a numerator/denominator ratio;
    - An equivalent of Ada.Numerics.Elementary_Functions with rational approximations;
    - Simple continued fractions support.

    Changes to the previous version:

    - The package Unbounded_Rationals provides an implementation of
    arbitrary precision rational numbers arithmetic;
    - The child package Unbounded_Rationals.Elementary_Functions provides approximations in rational numbers of some elementary, trigonometric and hyperbolic functions;
    - The package Strings_Edit.Unbounded_Rational_Edit provides string
    editing for arbitrary precision rational numbers;
    - The package Strings_Edit.Unbounded_Unsigned_Edit was optimized for
    better performance;
    - Mixed Unsigned_Integer to Integer operations were added to the package Unsigned_Integers;
    - The package Unbounded_Rationals.Continued_Fractions provides an implementation of simple continued fractions;
    - The package Strings_Edit.Continued_Fraction_Edit provides string
    editing for simple continued fractions;
    - Bug fixes in List_SetItem Python bindings;
    - Check_Error message in Python binding was improved, trace back output
    added;
    - Added higher level operations to create Python modules after
    initialization of the Python interpreter;
    - Added higher level operations to create Python classes AKA heap types
    after initialization;
    - An example of higher level module creation was provided;
    - An example of higher level class creation was provided;
    - IsInitialized function was added to Python bindings;
    - OSX project settings fixed.
    --
    Regards,
    Dmitry A. Kazakov
    http://www.dmitry-kazakov.de

    --- Synchronet 3.21a-Linux NewsLink 1.2