Liking cljdoc? Tell your friends :D

kigen.canonical-labeling

For direct computations of canonical labelings of sequences. A transformation is a sequence, for example. Non-morphic! Functions can be continued from partial labelings.

For direct computations of canonical labelings of sequences. A transformation
is a sequence, for example. Non-morphic!
Functions can be continued from partial labelings.
raw docstring

kigen.combinatorics

Combinatorics stuff that is not readily available in the contrib package.

Combinatorics stuff that is not readily available in
the contrib package.
raw docstring

kigen.diagram.brauer

Brauer-monoid direct implementation. A degree n diagram is represented by a single vector of length 2n. The value at position i is the image of point i.

Brauer-monoid direct implementation.
A degree n diagram is represented by a single vector of length 2n.
The value at position i is the image of point i.
raw docstring

kigen.diagram.pbr

partitioned binary relations stored as maps: integers -> set of integers e.g. {1 #{1 2}, 2 #{2}} for degree n, domain is 1..n, codomain is n+1..2n e.g. degree 3, domain is {1,2,3}, codomain is {4,5,6}

partitioned binary relations stored as maps: integers -> set of integers
e.g. {1 #{1 2}, 2 #{2}}
for degree n, domain is 1..n, codomain is n+1..2n
e.g. degree 3, domain is {1,2,3}, codomain is {4,5,6}
raw docstring

kigen.diagram.transf

Transformations and permutations simply representated as vectors.

Transformations and permutations simply representated as vectors.
raw docstring

kigen.diagram.transf-conj

'Native' conjugacy class representative calculation. Transformations are separated into single point mappings of the form [source image]. A permutation is constructed by finding the minimal relabeling of a transformation.

'Native' conjugacy class representative calculation. Transformations are
separated into single point mappings of the form [source image].
A permutation is constructed by finding the minimal relabeling of a
transformation.
raw docstring

kigen.diagram.transf-pbr

Transformations and permutations embedded into partitioned binary relations.

Transformations and permutations embedded into partitioned
binary relations.
raw docstring

kigen.digraph.isomorphism

Deciding directed graph isomorphism. Directed graphs (digraphs) are sequences of source-target pairs. Vertices are non-negative integers.

Deciding directed graph isomorphism. Directed graphs (digraphs) are sequences
of source-target pairs. Vertices are non-negative integers.
raw docstring

kigen.digraph.properties

Some properties of the directed graph, possibly used as isomoprhism invariants.

Some properties of the directed graph, possibly used as isomoprhism
invariants.
raw docstring

kigen.digraph.transitivity

Function for checking and creating transitivity.

Function for checking and creating transitivity.
raw docstring

kigen.GAP

Functions for transferring data between GAP and kigen.

Functions for transferring data between GAP and kigen.
raw docstring

kigen.holonomy.cayley-graph

Computing Cayley-graphs.

Computing Cayley-graphs.
raw docstring

kigen.holonomy.chain

Chains in partially ordered sets given by their Hasse diagrams. A Hasse diagram is a hash-map from elements to the set of related elements.

Chains in partially ordered sets given by their Hasse diagrams.
A Hasse diagram  is a hash-map from elements to the set of related elements.
raw docstring

kigen.holonomy.poset

Computing partially ordered sets. Ways of defining binary relations:

  1. elements and a relation function (implicit)
  2. a map: element x -> set of related elements (explicit)
Computing partially ordered sets. Ways of defining binary relations:
1. elements and a relation function (implicit)
2. a map: element x -> set of related elements (explicit)
raw docstring

kigen.holonomy.scc

Strongly connected components of digraphs.

Strongly connected components of digraphs.
raw docstring

kigen.holonomy.skeleton

Skeleton of a transformation semigroup given by a set of generators.

Skeleton of a transformation semigroup given by a set of  generators.
raw docstring

kigen.logic

Further relations (goals) and utility functions to extend core.logic.

Further relations (goals) and utility functions to extend core.logic.
raw docstring

kigen.matrix

Simple matrix computations.

Simple matrix computations.
raw docstring

kigen.memory-info

Information about memory usage.

Information about memory usage.
raw docstring

kigen.morphic

The most abstract description morphic relations and functions. morph-m - called 'morphism map', morphisms are represented as hash-maps, thus they can be partially defined

The most abstract description morphic relations and functions.
morph-m  - called 'morphism map', morphisms are represented as hash-maps,
thus they can be partially defined
raw docstring

kigen.position

Getting the indices of elements in vectors by giving a predicate or by equality. Linear-time algorithms.

Getting the indices of elements in vectors by giving a predicate
or by equality. Linear-time algorithms.
raw docstring

kigen.semigroup.action

Producing actions from binary functions.

Producing actions from binary functions.
raw docstring

kigen.semigroup.conjugacy

Abstract functions for calculating conjugate elements, conjugacy classes, and representatives.

Abstract functions for calculating conjugate elements, conjugacy classes,
and representatives.
raw docstring

kigen.semigroup.genmorph

Constructing isomorphisms/embeddings between semigroups given by generators. In other words, searching for an isomorphisms of Cayley-graphs. The elements of both semigroups are fully enumerated. The source semigroup is converted to generator table (partial multiplication table containing all the images of right multiplication by generators). The elements of target semigroups are classified by their index-periods in order to find possible targets for generators. Canonical notation for the data structure for Cayley-graph matching is M. It's a hasmap with keys :phi :Sgens :Smul :Tmul. Phi is the morphism (hash-map) that is induced by matching the (sub)semigroup generated by :Sgens.

Constructing isomorphisms/embeddings between semigroups given  by generators.
In other words, searching for an isomorphisms of Cayley-graphs.
The elements of both semigroups are fully enumerated.
The source semigroup is converted to generator table (partial multiplication
table containing all the images of right multiplication by generators).
The elements of target semigroups are classified by their index-periods in
order to find possible targets for generators.
Canonical notation for the data structure for Cayley-graph matching is M.
 It's a hasmap with keys :phi :Sgens :Smul :Tmul. Phi is the morphism
 (hash-map) that is induced by matching the (sub)semigroup generated by
 :Sgens.
raw docstring

kigen.semigroup.greens

Black box algorithms to compute Green's relations. Basic implementations, not efficient ones. Suitable for small semigroups, written for processing the enumerated transformation semigroups.

Black box algorithms to compute Green's relations. Basic implementations,
not efficient ones. Suitable for small semigroups, written for processing
the enumerated transformation semigroups.
raw docstring

kigen.semigroup.sgp

General functions for semigroups. Black box style, the element(s) and the operation need to be supplied.

General functions for semigroups. Black box style, the element(s)
and the operation need to be supplied.
raw docstring

kigen.semigroup.subsgp

General functions for computing subsemigroups. Black box style, the element(s) and the operation need to be supplied.

General functions for computing subsemigroups.
Black box style, the element(s) and the operation need to be supplied.
raw docstring

kigen.semigroupoid.enumeration

Enumerating all semigroup(oid)s using relational programming. Semigroupoids are represented as composition tables, a vector of vectors.

Enumerating all semigroup(oid)s using relational programming.
Semigroupoids are represented as composition tables, a vector of vectors.
raw docstring

kigen.semigroupoid.homomorphism

Finding all homomorphisms of a semigroupoid into another one by using relational programming. Semigroupoids are represented abstractly, as composition tables, a vector of vectors. For non-composable arrow pairs the corresponding entry is :n.

Finding all homomorphisms of a semigroupoid into another one by using
relational programming.
Semigroupoids are represented abstractly, as composition tables, a vector of
vectors. For non-composable arrow pairs the corresponding entry is :n.
raw docstring

kigen.semigroupoid.transformation

Transformation semigroupoids. :s - source, domain, integer 0..n-1 :t - target, codomain, integer 0..n-1 :m - morphism, map

Transformation semigroupoids.
:s - source, domain, integer 0..n-1
:t - target, codomain, integer 0..n-1
:m - morphism, map
raw docstring

kigen.semigroupoid.type

Functions for the type structure of a semigroupoid.

Functions for the type structure of a semigroupoid.
raw docstring

kigen.table.gentab

Generator tables - multiplication tables defined only for multiplying by generators.

Generator tables - multiplication tables defined only for multiplying by
generators.
raw docstring

kigen.table.igs

Independent sets of semigroups represented by multiplication tables.

Independent sets of semigroups represented by multiplication tables.
raw docstring

kigen.table.multab

Functions for dealing with abstract multiplication tables of semigroups. The multiplicative elements are represented by their indices in a given sequence. The tables are vectors of vectors (the rows of the table), so multiplication is just a constant-time look up. Functionality for multiplying subsets of elements and computing closures and thus enumerating subsemigroups. The subsemigroups can be stored in efficient int-sets.

Functions for dealing with abstract multiplication tables of semigroups.
The multiplicative elements are represented by their indices in a
given sequence. The tables are vectors of vectors (the rows of the table),
so multiplication is just a constant-time look up.
Functionality for multiplying subsets of elements and computing closures
and thus enumerating subsemigroups. The subsemigroups can be stored in
efficient int-sets.
raw docstring

kigen.table.multab-morphism

Constructing morphisms and morphic relations for multiplication tables. input: two multiplication tables (source, target) output: hash-maps describing morphisms, index i -> image

These functions are relatively inefficient (compared to generator table methods). They are for reference purposes, not for the high-end computations.

This is a reference implementation for the paper: Finite Computational Structures and Implementations: Semigroups and Morphic Relations International Journal of Networking and Computing, Volume 7, Number 2, pages 318-335, July 2017 https://doi.org/10.15803/ijnc.7.2_318

Constructing morphisms and morphic relations for multiplication tables.
input: two multiplication tables (source, target)
output: hash-maps describing morphisms, index i -> image

These functions are relatively inefficient (compared to generator table
methods).
They are for reference purposes, not for the high-end computations.

This is a reference implementation for the paper:
Finite Computational Structures and Implementations: Semigroups and
Morphic Relations
International Journal of Networking and Computing,
Volume 7, Number 2, pages 318-335, July 2017
https://doi.org/10.15803/ijnc.7.2_318
raw docstring

kigen.transducer.common

Lossless machine learning: constructing a single symbol output transducer from input word, output symbol pairs by logic programming. In other words, constructing a Moore-machine. https://en.wikipedia.org/wiki/Moore_machine There are several implementations for representing the transducer. These are the common functions. delta - the state transition table is a nested associative data structure (map or vector) (delta input) gives a transformation of the state set

Lossless machine learning: constructing a single symbol output transducer  from input word,
output symbol pairs by logic programming.
In other words, constructing a Moore-machine. https://en.wikipedia.org/wiki/Moore_machine
There are several implementations for representing the transducer. These are the common functions.
delta - the state transition table is a nested associative data structure (map or vector)
(delta input) gives a transformation of the state set
raw docstring

kigen.transducer.fixed

FIXED OUTPUT TRANSDUCER CONSTRUCTION This is the first working version of transducer synthesis so it is somewhat of a legacy code. The input-output pairs need to be given in the internal representation (nonnegative integers) thus the output of the Moore automaton is hardcoded. Consequently, there is the issue of using the initial state 0 as an output which may be a too rigid constraint.

FIXED OUTPUT TRANSDUCER CONSTRUCTION
This is the first working version of transducer synthesis so it is somewhat of
a legacy code. The input-output pairs need to be given in the internal representation
(nonnegative integers) thus the output of the Moore automaton is hardcoded.
Consequently, there is the issue of using the initial state 0 as an output which may be a too
rigid constraint.
raw docstring

kigen.transducer.flexible

FLEXIBLE INPUT OUTPUT TRANSDUCER CONSTRUCTION input words can be sequences of any type of distinct entities similarly outputs can be of any types internal states are nonnegtaive integers

FLEXIBLE INPUT OUTPUT TRANSDUCER CONSTRUCTION
input words can be sequences of any type of distinct entities
similarly outputs can be of any types
internal states are nonnegtaive integers
raw docstring

kigen.transducer.from-trajectories

To find partially defined transducers, this method has the states in all trajectories as the logic variables. Then the individual maps are extracted and used to define the partial transformations. This method is inefficient as complexity of the search grows with the number and the length of the input words.

To find partially defined transducers, this method has the states in all
trajectories as the logic variables. Then the individual maps are extracted
and used to define the partial transformations.
This method is inefficient as complexity of the search grows with the number 
and the length of the input words.
raw docstring

kigen.transducer.trie

A custom implementation of a search trie with the added feature that if there is no branching, then a (sub)word is stored as a sequential data structure. WARNING! The outputs are assumed to be different from the input symbols, as they are used as leaf nodes in the trie when constructing a transducer. The code is separated into two parts: 1. the trie data structure, 2. transducer generation.

A custom implementation of a search trie with the added feature that
if there is no branching, then a (sub)word is stored as a sequential data structure.
WARNING! The outputs are assumed to be different from the input symbols, as they
are used as leaf nodes in the trie when constructing a transducer.
The code is separated into two parts: 1. the trie data structure,
2. transducer generation.
raw docstring

kigen.transducer.viz

FLEXIBLE INPUT OUTPUT TRANSDUCER CONSTRUCTION input words can be sequences of any type of distinct entities similarly outputs can be of any types internal states are nonnegtaive integers

FLEXIBLE INPUT OUTPUT TRANSDUCER CONSTRUCTION
input words can be sequences of any type of distinct entities
similarly outputs can be of any types
internal states are nonnegtaive integers
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close