Commit Graph

270 Commits

Author SHA1 Message Date
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
bakk
aaa3c6cf61 Fixed integration with expressions like xdx 2021-05-22 23:59:53 +02:00
bakk
eaa520fa67 Fixed eg. 'xy' being parsed as 'y' inside functions 2021-05-22 22:40:24 +02:00
bakk
9bb053c791 Made sum() and ans compatible with complex numbers 2021-05-22 22:03:35 +02:00
bakk
fa4e853982 Implemented complex variants of prelude functions 2021-05-22 20:47:10 +02:00
bakk
1c914bc77f Adjusted estimation and rounding to include imaginary numbers 2021-05-20 20:50:24 +02:00
bakk
aeef49e9ef Division with complex numbers 2021-05-20 19:50:59 +02:00
bakk
4042f2d801 Made complex numbers work without rug 2021-05-20 19:26:03 +02:00
=
465335b75c Fixed negative scientific notation 2021-05-20 15:19:26 +02:00
=
17485bc91b Basics of complex numbers 2021-05-20 15:11:32 +02:00
=
56aa532768 Removed code duplication in kalk_num 2021-05-20 11:03:53 +02:00
PaddiM8
ecede70a3d kalk_web: Fixed error on empty result 2021-05-19 09:45:19 +02:00
bakk
93aa751f66 v0.4.1 2021-05-18 23:23:01 +02:00
bakk
53a8e058f3 Use KalkNum's to_string() function in to_scientific_notation() 2021-05-18 23:20:23 +02:00
bakk
3942aacd6a kalk_web: Added integral and estimation support 2021-05-18 23:08:38 +02:00
bakk
4acb1b7304 Combined to_scientific_notation() methods for both types, and added tests 2021-05-18 23:03:21 +02:00
bakk
b526ca918d Added wasm binding to KalkNum.estimate() 2021-05-18 20:40:43 +02:00
bakk
8e16aa3f1a Bumbed version to 0.4.0 2021-05-18 20:34:17 +02:00
bakk
4688827232 Fixed mod.rs errors for when rug is not used, and added some unit tests there 2021-05-18 20:02:21 +02:00
bakk
c2577ef477 Estimation/rounding for final results 2021-05-18 19:48:13 +02:00
bakk
8399d810d8 Lex special symbols as one token 2021-05-18 17:49:31 +02:00
bakk
505ffb333e Basic rounding for calculus functions 2021-05-17 23:55:20 +02:00
bakk
1971793e08 Higher order derivatation 2021-05-17 23:09:59 +02:00
bakk
ece50bf92c Improved accuracy for derivation 2021-05-17 21:27:11 +02:00
bakk
7a56322e0f Basics of derivation
Derivation implemented for function calls (only). Eg. f'(2). It is not
yet possible to do something like f''(2), but this should be implemented
in the future. It should also be possible to derive normal expressions,
but this is not yet possible.
2021-05-17 20:36:53 +02:00
bakk
126e2e86f3 Created 'Identifier' struct that contains prime count and name without primes (ticks ') 2021-05-17 20:17:34 +02:00
bakk
b2a128d4d1 Fixed integrate function test 2021-05-17 18:15:49 +02:00
bakk
455db4f0f1 Lex '**' as power sign 2021-05-17 18:14:48 +02:00
bakk
4a46fe9fc7 Switched to Simpson's rule (composite, 3/8) for integration 2021-05-17 18:05:22 +02:00