Commit Graph

259 Commits

Author SHA1 Message Date
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
=
2936a58620 Basics of complex numbers 2021-05-20 15:11:32 +02:00
=
869708b454 Removed code duplication in kalk_num 2021-05-20 11:03:53 +02:00
PaddiM8
d21202a446 kalk_web: Fixed error on empty result 2021-05-19 09:45:19 +02:00
bakk
150a0c7632 v0.4.1 2021-05-18 23:23:01 +02:00
bakk
4c92062117 Use KalkNum's to_string() function in to_scientific_notation() 2021-05-18 23:20:23 +02:00
bakk
121aafa118 kalk_web: Added integral and estimation support 2021-05-18 23:08:38 +02:00
bakk
e04742695a Combined to_scientific_notation() methods for both types, and added tests 2021-05-18 23:03:21 +02:00
bakk
cc776367fa Added wasm binding to KalkNum.estimate() 2021-05-18 20:40:43 +02:00
bakk
93830090b5 Bumbed version to 0.4.0 2021-05-18 20:34:17 +02:00
bakk
09c99c9169 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
dea2ab9ee2 Estimation/rounding for final results 2021-05-18 19:48:13 +02:00
bakk
2636f51077 Lex special symbols as one token 2021-05-18 17:49:31 +02:00
bakk
4db84aa441 Basic rounding for calculus functions 2021-05-17 23:55:20 +02:00
bakk
7f32829921 Higher order derivatation 2021-05-17 23:09:59 +02:00
bakk
ff6ad6a10d Improved accuracy for derivation 2021-05-17 21:27:11 +02:00
bakk
15c30cfeee 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
9acdd71589 Created 'Identifier' struct that contains prime count and name without primes (ticks ') 2021-05-17 20:17:34 +02:00
bakk
374a449eab Fixed integrate function test 2021-05-17 18:15:49 +02:00
bakk
0c454fb6f4 Lex '**' as power sign 2021-05-17 18:14:48 +02:00
bakk
48e94b1cdb Switched to Simpson's rule (composite, 3/8) for integration 2021-05-17 18:05:22 +02:00
bakk
08617640a5 Fixed "dx" in integrals, and created calculus.rs
Previously, eg. "dx" would not be parsed as "dx" after a function, since
the parser did not keep track of whether or not it was currently inside
an integral or not, properly. This commit fixes that, and also makes it
possible to use any variable after the "d", eg. "dy". The integration
function was also put in its own file: calculus.rs.
2021-05-17 16:51:16 +02:00
bakk
1d9237d30d Integration estimation
Needs more a bit more accuracy though. Currently the n value in the
trapezoidal rule is fixed.
2021-05-16 15:15:34 +02:00
bakk
4cfd563b38 kalk_web: Updated kalk and fixed audit problems 2021-05-15 17:22:18 +02:00
bakk
d5c991ffdf Fixed zeroes being trimmed for non-rug numbers 2021-05-15 16:15:25 +02:00
PaddiM8
277b1ed4c0 Updated the kalk version in web related things 2021-03-31 22:10:05 +02:00
PaddiM8
4751bbffe0 kalk: Fixed type error in kalk_num/regular.rs 2021-02-22 21:21:43 +01:00
PaddiM8
561bd61c3f Trimming trailing zeroes for non-rug numbers 2021-02-22 20:45:58 +01:00
PaddiM8
31878f9f1f Fixed xy^z precedence, from (xy)^2 to x(y^2) 2021-02-22 20:27:42 +01:00
Oliver Waldemar
ecc0fd5dcf Created kalk_mobile capacitor app with android and electron targets 2021-01-07 16:34:55 +01:00
PaddiM8
93514906f3 v0.3.12 2021-01-04 18:01:03 +01:00
PaddiM8
2714ed0f8c Fixed gamma and factorial functions for f64 2021-01-04 17:49:11 +01:00