001 /* 002 * $Id: ModulFactory.java 1708 2008-02-24 17:28:36Z kredel $ 003 */ 004 005 package edu.jas.structure; 006 007 import java.util.List; 008 009 010 /** 011 * Module factory interface. 012 * Defines conversion from list and sparse random. 013 * @param <M> module type 014 * @param <C> coefficient type 015 * @author Heinz Kredel 016 */ 017 public interface ModulFactory<M extends ModulElem<M,C>, 018 C extends RingElem<C>> 019 extends AbelianGroupFactory<M> { 020 021 022 /** 023 * Convert list to module. 024 * @param v list of ring elements. 025 * @return a module element with the elements from v. 026 */ 027 public M fromList(List<C> v); 028 029 030 /** 031 * Random vector. 032 * @param k size of coefficients. 033 * @param q fraction of non zero elements. 034 * @return a random vector. 035 */ 036 public M random(int k, float q); 037 038 }