Commit Graph

290 Commits

Author SHA1 Message Date
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
bakk
5ad9532ca0 v0.5.3 2021-05-29 14:41:21 +02:00
bakk
7cd5a62253 Only parse one factor after '√' 2021-05-27 23:31:17 +02:00
bakk
83898e3946 Fixed eg. 'x(2x + 1)' not working inside functions 2021-05-27 23:15:53 +02:00
bakk
78e93a5f96 Updated version numbers 2021-05-27 19:44:12 +02:00
bakk
2e9a5d213b Added kalk_web to ci 2021-05-27 16:57:53 +02:00
bakk
85edae0590 Fixed pow giving undefined with lhs < 0 and rhs < 1 2021-05-26 22:13:58 +02:00
bakk
6d88da749d Show NaN and inf in a more user-friendly way 2021-05-25 22:32:50 +02:00
bakk
b6412aca1e Added functions Re(z) and Im(z) 2021-05-25 22:12:26 +02:00
bakk
a42bb5d002 Added tests for operations 2021-05-25 22:04:01 +02:00
bakk
22488f1f38 Added tests for prelude functions 2021-05-25 21:29:59 +02:00
bakk
87df8df12a Support syntax like sin2x 2021-05-24 22:32:33 +02:00
bakk
643b92c23d Support syntax like sinxdx in integrals 2021-05-24 22:05:35 +02:00
bakk
f944e3cebc Keep previous variable value after integration using the same identifier 2021-05-24 21:51:25 +02:00
bakk
c4c768374f Made recursion possible 2021-05-24 21:32:58 +02:00
bakk
d1365b5982 Round result slightly to get a more 'lagom' amount of decimals 2021-05-24 18:22:03 +02:00
bakk
e40428016f kalk v2.0.0 2021-05-23 18:43:22 +02:00
bakk
04644dc54f Added tests for kalk_num estimation, rounding, and to string functions 2021-05-23 18:17:19 +02:00
bakk
9e0c6a732b abs() the imaginary value on to_string(), since the sign is already there 2021-05-23 16:08:25 +02:00
bakk
eaf712e01f Added tests for calculus.rs 2021-05-23 15:58:23 +02:00
bakk
33de7f034c Fixed rounding for complex numbers resulting in 0 2021-05-23 15:04:12 +02:00
bakk
b0a1d3581b Integration with complex numbers 2021-05-23 02:21:35 +02:00
bakk
ab6e758726 Allow a comma before 'dx' in integrals 2021-05-23 01:56:25 +02:00
bakk
0e425fbf90 Allow function calls without parenthesis even with a variable as argument 2021-05-23 01:42:10 +02:00
bakk
7fd6d28e1d Always round values <= 10^-16 down to zero 2021-05-23 01:30:10 +02:00
bakk
0bbf1c4974 Finding square roots for estimate() 2021-05-23 01:10:22 +02:00
bakk
34e374b346 Created synonym 'integral' for 'integrate' 2021-05-23 00:55:35 +02:00
bakk
7b635079c8 Fixed estimation skipping values with no estimation, when the real/complex value had an estimation 2021-05-23 00:52:43 +02:00
bakk
c80f58433c Convert fract to f64 before turning into string in estimate() 2021-05-23 00:44:58 +02:00
bakk
7af71ff332 Avoid panic because of invalid number literal 2021-05-23 00:04:50 +02:00
bakk
594d139345 Fixed integration with expressions like xdx 2021-05-22 23:59:53 +02:00
bakk
a60dc2bf65 Fixed eg. 'xy' being parsed as 'y' inside functions 2021-05-22 22:40:24 +02:00
bakk
cff40be924 Made sum() and ans compatible with complex numbers 2021-05-22 22:03:35 +02:00
bakk
637c3e331b Implemented complex variants of prelude functions 2021-05-22 20:47:10 +02:00
bakk
7898f40021 Adjusted estimation and rounding to include imaginary numbers 2021-05-20 20:50:24 +02:00
bakk
328810d29d Division with complex numbers 2021-05-20 19:50:59 +02:00
bakk
ee3082ad66 Made complex numbers work without rug 2021-05-20 19:26:03 +02:00
=
22ac36bb4a Fixed negative scientific notation 2021-05-20 15:19:26 +02:00