NuMojo v0.3 for Mojo 24.5
NuMojo released changelog
This is a list of RELEASED changes for the NuMojo Package.
14/10/2024 (v0.3)
⭐️ New
- Add support for
magicsystem and MAX 24.5 (PR #91 #109 by @shivasankarka). - Add some basic functions, e.g.,
diagflat,tri,trace,T(PR #91 by @shivasankarka). - Add a constructor which reads arrays from numpy arrays (PR #91 by @shivasankarka).
- Add functions
solveandinvfor solving linear algebraAX = YforX, finding inverse of a matrix, and conducting LU decomposition (PR #101 #104 #105 by @forfudan). - Add
itemsetmethod to fill a scalar into anNDArray(PR #102 by @forfudan). - Add
Idxstruct to represent the index of anNDArray(PR #118 by @shivasankarka). - Add NDArray initialization from numpy arrays (PR #118 by @shivasankarka).
- Created a new
iomodule with some basic functions, e.g.,format_float_scientific,loadtxt,savetxt(PR #118 by @shivasankarka).
🦋 Changed
- Make some methods, e.g.,
sort,flatten,inplace(Issue #87 by @mmenendezg, PR #91 by @shivasankarka). - Modify initialization of NDArray (PR #97 by @MadAlex1997)
- Added
Formattabletrait and fixed theprintfunction (PR #108 by @shivasankarka) - Refine the
NDArrayinitializers and array creation routines (Discussion #90, Issue #110).- Remove
randomargument fromNDArrayconstructors. Make random initializer a standalone functions (Issue #96 by @MadAlex1997, PR #97 by @MadAlex1997, PR #98 by @shivasankarka). - Remove initializers from
String. Makefromstringa standalone function (#113 by @forfudan). - Add several
arrayoverloads for initializingNDArray(PR #118 by @shivasankarka).
- Remove
- Modify the behavior of
__get__and__set__. Passing in a sequence ofIntorSlicereturns anNDArray. Passing in anIdxreturns a scalar. Allow users to set a multiple items in oneNDArraywith anotherNDArray, using__set__(PR #118 by @shivasankarka, Discussion #70).
❌ Removed
- Removed all instances of getters and setters with
List[Int],VariadicList[Int](PR #118 by @shivasankarka).
🛠️ Fixed
- Fix the issues in parallelization (due to Max 24.5) for some linear algebra functions, e.g,
matmul,solve,inv, etc (PR #115 #117 by @forfudan).
📚 Documentary and testing
- Add workflows with unit tests and linting (PR #95 by @sandstromviktor).
- Add multi-lingual support (Chinese, Japanese) for the readme file (PR #99 #120 by @forfudan, PR #100 by @shivasankarka).
- Update the test flow file to accommodate MAX 24.5 and the
magicsystem (PR #116 by @forfudan).
17/08/2024 (V0.2)
⭐️ New
Array operations:
- Introduced
diagflat()method for creating diagonal arrays - Implemented most basic array creation routines
- Implemented initializer from string
numojo.NDArray("[[1,2,3],[4,5,6]]") - Enhanced
NDArrayconstructor methods - Added boolean masking for NDArrays
- Introduced new mathematical methods:
floordiv,mod, and more __getitem__and__setitem__now fully compatible with NumPy behavior
Others:
- Introduced Rust-like data type aliases (e.g.,
DType.float64→f64) - Implemented function overloading for core mathematical operations (add, sub, etc.)
- Added a new differentiation module
🦋 Changed
- Improved slicing functionality to match NumPy behavior
❌ Removed
- Removed
in_dtypeandout_dtypeparameters for simplified type handling
📚 Documentatory and testing
Documentation updates:
- Expanded and updated README
- Improved docstrings for functions
- Added style guide and examples
Testing updates:
- Introduced new test files that are compatible with
mojo test.
Contributors
- @shivasankarka
- @forfudan
- @MadAlex1997
- @mmenendezg
- @sandstromviktor