edu.jas.structure
Interface ModulElem<M extends ModulElem<M,C>,C extends RingElem<C>>

Type Parameters:
M - module type
C - scalar type
All Superinterfaces:
AbelianGroupElem<M>, java.lang.Cloneable, java.lang.Comparable<M>, Element<M>, java.io.Serializable
All Known Implementing Classes:
GenVector

public interface ModulElem<M extends ModulElem<M,C>,C extends RingElem<C>>
extends AbelianGroupElem<M>

Module element interface. Defines scalar operations.

Author:
Heinz Kredel

Method Summary
 M linearCombination(C a, M b, C s)
          Linear combination.
 M linearCombination(M b, C s)
          Linear combination.
 M scalarMultiply(C s)
          Scalar multiplication.
 M scalarProduct(java.util.List<M> b)
          Scalar product.
 C scalarProduct(M b)
          Scalar product.
 
Methods inherited from interface edu.jas.structure.AbelianGroupElem
abs, isZERO, negate, signum, subtract, sum
 
Methods inherited from interface edu.jas.structure.Element
compareTo, equals, factory, hashCode, toScript, toScriptFactory
 

Method Detail

scalarMultiply

M scalarMultiply(C s)
Scalar multiplication. Multiply this by a scalar.

Parameters:
s - scalar
Returns:
this * s.

linearCombination

M linearCombination(C a,
                    M b,
                    C s)
Linear combination.

Parameters:
a - scalar
b - module element
s - scalar
Returns:
a * b + this * s.

linearCombination

M linearCombination(M b,
                    C s)
Linear combination.

Parameters:
b - module element
s - scalar
Returns:
b + this * s.

scalarProduct

C scalarProduct(M b)
Scalar product. Multiply two vectors to become a scalar.

Parameters:
b - module element
Returns:
this * b, a scalar.

scalarProduct

M scalarProduct(java.util.List<M> b)
Scalar product. Multiply this vectors by list of vectors to become a vector.

Parameters:
b - list of module elements
Returns:
this * b, a list of scalars, a module element.