**Agena** **v. 2.13.0** (11/9/2018, Alexander Walz) |
Readme/What's new |
2.13.0, September 11, 2018
- The new function `math.stirnum` computes the Stirling number of the first or the second kind.
- The new function `math.pochhammer` computes the Pochhammer function (rising factorial).
- The new operator `cube` raises a number or complex number to the power of 3.
- The new binary operator `roll` rotates a two-dimensional vector, represented by a complex number, through a given angle. The corresponding
function `rot` with the same functionality has been deprecated. A macro has been provided to ensure backward compatibility.
The operator is around ten percent faster than `rot` on Windows, and 27 percent on Solaris.
- `math.clip`, `math.clamp` and `math.symtrunc` are almost equal in functionality, so all the different flavours have been combined into
an extended version of `math.clip` which now also allows to user-define the return value if its argument is not in the given range.
Thus, `math.clamp` and `math.symtrunc` have been deprecated. Macros, however, provide backward compatibility.
- `math.fdima` has been integrated into `math.fdim`. A macro has been provided to ensure backward compatibility.
- The new `bytes` package provides the userdata data structure 'double' storing an Agena number as both a C double (i.e. Agena number) and
its two higher and lower 32-bit unsigned integer representations, along with functions to query and assign its individual components.
- The following related `math` functions have been moved to the `bytes` package which can be activated through the `import` statement:
`fpbtoint`, `gethigh`, `gethighlow`, `getlow`, `inttofpb`, `leadzeros`, `leastsigbit`, `mostsigbit`, `reverse`, `onebits`, `sethigh`, `setlow`,
`tobinary`, `tobytes`, `tonumber`.
- `math.sethighlowuint64` and `math.gethighlowuint64` have been removed since they could not always process each unsigned 64-bit integer
correctly with Agena's doubles-based numeric system.
- The following related `math` functions have been moved to the new `fastmath` package which can be activated through the `import` statement:
`invroot`, `lbfast`, `reciprocal`, `sincosfast`, `sqroot`, `sqrtfast`.
- In OS/2 and DOS, the `gamma` function now also processes complex numbers.
- `integral` and `float` have become five percent faster.
- `calc.weier`, `calc.polyfit` and `calc.polygen` have become more precise by internally using Kahan-Ozawa summation.
- `math.fibinv` has not been correctly registered. This has been fixed.
- The following functions deprecated one or more years ago have been finally removed:
Removed function Substitute
---------------- ----------
debug.system environ.system
dimension tables.dimension
irem << x, y -> x symmod y >>
os.curdir os.chdir()
rect math.rectangular
resetd stack.resetd
roundf round
shift << x, y -> if y > 0 then x <<< y else x >>> y fi >>
- The undocumented baselib function `sunlog2` has been removed.
- This release has been Valgrind-checked on x86 Linux to ensure there are no memory leaks. |

**Agena source code** **v. 2.13.0** (11/9/2018, Alexander Walz) |
Readme/What's new |
2.13.0, September 11, 2018
- The new function `math.stirnum` computes the Stirling number of the first or the second kind.
- The new function `math.pochhammer` computes the Pochhammer function (rising factorial).
- The new operator `cube` raises a number or complex number to the power of 3.
- The new binary operator `roll` rotates a two-dimensional vector, represented by a complex number, through a given angle. The corresponding
function `rot` with the same functionality has been deprecated. A macro has been provided to ensure backward compatibility.
The operator is around ten percent faster than `rot` on Windows, and 27 percent on Solaris.
- `math.clip`, `math.clamp` and `math.symtrunc` are almost equal in functionality, so all the different flavours have been combined into
an extended version of `math.clip` which now also allows to user-define the return value if its argument is not in the given range.
Thus, `math.clamp` and `math.symtrunc` have been deprecated. Macros, however, provide backward compatibility.
- `math.fdima` has been integrated into `math.fdim`. A macro has been provided to ensure backward compatibility.
- The new `bytes` package provides the userdata data structure 'double' storing an Agena number as both a C double (i.e. Agena number) and
its two higher and lower 32-bit unsigned integer representations, along with functions to query and assign its individual components.
- The following related `math` functions have been moved to the `bytes` package which can be activated through the `import` statement:
`fpbtoint`, `gethigh`, `gethighlow`, `getlow`, `inttofpb`, `leadzeros`, `leastsigbit`, `mostsigbit`, `reverse`, `onebits`, `sethigh`, `setlow`,
`tobinary`, `tobytes`, `tonumber`.
- `math.sethighlowuint64` and `math.gethighlowuint64` have been removed since they could not always process each unsigned 64-bit integer
correctly with Agena's doubles-based numeric system.
- The following related `math` functions have been moved to the new `fastmath` package which can be activated through the `import` statement:
`invroot`, `lbfast`, `reciprocal`, `sincosfast`, `sqroot`, `sqrtfast`.
- In OS/2 and DOS, the `gamma` function now also processes complex numbers.
- `integral` and `float` have become five percent faster.
- `calc.weier`, `calc.polyfit` and `calc.polygen` have become more precise by internally using Kahan-Ozawa summation.
- `math.fibinv` has not been correctly registered. This has been fixed.
- The following functions deprecated one or more years ago have been finally removed:
Removed function Substitute
---------------- ----------
debug.system environ.system
dimension tables.dimension
irem << x, y -> x symmod y >>
os.curdir os.chdir()
rect math.rectangular
resetd stack.resetd
roundf round
shift << x, y -> if y > 0 then x <<< y else x >>> y fi >>
- The undocumented baselib function `sunlog2` has been removed.
- This release has been Valgrind-checked on x86 Linux to ensure there are no memory leaks. |

## Comments

Alexander Walz

Sat, 13/05/2017 - 20:06

Permalink

## Hello,

## Add new comment