Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DotProduct ¶
DotProduct returns the dot-product of the slices S1 and S2. That is, it returns S1[0] * S2[0] + ... + S1[k] * S2[k], where k+1 is the minimum of len(S1) and len(S2). The dot-product of two empty slices is the zero element. If R satisfies the interface:
type DotProducter interface {
DotProduct(S1 []object.Element, S2 []object.Element)
(object.Element, error) // DotProduct returns the dot-product
of the slices S1 and S2. That is, it returns
S1[0] * S2[0] + ... + S1[k] * S2[k], where k+1 is the
minimum of len(S1) and len(S2). The dot-product of two
empty slices is the zero element.
}
then R's DotProduct method will be called.
func Product ¶
Product returns the product of the elements in the slice S. The product of the empty slice is one. If R satisfies the interface:
type Producter interface {
Product(S ...object.Element) (object.Element, error) // Product
returns the product of the elements in the slice S. The product
of the empty slice is one.
}
then R's Product method will be called.
func Sum ¶
Sum returns the sum of the elements in the slice S. The sum of the empty slice is the zero element. If R satisfies the interface:
type Sumer interface {
Sum(S ...object.Element) (object.Element, error) // Sum returns
the sum of the elements in the slice S. The sum of the empty
slice is the zero element.
}
then R's Sum method will be called.
Types ¶
type Interface ¶
type Interface interface {
abeliangroup.Interface
One() object.Element // One returns the multiplicative identity of the ring.
IsOne(x object.Element) (bool, error) // IsOne returns true iff x is the multiplicative identity element of the ring.
Multiply(x object.Element, y object.Element) (object.Element, error) // Multiply returns the product x * y.
Power(x object.Element, k *integer.Element) (object.Element, error) // Power returns x^k.
}
Interface defines the ring interface that all rings must satisfy.
type IsUniter ¶
type IsUniter interface {
IsUnit(x object.Element) (bool, object.Element, error) // IsUnit returns true iff x is a multiplicative unit in the ring. If true, also returns the inverse element y such that x * y = 1.
}
IsUniter is an optional interface a ring may support, providing an IsUnit method.