Macaulay2 Engine
Loading...
Searching...
No Matches
ringmap.h File Reference

Engine-boundary C API for constructing and evaluating RingMap homomorphisms. More...

Go to the source code of this file.

Functions

const RingIM2_RingMap_target (const RingMap *F)
M2_string IM2_RingMap_to_string (const RingMap *F)
unsigned int rawRingMapHash (const RingMap *F)
M2_bool IM2_RingMap_is_equal (const RingMap *, const RingMap *)
const RingMapIM2_RingMap_make (const Matrix *M, const Ring *base)
const RingMapIM2_RingMap_make1 (const Matrix *M)
const RingElementIM2_RingMap_eval_ringelem (const RingMap *F, const RingElement *a)
const MatrixIM2_RingMap_eval_matrix (const RingMap *F, const FreeModule *newTarget, const Matrix *M)
MutableMatrixrawRingMapEvalMutableMatrix (const RingMap *F, const MutableMatrix *M)

Detailed Description

Engine-boundary C API for constructing and evaluating RingMap homomorphisms.

Note
AI-generated documentation. Verify against the source before relying on it.

Declares the extern "C" entry points the M2 interpreter uses for ring homomorphisms R -> S. Construction: IM2_RingMap_make1(M) builds a RingMap* from an image matrix M whose columns give the images of the source generators (bound as rawRingMap, but carrying an in-source "WARNING: I want to change the interface to this routine" note); the two-argument IM2_RingMap_make(M, base) (which would fix an explicit source Ring *base) is in-source marked /* TODO */ and not yet wired up. Evaluation: IM2_RingMap_eval_ringelem, IM2_RingMap_eval_matrix, and rawRingMapEvalMutableMatrix apply the map to a single RingElement, an immutable Matrix (with an explicit newTarget FreeModule), or a MutableMatrix respectively — all three bind on the M2 side as rawRingMapEval. Inspection: IM2_RingMap_target (rawTarget), IM2_RingMap_is_equal, IM2_RingMap_to_string, and rawRingMapHash (also flagged /* TODO */).

The in-source "My plan, Dan, is to make changes to how ring maps are constructed" note marks this header as still in transition. No rawCompose lives here: composition is handled at the M2 level rather than through a dedicated engine entry.

See also
ringmap.cpp
ringelement.h
ring.h
mutable-matrix.h

Definition in file ringmap.h.