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
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
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
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
PaddiM8
95fd78f3d1
Matrices
2022-01-07 00:39:29 +01:00
PaddiM8
b937cef83d
Don't print real number when it's zero, in KalkValue::to_string()
2022-01-06 23:02:43 +01:00
PaddiM8
15b0a9a830
Simplify indexer parsing for variables with lowered part
2022-01-06 01:36:13 +01:00
PaddiM8
2cf8f41124
Indexing vectors by ⟦⟧
2022-01-05 23:30:54 +01:00
PaddiM8
c0cc4060a4
Vector indexing with lowered numbers, eg. v_1
2022-01-05 22:41:41 +01:00
PaddiM8
3b740423f7
Don't allow multiplication of vectors of different sizes
2022-01-05 20:39:10 +01:00
PaddiM8
0aabade786
Treat any groups with commas as vectors
2022-01-05 18:50:07 +01:00
PaddiM8
971965ddce
Added support for ⋅ symbol
2022-01-05 15:54:46 +01:00
PaddiM8
c5f99a8343
Fixed regular.rs compilation errors
2022-01-05 15:54:17 +01:00
PaddiM8
28f87f4708
Added vector functions min, max, average
2022-01-05 14:46:52 +01:00
PaddiM8
d0d75bbbee
Call a function on every item in a vector when given as parameter
2022-01-05 02:52:09 +01:00
PaddiM8
78efe183c4
Added vector operations
2022-01-05 02:49:12 +01:00
PaddiM8
92521f842b
Changed KalkNum to an enum, KalkValue, creating a better type system
2022-01-05 01:08:08 +01:00
PaddiM8
139739b97e
v1.1.0
2022-01-01 17:02:11 +01:00
PaddiM8
d01ce4c526
Created integration tests
2022-01-01 03:42:49 +01:00
PaddiM8
dbf3866137
Support loading files in config dir
2022-01-01 02:35:33 +01:00
PaddiM8
474b4d9016
Added permutation functions (for nPr and nCr), closes #52
2022-01-01 01:09:30 +01:00
PaddiM8
7892eee23e
Bitshift operations, closes #80
2022-01-01 00:58:20 +01:00
PaddiM8
1bdecd3921
Fixed compilation error without rug
2021-12-31 23:53:39 +01:00
PaddiM8
b7631f85ca
Fixed floating point error in test case
2021-12-31 23:47:12 +01:00
PaddiM8
5f40e7202e
Fixed formatting of scientific notation, closes #81
2021-12-31 23:36:57 +01:00
PaddiM8
50fa59c58c
Print result in another base when appropriate
2021-12-31 19:32:04 +01:00
PaddiM8
7414d73dc4
Fixed '0' being lexed as a base literal
2021-12-30 12:44:48 +01:00
PaddiM8
4495b69279
Number bases
2021-12-30 02:05:04 +01:00
PaddiM8
75460502ef
Special symbols for *, /, arc functions, and subscript
2021-12-29 18:32:11 +01:00
Kiëd Llaentenn
09fafcb573
Fix compilation errors when rug feature is disabled
2021-10-08 20:03:30 +00:00
Kiëd Llaentenn
2fc11f36d8
Add tests for LCM
2021-10-04 04:06:06 +00:00
Kiëd Llaentenn
a1b7631735
Make LCM aware of Gaussian integers
2021-10-04 03:59:24 +00:00
Kiëd Llaentenn
7f0fee640d
Add tests for GCD
2021-10-04 03:50:33 +00:00
Kiëd Llaentenn
71fc2c18ff
Implement GCD for Gaussian integers
2021-10-04 03:40:50 +00:00
Kiëd Llaentenn
ba553f0c38
gcd: return NaN when encountering non-Gaussian integer
2021-10-03 23:33:48 +00:00
Kiëd Llaentenn
31700634af
Implement basic GCD/LCM
2021-09-30 14:57:00 +00:00
Aurelien Jacobs
12869efe08
Fix undefined function: '∏'
...
Without this fix `prod(1,10,n)` works fine, but `∏(1,10,n)`
returns `Undefined function: '∏'.`
2021-10-03 14:44:40 +02:00
PaddiM8
1b0496ea67
v1.0.1
2021-10-01 09:21:11 +02:00
PaddiM8
b4abdded39
Updated interpreter tests to expect 0 after comparisons
2021-09-24 14:32:18 +02:00
PaddiM8
5ccdfb9f81
NaN for comparisons with imaginary numbers
2021-09-24 14:03:47 +02:00
PaddiM8
814558d46c
Float error margin for comparison operations
2021-09-24 14:03:24 +02:00
PaddiM8
535a834076
Output numbers with the precision specified
2021-09-22 16:23:10 +02:00
PaddiM8
6ad51c82ea
Prevent contants from being overridden
2021-09-22 15:33:58 +02:00
PaddiM8
22bec9ff40
Fixed tick symbol resulting in panic
2021-09-22 15:04:21 +02:00
5225225
d9db16a7fb
Add fuzzer
2021-09-21 23:10:42 +01:00
PaddiM8
6d476a71f2
Handle new lines on windows
2021-09-04 12:14:49 +02:00
bakk
4e1dab3546
Merge branch 'master' of https://github.com/PaddiM8/kalk
2021-06-03 11:42:13 +02:00
bakk
dfc05bc11d
cli: Continue on new line when missing closing group symbol
2021-06-03 11:41:56 +02:00
bakk
e0bc36482c
Fixed crash when missing closing ceil, floor, |
2021-06-03 11:16:36 +02:00
Adám Brudzewsky
73c1569b17
Fix ⌋⌊, add []
2021-06-03 00:01:20 +01:00
bakk
2c279beccd
Bumped kalk library version
2021-06-02 22:51:30 +02:00
bakk
232a437849
v1.0.0
2021-06-02 22:37:24 +02:00
bakk
236d5842b9
Fixed multiplication with percent
2021-06-01 16:11:43 +02:00
bakk
e07c5e5339
Added prod function and proper sum symbol
2021-06-01 15:52:41 +02:00
bakk
349aeb7f0b
kalk_web: Adjusted for piecewise and comparison operators
2021-06-01 12:30:21 +02:00
bakk
6697a37faa
Removed redundant if
2021-06-01 00:22:42 +02:00
bakk
44488d285f
Allow space after function name, without parenthesis
2021-06-01 00:18:14 +02:00
bakk
96a81b1359
Fixed imaginary number being ignored in eval_fn_call
2021-05-31 23:32:08 +02:00
bakk
4da372aefe
Made it possible for functions to call themselves
2021-05-31 23:16:47 +02:00
bakk
5b8ad2829c
Implemented piecewise
2021-05-31 18:55:37 +02:00
bakk
9ded8171bd
v0.5.4
2021-05-31 14:03:28 +02:00
bakk
c5761bc3b1
Fixed custom groups not multiplying implicitly
2021-05-31 14:00:24 +02:00
bakk
fe50789cbd
Comparison operators and Iverson brackets
2021-05-31 13:46:06 +02:00
bakk
2573ae16e2
Fixed new lines being parsed as numbers
2021-05-30 19:11:25 +02:00