
[index]

Algebra::ResidueClassRing

(Class of Residue Class Ring)

This class represents a residue class ring. To create concrete class, use the
class method ::create or the function Algebra.ResidueClassRing() designating
the base ring and the element of it.

File Name:

  residue-class-ring.rb

SuperClass:

  Object

Included Modules:

none.

Associated Functions:

Algebra.ResidueClassRing(ring, mod)
    Same as ::create(ring, mod).
   

Class Methods:

::create(ring, mod)
    Returns the class of the residue class ring of the ring and the modulus
    mod.
   
    This class is a subclass of ResidueClassRing and has the class methods ::
    ground, ::modulus and [x] , which return the fundamental ring ring, the
    modulus mod and the representing residue class of x, respectively.
   
    Example: divide the polynomial ring by the modulus x**2 + x + 1.
    require "rational"
    require "polynomial"
    require "residue-class-ring"
    Px = Algebra.Polynomial(Rational, "x")
    x = Px.var
    F = ResidueClassRing(Px, x**2 + x + 1)
    p F[x + 1]**100     #=> -x - 1
   
    When ring is Integer, all inverse elements are calculated in advance. And
    we can obtain the residue classes of 0, 1, ... , mod-1 by to_ary.
   
    Example: the prime field of modulo 7
    require "residue-class-ring"
    F7 = Algebra::ResidueClassRing.create(Integer, 7)
    a, b, c, d, e, f, g = F7
    p [e + c, e - c, e * c, e * 2001, 3 + c, 1/c, 1/c * c]
      #=> [6, 2, 1, 3, 5, 4, 1]
    p( (1...7).collect{|i| F7[i]**6} )
      #=> [1, 1, 1, 1, 1, 1]
   
::[x]
    Returns the residue class represented bye x.
   
::zero
    Returns zero.
   
::unity
    Returns unity.
   

Methods:

lift
    Returns the representative of self.
   
zero?
    Returns true if self is zero.
   
zero
    Returns zero.
   
unity
    Returns unity.
   
==(other)
    Returns true if self equals other.
   
+(other)
    Returns the sum of self and other.
   
-(other)
    Returns the difference of self from other.
   
*(other)
    Returns the product of self and other.
   
**(n)
    Returns the n-th power of self.
   
/(other)
    Returns the quotient of self by other using inverse.
   
inverse
    Returns the inverse element, assuming the fundamental ring is Euclidian.
    When it does not exist, this returns nil.
   

