Commit Graph

280 Commits

Author SHA1 Message Date
bakk
3f4cfd9359 Truncate fractions in rounding::equivalent_fraction 2022-01-23 02:50:14 +01:00
bakk
5c0b7e118b Fixed compilation error when rug is disabled 2022-01-23 02:31:59 +01:00
bakk
e62a53fd28 Allow re-definition of functions 2022-01-23 02:19:38 +01:00
bakk
e10f129706 Made unit field Optional in KalkValue 2022-01-23 01:16:34 +01:00
bakk
8f7726eab5 Added 'length' function and added 'permutations' as an alias to 'perms' function 2022-01-23 00:32:58 +01:00
bakk
6c64563e6f Error message when trying to index by imaginary number 2022-01-23 00:18:49 +01:00
bakk
ad1c59c294 Fixed precedence problems for multiplication following function calls 2022-01-23 00:01:39 +01:00
bakk
c93afbf3a6 Added 'perms' (permutations) and 'sort' functions 2022-01-22 02:29:09 +01:00
bakk
ba2a840a28 Fixed panic for numbers like 6.6666667 2022-01-22 02:21:16 +01:00
bakk
09cee0f463 Added 'sgn' function 2022-01-20 21:18:32 +01:00
bakk
30eea3464f Added 'diag' function 2022-01-20 20:49:00 +01:00
bakk
6212cd6b2d Allow unary after power, eg. x^-1 2022-01-20 20:42:29 +01:00
bakk
545dc7539b Matrix tranpose function 2022-01-19 23:46:36 +01:00
bakk
7d67b14673 Fixed matrix multiplication panicking in some cases 2022-01-18 19:53:32 +01:00
bakk
8d8fb3ca06 Fixed associativity for parse_sum/parse_factor 2022-01-18 18:57:54 +01:00
bakk
845602f663 Get estimate for constant + some integer 2022-01-18 01:39:23 +01:00
bakk
0d76564f13 Fixed estimator showing huge square roots 2022-01-18 01:03:32 +01:00
bakk
d1806f27df Estimation for any fractions with a denominator < 100 2022-01-18 00:51:41 +01:00
bakk
39587bd30e Added constants to rounding::CONSTANTS 2022-01-16 22:55:20 +01:00
bakk
224c320a3e Allow nested sums 2022-01-16 22:24:42 +01:00
bakk
1dd0377e31 Allow nested integrals 2022-01-16 21:58:46 +01:00
bakk
13e42c48a8 Custom sum/prod variable name
Eg. sum(k=1, 3, 2k)
2022-01-16 21:48:46 +01:00
bakk
46d8f5055d Show estimates when printing vector and matrices 2022-01-16 21:08:56 +01:00
bakk
61713b0ead Allow piecewise without 'otherwise' branch 2022-01-16 21:06:51 +01:00
bakk
4e86a62f1f Fixed clippy lints 2022-01-16 20:58:00 +01:00
bakk
fae9fad758 Use KalkValue::has_imaginary() 2022-01-16 20:12:44 +01:00
bakk
5600abbcec Added 'mod' keyword 2022-01-16 15:44:32 +01:00
PaddiM8
ce22ca63f4 Chained comparison operators 2022-01-16 01:44:50 +01:00
PaddiM8
c49e613d52 Vector comprehensions 2022-01-16 00:33:26 +01:00
PaddiM8
c43218b0b5 Added integration tests for derivation, functions, groups, integration, matrices, sum, variables, and vectors 2022-01-14 22:56:59 +01:00
PaddiM8
625eabc779 Equality comparison for matrices 2022-01-14 22:43:20 +01:00
PaddiM8
7c3c4b129f Fixed incorrect vector operations 2022-01-14 22:09:52 +01:00
PaddiM8
f8f16cb2ee Fixed 'dx' parsing in integrals 2022-01-14 21:32:15 +01:00
PaddiM8
8faf17482a Moved variable declaration parsing to analysis.rs 2022-01-14 19:49:04 +01:00
PaddiM8
82dfd8751a Equality comparison for complex numbers 2022-01-14 17:59:04 +01:00
PaddiM8
e700445cde Added logical and/or operators 2022-01-14 17:46:07 +01:00
PaddiM8
38895e0265 Perform comparison instead when there is no equation variable 2022-01-14 16:57:01 +01:00
PaddiM8
1273206d6a Fixed panic for parenthesis-less function calls 2022-01-14 16:04:16 +01:00
PaddiM8
7b0435d3ec 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
f3d8802438 Switch to one-based indexing 2022-01-07 01:24:19 +01:00
PaddiM8
df26046e1d Indexing matrices by ⟦⟧ 2022-01-07 01:19:33 +01:00
PaddiM8
e2271b7005 Allow matrices in prelude functions 2022-01-07 01:04:43 +01:00
PaddiM8
4738e22769 Matrices 2022-01-07 00:40:45 +01:00
PaddiM8
b481d3e788 Don't print real number when it's zero, in KalkValue::to_string() 2022-01-07 00:40:45 +01:00
PaddiM8
09348ba726 Simplify indexer parsing for variables with lowered part 2022-01-07 00:40:45 +01:00
PaddiM8
92ba6c5677 Indexing vectors by ⟦⟧ 2022-01-07 00:40:45 +01:00
PaddiM8
098bb8fb90 Vector indexing with lowered numbers, eg. v_1 2022-01-07 00:40:45 +01:00
PaddiM8
443a1876fb Don't allow multiplication of vectors of different sizes 2022-01-07 00:40:45 +01:00
PaddiM8
3c6f38c28a Treat any groups with commas as vectors 2022-01-07 00:40:45 +01:00
PaddiM8
a8bfc1b497 Added support for ⋅ symbol 2022-01-07 00:40:44 +01:00