Matrix.fromList
,Matrix.fromFlattenedList
:- speed up
Vector.randomFilled
:- factory-constructor speed-up
Vector.filled
:- factory-constructor speed-up
Vector.fromList
:- factory-constructor speed-up
README
:- Add link to
solve
method api docs
- Add link to
Vector
:- Extracting values from cache for
exp
andprod
methods fixed
- Extracting values from cache for
Matrix
:- add
solve
method for solving a system of linear equations
- add
- Lib migration to Dart 3.0.0 (only non-breaking changes)
Vector
:- Fixed typo in documentation for
min
method
- Fixed typo in documentation for
- README:
- added differences between
vector_math
andml_linalg
- added differences between
- Matrix:
transpose
method speed up
- Matrix:
Float32Matrix
,Float64Matrix
:Matrix
constructors replaced by specific ones
- Matrix:
mean
: redundant code removed
- Matrix:
variance
method speed up
- Matrix:
mean
method speed up
- Matrix:
prod
method fixed
- Matrix:
max
andmin
methods speed up
- Matrix:
mutiply
method (Hadamard product) speed up
- Matrix:
pow
,sum
,prod
,exp
,log
methods speed up
- Matrix:
norm
method speed up (frobenius case)
- Matrix:
mapElements
method speed up
- Matrix:
sample
method speed up
- Matrix:
transpose
method fixed for oversized flattened list
- Matrix:
- Flattened SIMD list length fixed
- Benchmarks:
- Added new baseline scenarios for List-List addition
- Matrix:
- Little optimization for 'getRow' and 'getColumn'
- Matrix:
- SIMD used in matrix-matrix operations => performance improved for a lot of operations
- Architectural changes: MatrixDataManager removed, MatrixFactory removed
- Matrix:
- SIMD used in matrix-scalar operations => performance improved for a lot of operations
- Vector:
- getter
_simdList
changed to function => performance improved for a lot of operations - getter
_typedList
changed to function => performance improved for a lot of operations
- getter
- Add more tests for:
Matrix.columnIndices
Matrix.columns
Matrix.decompose
- More tests added for matrix "add" operator
- Matrix:
- Arithmetic operations speed up
- Matrix, Vector:
- Multiplication speed up
- Matrix:
ByteData
replaced with typed lists
- Matrix:
inverse
method speed up (Forward substitution case)
- Matrix:
inverse
method speed up (Backward substitution case)
- Matrix:
decompose
method speed up (LU decomposition case)
- Matrix:
decompose
method speed up (Cholesky decomposition case)
- Matrix:
transpose
method speed upfromByteData
constructor added
- Vector:
- Arithmetic operations: vector32-vector64 operations speed up
- Vector:
- Arithmetic operations: replace 'List' with 'Iterable'
- README:
- Add information on Vector creation to README
- README:
- Add examples on vector arithmetic operations to README
- Vector:
- Add compatibility for arithmetic operations between float32 and float64 vectors
- Add compatibility for arithmetic operations with List class
- Vector:
fromList
,randomFilled
,filled
constructors speed up
- Vector:
- '+', '-', '/', '*' operators: acceptable types narrowed
- Matrix:
eigen
method added, Power Iteration method added
- Vector:
hamming
distance implemented
- Vector:
- Added
set
method
- Added
- Vector:
- Added
median
method
- Added
- Matrix:
- Added
variance
method
- Added
- Vector:
- Added
filterElements
method
- Added
- Matrix:
- Added
filterColumns
method
- Added
- Matrix:
- Added
random
constructor - Added
randomSPD
constructor - Optimized Cholesky decomposition
- Optimized LU inverse
- Optimized Cholesky inverse
- Added
- Added
.g
symbol to the names of all autogenerated files - Matrix:
- Optimised LU decomposition
- Added documentation for matrix decomposition and inversion
- Matrix:
- Added LU inverse
- Added backward substitution inverse
- Matrix:
- Added LU decomposition
- Matrix:
- Added extra test-cases for Cholesky decomposition
- Matrix:
- Added Cholesky decomposition
- Added
inverse
method:- Cholesky inverse
- Forward substitution inverse for triangular matrices
- Error handling improvements
pubspec.yaml
:mockito
dependency updatedtest
dependency updated
- null-safety supported (stable)
- null-safety supported (beta)
xrange
v1.0.0 supported
README.md
: images for SIMD examples corrected
matrixToJson
,fromMatrixJson
,vectorToJson
,fromVectorJson
:null
value handling
Distance
:- export files for serialization functions added
Distance
:- serialization logic added
CI
:- github actions set up
FUNDING.yml
created
Matrix.fromRows
: copying source list instead of passing it by reference added (issue #100)Matrix.fromColumns
: copying source list instead of passing it by reference added (issue #100)
injector
lib 1.0.9 supported
pubspec
:injector
dependency corrected
Matrix.pow
: caching removedVector.sum
: summation of SIMD lanes fixed
Vector
:Vector.log
method added
Matrix
:Matrix.log
method added
Matrix
:Matrix.mapElements
method added
Matrix
:Matrix.multiply
method added
Vector
:Vector.mapToVector
method added
Matrix
:Matrix.sum
method addedMatrix.prod
method added
Vector
:Vector.prod
method added
Matrix
:Matrix.exp
method added
Vector
:Vector.exp
method added
Matrix
:Matrix.pow
method added
Vector
:Vector.toIntegerPower
is deprecatedVector.pow
method added
Matrix
:Matrix.isSquare
getter addeddivision operator
: throwing exception added in case of square matrix
Vector
:fromJson
constructor addedtoJson
method added
vectorToJson
helper function added to public APIfromVectorJson
helper function added to public API
fromMatrixJson
: dynamic type support added to parsing
DType
:dTypeToJson
helper function added to public APIfromDTypeJson
helper function added to public API
Matrix
:fromJson
constructor addedtoJson
method added
matrixToJson
helper function added to public APIfromMatrixJson
helper function added to public API
Matrix
:fromList
constructor, check for length of nested lists added
Matrix
: constructors speed up- Float64-based matrix class added
Vector
: vector operations speed upFloat64x2Vector
:Float64x2Vector
class created
Axis
: documentation addedDType
: documentation addedMatrix
: documentation extended and corrected
Matrix
:Matrix.row
constructor addedMatrix.column
constructor added
Matrix
:Matrix.diagonal
constructor added (for creation diagonal matrices)Matrix.scalar
constructor added (for creation scalar matrices)Matrix.identity
constructor added (for creation identity matrices)
Matrix
:mean
method addeddeviation
method addedhasData
getter addedempty
constructor added
Vector
:empty
constructor added
Vector
:sqrt
method added
Matrix
:rowIndices
field added to the interfacecolumnIndices
field added to the interface
xrange
0.0.8 version supported (integers
function used instead ofZRange
)
xrange
package version locked
Matrix
:pick
method removedsubmatrix
method replaced withsample
method[]
operator returnsVector
from now
Vector
:randomFilled
constructor api changed,min
andmax
args are ofnum
type nowfromList
constructor api changed, from now as a source expectedList<num>
instead ofList<doublet>
filled
constructor api changed, from now sampling value is anum
instead ofdouble
- Dart sdk constraint returned to 2.2.0
- Dart sdk constraint changed: from 2.2.0 to 2.4.0
Matrix
:pick
method refactored- Grinder tasks for unit testing, code analysis and coverage added
Matrix
:Iterable<Iterable<double>>
implemented
Vector
:randomFilled
default parameters fixed- Tests for
Vector
's constructors added
- readme updated: explanation images added
- Images for readme.md updated (simd architecture explanation)
- Images for readme.md added (simd architecture explanation)
Vector
:hashCode
speed uprandomFilled
constructor extended:min
andmax
parameters added
Vector
:hashCode
improvements
Vector
:hashCode
re-implemented: now it's possible to use the vector as a map key
Matrix
:sort
method added and implemented
Vector
:subvectorByRange
method added and implemented (for float32 vector)
pubspec.yaml
: sdk version constraint changed from>=2.3.0
to>=2.2.0
Float32Matrix.columns
: empty list supported as a sourceFloat32Matrix.rows
: empty list supported as a source
Float32Matrix.fromList
: empty list supported as a source
- Links in README corrected
Vector
:- removed possibility to mutate an instance of the Vector:
isMutable
flag removed[]=
operator removed
- removed possibility to mutate an instance of the Vector:
Matrix
:- removed possibility to mutate an instance of the Matrix:
setColumn
method removed
insertColumns
method addedMatrix.from
renamed toMatrix.fromList
Matrix.fromFlattened
renamed toMatrix.fromFlattenedList
- benchmarks added for checking matrix initialization performance
- removed possibility to mutate an instance of the Matrix:
- Performance enhancements
- Dart 2.3.0 supported
Vector
:Distance
enum addeddistanceTo
method refactored- cosine distance calculation added
Matrix
:rows
constructor renamed tofromRows
columns
constructor renamed tofromColumns
flattened
constructor renamed tofromFlattened
rows
getter addedcolumns
getter added
Matrix
:ZRange
support (instead of the library built-inRange
)
Vector
:unique
method refactored
Vector
:- normalize method added to interface and supported in
Float32x4Vector
- rescale method added to interface and supported in
Float32x4Vector
- normalize method added to interface and supported in
VectorBase
: cache for popular operations implemented
Matrix
:MatrixMixin
corrected
Vector
class refactored (get rid of redundant mixins)
- prefix
ML
removed from entities' names - Float32x4Vector: equality operator override added
- Matrix:
uniqueRows
method added
- MLMatrix: fixed bug in
setColumn
method when rows cache was not cleared
- MLMatrix:
setColumn
method implemented
- MLMatrix: dummy for
setColumn
method added
- MLMatrix: frobenius norm calculation added
- MLMatrix:
/
operator added - MLMatrix:
rowsMap
method added - MLMatrix:
columnsMap
method added
max
andmin
methods added for matrix
- Travis integration added
dartfmt
task added
- MLVector and MLMatrix now don't have generic type parameters
- Static factories converted into abstract factories
toString
method specified for matrix mixin- examples for vector operations fixed
- Vector type removed (there are no longer
column
androw
vectors) - Matrix's method
getColumnVector
renamed togetColumn
- Matrix method
getRowVector
renamed togetRow
- Public api documentation for
MLMatrix<E>
added
- Mutable vectors supported in matrix
- Add possibility to create mutable vectors
- Add support for value assignment via []= operator
- readme contacts section updated
- build_runner dependency updated
- readme badge corrected
- readme updated
vectorizedMap
vector's method improved: batch boundary indexes may be passed into a mapper functioncolumnsMap
androwsMap
matrix's method combined into one method -vectorizedMap
- Public factories
Float32x4VectorFactory
andFloat32x4MatrixFactory
renamed intoFloat32x4Vector
andFloat32x4Matrix
copy
vector's method removed
pick
method added to matrix api: it's possible now to combine a new matrix from different segments of a source matrix
- README.md updated (table of content)
- Travis integration added
- Support matrices in vector operations
- Column and row vectors added
- Unnecessary generic type argument removed from
MLMatrix
class - Matrix logic split into separate mixins
MLVectorMixin
added, benchmark directory reorganized
- Map functions added to matrix
Float32x4MatrixFactory
extended
- Readme updated
- Library public release