01: package JSci.maths.fields;
02:
03: import JSci.maths.groups.AbelianGroup;
04:
05: /**
06: * This interface defines a ring.
07: * @jsci.planetmath Ring
08: * @version 1.0
09: * @author Mark Hale
10: */
11: public interface Ring extends AbelianGroup {
12: /**
13: * Returns the unit element.
14: */
15: Member one();
16:
17: /**
18: * Returns true if the member is the unit element.
19: */
20: boolean isOne(Member r);
21:
22: /**
23: * This interface defines a member of a ring.
24: */
25: interface Member extends AbelianGroup.Member {
26: /**
27: * The multiplication law.
28: * @param r a ring member
29: */
30: Member multiply(Member r);
31: }
32: }
|