[51615d6] | 1 | #ifndef CF_MAP_EXT_H |
---|
| 2 | #define CF_MAP_EXT_H |
---|
| 3 | // -*- c++ -*- |
---|
| 4 | //***************************************************************************** |
---|
| 5 | /** @file cf_map_ext.h |
---|
| 6 | * |
---|
[806c18] | 7 | * @author Martin Lee |
---|
[51615d6] | 8 | * @date 16.11.2009 |
---|
| 9 | * |
---|
| 10 | * This file implements functions to map between extensions of finite fields |
---|
| 11 | * |
---|
| 12 | * @par Copyright: |
---|
| 13 | * (c) by The SINGULAR Team, see LICENSE file |
---|
| 14 | * |
---|
[806c18] | 15 | * @internal |
---|
[51615d6] | 16 | * @version \$Id$ |
---|
| 17 | * |
---|
| 18 | **/ |
---|
| 19 | //***************************************************************************** |
---|
| 20 | |
---|
[e4fe2b] | 21 | // #include "config.h" |
---|
[963057] | 22 | |
---|
[55608a7] | 23 | int findItem (const CFList& list, const CanonicalForm& item); |
---|
| 24 | |
---|
| 25 | CanonicalForm getItem (const CFList& list, const int& pos); |
---|
| 26 | |
---|
[51615d6] | 27 | CanonicalForm GFMapUp (const CanonicalForm & F, int k); |
---|
| 28 | |
---|
| 29 | CanonicalForm GFMapDown (const CanonicalForm & F, int k); |
---|
| 30 | |
---|
| 31 | CanonicalForm |
---|
[806c18] | 32 | mapUp (const CanonicalForm& F, const Variable& alpha, const Variable& beta, |
---|
| 33 | const CanonicalForm& prim_elem, const CanonicalForm& im_prim_elem, |
---|
[51615d6] | 34 | CFList& source, CFList& dest); |
---|
| 35 | |
---|
| 36 | CanonicalForm |
---|
| 37 | mapDown (const CanonicalForm& F, const CanonicalForm& prim_elem, const |
---|
[806c18] | 38 | CanonicalForm& im_prim_elem, const Variable& alpha, CFList& source, |
---|
| 39 | CFList& dest); |
---|
[51615d6] | 40 | |
---|
[806c18] | 41 | CanonicalForm |
---|
[51615d6] | 42 | primitiveElement (const Variable& alpha, Variable& beta, bool fail); |
---|
| 43 | |
---|
[806c18] | 44 | CanonicalForm |
---|
| 45 | mapPrimElem (const CanonicalForm& prim_elem, const Variable& alpha, |
---|
[51615d6] | 46 | const Variable& beta); |
---|
| 47 | |
---|
| 48 | CanonicalForm GF2FalphaRep (const CanonicalForm& F, const Variable& alpha); |
---|
| 49 | |
---|
| 50 | CanonicalForm Falpha2GFRep (const CanonicalForm& F); |
---|
[618da5] | 51 | |
---|
[55608a7] | 52 | /// map from \f$ F_p(\alpha) \f$ to \f$ F_p(\beta) \f$ such that |
---|
| 53 | /// \f$ F\in\F_p(\alpha) \f$ is mapped onto \f$ \beta \f$ |
---|
| 54 | /// |
---|
| 55 | /// @return @a map returns the image of @a primElem such that the above |
---|
| 56 | /// described properties hold |
---|
| 57 | CanonicalForm |
---|
| 58 | map (const CanonicalForm& primElem,///< [in] primitive element of |
---|
| 59 | ///< \f$ F_p (\alpha) \f$ |
---|
| 60 | const Variable& alpha, ///< [in] algebraic variable |
---|
| 61 | const CanonicalForm& F, ///< [in] an element of \f$ F_p (\alpha) \f$, |
---|
| 62 | ///< whose minimal polynomial defines a field |
---|
| 63 | ///< extension of \f$ F_p \f$ of degree |
---|
| 64 | ///< \f$ \[F_p (\alpha):F_p\] \f$ |
---|
| 65 | const Variable& beta ///< [in] algebraic variable, root of \a F's |
---|
| 66 | ///< minimal polynomial |
---|
| 67 | ); |
---|
| 68 | |
---|
[618da5] | 69 | /// compute minimal polynomial of \f$ F\in\F_p(\alpha)\backslash\F_p \f$ via NTL |
---|
| 70 | /// |
---|
| 71 | /// @return @a findMinPoly computes the minimal polynomial of F |
---|
| 72 | CanonicalForm |
---|
| 73 | findMinPoly (const CanonicalForm& F, ///< [in] an element of |
---|
| 74 | ///< \f$ \F_p(\alpha)\backslash\F_p \f$ |
---|
| 75 | const Variable& alpha ///< [in] algebraic variable |
---|
| 76 | ); |
---|
[55608a7] | 77 | |
---|
[51615d6] | 78 | #endif |
---|