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 a structure with a binary additive 013 * operation (+), satisfying the group axioms (associativity, neutral element, 014 * inverse element and closure). 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_Group"> 019 * Wikipedia: Mathematical Group</a> 020 */ 021public interface GroupAdditive<G> extends Structure<G> { 022 023 /** 024 * Returns the sum of this object with the one specified. 025 * 026 * @param that the object to be added. 027 * @return <code>this + that</code>. 028 */ 029 G plus(G that); 030 031 /** 032 * Returns the additive inverse of this object. It is the object such as 033 * <code>this.plus(this.opposite()) == ZERO</code>, 034 * with <code>ZERO</code> being the additive identity. 035 * 036 * @return <code>-this</code>. 037 */ 038 G opposite(); 039 040}