Commit Graph

554 Commits

Author SHA1 Message Date
PaddiM8
5ac3a12251 Added error handling to prelude functions and operations 2022-04-23 23:43:06 +02:00
PaddiM8
136036f3f0 Renamed CalcError to KalkError 2022-03-27 21:32:50 +02:00
bakk
1630a8282e Updated help.txt regarding sum/prod 2022-04-24 00:00:08 +02:00
PaddiM8
c840ace97f Allow vectors in sum/prod functions 2022-03-26 23:30:58 +01:00
PaddiM8
3009ad2ee1 Fixed recursion not working 2022-03-26 19:44:26 +01:00
bakk
1b35a2ab42 Truncate fractions in rounding::equivalent_fraction 2022-01-23 02:50:14 +01:00
bakk
66aeff3ade Fixed compilation error when rug is disabled 2022-01-23 02:31:59 +01:00
bakk
96108b5d7d Allow re-definition of functions 2022-01-23 02:19:38 +01:00
bakk
2cd536bb16 Made unit field Optional in KalkValue 2022-01-23 01:16:34 +01:00
bakk
707114006b Added 'length' function and added 'permutations' as an alias to 'perms' function 2022-01-23 00:32:58 +01:00
bakk
d4a9dad153 Error message when trying to index by imaginary number 2022-01-23 00:18:49 +01:00
bakk
39cbbb607d Fixed precedence problems for multiplication following function calls 2022-01-23 00:01:39 +01:00
bakk
b4e2667f16 Added 'perms' (permutations) and 'sort' functions 2022-01-22 02:29:09 +01:00
bakk
30607e4468 Fixed panic for numbers like 6.6666667 2022-01-22 02:21:16 +01:00
bakk
11869d1fef Added 'sgn' function 2022-01-20 21:18:32 +01:00
bakk
2bda63b058 Added 'diag' function 2022-01-20 20:49:00 +01:00
bakk
2699ce8fee Allow unary after power, eg. x^-1 2022-01-20 20:42:29 +01:00
bakk
33067b9a46 Updated transpose test since it was redundant 2022-01-20 20:04:43 +01:00
bakk
917eea3ffe Matrix tranpose function 2022-01-19 23:46:36 +01:00
bakk
777d54cd40 Fixed matrix multiplication panicking in some cases 2022-01-18 19:53:32 +01:00
bakk
b8b7a0e257 Fixed associativity for parse_sum/parse_factor 2022-01-18 18:57:54 +01:00
bakk
48c1247b96 Get estimate for constant + some integer 2022-01-18 01:39:23 +01:00
bakk
0f4478a9d5 Fixed estimator showing huge square roots 2022-01-18 01:03:32 +01:00
bakk
9746556226 Estimation for any fractions with a denominator < 100 2022-01-18 00:51:41 +01:00
bakk
4903707ce0 Added constants to rounding::CONSTANTS 2022-01-16 22:55:20 +01:00
bakk
89df281366 web: Don't submit empty input 2022-01-16 22:39:17 +01:00
bakk
4521a2e05a Allow nested sums 2022-01-16 22:24:42 +01:00
bakk
46d5ed5716 Allow nested integrals 2022-01-16 21:58:46 +01:00
bakk
d54f2c1c4b Custom sum/prod variable name
Eg. sum(k=1, 3, 2k)
2022-01-16 21:48:46 +01:00
bakk
0f53a0d112 Show estimates when printing vector and matrices 2022-01-16 21:08:56 +01:00
bakk
121e121724 Allow piecewise without 'otherwise' branch 2022-01-16 21:06:51 +01:00
bakk
4704095cd9 Fixed clippy lints 2022-01-16 20:58:00 +01:00
bakk
a36d9849d5 Use KalkValue::has_imaginary() 2022-01-16 20:12:44 +01:00
bakk
6ab25d573c Added 'mod' keyword 2022-01-16 15:44:32 +01:00
PaddiM8
48e7b719f6 Chained comparison operators 2022-01-16 01:44:50 +01:00
PaddiM8
67ef28bd7f Vector comprehensions 2022-01-16 00:33:26 +01:00
PaddiM8
20f61efa7f cli: Fixed panic when pressing tab after number 2022-01-14 23:12:41 +01:00
PaddiM8
c31001777e Added integration tests for derivation, functions, groups, integration, matrices, sum, variables, and vectors 2022-01-14 22:56:59 +01:00
PaddiM8
f7c8ef8ad8 Equality comparison for matrices 2022-01-14 22:43:20 +01:00
PaddiM8
67599e7091 Fixed incorrect vector operations 2022-01-14 22:09:52 +01:00
PaddiM8
7ea88895ff Fixed 'dx' parsing in integrals 2022-01-14 21:32:15 +01:00
PaddiM8
841317b09b Moved variable declaration parsing to analysis.rs 2022-01-14 19:49:04 +01:00
PaddiM8
91ade0d4a5 Equality comparison for complex numbers 2022-01-14 17:59:04 +01:00
PaddiM8
f5eff6d28f Added logical and/or operators 2022-01-14 17:46:07 +01:00
PaddiM8
abd22c4d88 Perform comparison instead when there is no equation variable 2022-01-14 16:57:01 +01:00
PaddiM8
b54b9b3e0c Fixed panic for parenthesis-less function calls 2022-01-14 16:04:16 +01:00
PaddiM8
68f7e6a216 Separated parsing into two phases
The first phase (parser.rs) is generally context-free, and builds a
naive AST where for example function calls are parsed as `f*(x)` where
`f` is a variable and `(x)`is a group. The second phase (analysis.rs)
then creates a new AST, where these are turned into a function call
expression instead.
2022-01-14 15:08:19 +01:00
PaddiM8
4d00974f2c Switch to one-based indexing 2022-01-07 01:24:19 +01:00
PaddiM8
4defe15611 Indexing matrices by ⟦⟧ 2022-01-07 01:19:33 +01:00
PaddiM8
44174c9850 Allow matrices in prelude functions 2022-01-07 01:04:43 +01:00