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
PaddiM8
16673931a1
Fixed regular.rs compilation errors
2022-01-07 00:40:44 +01:00
PaddiM8
41f8930024
Added vector functions min, max, average
2022-01-07 00:40:44 +01:00
PaddiM8
3cb16462db
Call a function on every item in a vector when given as parameter
2022-01-07 00:40:44 +01:00
PaddiM8
a7d602f1ce
Added vector operations
2022-01-07 00:40:44 +01:00
PaddiM8
532619e92b
Changed KalkNum to an enum, KalkValue, creating a better type system
2022-01-07 00:40:44 +01:00
PaddiM8
a23aca8ad3
v1.1.0
2022-01-01 17:02:11 +01:00
PaddiM8
9a16d92344
Created integration tests
2022-01-01 03:42:49 +01:00
PaddiM8
e6f3483a54
Support loading files in config dir
2022-01-01 02:35:33 +01:00
PaddiM8
dae1e9f290
Added permutation functions (for nPr and nCr), closes #52
2022-01-01 01:09:30 +01:00
PaddiM8
de6e5106e9
Bitshift operations, closes #80
2022-01-01 00:58:20 +01:00
PaddiM8
42895cb342
Fixed compilation error without rug
2021-12-31 23:53:39 +01:00
PaddiM8
c652d9d432
Fixed floating point error in test case
2021-12-31 23:47:12 +01:00
PaddiM8
5aeec6166f
Fixed formatting of scientific notation, closes #81
2021-12-31 23:36:57 +01:00
PaddiM8
95a5718e38
Print result in another base when appropriate
2021-12-31 19:32:04 +01:00
PaddiM8
f1881ac9b6
Fixed '0' being lexed as a base literal
2021-12-30 12:44:48 +01:00
PaddiM8
cb36f69260
Number bases
2021-12-30 02:05:04 +01:00
PaddiM8
3870325541
Special symbols for *, /, arc functions, and subscript
2021-12-29 18:32:11 +01:00
PaddiM8
e836802c4a
Merge pull request #73 from kiedtl/master
...
Add `gcd`/`lcm` functions
2021-10-08 22:41:11 +02:00
Kiëd Llaentenn
a248b0f328
Fix compilation errors when rug feature is disabled
2021-10-08 20:03:30 +00:00
Kiëd Llaentenn
c903e733e1
Add tests for LCM
2021-10-04 04:06:06 +00:00
Kiëd Llaentenn
8dbf564685
Make LCM aware of Gaussian integers
2021-10-04 03:59:24 +00:00
Kiëd Llaentenn
4ab0d74b87
Add tests for GCD
2021-10-04 03:50:33 +00:00
Kiëd Llaentenn
6480d3ba0e
Implement GCD for Gaussian integers
2021-10-04 03:40:50 +00:00
Kiëd Llaentenn
b26bced8fe
gcd: return NaN when encountering non-Gaussian integer
2021-10-03 23:33:48 +00:00
Aurelien Jacobs
638966ec47
Fix undefined function: '∏'
...
Without this fix `prod(1,10,n)` works fine, but `∏(1,10,n)`
returns `Undefined function: '∏'.`
2021-10-03 14:44:55 +02:00
PaddiM8
73c271d3c9
v1.0.1
2021-10-01 09:21:11 +02:00
Kiëd Llaentenn
ff496f105c
Implement basic GCD/LCM
2021-09-30 14:57:00 +00:00
PaddiM8
5a42ba0c91
Updated interpreter tests to expect 0 after comparisons
2021-09-24 14:32:18 +02:00
PaddiM8
de78767529
NaN for comparisons with imaginary numbers
2021-09-24 14:03:47 +02:00
PaddiM8
24c6c932d7
Float error margin for comparison operations
2021-09-24 14:03:24 +02:00
PaddiM8
d2417b2f7e
Output numbers with the precision specified
2021-09-22 16:23:10 +02:00
PaddiM8
d488b514aa
Prevent contants from being overridden
2021-09-22 15:33:58 +02:00
PaddiM8
7f3c2ce8a7
Fixed tick symbol resulting in panic
2021-09-22 15:04:21 +02:00
5225225
3a11191fbf
Add fuzzer
2021-09-21 23:10:42 +01:00
PaddiM8
3e9230933e
Handle new lines on windows
2021-09-04 12:14:49 +02:00
bakk
dbe982bfbf
Merge branch 'master' of https://github.com/PaddiM8/kalk
2021-06-03 11:42:13 +02:00
bakk
0e761f504e
cli: Continue on new line when missing closing group symbol
2021-06-03 11:41:56 +02:00
bakk
14bdd5458c
Fixed crash when missing closing ceil, floor, |
2021-06-03 11:16:36 +02:00
Adám Brudzewsky
42c4384149
Fix ⌋⌊, add []
2021-06-03 00:01:20 +01:00
bakk
32a94956e5
Bumped kalk library version
2021-06-02 22:51:30 +02:00
bakk
6468a6efb0
v1.0.0
2021-06-02 22:37:24 +02:00
bakk
904c603d38
Fixed multiplication with percent
2021-06-01 16:11:43 +02:00
bakk
1f6b59bdae
Added prod function and proper sum symbol
2021-06-01 15:52:41 +02:00
bakk
8f3732b3c7
kalk_web: Adjusted for piecewise and comparison operators
2021-06-01 12:30:21 +02:00
bakk
a05cb65434
Removed redundant if
2021-06-01 00:22:42 +02:00
bakk
d1177f6c10
Allow space after function name, without parenthesis
2021-06-01 00:18:14 +02:00
bakk
ead9dd9caf
Fixed imaginary number being ignored in eval_fn_call
2021-05-31 23:32:08 +02:00
bakk
68e0769942
Made it possible for functions to call themselves
2021-05-31 23:16:47 +02:00
bakk
cf869358f2
Implemented piecewise
2021-05-31 18:55:37 +02:00
bakk
b6fb61c304
v0.5.4
2021-05-31 14:03:28 +02:00
bakk
2e73c90a95
Fixed custom groups not multiplying implicitly
2021-05-31 14:00:24 +02:00
bakk
2910227ce9
Comparison operators and Iverson brackets
2021-05-31 13:46:06 +02:00
bakk
a679e10bfa
Fixed new lines being parsed as numbers
2021-05-30 19:11:25 +02:00
bakk
494b526bd2
v0.5.3
2021-05-29 14:41:21 +02:00
bakk
200aafcce7
Only parse one factor after '√'
2021-05-27 23:31:17 +02:00
bakk
1b01e9f41e
Fixed eg. 'x(2x + 1)' not working inside functions
2021-05-27 23:15:53 +02:00
bakk
5848c36125
Updated version numbers
2021-05-27 19:44:12 +02:00
bakk
05df1a2942
Added kalk_web to ci
2021-05-27 16:57:53 +02:00
bakk
a411b131bb
Fixed pow giving undefined with lhs < 0 and rhs < 1
2021-05-26 22:13:58 +02:00
bakk
98177f03f9
Show NaN and inf in a more user-friendly way
2021-05-25 22:32:50 +02:00
bakk
999d26d05d
Added functions Re(z) and Im(z)
2021-05-25 22:12:26 +02:00
bakk
923858d8c1
Added tests for operations
2021-05-25 22:04:01 +02:00
bakk
16655680e1
Added tests for prelude functions
2021-05-25 21:29:59 +02:00
bakk
2a7c403c56
Support syntax like sin2x
2021-05-24 22:32:33 +02:00
bakk
0001544028
Support syntax like sinxdx in integrals
2021-05-24 22:05:35 +02:00
bakk
5309eafc9a
Keep previous variable value after integration using the same identifier
2021-05-24 21:51:25 +02:00
bakk
8e257e6ee0
Made recursion possible
2021-05-24 21:32:58 +02:00
bakk
6fae2997a4
Round result slightly to get a more 'lagom' amount of decimals
2021-05-24 18:22:03 +02:00
bakk
9c31b13de2
kalk v2.0.0
2021-05-23 18:43:22 +02:00
bakk
e212ba55e4
Added tests for kalk_num estimation, rounding, and to string functions
2021-05-23 18:17:19 +02:00
bakk
2c0360ef1b
abs() the imaginary value on to_string(), since the sign is already there
2021-05-23 16:08:25 +02:00
bakk
0fa6ca9d14
Added tests for calculus.rs
2021-05-23 15:58:23 +02:00
bakk
2ed378b757
Fixed rounding for complex numbers resulting in 0
2021-05-23 15:04:12 +02:00
bakk
11c9fe7ac5
Integration with complex numbers
2021-05-23 02:21:35 +02:00
bakk
b6b4a228b1
Allow a comma before 'dx' in integrals
2021-05-23 01:56:25 +02:00
bakk
81daff2a04
Allow function calls without parenthesis even with a variable as argument
2021-05-23 01:42:10 +02:00
bakk
429ec0fb91
Always round values <= 10^-16 down to zero
2021-05-23 01:30:10 +02:00
bakk
8827b03f2e
Finding square roots for estimate()
2021-05-23 01:10:22 +02:00
bakk
9fa19cb770
Created synonym 'integral' for 'integrate'
2021-05-23 00:55:35 +02:00
bakk
515b2f16b2
Fixed estimation skipping values with no estimation, when the real/complex value had an estimation
2021-05-23 00:52:43 +02:00
bakk
3102bcd080
Convert fract to f64 before turning into string in estimate()
2021-05-23 00:44:58 +02:00
bakk
fb7d2dd273
Avoid panic because of invalid number literal
2021-05-23 00:04:50 +02:00