All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.jas.structure.ModulElem Maven / Gradle / Ivy

The newest version!
/*
 * $Id: ModulElem.java 4056 2012-07-26 17:44:13Z kredel $
 */

package edu.jas.structure;


import java.util.List;


/**
 * Module element interface. Defines scalar operations.
 * @param  module type
 * @param  scalar type
 * @author Heinz Kredel
 */
public interface ModulElem, C extends RingElem> extends AbelianGroupElem {


    /**
     * Scalar multiplication. Multiply this by a scalar.
     * @param s scalar
     * @return this * s.
     */
    public M scalarMultiply(C s);


    /**
     * Linear combination.
     * @param a scalar
     * @param b module element
     * @param s scalar
     * @return a * b + this * s.
     */
    public M linearCombination(C a, M b, C s);


    /**
     * Linear combination.
     * @param b module element
     * @param s scalar
     * @return b + this * s.
     */
    public M linearCombination(M b, C s);


    /**
     * Scalar product. Multiply two vectors to become a scalar.
     * @param b module element
     * @return this * b, a scalar.
     */
    public C scalarProduct(M b);


    /**
     * Scalar product. Multiply this vectors by list of vectors to become a
     * vector.
     * @param b list of module elements
     * @return this * b, a list of scalars, a module element.
     */
    public M scalarProduct(List b);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy