-
Notifications
You must be signed in to change notification settings - Fork 1
/
changelog.txt
184 lines (159 loc) · 8.12 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
v1.1.6:
-------
* Updated for SymPy 1.7.1.
v1.1.5:
-------
* Updated for SymPy 1.5.1.
v1.1.4:
-------
* Made top level SymPy functions assignable to vars and usable as vars and function object arguments.
* Improved parsing and error marking incomplete matrices.
* Fixed variable mapping to allow vars mapped to vars mapped to lambdas to work as functions.
v1.1.3:
-------
* Updated matrix multiplication simplification.
* Fix bug where an incomplete matrix during entry would make the rest of the expression disappear.
v1.1.2:
-------
* Upgraded to SymPy 1.5.
* Added usage of SymPy SymmetricDifference.
v1.1.1:
-------
* Branched version for legacy SymPy 1.4 now that 1.5 is out.
* Fixed Javascript bug where double spaces showed up as literal " " strings.
* Fixed LaTeX display of undefined function keyword argument names with underscores.
v1.1:
-----
* Finally put sympad on PyPI.
* Major grammar rework to remove redundant conflicts for speedup and to better handle tail elements (!, ', **, .attr, [idx], (x, y, ...)), \int, \sum and \lim among other things.
* Added symbols with assumptions.
* Added ability to 'call' derivatives of lambda functions.
* Added parsing of 'not' as possible unary prefix to unparenthesized function arguments.
* Added differentiation of parentheses grouping vs. call via curly enclosed parentheses.
* Added mapping of undefined functions back to the variables they are assigned to.
* Added partial differential equation support.
* Added ability to select display of leading rational of products.
* Added parsing of LaTeX subscripts in \operatorname.
* Added ability to select strict or loose LaTeX formatting.
* Made supported builtin functions accessible directly by name without need of escape character.
* Made Eq returned from SymPy display as = when unambiguous in grammar.
* Brought quick mode up to date with many recent changes.
* Re-enabled unspaced quick mode function arguments.
* Lots of tweaks to undefined functions for display and use in assignment to lambdas.
* Removed recursive execution of script and relegated it to a command line switch for development.
* Finally documented lots of changes.
v1.0.19:
--------
* Added parsing and writing of initial conditions of derivatives of undefined functions in function format (complicated).
* Added proper formatting of exceptions which contain newlines in the exception text.
* Added error hint text to web client.
* Improved unparenthesized argument parsing for functions.
* Improved error reporting from the parser.
* Fixed "d / dx (a) b" and "\frac{d}{dx} (a) b" to work properly.
v1.0.18:
--------
* Added variable stack frames to variable mapping.
* Added remapping of differentials in derivatives and integrals.
* Changed lambdas to not automatically bind global variables if they have the same names as parameters, instead they can be accessed with @().
* Changed lambdas to not automatically doit() their body upon definition by default instead of needing the no-eval pseudo-function.
* Improved assignment parsing to handle assignment to undefined functions better (creation of lambdas).
* Moved SymPy .doit() from per-object level to end of whole evaluation since it can interfere with certain calculations.
v1.0.17:
--------
* Added explicit substitution shorthand and AST.
* Added undefined function parsing and writing of immediate value arguments for initial conditions.
* Changed to allow implicit undefined functions as exponents for grammatical consistency.
* Changed some ordering for negatives to display simpler additive terms.
* Fixed some annoying cases where fractions were displayed in the numerator of another fraction instead of being absorbed into it.
* Fixed certain tokens which were not being gramatically rejected as they should have been with a trailing \w.
v1.0.16:
--------
* Added early out for successful parse if all remaining conflicts are trivial reductions.
* Fixes, randomized testing no longer returning any errors.
v1.0.15:
--------
* Extended recognition of single unparenthesized arguments to functions - "N ln sin**2 3" is valid now.
* Added union, intersection and symmetric difference unicode characters.
* Added more thorough test cases to test_sym.
* Changed And() parsing to more reliably recover original extended comparisons from mangled SymPy representation.
* Tweaked lambda / slice / dict parsing and writing to be more comprehensive.
* Fixed even more esoteric grammar inconsistencies.
v1.0.14:
--------
* Added translation from messy SymPy representation of symmetric set difference to internal simple one.
* Changed test_sym to work better and test more cases.
* Fixed many small grammatical inconsistencies.
* Fixed matrix simplification error during integration for ODE solver.
v1.0.13:
--------
* Added differentiation now also parses and writes out forms dy/dx and df/dx.
* Added parsing and representation of numerical subscripts.
* Modified differential recognition in integral parsing to work better - \int dx/x, \int *lambda* dx, etc...
* Fixed erroneous mapping of bound variables in lim, sum, diff and intg.
v1.0.12:
--------
* Added variables tab to browser client.
* Added lambdas as expression in proper contexts (can add, multiply, differentiate, etc...).
* Added S(num) is automatically converted to just num.
* Changed lambda function parsing to be more robust and raised lambda keyword binding precedence.
v1.0.11:
-----
* Added definition of lambdas via assignment to undefined function - f(x) = x**2.
* Modified undefined functions to be specifiable implicitly without '?' in most contexts.
v1.0.10:
-----
* Added undefined function initial conditions - ?y(x)(0) = something, ?y(x)'(0) = something
* Added implicit undefined functions - y(x) -> ?y(x)
v1.0.9:
-------
* Added undefined functions (for ODEs).
* Added prime ' differentiation operator.
* Added semicolon separator to allow multiple expressions on single line.
* Cleaned up internal negative object parsing and printing rules.
* Fixed internal lambda variable representation so lambda defined variables doesn't get remapped.
v1.0.8:
-------
* Added extended comparisons: x < y < z >= w != ...
* Added SymPy set operation Contains usage.
* Added and expanded some function visual translations: summation(), .limit(), .diff(), .integrate() and more...
* Added compacting of multiple Subs() and .subs().
* Changed lambdas to bind global variables on definition.
* Cleaned up passing assignments as equations into functions.
* Cleaned up internal handling of incomplete and empty matrices.
* Fixed more obscure grammar cases.
v1.0.7:
-------
* Added Pythonic 'or', 'and' and 'not' operators using SymPy Or, And and Not.
* Added slice() translation and lots of slice formatting fixes.
* Changed comparisons to use SymPy comparison objects first and fall back to Python operators if that fails.
* Patched in basic math operation on SymPy Booleans, x + (y > z) valid now.
* Patched SymPy sets.Complement to sympify args.
* Fixed lots of obscure corner case grammar things that should never happen anyway like dictionaries of slices.
v1.0.6:
-------
* Added walk over vector field plotting using matplotlib.
v1.0.5:
-------
* Added vector field plotting using matplotlib.
v1.0.4:
-------
* Added basic function plotting using matplotlib.
v1.0.3:
-------
* Extended post-evaluation simplification into basic Python containers.
* dict_keys, dict_values and dict_items converted to lists.
* Autocompletion of parentheses of member function calls and user lambdas.
* Added Subs() and .subs() translation and latex parsing.
v1.0.2:
-------
* Changed function keyword argument recognition to be more friendly to equations.
* Added automatic post-evaluation simplification (optional through env).
* Added SymPy matrix multiplication intermediate simplification patch to control matrix expression blowup (optional through env).
* Union of symmetric Complement sets converted back to symmetric difference after evaluation where applicable.
v1.0.1:
-------
* Changed native vector and matrix representation from {} to \[] to make grammatical room for sets and dictionaries.
* Added basic sets and operations.
* Added Python dictionaries.
* Added LaTeX \Re and \Im functions and translation.
* Integral now concatenates iterated integrals into one function call.