001 /* 002 * $Id: AlgebraFactory.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 * Algebra factory interface. 012 * Defines conversion from list of lists and sparse random. 013 * @param <A> algebra type 014 * @param <C> coefficient type 015 * @author Heinz Kredel 016 */ 017 public interface AlgebraFactory<A extends AlgebraElem<A,C>, 018 C extends RingElem<C>> 019 extends RingFactory<A> { 020 021 022 /** 023 * Convert list of list to matrix. 024 * @param m list of list of ring elements. 025 * @return a matrix with the elements from m. 026 */ 027 public A fromList(List<List<C>> m); 028 029 030 /** 031 * Random Matrix. 032 * @param k size of coefficients. 033 * @param q fraction of non zero elements. 034 * @return a random matrix. 035 */ 036 public A random(int k, float q); 037 038 }