-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ground work for solving has been laid (#30)
* Added method to Node * Moved trig simplification up a stage * Cot and Tan simplifications cos(x)/sin(x) -> cot(x) sin(x)/cos(x) -> tan(x) * Optimized Generate function New function avoids an allocation and goes from O(n^2) to O(n) * Another cot rule [f(x) * cos(x)]/sin(x) -> f(x) * cot(x) * Rewriting derivative rule descriptions * In depth derivative assistance * Misc change * Updated ToPostFix Removed recursion in favor of an explicit stack * New trig transformations 5 trig transformations added * Refactored Unit Tests * Added method studs Made derive an internal function * Groundwork for normalization * Compressing and expanding functions working * Normalization WIP * Even Trig Identities * Misc push * Misc Refactor of Node * Odd Trig Identities * Misc refactor of AST * Added more use of SetRoot Removed Alias * Misc changes * Misc Changes * Added expansion for internal_product * Additional simplifications * Added internal_product functionality * Synced up most of the rules in InternalSwap and Swap * Tree based generation for gen function * Normalize Refactor * Removed uneeded clones * Simplified Case Logic for Mixed divison and multiplication * Reduced uneeded allocations in normal mode * Update AbMath.dll * Better time tracking * Added an feature flag The flag Implicit Multiplication Priority determines if 1/2x is grouped as 1/(2x) when on and (1/2)x when off. * Better tracking of TotalMilliseconds * Tokenizer changes * Alias changes * derivative can be called multiple times in one call * Some Algebra added * Misc changes * Restricted when GCD Simplifications can be used * Infinite Optimization Chains generic guard * Division simplifications added * Added power reduction and some solver methods * Solver Multiplication * Added a total command that replaces sum The sum command will be reimplemented to represent a different concept * Removed a rule that conflicts with another rule This resulted in an infinite loop * Added a restriction to subtraction operator * Subtraction rule cannot trigger when a division is present * Added support for subtraction of division in AST * Made Derive nonrecursive * Made simplifications itterative * Small changes * Misc * Added restrictions to ensure that trig functions don't violate domain boundaries Previously a function like sin(1/x)^2 + cos(1/x)^2 would equal 1 even when x = 0. This is unintended behavious and should be avoided at all costs? * Added a cos over sin rule * Fixes #29 Fixed #29 and added a test case for it
- Loading branch information
Showing
24 changed files
with
3,825 additions
and
2,620 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.