|
Agena v. 6.7.4 (8/2/2026, Alexander Walz) |
Readme/What's new |
agena >>
`The Power of Procedural Programming`
6.7.4 Isfahan, February 08, 2026
- With univariate functions, `calc.differ` now calls `dual.diff` internally to return high-accuracy results if possible. Should
the function to be differentiated include functions and operators not supporting dual numbers, `calc.differ` automatically reverts
to the classic differentiating functions `calc.eulerdiff`, `calc.xpdiff`, `calc.diff`.
- `calc.extrema`, `calc.minimum`, `calc.maximum`, `calc.inflect`, `calc.saddles` and `calc.curvature` now call `dual.diff` internally
if possible to return high-accuracy results, too.
- The `+`, `-`, `*`, `/`, `^` and `**` could freeze when given `undefined` or `infinity` as an argument. This has been fixed.
- With negative dual numbers, the `^` operator no longer returns `undefined` but mostly a finite result. `x^0` and `x**0` now either
correctly yield `undefined` or `1`.
- The `^` and `**` operators could not correctly compute derivatives at the origin and with an integral power. This has been fixed,
also benefitting `dual.diff`.
- There has been a general problem with the Agena numbers `undefined` or `infinity`, or these non-finite values packed into dual
numbers, passed to dual-number functions and operators, causing segmentation faults or freezes. This has been fixed.
6.7.3 Isfahan, February 06, 2026
- On Intel platforms, the precision of `calc.Psi` with the first and second derivative has been improved by three to four digits,
now calculating the results with 80-bit precision. Thus, the function now fully utilizes 80-bit floating-point math.
- The precision of the `gamma` and `fact` functions has been improved a tiny bit in the real domain with larger arguments
on Intel platforms.
- On Intel platforms, all trigonometric and hyperbolic functions internally call the same underlying 80-bit precision
C functions, also to protect the interpreter against unpredictable and peculiar behaviour in OS/2.
- `math.lnbeta` is now better detecting poles.
- On Raspberry Pi, `long.csch`, `long.sech` and `long.coth` have become 50 percent faster by calling the respective
Sun Microsystems implementations instead of the built-in GCC ones |
|
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. |
Comments
Alexander Walz
Sat, 13/05/2017 - 20:06
Permalink
Hello,
Add new comment