001/* 002 * JScience - Java(TM) Tools and Libraries for the Advancement of Sciences. 003 * Copyright (C) 2006 - JScience (http://jscience.org/) 004 * All rights reserved. 005 * 006 * Permission to use, copy, modify, and distribute this software is 007 * freely granted, provided that this notice is preserved. 008 */ 009package org.jscience.mathematics.structure; 010 011/** 012 * This interface represents an algebraic structure with two binary operations 013 * addition and multiplication (+ and ·), such that (R, +) is an abelian group, 014 * (R, ·) is a monoid and the multiplication distributes over the addition. 015 * 016 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a> 017 * @version 3.0, February 13, 2006 018 * @see <a href="http://en.wikipedia.org/wiki/Mathematical_ring"> 019 * Wikipedia: Mathematical Ring</a> 020 */ 021public interface Ring<R> extends GroupAdditive<R> { 022 023 /** 024 * Returns the product of this object with the one specified. 025 * 026 * @param that the object multiplier. 027 * @return <code>this · that</code>. 028 */ 029 R times(R that); 030 031}