Releases: VirtualRaven/mathlibra
Releases · VirtualRaven/mathlibra
Release Candidate 3 for V1.3.0
This release contains bugfixes for V1.3.0
Release Candidate 1 for V1.3.0
Major features
- Spaces matter and parentheses are optional, it is now possible to write
sqrt x
andsin 2PI
! - Function signatures, mathlibra is now able to print the signature of loaded functions (Ask core_tester to list loaded functions to see an example of this)
- New functions as
sum
,map
andrange
- New operator called subrange
#
which enable element access in matrices - Exporting parsing result, a new API function allows the host application to export a tokenized version of the expression.(Test this feature by enabling it in core_tester's menu)
Bugfixes
Fix bug which caused assignments to constant variables to trigger memory leaks.
Release Candidate 3 for V1.2.0
Release note - BUILD 96
This release adds several new features. The project has also been licensed under the Mozilla public license v2
Major features
- New tester tool - The new tester tool executes predefined test from files and runs memory diagnostics.
- Extends external API - The functions map,defineFunction,undefineFunction was added.
- Optimization- Mathlibra can now optimize frequently used expressions
Bug-fixes
Fixed #18 #17 and #16. This release also resolves the issue with implicit multiplication between functions.
Release candidate 2 for v1.2.0
v1.2.0 comes with a completely new type system.
Mathlibra now supports the following expressions
- Strings using
"hello world"
- Vectors using
[1,2,3,4]
- Matrices using
[1,2,3|4,5,6|7,8,9]
- Matrices multiplication
[1,0,0|0,1,0|0,0,1]*[1,2,3|4,5,6|7,8,9]
- Vector concatenation
x=[1,2,3]
[x,4]
which returns[1,2,3,4]
. - Which could also have been written directly as
[ [1,2,3] , 4]
Matrices and strings are both values they can be used as such
x="hello world"
x=[1,2,3]
To get the size of an matrix use size(), for examplesize([1,1|1,1])
which returns[2,2]
.
Notes
- Numbers are 1x1 matrices, thus writing
[42]
is equal to writing 42 - Bracket initialization is just syntactic sugar for writing
matc(mat(1,2,3),mat(4,5,6),mat,(7,8,9)))
where matc is an function taking several matrices and concatenating them by column, mat works in the same manner but works by row.
Due to the fact that numbers are 1x1 matrices this results in mat(1,2,3) creating[1,2,3]