linbox
Hom< Source, Target, Enabled > Class Template Reference

map element of source ring(field) to target ring More...

#include <hom.h>

Public Types

typedef Source::Element SrcElt
 
typedef Target::Element Elt
 

Public Member Functions

 Hom (const Source &S, const Target &T)
 Construct a homomorphism from a specific source ring S and target field T with Hom(S, T).
 
Eltimage (Elt &t, const SrcElt &s)
 image(t, s) implements the homomorphism, assigning the t the value of the image of s under the mapping.
 
SrcEltpreimage (SrcElt &s, const Elt &t)
 If possible, preimage(s,t) assigns a value to s such that the image of s is t.
 
const Source & source ()
 
const Target & target ()
 

Detailed Description

template<class Source, class Target, class Enabled = void>
class LinBox::Hom< Source, Target, Enabled >

map element of source ring(field) to target ring

An instance of Hom is a homomorphism from a ring of type Source to a ring (usually field) of type Target. The intended use is that it will be a natural mapping. For instance:

Hom<Unparametric<Integers>, Givaro::Modular<integer> >(Z, Zp) nat; // is the mod p mapping.

Hom<<NTL_ZZp, Givaro::Modular<integer> >(Zp, Mp) nat;

// is an isomorphism, provided the Zp and Mp have same characteristic. Hom<Unparametric<NTL_ZZp, Unparameteric<NTL_ZZpEx> >(Z3, Z27) nat; // is the embedding of the prime field in the extension.

Member Typedef Documentation

◆ SrcElt

template<class Source, class Target, class Enabled = void>
typedef Source::Element SrcElt

◆ Elt

template<class Source, class Target, class Enabled = void>
typedef Target::Element Elt

Constructor & Destructor Documentation

◆ Hom()

template<class Source, class Target, class Enabled = void>
Hom ( const Source & S,
const Target & T )
inline

Construct a homomorphism from a specific source ring S and target field T with Hom(S, T).

Specializations define all actual homomorphisms.

Member Function Documentation

◆ image()

template<class Source, class Target, class Enabled = void>
Elt & image ( Elt & t,
const SrcElt & s )
inline

image(t, s) implements the homomorphism, assigning the t the value of the image of s under the mapping.

The default behaviour goes through integers.

◆ preimage()

template<class Source, class Target, class Enabled = void>
SrcElt & preimage ( SrcElt & s,
const Elt & t )
inline

If possible, preimage(s,t) assigns a value to s such that the image of s is t.

Otherwise behaviour is unspecified. An error may be thrown, a conventional value may be set, or an arb value set.

The default behaviour goes through integers.

◆ source()

template<class Source, class Target, class Enabled = void>
const Source & source ( )
inline

◆ target()

template<class Source, class Target, class Enabled = void>
const Target & target ( )
inline

The documentation for this class was generated from the following file: