141 Commits

Author SHA1 Message Date
Max Bruckner
8ad525b66e util/latex: get rid of many unnecessary curly braces 2015-04-19 11:08:00 +02:00
Max Bruckner
9c606c044f latex.toSymbol: get rid of unnecessary curly braces and wire up units 2015-04-19 09:56:40 +02:00
Max Bruckner
ee4486c3df SymbolNode.toTex: Prevent symbols from breaking operators
If a symbol comes after an operator like '\cdot', there needs to be a
space in between, otherwise the cdot won't get recognized by the LaTeX
parser.
2015-04-19 09:49:10 +02:00
Max Bruckner
1c73dc1262 ConstantNode.toTex: simplify exponential notatian and add test 2015-04-19 09:49:09 +02:00
Max Bruckner
2cd3da416e UpdateNode.toTex: Fix syntax of assignment and fix test 2015-04-19 09:49:09 +02:00
Max Bruckner
55a66aeaaf OperatorNode.toTex: get rid of unnecessary curly braces 2015-04-19 09:49:09 +02:00
Max Bruckner
753a0e7893 IndexNode.toTex: Bugfix: execute toTex on Range Arguments
Also changes the Layout of the LaTeX output of IndexNode.
2015-04-19 09:49:08 +02:00
Max Bruckner
978bc2bc31 FunctionAssignmentNode.toTex: get rid of unnecessary curly braces 2015-04-19 09:49:08 +02:00
Max Bruckner
816b6314a7 AssignmentNode.toTex: get rid of unnecessary curly braces 2015-04-19 02:13:27 +02:00
Max Bruckner
8db07e23ad OperatorNode.toTex: BUGFIX: make clear where the exponent belongs to
Without proper parentheses it's impossible to decide whether an exponent
belongs to the numerator of a fraction or to the entire fraction.

For ConditionalNode, the exponent is hard to see without parentheses.
2015-04-19 02:11:20 +02:00
Max Bruckner
f2bcfed89f LaTeX: no spaces between operands and operators 2015-04-17 14:18:24 +02:00
Max Bruckner
7c1c9c0cef Show less unnecessary parentheses in LaTeX output
OperatorNodes with exponentiation, fractions and conditions use less
parentheses.
2015-04-16 22:31:02 +02:00
Jos de Jong
bc6f63b6c9 Merge pull request #318 from FSMaxB/latex-restructure
Restructure and complete the LaTeX generator.
2015-04-13 09:39:16 +02:00
jos
3150e21c8e Fixed #313: parsed functions did not handle recursive calls correctly 2015-04-09 20:29:51 +02:00
Max Bruckner
dacf9fba46 OperatorNode: bugfix: toTex creates invalid LaTeX
toTex has been creating invalid LaTeX for fractions where the operands
are in parenthesis, see '(1+1)/2' for example
2015-04-05 14:29:15 +02:00
Max Bruckner
0868987cdf util/latex: use ":=" for assignments and '=' 'equal' 2015-04-05 14:29:14 +02:00
Max Bruckner
6b1d09f2cb util/latex: new toSymbol 2015-04-05 14:29:12 +02:00
Max Bruckner
5dcb87aeaa util/latex: Remove unused functions
* toArgs
* addBraces
* dots and curly functions

util/latex.js: Remove Function addBraces

util/latex.js remove dots and curly functions
2015-04-05 14:29:09 +02:00
Max Bruckner
13e35217b7 Latex restructure 2015-04-05 14:25:54 +02:00
Rogelio J. Baucells
0d34992080 Merge pull request #23 from josdejong/develop
Sync
2015-03-19 00:06:26 -04:00
Max Bruckner
47f76f35ac Limit custom toTex with multiple callbacks to FunctionNodes
Now only FunctionNode's toTex can be overwritten mit a map of callbacks
2015-03-17 18:14:14 +01:00
Max Bruckner
af763aa996 Fix breaking change (Node.toTex should return an empty string) 2015-03-13 21:23:14 +01:00
Max Bruckner
0fee9173c8 Enable custom toTex functions 2015-03-13 21:23:14 +01:00
Max Bruckner
35ce7f7fb4 Make Node.toTex a wrapper like Node.compile
Node.prototype.toTex is now a wrapper that calls the node's _toTex
2015-03-13 21:23:14 +01:00
Rogelio J. Baucells
2077c39885 Matrix inheritance implementation 2015-03-10 15:28:19 -04:00
Rogelio J. Baucells
21db7d8de9 Parser fixes 2015-03-04 15:29:12 -05:00
Rogelio J. Baucells
da377b9fb7 Parser fixes 2015-03-04 14:39:53 -05:00
Rogelio J. Baucells
b4463d9ef3 Initial require() changes 2015-03-04 13:53:32 -05:00
Max Bruckner
6a9c2df38c Update FunctionAssignmentNode to better handle parenthesis 2015-03-01 17:10:09 +01:00
Max Bruckner
bb2bfc939c Update AssignmentNode to better handle parenthesis 2015-03-01 17:02:42 +01:00
Max Bruckner
b2d868c2ed Update OperatorNode's toTex to better handle parens
Use the new infrastructure in OperatorNode's toTex
2015-03-01 16:34:09 +01:00
Max Bruckner
b5ce799e9d New generic toString for AssignmentNode 2015-03-01 10:35:04 +01:00
Max Bruckner
1f2f42012c New generic toString for FunctionAssignmentNode 2015-03-01 10:35:04 +01:00
Max Bruckner
b1a438fd7f New generic toString for RangeNode 2015-03-01 10:35:03 +01:00
Max Bruckner
9489fbf9dc New generic toString for ConditionalNode 2015-03-01 10:35:03 +01:00
Max Bruckner
1ac3319656 OperatorNode: validate input 2015-03-01 10:35:03 +01:00
Max Bruckner
0e5a6e5a38 New generic toString for OperatorNode 2015-03-01 10:35:03 +01:00
Max Bruckner
2e51086fda Function to check associativity between operators
'isAssociativeWith(a,b)' to check if a is associative with b.

Example:
'+' is associative with '-' because (a+b)-c=a+(b-c)
2015-03-01 10:35:03 +01:00
Max Bruckner
91c0dd6b6d Function getAssociativity
Function to get the left/right associativity of an operator
2015-03-01 10:35:03 +01:00
Max Bruckner
9a3c3f9f95 Function getPrecedence to get operator precedence. 2015-03-01 10:35:03 +01:00
Max Bruckner
d593e749e9 New function getIdentifier() for Nodes
getIdentifier() returns a String that contains the name of the node and
the function associated with it ( in case of FunctionNode and
OperatorNode ).
2015-03-01 10:35:03 +01:00
Max Bruckner
e587f0ce00 New tests for Operator mode
* Factorial of Operator node
* Test unaryMinus with sums and differences
* Test OperatorNode that substracts an OperatorNode
2015-02-14 16:31:05 +01:00
jos
86bcd55352 Changed the way transforms are registered internally, making Node.compile faster, and enabling lazy-loading constants 2015-01-13 10:48:52 +01:00
jos
3d84b47658 Fixed #258: missing parentheses in the toTex representation of function permutations. 2015-01-03 10:29:55 +01:00
jos
3c7c3a2193 Upgraded to decimal.js v4.0.1 2014-12-25 17:47:45 +01:00
jos
97163135b2 Implemented xor operator ^| in the expression parser 2014-12-25 15:45:54 +01:00
jos
73b67bfc09 Removed logical not operator ! (so now we just have logical operators and, not, or, xor). 2014-12-25 14:21:16 +01:00
jos
2614ca6203 Added docs for xor, removed docs of _divide 2014-12-25 14:11:15 +01:00
jos
af08c269f3 Added operators &, |, <<, >>, >>> not, and, or to the expression parser 2014-12-23 16:25:32 +01:00
Favian Contreras
2a5b242091 Added boolean not to parser, and added corresponding test cases. 2014-12-17 01:14:33 -08:00