Interface VectorSpace<T,N extends Comparable<N>>

Type Parameters:
T - The vector type
N - The scalar type
All Superinterfaces:
Group, Group.Additive<T>, Operation, Operation.Addition<T>, ScalarOperation, ScalarOperation.Multiplication<T,N>
All Known Subinterfaces:
DecompositionStore<N>, Matrix2D<N,M>, MatrixStore<N>, NormedVectorSpace<T,N>, PhysicalStore<N>, Scalar<N>, SelfDeclaringScalar<S>, Tensor<N,T>
All Known Implementing Classes:
AboveBelowStore, AbstractStore, Amount, AnyTensor, ArrayBasedTensor, BasicMatrix, BigScalar, ColumnsStore, ColumnsSupplier, ComplexNumber, ComposingStore, ConjugatedStore, DiagonalStore, ExactDecimal, FactoryStore, GenericStore, IdentityStore, ImageData, ImageData.SingleChannel, IterativeASS.SchurComplementSolver, LeftRightStore, LimitStore, LogicalStore, LowerHessenbergStore, LowerSymmetricStore, LowerTriangularStore, MatrixC128, MatrixH256, MatrixQ128, MatrixR032, MatrixR064, MatrixR128, MatrixTensor, Money, OffsetStore, Price, PrimitiveScalar, Quadruple, Quantity, Quaternion, R032Store, R064Store, RationalNumber, RawStore, RepeatedColumnsStore, RepeatedRowsStore, RowsStore, RowsSupplier, SelectingStore, ShadingStore, SingleStore, SparseStore, SuperimposedStore, TransjugatedStore, TransposedStore, UnaryOperatoStore, UpperHessenbergStore, UpperSymmetricStore, UpperTriangularStore, VectorTensor, WrapperStore, ZeroStore

public interface VectorSpace<T,N extends Comparable<N>> extends Group.Additive<T>, ScalarOperation.Multiplication<T,N>

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 field.
  • 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 Comparable (think Number) rather than an implementation of Field.

Any field is also a vector space in itself.

See Also:
  • Method Details

    • conjugate

      T conjugate()

      This method will (most likely) be moved to some other interface in the future! Just have to figure out where it fits...

      The conjugate transpose of a matrix and/or the conjugate of a scalar/field like ComplexNumber or Quaternion.

      The conjugate transpose of a real matrix is simply its transpose.