Loading...
Searching...
No Matches
cf_map_ext.h
Go to the documentation of this file.
// -*- c++ -*-
//*****************************************************************************
/** @file cf_map_ext.h
*
* This file implements functions to map between extensions of finite fields
*
* @par Copyright:
* (c) by The SINGULAR Team, see LICENSE file
*
* @author Martin Lee
* @date 16.11.2009
**/
//*****************************************************************************
#ifndef CF_MAP_EXT_H
#define CF_MAP_EXT_H
// #include "config.h"
int findItem (const CFList& list, const CanonicalForm& item);
CanonicalForm getItem (const CFList& list, const int& pos);
/// maps a polynomial over \f$ GF(p^{k}) \f$ to a polynomial over
/// \f$ GF(p^{d}) \f$ , d needs to be a multiple of k
CanonicalForm GFMapUp (const CanonicalForm & F, int k);
/// maps a polynomial over \f$ GF(p^{d}) \f$ to a polynomial over
/// \f$ GF(p^{k})\f$ , d needs to be a multiple of k
CanonicalForm GFMapDown (const CanonicalForm & F, int k);
/// map F from \f$ F_{p} (\alpha ) \f$ to \f$ F_{p}(\beta ) \f$.
/// We assume \f$ F_{p} (\alpha ) \subset F_{p}(\beta ) \f$.
CanonicalForm
mapUp (const CanonicalForm& F, ///<[in] poly over \f$ F_{p} (\alpha ) \f$
const Variable& alpha, ///<[in] alg. variable
const Variable& beta, ///<[in] alg. variable
const CanonicalForm& prim_elem, ///<[in] primitive element of \f$ F_{p} (\alpha ) \f$
const CanonicalForm& im_prim_elem,///<[in] image of prim_elem in \f$ F_{p} (\beta ) \f$
CFList& source, ///<[in,out] look up lists
CFList& dest ///<[in,out] look up lists
);
/// map F from \f$ F_{p} (\beta ) \f$ to \f$ F_{p}(\alpha ) \f$.
/// We assume \f$ F_{p} (\alpha ) \subset F_{p}(\beta ) \f$ and F in
/// \f$ F_{p}(\alpha ) \f$.
CanonicalForm
mapDown (const CanonicalForm& F, ///<[in] poly over \f$ F_{p} (\beta ) \f$
const CanonicalForm& prim_elem, ///<[in] primitive element of \f$ F_{p} (\alpha ) \f$
const CanonicalForm& im_prim_elem,///<[in] image of prim_elem in \f$ F_{p} (\beta ) \f$
const Variable& alpha, ///<[in] alg. variable
CFList& source, ///<[in,out] look up lists
CFList& dest ///<[in,out] look up lists
);
/// determine a primitive element of \f$ F_{p} (\alpha ) \f$,
/// \f$ \beta \f$ is a primitive element of a field which is isomorphic to
/// \f$ F_{p}(\alpha ) \f$
CanonicalForm
primitiveElement (const Variable& alpha, ///< [in] some algebraic variable
Variable& beta, ///< [in,out] s.a.
bool& fail ///< [in,out] failure due to integer
///< factorization failure?
);
/// compute the image of a primitive element of \f$ F_{p} (\alpha ) \f$
/// in \f$ F_{p}(\beta ) \f$.
/// We assume \f$ F_{p} (\alpha ) \subset F_{p}(\beta ) \f$.
CanonicalForm
mapPrimElem (const CanonicalForm& prim_elem, ///< [in] primitive element
const Variable& alpha, ///< [in] algebraic variable
const Variable& beta ///< [in] algebraic variable
);
/// changes representation by primitive element to representation by residue
/// classes modulo a Conway polynomial
CanonicalForm GF2FalphaRep (const CanonicalForm& F, ///< [in] some poly over GF
const Variable& alpha ///< [in] root of a Conway
///< poly
);
/// change representation by residue classes modulo a Conway polynomial
/// to representation by primitive element
CanonicalForm Falpha2GFRep (const CanonicalForm& F ///<[in] some poly over
///< F_p(alpha) where alpha
///< is a root of a Conway
///< poly
);
/// map from \f$ F_p(\alpha) \f$ to \f$ F_p(\beta) \f$ such that
/// \f$ F\in F_p(\alpha) \f$ is mapped onto \f$ \beta \f$
///
/// @return @a map returns the image of @a primElem such that the above
/// described properties hold
CanonicalForm
map (const CanonicalForm& primElem,///< [in] primitive element of
///< \f$ F_p (\alpha) \f$
const Variable& alpha, ///< [in] algebraic variable
const CanonicalForm& F, ///< [in] an element of \f$ F_p (\alpha) \f$,
///< whose minimal polynomial defines a field
///< extension of \f$ F_p \f$ of degree
///< \f$ F_p (\alpha):F_p \f$
const Variable& beta ///< [in] algebraic variable, root of \a F's
///< minimal polynomial
);
/// compute minimal polynomial of \f$ F\in F_p(\alpha)\backslash F_p \f$ via NTL
///
/// @return @a findMinPoly computes the minimal polynomial of F
CanonicalForm
findMinPoly (const CanonicalForm& F, ///< [in] an element of
///< \f$ F_p(\alpha)\backslash F_p \f$
const Variable& alpha ///< [in] algebraic variable
);
#endif
CFList
List< CanonicalForm > CFList
Definition canonicalform.h:395
k
int k
Definition cfEzgcd.cc:99
findItem
int findItem(const CFList &list, const CanonicalForm &item)
helper function
Definition cf_map_ext.cc:42
mapDown
CanonicalForm mapDown(const CanonicalForm &F, const CanonicalForm &prim_elem, const CanonicalForm &im_prim_elem, const Variable &alpha, CFList &source, CFList &dest)
map F from to . We assume and F in .
Definition cf_map_ext.cc:432
GFMapDown
CanonicalForm GFMapDown(const CanonicalForm &F, int k)
maps a polynomial over to a polynomial over , d needs to be a multiple of k
Definition cf_map_ext.cc:277
primitiveElement
CanonicalForm primitiveElement(const Variable &alpha, Variable &beta, bool &fail)
determine a primitive element of , is a primitive element of a field which is isomorphic to
Definition cf_map_ext.cc:343
findMinPoly
CanonicalForm findMinPoly(const CanonicalForm &F, const Variable &alpha)
compute minimal polynomial of via NTL
Definition cf_map_ext.cc:641
mapUp
CanonicalForm mapUp(const CanonicalForm &F, const Variable &alpha, const Variable &beta, const CanonicalForm &prim_elem, const CanonicalForm &im_prim_elem, CFList &source, CFList &dest)
map F from to . We assume .
Definition cf_map_ext.cc:440
getItem
CanonicalForm getItem(const CFList &list, const int &pos)
helper function
Definition cf_map_ext.cc:54
Falpha2GFRep
CanonicalForm Falpha2GFRep(const CanonicalForm &F)
change representation by residue classes modulo a Conway polynomial to representation by primitive el...
Definition cf_map_ext.cc:204
GFMapUp
CanonicalForm GFMapUp(const CanonicalForm &F, int k)
maps a polynomial over to a polynomial over , d needs to be a multiple of k
Definition cf_map_ext.cc:241
GF2FalphaRep
CanonicalForm GF2FalphaRep(const CanonicalForm &F, const Variable &alpha)
changes representation by primitive element to representation by residue classes modulo a Conway poly...
Definition cf_map_ext.cc:196
map
CanonicalForm map(const CanonicalForm &primElem, const Variable &alpha, const CanonicalForm &F, const Variable &beta)
map from to such that is mapped onto
Definition cf_map_ext.cc:505
mapPrimElem
CanonicalForm mapPrimElem(const CanonicalForm &prim_elem, const Variable &alpha, const Variable &beta)
compute the image of a primitive element of in . We assume .
Definition cf_map_ext.cc:451
CanonicalForm
factory's main class
Definition canonicalform.h:86
Variable
factory's class for variables
Definition factory.h:127
alpha
Variable alpha
Definition facAbsBiFact.cc:52
beta
Variable beta
Definition facAbsFact.cc:95