|
Agena v. 7.4.1 (21/4/2026, Alexander Walz) |
Readme/What's new |
agena >>
`The Power of Procedural Programming`
7.4.1 Rhea, April 21, 2026
- Added the new functions `dd.log2` and `dd.log10` which for a given double-to-double number compute the base-2 and base-10
logarithms, respectively.
- The `antilog2` and `antilog10` operators now support double-to-double numbers, computing 2^x and 10^x, respectively.
- The `^` exponentiation operator now accepts a double-to-double number as the power. The power can represent a fractional
value. Example:
> dd.two^dd.Pi:
8.8249778270762871 (5.3972757612210241e-016)
- Added the new constant `dd.sixteen` for 16.
- New `dd.isdd` checks whether all its arguments are double-to-double numbers and returns a Boolean.
- New `dd.checkdd` checks whether all its arguments are double-to-double numbers and issues an error otherwise.
- When given a double-to-double number, `dd.new` simply returns it instead of creating an error.
- New `dd.get` returns both the high part and the low part of a double-to-double number.
- `unimath` package functions now accept double-to-double numbers. Example:
> unimath.zeroin(<: x -> sin(x) :>, dd.three, dd.four):
3.1415926535897931 (1.2246467991473532e-016)
- `astro.locate` can now better find places in Linux, macOS and Solaris if their names include multibyte UTF-8 characters
or diacritics and ligatures.
The function now also allows to pass a user-defined comparison function and specific codepages and better copes with
wildcards. See Chapter 11.9 for details. Example:
> astro.locate('Düsseldorf*', 'DE',
> finder = <: x, y -> x = y :>, codepages = [850, 852]):
[[country ~ DE, elevation ~ 45, latitude ~ 51.22172, location ~ Düsseldorf,
longitude ~ 6.77616, population ~ 620523, timezone ~ Europe/Bonn],
[country ~ DE, elevation ~ 43, latitude ~ 51.23812, location ~ Düsseldorf-Pempelfort,
longitude ~ 6.78678, population ~ 28941, timezone ~ Europe/Bonn]] |
|
Agena v. 4.12.5 (20/5/2025, Alexander Walz) |
Readme/What's new |
4.12.5 Merryville, May 20, 2025
- In the past, the bitshift operators <<< (left shift), >>> (right shift), <<<< (left rotation) and >>>> (right rotation) had different behaviour across platforms when a number at or beyond the +/-2^32 threshold has been processed. This has been changed and the results in these situations are now the same.
Likewise, `bytes.numto32` is now returning the same results on all platforms when casting a value at or beyond the +/-2^32 border.
This also benefits various functions in the `hashes` package as their returns are now the same across platforms, as well.
To check the new underflow or overflow behaviour, use `math.wrap`.
- New function `math.fmod` works and returns the same result as the binary `symmod` operator. It has just been added to facilitate porting C code to Agena.
- The results of `hashes.mix`, `hashes.crc32`, `hashes.crc8`, `hashes.reflect`, `hashes.parity`, `hashes.fibmod`, `hashes.interweave`, `hashes.jinteger` may now be different with out-of-range input, that is with arguments at or beyond the 2^32 threshold, depending on your platform. |
Commenti
Alexander Walz
Sab, 13/05/2017 - 20:06
Collegamento permanente
Hello,
Aggiungi un commento