Releases: 65001/AbMath
Version 2.1.0
Here are some of the changes:
Bug Fixes
Added a generic infinite optimization chain guard and removed a conflicting rule that
would result in such a bug.
Possibly Breaking
Now has a get number method.
The sum command will be reimplemented to represent a different concept and has been replaced with the total
command.
Simplifications
cos(x)/sin(x) -> cot(x)
sin(x)/cos(x) -> tan(x)
[f(x) * cos(x)]/sin(x) -> f(x) * cot(x)
f(x)/sec(g(x)) -> f(x)cos(g(x))
f(x)/csc(g(x)) -> f(x)sin(g(x))
f(x)/cot(g(x)) -> f(x)tan(g(x))
f(x)/cos(g(x)) -> f(x)sec(g(x))
f(x)/sin(g(x)) -> f(x)csc(g(x))
f(x)/tan(g(x)) -> f(x)cot(g(x))
cos(-f(x)) -> cos(f(x))
sec(-f(x)) -> sec(f(x))
sin(-f(x)) -> -1 * sin(f(x))
tan(-f(x)) -> -1 * tan(f(x))
csc(-f(x)) -> -1 * csc(f(x))
cot(-f(x)) -> -1 * cot(f(x))
(c * f(x))/c -> f(x) where c is not 0
[f(x)/g(x)]/ h(x) -> [f(x)/g(x)]/[h(x)/1] - > f(x)/[g(x) * h(x)]
f(x)/g(x) - h(x)/g(x) -> [f(x) - h(x)]/g(x)
f(x) - (-1 * g(x)) -> f(x) + g(x)
f(x) - (-c) -> f(x) + c
-f(x) + g(x) -> g(x) - f(x)
-1[f(x) - g(x)] -> -f(x) + g(x) -> g(x) - f(x)
cos(x)/(f(x) * sin(x)) -> cot(x)/f(x)
We have added the ability for users to see how a derivation works in depth.
Added a solve
command that is a WIP
.
Misc
Added the ability for derivative
to be called multiple times in one call
The toPostFix, simplify, and derive methods no longer depends on recursion.
Laid the groundwork for a better normalization and compressing system.
Removed unnecessary clones which should result in a slight performance increase.
Added restrictions to some simplifications to avoid messing with domains of functions.
Misc performance improvements.
Added a flag Implicit Multiplication Priority
which determines if 1/2x is
grouped as 1/(2x) when on and (1/2)x when off.
Version 2.0
Bug Fixes
The log
function now correctly accepts base and function arguments in a manner more in line with traditional applications such as Wolfram alpha.
Vardiac functions are now perfected and should work all the time.
Derivatives
Quotient Rule, Power Rule, Addition and subtraction, and trig function support added.
Nearly all functions and operators have been supported with this new derivative functionality.
To derive an equation enter derivative(f(x),x)
where f(x)
is an arbitrary expression.
Simplifications
All simplifications from Post Simplify and Pre Simplify have been merged into AST.Simplify.
This will result in two steps in the pipeline being removed and performance being improved greatly as a direct result. AST Simplification is also more powerful due to its ability to operate on trees instead of strings.
Misc
Added the gamma
, sec
, csc
, cot
, arcsin
, arccos
, arctan
, arcsec
, arccsc
, and arccot
function.
Created the AST
class that is used to calculate derivatives and powerful simplifications.
Added the ability to integrate
functions by approximating them using approximation methods.
To integrate
a function enter integrate(f(x),variable, start,end, interval size)
into the calculator where f(x)
is an arbitrary expression. The interval size
is an optional parameter and is by default set at 0.001
.
Version 1.0.4
Bug Fixes
End of string bug involving unary operators.
Features
Simplification before and after the shunting yard algorithm.
These simplifications can occasionally return a numerical answer even when there are variables in the equation. These simplifications are not yet perfect and may not always generate mathematically correct code.
Added radian (rad) and degree (deg) functions.
Version 1.0.3
Bug Fixes
Fixed the round function
Fixed Contains Variables bug
Fixed Unary bugs.
Features
Added implicit multiplication support
Ability to detect arity of functions which allows variadic functions. This is not yet perfected.
Added the ability to automatically format known constants to other human readable versions.
Version 1.0.2
Changes
Added Alias capability
GCM and LCM support