|
Agena v. 6.7.2 (4/2/2026, Alexander Walz) |
Readme/What's new |
agena >>
`The Power of Procedural Programming`
6.7.2 Isfahan, February 04, 2026
- `calc.Psi` has been extended and computes the Pentagamma function of a value if given the first-order argument 3, e.g.
`calc.Psi(3, value)`.
- New `long.pentagamma` computes the Pentagamma function in 80-bit precision.
- With dual numbers, `dual.arccsc`, `dual.arccsch`, `dual.arcsech` and the `arcsec` operator have been tuned a bit by three percent.
- The `tanc` operator could crash in OS/2 when given a dual number. This has been fixed.
- The following arithmetic standard functions, when given a dual number, have been prepared to call alternative implementations
written in the Agena language instead of the C language.
If you want to override the dual-number C version for `gamma`, for example, just define a function named `dual.gamma`;
to replace the C dual-number implementation of `arccsc` just write a function called `dual.arccsc`, and so on:
`arccosh`, `arccoth`, `arccsc`, `arccsch`, `arcsech`, `arcsinh`, `arctan2`, `arctanh`, `beta`, `cas`, `cbrt`, `cosc`, `cot`,
`coth`, `csc`, `csch`, `erf`, `erfc`, `erfcx`, `exp10`, `exp2`, `expm1`, `expx2`, `gamma`, `hypot`, `hypot4`, `inverf`,
`inverfc`, `lnp1`, `log10`, `log2`, `pytha`, `pytha4`, `sec`, `sech`, `tanc`, `calc.Psi`, `math.expm1` and `math.lnp1`.
You can also replace the underlying dual-number metamethods for the operators by injecting your own, see the lib/library.agn
file, dual section, on how to do this.
6.7.1 Isfahan, February 04, 2026
- This is a fully-functional OS/2-specific release only.
- Internal `dual` fallback functionality has been extended and in the case of `arccsc`, `arccsch`, `pytha`, `pytha4` error
messages have been fixed.
6.7.0 Isfahan, February 04, 2026
- The `dual` package has been integrated into the core interpreter and you do not need to explicitly import it any longer,
as it is available immediately after start-up.
- You can now define third-order dual numbers, allowing for the third derivative to be automatically computed with very
high accuracy:
> environ.kernel(digits = 17);
> dual.diff(<: x -> dual.exp10(x) :>, 2, deriv = 3):
1220.8071553760858
- Dual-number support has been extended with the new functions: `dual.cot` (cotangent), `dual.coth` (hyperbolic cotangent),
`dual.csc` (cosecant), `dual.csch` (hyperbolic cosecant), `dual.sec` (secant), `dual.sech` (hyperbolic secant). Also added
the casine function `dual.cas` computing sin(x) + cos(x) with high accuracy.
- The following arithmetic standard functions now accept dual numbers out-of-the-box. This means you can easily
define functions to be differentiated later without using the `dual` table prefix: `arccosh`, `arccoth`, `arccsc`, `arccsch`,
`arcsech`, `arcsinh`, `arctan2`, `arctanh`, `beta`, `cas`, `cbrt`, `cosc`, `cot`, `coth`, `csc`, `csch`, `erf`, `erfc`,
`erfcx`, `exp10`, `exp2`, `expm1`, `expx2`, `gamma`, `hypot`, `hypot4`, `inverf`, `inverfc`, `lnp1`, `log10`, `log2`,
`pytha`, `pytha4`, `sec`, `sech`, `tanc`. `calc.Psi`, `math.expm1` and `math.lnp1` do the same.
As before, once a dual number is being passed to a supported operator, automatic differentation will take place
by invoking the respective metamethod:
Example:
> dual.diff(<: x -> sin(x) * exp10(x) :>, 2, deriv = 2):
199.52778776641102
This is equivalent to:
> dual.diff(<: x -> sin(x) * dual.exp10(x) :>, 2, deriv = 2):
- The accuracy of `erfcx` has been improved by one digit in the real domain, by computing the result internally with 80-bit precision.
- New `long.erfcx` computes the scaled complementary error function erfcx(x) = exp(x^2)*erfc(x) with 80-bit precision.
- The source file `lmathlib.c` did not compile with DJGPP. This has been fixed.
- There is no OS/2 edition this time as it is showing strange behaviour with dual numbers. Please use the DOS edition instead,
it is working flawlessly in ArcaOS 5.0.x.
- This release has been Valgrind-checked on x86 and x64 Linux to ensure there are no internal errors or memory leaks.
- This release has been named after the Iranian city of Isfahan, home to the Naqsh-e Jahan Square, one of the World's largest and
most architecturally symmetrical squares, the engineering marvel Si-o-se Pol (`Bridge of 33 Arches`) and the Jolfa Clock Tower.
It is also home to the legendary polymath Avicenna (Ibn Sina) and the site where Omar Khayyam calculated the Jalali calendar,
still one of the most accurate solar calendars in existence. |
Comments
Alexander Walz
Sat, 13/05/2017 - 20:06
Permalink
Hello,
Add new comment