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
bakk
0dc2e0572f
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
651b289f4b
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
439f732013
kalk_web: Updated kalk and fixed audit problems
2021-05-15 17:22:18 +02:00
bakk
4912e34ec6
Fixed zeroes being trimmed for non-rug numbers
2021-05-15 16:15:25 +02:00
PaddiM8
aefdb59882
Updated the kalk version in web related things
2021-03-31 22:10:05 +02:00
PaddiM8
f4e6265d2e
kalk: Fixed type error in kalk_num/regular.rs
2021-02-22 21:21:43 +01:00
PaddiM8
4fe8f8b77c
Trimming trailing zeroes for non-rug numbers
2021-02-22 20:45:58 +01:00
PaddiM8
4334c40c3e
Fixed xy^z precedence, from (xy)^2 to x(y^2)
2021-02-22 20:27:42 +01:00
Oliver Waldemar
36742abf5a
Created kalk_mobile capacitor app with android and electron targets
2021-01-07 16:34:55 +01:00
PaddiM8
d9c3807877
v0.3.12
2021-01-04 18:01:03 +01:00
PaddiM8
49f3522cd0
Fixed gamma and factorial functions for f64
2021-01-04 17:49:11 +01:00
PaddiM8
ae5fdf215e
Fixed semantic errors
2021-01-03 00:19:22 +01:00
PaddiM8
9591241b8d
kalk 1.4.1
2021-01-03 00:10:58 +01:00
PaddiM8
c0210d7c3f
Removed regex dependency from kalk crate and made 'test-case' a dev-dependency
2021-01-03 00:07:30 +01:00
PaddiM8
d18e437fc2
Implemented prelude gamma function for kalk without rug
2021-01-02 19:25:10 +01:00
PaddiM8
b617ba83fe
Changed to a more recent version of wasm-pack (ci), and added optimization to wasm
2021-01-02 01:00:54 +01:00
PaddiM8
613d2618a0
v0.3.10 and added npm publishing to ci
2021-01-01 17:44:56 +01:00
PaddiM8
13dc88a955
Updated kalk library README to include a JavaScript example, disabled wasm optimization, and created wasm build script
2020-12-31 01:47:09 +01:00
PaddiM8
c20b629216
Moved js_eval into Context
2020-12-31 01:03:16 +01:00
PaddiM8
c273e028b3
Return Option from js_eval
2020-12-31 00:16:39 +01:00
PaddiM8
88215dbe98
JavaScript bindings to KalkNum and ScientificNotation
2020-12-31 00:15:16 +01:00
PaddiM8
5daaa129f2
Added ToString trait to CalcError enum
2020-12-30 22:54:32 +01:00
PaddiM8
72cea91394
WebAssembly foundation
2020-12-30 22:50:39 +01:00
PaddiM8
613829320e
Created a cargo feature for rug
, f64 will be used instead if it's disabled
2020-12-30 16:03:02 +01:00
PaddiM8
005976e1dd
Prevent self-referencing variables
2020-12-28 23:54:12 +01:00
PaddiM8
1b2ae2dba1
Improved consonant precision
2020-12-28 23:06:53 +01:00
PaddiM8
8ea11b6c24
v0.3.9
2020-12-28 19:15:25 +01:00
PaddiM8
22d9f50688
Fixed function declarations not being parsed
2020-12-28 19:13:39 +01:00
PaddiM8
2908b735e5
Interpretation timeout
2020-12-28 19:09:21 +01:00
PaddiM8
2f7af7de90
Simple equation solving, mostly using pre-existing logic from the inverter
2020-12-14 19:21:30 +01:00
PaddiM8
a29e7492f9
v0.3.8
2020-12-14 00:07:19 +01:00
PaddiM8
38a65fe144
Added sum function to symbol_table::contains_fn
2020-12-13 23:47:44 +01:00
PaddiM8
0c7e694648
Fixed bug where symbol_table::contains_fn didn't check in the BINARY_FUNCS map
2020-12-13 23:44:33 +01:00
PaddiM8
ec74089faa
v0.3.7
2020-12-13 23:17:49 +01:00
PaddiM8
483e82fb03
Allow multiplication with parenthesis without star symbol
2020-12-13 23:16:47 +01:00
PaddiM8
4f02a0f0a3
Added 'Copy' to TokenKind, and added a missing line related to the sum function
2020-12-13 22:09:49 +01:00
PaddiM8
fbf901620f
User-configurable precision
2020-12-13 18:12:33 +01:00
PaddiM8
0ce06d96b9
Optimised 'sum' function
2020-12-13 17:45:06 +01:00
PaddiM8
1cbc5004d5
Allow spaces in input number literals
2020-12-13 16:44:45 +01:00
PaddiM8
720a4da283
Fixed constant rounding
2020-12-13 15:53:38 +01:00
PaddiM8
56145c2f45
Store number literals as f64
2020-12-13 15:52:22 +01:00
PaddiM8
4ddb2bf33f
Moved some unit logic into kalk_num
2020-12-13 15:31:11 +01:00
PaddiM8
bd86091e89
Trimming zeroes at the start of scientific notation, and scientific notation exponent value fix
2020-12-13 02:25:33 +01:00
PaddiM8
318e8b85ee
Fixed tests
2020-12-13 02:11:19 +01:00
PaddiM8
0284475b2c
Created KalkNum and moved output formatting from kalk_cli to kalk
2020-12-13 01:27:55 +01:00
PaddiM8
ac6bf052d7
removed un-used rug features
2020-12-11 13:17:33 +01:00
PaddiM8
035ecafe7b
replaced phf with lazy_static
2020-12-10 23:40:29 +01:00
PaddiM8
ffe9ab860d
updated test_percent()
2020-12-10 15:13:02 +01:00
PaddiM8
fefacbc02c
fixed multiplication with percent
2020-12-10 09:27:19 +01:00
PaddiM8
cebe785b22
added percentage unit and modulo
2020-12-09 22:18:00 +01:00
PaddiM8
8e3016e9fe
allow letters after underscore in variables, eg. x_a
2020-12-09 10:47:46 +01:00
PaddiM8
ea236f7e54
updated to 0.2.1
2020-12-09 09:40:26 +01:00
PaddiM8
3ece6ee5c2
fixed panic on trailing spaces
2020-12-09 09:36:49 +01:00
PaddiM8
6e40612a46
Made lexer lex '°' as 'deg'.
2020-06-18 18:06:17 +02:00
PaddiM8
2c3f70e3f2
Fixed merge issues, updated version numbers, and updated README with syntax instructions.
2020-06-18 18:03:40 +02:00
PaddiM8
b966658fa7
Merge branch 'units'
2020-06-18 17:42:36 +02:00
PaddiM8
49e4d286b3
Added units to prelude functions.
2020-06-18 17:41:57 +02:00
PaddiM8
2413ad080f
Fixed parser documentation and interpreter units tests.
2020-06-18 17:06:21 +02:00
PaddiM8
f3b78e74f2
Created unit convertion expression. Syntax: <expr> to <unit>
2020-06-18 16:58:01 +02:00
PaddiM8
aa0e62af4c
Changed nth_sqrt to nth_root.
2020-06-18 16:20:52 +02:00
PaddiM8
1fdfcc29c1
Implemented inversion for some prelude functions.
2020-06-18 16:20:18 +02:00
PaddiM8
a2376c9998
Made the unit be displayed in the result.
2020-06-18 02:02:48 +02:00
PaddiM8
f917b744b5
Added UnsupportedExpression errors.
2020-06-17 21:28:54 +02:00
PaddiM8
643509ce4a
Fixed inversion for (function) variables and added unit tests for the inverter.
2020-06-17 17:45:46 +02:00
PaddiM8
c86b4bc2f7
Fixed the broken unit tests in the parser and completed the test_angle_units test in the interpreter.
2020-06-15 21:30:52 +02:00
PaddiM8
83668bbb84
Integrated the angle unit system with then new dynamic unit system.
2020-06-15 19:10:55 +02:00
PaddiM8
d3d2602217
Updated README with new features and updated version numbers.
2020-06-14 22:53:11 +02:00
PaddiM8
4859d78014
Added ans
variable.
2020-06-14 22:33:29 +02:00
PaddiM8
80690a5575
Added semicolon support to combine several statements in one line.
2020-06-14 22:03:22 +02:00
PaddiM8
1d19f40e9f
Added support for 'minus' expressions in the inverter and added some comments.
2020-06-14 21:54:39 +02:00
PaddiM8
f3c42fb95a
Added support for 'minus' expressions in the inverter and added some comments.
2020-06-14 21:35:56 +02:00
PaddiM8
4c34908368
Changed inverter to instead move expressions to the LHS, like done when equations are solved in maths. Also made it multiply into parenthesis.
2020-06-14 19:23:02 +02:00
PaddiM8
6e81ea5ae1
Added some error checking to the inverter.
2020-06-13 22:18:37 +02:00
PaddiM8
7a4fefe1d0
Merge branch 'master' into units
2020-06-13 21:57:27 +02:00
PaddiM8
7b6f27186d
Publish.
2020-06-13 21:42:14 +02:00
PaddiM8
05bfabb1d4
Made it possible for the inverter to invert expressions with function calls.
2020-06-13 20:06:21 +02:00
PaddiM8
71df9f5454
Created the foundation of an expression inverter. This is used to create a second *inverted* unit declaration, in order to cover both of the units.
2020-06-13 19:01:33 +02:00
PaddiM8
45adb1b526
Added the unit
statement (very basic and experimental).
2020-06-13 16:19:32 +02:00
PaddiM8
ada3fc52f9
Trimmed end matches of dots in order to avoid numbers such as 1.
.
2020-06-12 21:30:03 +02:00
PaddiM8
64083eca82
Updated crate versions (thought I did this in the previous commit??).
2020-06-12 21:27:01 +02:00
PaddiM8
039f79697d
Merge branch 'master' of https://github.com/PaddiM8/kalk
2020-06-12 21:01:12 +02:00
PaddiM8
6f935c1ea0
Changed kalk crate version.
2020-06-12 21:00:56 +02:00
PaddiM8
bf5d02907f
Updated example code in README.
2020-06-12 21:00:03 +02:00
PaddiM8
29960043b8
Version update test.
2020-06-12 18:16:54 +02:00
PaddiM8
f39e9d6c6c
Updated .travis.yml.
2020-06-12 16:10:32 +02:00
PaddiM8
2ccb439dec
Created a workspace Cargo.toml to unify the library and binary.
2020-06-12 14:11:42 +02:00
PaddiM8
7a0ede8dda
Fixed code in documentation in parser.rs
2020-06-12 14:10:10 +02:00
PaddiM8
11c7e5b287
Added example image and expanded feature list.
2020-06-12 00:34:50 +02:00