Mescal
Loading...
Searching...
No Matches
monoid_orbits.h File Reference

Computation of orbits. More...

#include "monoid.h"
#include "monoid_ideals.h"
#include "monoid_sub.h"
#include "sep_group.h"

Go to the source code of this file.

Classes

struct  orbits
 Type used to represent C-orbits of a morphism. More...
 

Functions

orbitsinit_orbits (morphism *)
 Initialization of an orbits set.
 
void delete_orbits (orbits *)
 Release of an orbits set.
 
subsemicompute_one_ddorb (morphism *, uint)
 Computation of the DD-orbit associated to a given idempotent (local monoid).
 
orbitscompute_ddorbits (morphism *)
 Initialization of the DD-orbits set.
 
subsemicompute_one_gplusorb (subsemi *, uint)
 Computes the G⁺-orbit associated to a given idempotent for group class G. The G-kernel needs to be given as an input.
 
orbitscompute_gplusorbits (subsemi *)
 Initialization of the G⁺-orbits set.
 
subsemicompute_one_ptorb (morphism *, uint, sub_level)
 Computes the PT-orbit associated to a given idempotent.
 
orbitscompute_ptorbits (morphism *, sub_level)
 Initialization of the PT-orbits set.
 
uint ** compute_jmult (morphism *, dequeue *, dequeue *)
 Given a monoid, computes the partial multiplication table between all elements within a subset and all elements within a J-class that must contain the subset. Only the products evaluating to an element of the J-class are computed.
 
bool ** compute_polgpairs (subsemi *, dequeue *, uint)
 Computes a subset of the Pol(G)-pairs associated to a given morphism. The comutation depends on the G-kernel which is given as input.
 
subsemicompute_one_bpgorb (morphism *M, uint, sub_level, basis)
 Computes the BPol(G)-orbit associated to a given idempotent for group class G. The G-kernel needs to be given as an input.
 
orbitscompute_bpgorbits (morphism *M, sub_level, basis)
 Initialization of the BPol(G)-orbits set.
 
subsemicompute_one_orbit_from_pairs (morphism *, uint, dequeue *, bool **, sub_level)
 Given an idempotent e, computes the associated BPol(C)-orbit from a relevant subset of the Pol(C)-pairs.
 
subsemicompute_one_bpddorb (morphism *M, uint e, sub_level level)
 Computes the BPol(DD)-orbit associated to a given idempotent.
 
subsemicompute_one_bpgplusorb (morphism *, uint, sub_level, basis)
 Computes the BPol(G⁺)-orbit associated to a given idempotent for group class G.
 
orbitscompute_bpgplusorbits (morphism *, sub_level, basis)
 Initialization of the BPol(G⁺)-orbits set.
 

Detailed Description

Computation of orbits.

Function Documentation

◆ compute_bpgorbits()

orbits * compute_bpgorbits ( morphism * M,
sub_level level,
basis type )

Initialization of the BPol(G)-orbits set.

Computes one BPol(G)-orbits per regular J-class.

Remarks
The available computation levels are LV_FULL and LV_GREG. If LV_REG is chosen, the computation defaults to LV_GREG.
Returns
The (partial) set of BPol(G)-orbits.
Parameters
MThe G-kernel.
levelDesired computation level.
typeType of the BPol(G)-orbit to compute (MOD, AMT or GR).

◆ compute_bpgplusorbits()

orbits * compute_bpgplusorbits ( morphism * M,
sub_level level,
basis type )

Initialization of the BPol(G⁺)-orbits set.

Computes one BPol(G⁺)-orbits per regular J-class.

Remarks
The available computation levels are LV_FULL and LV_GREG. If LV_REG is chosen, the computation defaults to LV_GREG.
Returns
The set of BPol(G⁺)-orbits.
Parameters
MThe morphism.
levelDesired computation level.
typeType of the BPol(G⁺)-orbit to compute (ST, MOD, AMT or GR).

◆ compute_ddorbits()

orbits * compute_ddorbits ( morphism * M)

Initialization of the DD-orbits set.

Computes one orbit per minimal strict regular J-class.

Remarks
The computation level always defaults to LV_FULL. Hence, it is not a parameter.
Returns
The (partial) set of DD-orbits.
Parameters
MThe morphism.

◆ compute_gplusorbits()

orbits * compute_gplusorbits ( subsemi * S)

Initialization of the G⁺-orbits set.

Computes one orbit per minimal strict regular J-class.

Remarks
The computation level is determined by the G-kernel (which can be either LV_FULL or LV_REG).
Returns
The set of G⁺-orbits.
Parameters
SThe G-kernel.

◆ compute_jmult()

uint ** compute_jmult ( morphism * ,
dequeue * ,
dequeue *  )

Given a monoid, computes the partial multiplication table between all elements within a subset and all elements within a J-class that must contain the subset. Only the products evaluating to an element of the J-class are computed.

Remarks
The returned multiplication table is indexed by the indices of the elements of the subset in the input list (first) and by the indices of the J-class (second). Its cells contain the result of every product in the original monoid. If a product does not fall within the J-class, it is given the value ->M->r_cayley->size_graph (which is not a valid element).
Returns
The multiplication table.

◆ compute_one_bpddorb()

subsemi * compute_one_bpddorb ( morphism * M,
uint e,
sub_level level )

Computes the BPol(DD)-orbit associated to a given idempotent.

Remarks
The available computation levels are LV_FULL and LV_GREG. If LV_REG is chosen, the computation defaults to LV_GREG.
If the monoid has a non-empty neutral element, the BPol(DD)-orbit is the same as the BPol(ST)-orbit and the computation default to the latter as this is much faster.
Returns
The BPol(DD)-orbit.
Parameters
MThe morphism.
eThe idempotent.
levelDesired computation level.

◆ compute_one_bpgorb()

subsemi * compute_one_bpgorb ( morphism * M,
uint e,
sub_level level,
basis type )

Computes the BPol(G)-orbit associated to a given idempotent for group class G. The G-kernel needs to be given as an input.

Remarks
The available computation levels are LV_FULL and LV_GREG. If LV_REG is chosen, the computation defaults to LV_GREG.
Returns
The BPol(G)-orbit.
Parameters
MThe morphism.
eThe idempotent.
levelDesired computation level.
typeType of the BPol(G)-orbit to compute (MOD, AMT or GR).

◆ compute_one_bpgplusorb()

subsemi * compute_one_bpgplusorb ( morphism * M,
uint e,
sub_level level,
basis type )

Computes the BPol(G⁺)-orbit associated to a given idempotent for group class G.

Remarks
The available computation levels are LV_FULL and LV_GREG. If LV_REG is chosen, the computation defaults to LV_GREG.
If the monoid has a non-empty neutral element, the BPol(G⁺)-orbit is the same as the BPol(G)-orbit and the computation default to the latter as this is much faster.
For G = ST, the BPol(G⁺)-orbit is the BPol(DD)-orbit an the function compute_one_bpddorb is called.
Returns
The BPol(G⁺)-orbit.
Parameters
MThe morphism.
eThe idempotent.
levelDesired computation level.
typeType of the BPol(G⁺)-orbit to compute (ST, MOD, AMT or GR).

◆ compute_one_ddorb()

subsemi * compute_one_ddorb ( morphism * M,
uint e )

Computation of the DD-orbit associated to a given idempotent (local monoid).

Remarks
The computation level always defaults to LV_FULL. Hence, it is not a parameter.
Returns
The DD-orbit.
Parameters
MThe morphism.
eThe idempotent.

◆ compute_one_gplusorb()

subsemi * compute_one_gplusorb ( subsemi * ker,
uint e )

Computes the G⁺-orbit associated to a given idempotent for group class G. The G-kernel needs to be given as an input.

Remarks
The computation level is determined by the G-kernel (which can be either LV_FULL or LV_REG).
Returns
The G⁺-orbit.
Parameters
kerThe G-kernel.
eThe idempotent.

◆ compute_one_orbit_from_pairs()

subsemi * compute_one_orbit_from_pairs ( morphism * M,
uint e,
dequeue * eM,
bool ** pairs,
sub_level level )

Given an idempotent e, computes the associated BPol(C)-orbit from a relevant subset of the Pol(C)-pairs.

Attention
Only the Pol(C)-pairs (s,t) such that s belongs to eM and t R e are given as input (this is enough information to compute the BPol(C)-orbit of e). They are given by a two-dimensional array of Booleans indexed by the indices of the right ideal eM (first) and the indices of the R-class of e (second).
Remarks
The procedure exploits the fact that the BPol(C)-orbites are the same as the co-Pol(C)-orbits.
The available computation levels are LV_FULL and LV_GREG. If LV_REG is chosen, the computation defaults to LV_GREG.
Returns
The BPol(C)-orbit.
Parameters
MThe morphism.
eThe index of the idempotent e.
eMThe right ideal eM associated to e.
pairsTwo-dimensional array indicating the Pol(C)-pairs.
levelDesired computation level.

◆ compute_one_ptorb()

subsemi * compute_one_ptorb ( morphism * M,
uint e,
sub_level level )

Computes the PT-orbit associated to a given idempotent.

Remarks
The computation level always defaults to LV_FULL. Hence, it is not a parameter.
Returns
The PT-orbit.
Parameters
MThe morphism.
eThe idempotent.
levelDesired computation level.

◆ compute_polgpairs()

bool ** compute_polgpairs ( subsemi * ,
dequeue * ,
uint  )

Computes a subset of the Pol(G)-pairs associated to a given morphism. The comutation depends on the G-kernel which is given as input.

Attention
A regular R-class is given as input. Only the Pol(G)-pairs (s,t) such that s is in the right ideal of the R-class and t is in the R-class itself are computed.
Returns
A two-dimensional array of Booleans indexed by the indices of the right ideal (first) and the indices of the R-class (second). It marks the Pol(G)-pairs.

◆ compute_ptorbits()

orbits * compute_ptorbits ( morphism * M,
sub_level level )

Initialization of the PT-orbits set.

Remarks
The computation level always defaults to LV_FULL. Hence, it is not a parameter.

Computes one PT-orbit per regular J-class.

Returns
The (partial) set of PT-orbits.
Parameters
MThe morphism.
levelDesired computation level.

◆ delete_orbits()

void delete_orbits ( orbits * L)

Release of an orbits set.

Attention
The original morphism and its Green relations are not released.
Parameters
LThe orbits set.

◆ init_orbits()

orbits * init_orbits ( morphism * M)

Initialization of an orbits set.

Returns
The orbits set.
Parameters
MThe morphism.