A vector space is a set of objects called vectors, where a vector is a tuple of fields/scalars/numbers.
Each vector space has two operations: vector addition and scalar multiplication. Eight axioms must be
satisfied. The first four are the group axioms of the additive group of vectors. The remaining four relates
to scalar multiplication, and are:
Compatibility of scalar multiplication with field multiplication: a(bV) = (ab)V
Identity element of scalar multiplication: 1V = V, where 1 denotes the multiplicative identity of the
Distributivity of scalar multiplication with respect to vector addition: a(U + V) = aU + aV
Distributivity of scalar multiplication with respect to field addition: (a + b)V = aV + bV
To enable the use of existing Java classes as scalars this interface declares the scalar type to be a
subclass of Number rather than an implementation of Field.