Macaulay2 Engine
Loading...
Searching...
No Matches
ringmap.h
Go to the documentation of this file.
1#ifndef _ringmap_h_
2# define _ringmap_h_
3` and not yet wired up. Evaluation:
20 * `rawRingMapEvalMutableMatrix` apply the map to a single
21 * `RingElement`, an immutable `Matrix` (with an explicit
22 * `newTarget` `FreeModule`), or a `MutableMatrix` respectively
23 * --- all three bind on the M2 side as `rawRingMapEval`.
24 * Inspection: `IM2_RingMap_target` (`rawTarget`),
26 * `rawRingMapHash` (also flagged `/* TODO */`).
27 *
28 * The in-source "My plan, Dan, is to make changes to how ring
29 * maps are constructed" note marks this header as still in
30 * transition. No `rawCompose` lives here: composition is
31 * handled at the M2 level rather than through a dedicated
32 * engine entry.
33 *
34 * @see ringmap.cpp
35 * @see ringelement.h
36 * @see ring.h
37 * @see mutable-matrix.h
38 */
39
40# include "engine-includes.hpp"
41
42// TODO: fix this
43# if defined(__cplusplus)
44class FreeModule;
45class Matrix;
46class MutableMatrix;
47class Ring;
48class RingElement;
49class RingMap;
50# else
51typedef struct FreeModule FreeModule;
52typedef struct Matrix Matrix;
53typedef struct MutableMatrix MutableMatrix;
54typedef struct Ring Ring;
55typedef struct RingElement RingElement;
56typedef struct RingMap RingMap;
57# endif
58
65
66# if defined(__cplusplus)
67extern "C" {
68# endif
69
70const Ring *IM2_RingMap_target(const RingMap *F); /* drg: connected rawTarget*/
71
72M2_string IM2_RingMap_to_string(const RingMap *F); /* drg: connected */
73
74unsigned int rawRingMapHash(const RingMap *F); /* TODO */
75
77/* drg: connected === */
78
79const RingMap *IM2_RingMap_make(const Matrix *M, const Ring *base); /* TODO */
80
81const RingMap *IM2_RingMap_make1(const Matrix *M);
82/* drg: connected rawRingMap */
83/* WARNING: I want to change the interface to this routine */
84
85const RingElement /* or null */ *IM2_RingMap_eval_ringelem(
86 const RingMap *F,
87 const RingElement *a);
88/* drg: connected rawRingMapEval*/
89
90const Matrix /* or null */ *IM2_RingMap_eval_matrix(const RingMap *F,
91 const FreeModule *newTarget,
92 const Matrix *M);
93/* drg: connected rawRingMapEval*/
94
96 const RingMap *F,
97 const MutableMatrix *M);
98/* drg: connected rawRingMapEval*/
99
100# if defined(__cplusplus)
101}
102# endif
103
104#endif /* _ringmap_h_ */
105
106// Local Variables:
107// indent-tabs-mode: nil
108// End:
Engine-side free module R^n over a Ring.
Definition freemod.hpp:66
Abstract base class for mutable matrices over an arbitrary engine Ring, the in-place counterpart of t...
Definition mat.hpp:79
Front-end-visible "ring element" value: an engine ring_elem paired with the Ring* that gives it meani...
Definition relem.hpp:67
xxx xxx xxx
Definition ring.hpp:102
const Monoid * M
Definition ringmap.hpp:93
Engine-side ring homomorphism: stores, for each source-ring variable, the target-ring element it maps...
Definition ringmap.hpp:60
static CanonicalForm base
Definition factory.cpp:289
#define Matrix
Definition factory.cpp:14
MutableMatrix * rawRingMapEvalMutableMatrix(const RingMap *F, const MutableMatrix *M)
Definition ringmap.cpp:70
const Ring * IM2_RingMap_target(const RingMap *F)
Definition ringmap.cpp:14
const Matrix * IM2_RingMap_eval_matrix(const RingMap *F, const FreeModule *newTarget, const Matrix *M)
Definition ringmap.cpp:51
const RingElement * IM2_RingMap_eval_ringelem(const RingMap *F, const RingElement *a)
Definition ringmap.cpp:38
unsigned int rawRingMapHash(const RingMap *F)
Definition ringmap.cpp:29
M2_bool IM2_RingMap_is_equal(const RingMap *f, const RingMap *g)
Definition ringmap.cpp:30
M2_string IM2_RingMap_to_string(const RingMap *F)
Definition ringmap.cpp:15
char M2_bool
Definition m2-types.h:82
Definition aring-CC.cpp:3
MutableMatrix * rawRingMapEvalMutableMatrix(const RingMap *F, const MutableMatrix *M)
Definition ringmap.cpp:70
const Ring * IM2_RingMap_target(const RingMap *F)
Definition ringmap.cpp:14
const Matrix * IM2_RingMap_eval_matrix(const RingMap *F, const FreeModule *newTarget, const Matrix *M)
Definition ringmap.cpp:51
const RingMap * IM2_RingMap_make1(const Matrix *M)
Definition ringmap.cpp:37
const RingElement * IM2_RingMap_eval_ringelem(const RingMap *F, const RingElement *a)
Definition ringmap.cpp:38
M2_bool IM2_RingMap_is_equal(const RingMap *, const RingMap *)
Definition ringmap.cpp:30
const RingMap * IM2_RingMap_make(const Matrix *M, const Ring *base)
unsigned int rawRingMapHash(const RingMap *F)
Definition ringmap.cpp:29
M2_string IM2_RingMap_to_string(const RingMap *F)
Definition ringmap.cpp:15