Skip to content

Commit

Permalink
Merge d9da8c3 into 64d13f6
Browse files Browse the repository at this point in the history
  • Loading branch information
gyrdym committed Sep 22, 2019
2 parents 64d13f6 + d9da8c3 commit aa93d19
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 45 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,8 @@
# Changelog

## 12.0.2
- `xrange` 0.0.8 version supported (`integers` function used instead of `ZRange`)

## 12.0.1
- `xrange` package version locked

Expand Down
20 changes: 0 additions & 20 deletions README.md
Expand Up @@ -44,7 +44,6 @@
- [Matrix column wise reduce](#matrix-column-wise-reduce)
- [Matrix row wise map](#matrix-row-wise-map)
- [Matrix column wise map](#matrix-column-wise-map)
- [Submatrix](#submatrix-taking-a-lower-dimension-matrix-of-the-current-matrix)
- [Getting max value of the matrix](#getting-max-value-of-the-matrix)
- [Getting min value of the matrix](#getting-min-value-of-the-matrix)
- [Matrix indexing and sampling](#matrix-indexing-and-sampling)
Expand Down Expand Up @@ -516,25 +515,6 @@ print(matrix1 - matrix2);
// ]
````

##### Submatrix (taking a lower dimension matrix of the current matrix)
````Dart
import 'package:ml_linalg/linalg.dart';
import 'package:xrange/zrange.dart';
final matrix = Matrix.fromList([
[11.0, 12.0, 13.0, 14.0],
[15.0, 16.0, 17.0, 18.0],
[21.0, 22.0, 23.0, 24.0],
[24.0, 32.0, 53.0, 74.0],
]);
final submatrix = matrix.submatrix(rows: ZRange.closedOpen(0, 2));
print(submatrix);
// [
// [11.0, 12.0, 13.0, 14.0],
// [15.0, 16.0, 17.0, 18.0],
//];
````

##### Getting max value of the matrix
````Dart
import 'package:ml_linalg/linalg.dart';
Expand Down
38 changes: 18 additions & 20 deletions lib/src/matrix/common/data_manager/data_manager_impl.dart
Expand Up @@ -6,7 +6,7 @@ import 'package:ml_linalg/src/common/typed_list_helper/typed_list_helper.dart';
import 'package:ml_linalg/src/matrix/common/data_manager/data_manager.dart';
import 'package:ml_linalg/src/matrix/common/matrix_iterator.dart';
import 'package:ml_linalg/vector.dart';
import 'package:xrange/zrange.dart';
import 'package:xrange/integers.dart';

class DataManagerImpl implements DataManager {
DataManagerImpl.fromList(
Expand All @@ -17,9 +17,9 @@ class DataManagerImpl implements DataManager {
) :
rowsNum = source.length,
columnsNum = getLengthOfFirstOrZero(source),
_rowsIndicesRange = ZRange.closedOpen(0, source.length),
_colsIndicesRange = ZRange
.closedOpen(0, getLengthOfFirstOrZero(source)),
rowIndices = integers(0, source.length, upperClosed: false),
colIndices = integers(0, getLengthOfFirstOrZero(source),
upperClosed: false),
_rowsCache = List<Vector>(source.length),
_colsCache = List<Vector>(getLengthOfFirstOrZero(source)),
_data = ByteData(source.length *
Expand All @@ -36,9 +36,9 @@ class DataManagerImpl implements DataManager {
) :
rowsNum = source.length,
columnsNum = getLengthOfFirstOrZero(source),
_rowsIndicesRange = ZRange.closedOpen(0, source.length),
_colsIndicesRange = ZRange
.closedOpen(0, getLengthOfFirstOrZero(source)),
rowIndices = integers(0, source.length, upperClosed: false),
colIndices = integers(0, getLengthOfFirstOrZero(source),
upperClosed: false),
_rowsCache = source.toList(growable: false),
_colsCache = List<Vector>(getLengthOfFirstOrZero(source)),
_data = ByteData(source.length *
Expand All @@ -55,9 +55,9 @@ class DataManagerImpl implements DataManager {
) :
rowsNum = getLengthOfFirstOrZero(source),
columnsNum = source.length,
_rowsIndicesRange = ZRange
.closedOpen(0, getLengthOfFirstOrZero(source)),
_colsIndicesRange = ZRange.closedOpen(0, source.length),
rowIndices = integers(0, getLengthOfFirstOrZero(source),
upperClosed: false),
colIndices = integers(0, source.length, upperClosed: false),
_rowsCache = List<Vector>(getLengthOfFirstOrZero(source)),
_colsCache = source.toList(growable: false),
_data = ByteData(source.length *
Expand All @@ -76,8 +76,8 @@ class DataManagerImpl implements DataManager {
) :
rowsNum = rowsNum,
columnsNum = colsNum,
_rowsIndicesRange = ZRange.closedOpen(0, rowsNum),
_colsIndicesRange = ZRange.closedOpen(0, colsNum),
rowIndices = integers(0, rowsNum, upperClosed: false),
colIndices = integers(0, colsNum, upperClosed: false),
_rowsCache = List<Vector>(rowsNum),
_colsCache = List<Vector>(colsNum),
_data = ByteData(rowsNum * colsNum * bytesPerElement) {
Expand All @@ -95,8 +95,12 @@ class DataManagerImpl implements DataManager {
@override
final int rowsNum;

final ZRange _rowsIndicesRange;
final ZRange _colsIndicesRange;
@override
final Iterable<int> rowIndices;

@override
final Iterable<int> colIndices;

final List<Vector> _rowsCache;
final List<Vector> _colsCache;
final ByteData _data;
Expand All @@ -108,12 +112,6 @@ class DataManagerImpl implements DataManager {
Iterator<Iterable<double>> get iterator =>
MatrixIterator(_data, rowsNum, columnsNum, _typedListHelper);

@override
Iterable<int> get colIndices => _colsIndicesRange.values();

@override
Iterable<int> get rowIndices => _rowsIndicesRange.values();

@override
List<double> getValues(int index, int length) {
if (index >= rowsNum * columnsNum) {
Expand Down
13 changes: 10 additions & 3 deletions pubspec.lock
Expand Up @@ -161,7 +161,7 @@ packages:
name: coveralls
url: "https://pub.dartlang.org"
source: hosted
version: "5.4.0"
version: "5.5.0"
crypto:
dependency: transitive
description:
Expand Down Expand Up @@ -267,6 +267,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.3"
injector:
dependency: transitive
description:
name: injector
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.8"
intl:
dependency: transitive
description:
Expand Down Expand Up @@ -630,7 +637,7 @@ packages:
name: xrange
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.6"
version: "0.0.8"
yaml:
dependency: transitive
description:
Expand All @@ -639,4 +646,4 @@ packages:
source: hosted
version: "2.2.0"
sdks:
dart: ">=2.4.0 <3.0.0"
dart: ">=2.5.0 <3.0.0"
4 changes: 2 additions & 2 deletions pubspec.yaml
@@ -1,6 +1,6 @@
name: ml_linalg
description: SIMD-based linear algebra (1 operation on 4 float32 values, 1 operation on 2 float64 values)
version: 12.0.1
version: 12.0.2
author: Ilia Gyrdymov <ilgyrd@gmail.com>
homepage: https://github.com/gyrdym/ml_linalg

Expand All @@ -9,7 +9,7 @@ environment:

dependencies:
quiver: '>=2.0.0 <3.0.0'
xrange: 0.0.6
xrange: 0.0.8

dev_dependencies:
benchmark_harness: '>=1.0.0 <2.0.0'
Expand Down

0 comments on commit aa93d19

Please sign in to comment.