Vector class abstract
An algebraic vector with SIMD (single instruction, multiple data) architecture support and extended functionality, adapted for data science applications
The vector's components are represented by special data type, that allows to perform vector operations extremely fast due to hardware assisted computations.
Constructors
- Vector.empty({DType dtype = DType.float32})
-
Creates a vector of zero length
factory
- Vector.filled(int length, num value, {DType dtype = DType.float32})
-
Creates a vector of length equal to
length
filled withvalue
.factory -
Vector.fromJson(Map<
String, dynamic> json) -
factory
-
Vector.fromList(List<
num> source, {DType dtype = DType.float32}) -
Creates a vector from a
source
.factory - Vector.fromSimdList(List source, int actualLength, {DType dtype = DType.float32})
-
Creates a vector from a simd-typed collection. It accepts only
Float32x4List or Float64x2List lists as a source.
factory
- Vector.randomFilled(int length, {int? seed, num min = 0, num max = 1, DType dtype = DType.float32})
-
Creates a vector of length equal to
length
, filled with random values within the rangemin
(inclusive) -max
(exclusive). Ifmin
greater than or equal tomax
- an argument error will be thrown. The random values are generated by Random class instance, that is created with a seed value equalsseed
factory - Vector.zero(int length, {DType dtype = DType.float32})
-
Creates a vector filled with zeroes with length equal to
length
.factory
Properties
- dtype → DType
-
Denotes a data type, used for representation of the vector's elements
no setter
- first → double
-
The first element.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- isEmpty → bool
-
Whether this collection has no elements.
no setterinherited
- isNotEmpty → bool
-
Whether this collection has at least one element.
no setterinherited
-
iterator
→ Iterator<
double> -
A new
Iterator
that allows iterating the elements of thisIterable
.no setterinherited - last → double
-
The last element.
no setterinherited
- length → int
-
The number of elements in this Iterable.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- single → double
-
Checks that this iterable has only one element, and returns that element.
no setterinherited
Methods
-
abs(
{bool skipCaching = false}) → Vector - Returns a new vector where the elements are absolute values of the original vector's elements
-
any(
bool test(double element)) → bool -
Checks whether any element of this iterable satisfies
test
.inherited -
cast<
R> () → Iterable< R> -
A view of this iterable as an iterable of
R
instances.inherited -
contains(
Object? element) → bool -
Whether the collection contains an element equal to
element
.inherited -
distanceTo(
Vector vector, {Distance distance = Distance.euclidean}) → double -
Returns a distance between
this
andvector
-
dot(
Vector vector) → double -
Returns a dot (inner) product of
this
andvector
-
elementAt(
int index) → double -
Returns the
index
th element.inherited -
every(
bool test(double element)) → bool -
Checks whether every element of this iterable satisfies
test
.inherited -
exp(
{bool skipCaching = false}) → Vector - Creates a new Vector composed of Euler's numbers raised to powers which are the elements of this Vector
-
expand<
T> (Iterable< T> toElements(double element)) → Iterable<T> -
Expands each element of this Iterable into zero or more elements.
inherited
-
fastMap<
T> (T mapper(T element)) → Vector -
Returns a new vector from mapped elements of the original vector.
Mapping function
mapper
should accept argument only of Float32x4 or Float64x2 data type (depends on dtype value, e.g. if dtype equals DType.float32 - the argument should be of Float32x4 type). The data types mentioned above allow to perform mapping much faster than the regular map method -
filterElements(
bool predicate(double element, int idx)) → Vector - Returns a new vector consisting of filtered elements of the original vector
-
firstWhere(
bool test(double element), {double orElse()?}) → double -
The first element that satisfies the given predicate
test
.inherited -
fold<
T> (T initialValue, T combine(T previousValue, double element)) → T -
Reduces a collection to a single value by iteratively combining each
element of the collection with an existing value
inherited
-
followedBy(
Iterable< double> other) → Iterable<double> -
Creates the lazy concatenation of this iterable and
other
.inherited -
forEach(
void action(double element)) → void -
Invokes
action
on each element of this iterable in iteration order.inherited -
getCosine(
Vector other) → double -
Returns cosine of the angle between
this
andother
vector -
join(
[String separator = ""]) → String -
Converts each element to a String and concatenates the strings.
inherited
-
lastWhere(
bool test(double element), {double orElse()?}) → double -
The last element that satisfies the given predicate
test
.inherited -
log(
{bool skipCaching = false}) → Vector - Creates a new Vector by taking natural log of each element of the source vector
-
map<
T> (T toElement(double e)) → Iterable< T> -
The current elements of this iterable modified by
toElement
.inherited -
mapToVector(
double mapper(double value)) → Vector -
Creates a new vector applying
mapper
to each element of this Vector -
max(
{bool skipCaching = false}) → double - Returns maximum element among all vector elements
-
mean(
{bool skipCaching = false}) → double -
Returns the mean value of
this
vector -
median(
{bool skipCaching = false}) → double -
Returns the median value of
this
vector -
min(
{bool skipCaching = false}) → double - Returns minimum element among all vector elements
-
norm(
[Norm norm = Norm.euclidean, bool skipCaching = false]) → double - Calculates vector norm (magnitude)
-
normalize(
[Norm norm = Norm.euclidean, bool skipCaching = false]) → Vector -
Returns a new vector with normalized values of
this
vector -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
pow(
num exponent) → Vector -
Creates a new Vector composed of elements of this Vector raised to
the
exponent
. Avoid raising a vector to a float power, since it is a slow operation -
prod(
) → double - Returns the product of all the vector's elements
-
reduce(
double combine(double value, double element)) → double -
Reduces a collection to a single value by iteratively combining elements
of the collection using the provided function.
inherited
-
rescale(
{bool skipCaching = false}) → Vector - Returns rescaled (min-max normed) version of this vector
-
sample(
Iterable< int> indices) → Vector - Returns a new vector composed of elements which are located on the passed indexes
-
scalarDiv(
num scalar) → Vector -
Returns a new Vector where elements are the elements from this Vector
divided by
scalar
-
set(
int index, num value) → Vector -
Copies the vector, sets the
value
by theindex
and returns the vector -
singleWhere(
bool test(double element), {double orElse()?}) → double -
The single element that satisfies
test
.inherited -
skip(
int count) → Iterable< double> -
Creates an Iterable that provides all but the first
count
elements.inherited -
skipWhile(
bool test(double value)) → Iterable< double> -
Creates an
Iterable
that skips leading elements whiletest
is satisfied.inherited -
sqrt(
{bool skipCaching = false}) → Vector - Returns a new Vector consisting of square roots of elements of this Vector
-
subvector(
int start, [int? end]) → Vector -
Returns a new vector composed of values whose indices are within the range
start
(inclusive) -end
(exclusive) -
sum(
{bool skipCaching = false}) → double - Returns the sum of all vector elements
-
take(
int count) → Iterable< double> -
Creates a lazy iterable of the
count
first elements of this iterable.inherited -
takeWhile(
bool test(double value)) → Iterable< double> -
Creates a lazy iterable of the leading elements satisfying
test
.inherited -
toJson(
) → Map< String, dynamic> - Returns a json-serializable map
-
toList(
{bool growable = true}) → List< double> -
Creates a List containing the elements of this Iterable.
inherited
-
toSet(
) → Set< double> -
Creates a Set containing the same elements as this iterable.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
unique(
{bool skipCaching = false}) → Vector - Returns a new vector composed of the vector's unique elements
-
where(
bool test(double element)) → Iterable< double> -
Creates a new lazy Iterable with all elements that satisfy the
predicate
test
.inherited -
whereType<
T> () → Iterable< T> -
Creates a new lazy Iterable with all elements that have type
T
.inherited
Operators
-
operator *(
Object value) → Vector - Element-wise multiplication
-
operator +(
Object value) → Vector - Element-wise addition
-
operator -(
Object value) → Vector - Element-wise subtraction
-
operator /(
Object value) → Vector - Element-wise division
-
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator [](
int index) → double - Returns an element by its index in the vector