Commit Graph

520 Commits

Author SHA1 Message Date
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
47e3e5f18f web: Don't replace / in results 2022-01-07 00:40:44 +01:00
PaddiM8
5f29224059
Add workflow dispatch for release action 2022-01-01 17:57:15 +01:00
PaddiM8
1968a85384
Update release.yml 2022-01-01 17:49:42 +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
a922eb84d5 Fixed syntax highlighting for 0x-style literals 2021-12-31 21:18:30 +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
179579de61 Changed web keyboards keys from * and / to × and ÷ 2021-12-29 18:33:52 +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
PaddiM8
7a699009d0
Mentioned rustfmt in README 2021-10-06 00:07:10 +02: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
PaddiM8
7865bf6567
Merge pull request #74 from aurelj/prod
Fix undefined function: '∏'
2021-10-03 22:14:04 +02: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
c5b20e2857 Updated Cargo.lock 2021-10-01 13:19:47 +02:00
PaddiM8
5057e9b1d9 web: Bumped version 2021-10-01 09:42:22 +02:00
PaddiM8
73c271d3c9 v1.0.1 2021-10-01 09:21:11 +02:00
PaddiM8
f1d8cab5a6
Merge pull request #72 from ysndr/patch-1
Fix Nix DevShell
2021-09-30 19:33:16 +02:00
Kiëd Llaentenn
ff496f105c Implement basic GCD/LCM 2021-09-30 14:57:00 +00:00