Title: | Deal with Bratteli Graphs |
Version: | 1.0.0 |
Description: | Utilities for Bratteli graphs. A tree is an example of a Bratteli graph. The package provides a function which generates a 'LaTeX' file that renders the given Bratteli graph. It also provides functions to compute the dimensions of the vertices, the intrinsic kernels and the intrinsic distances. Intrinsic kernels and distances were introduced by Vershik (2014) <doi:10.1007/s10958-014-1958-0>. |
License: | GPL-3 |
URL: | https://github.com/stla/bratteliR |
BugReports: | https://github.com/stla/bratteliR/issues |
Imports: | data.table, diagram, gmp, kantorovich, utils |
Encoding: | UTF-8 |
RoxygenNote: | 7.2.3 |
NeedsCompilation: | no |
Packaged: | 2023-12-19 14:04:34 UTC; SDL96354 |
Author: | Stéphane Laurent [aut, cre] |
Maintainer: | Stéphane Laurent <laurent_step@outlook.fr> |
Repository: | CRAN |
Date/Publication: | 2023-12-20 15:50:14 UTC |
Bratteli dimensions
Description
Dimensions of the vertices of a Bratteli graph.
Usage
bratteliDimensions(Mn, N)
Arguments
Mn |
a function returning for each integer |
N |
the level up to which the dimensions are wanted |
Value
The dimensions of the vertices in a list.
Examples
# the Pascal graph ####
Pascal <- function(n) {
M <- matrix(0, nrow = n+1, ncol = n+2)
for(i in 1:(n+1)) {
M[i, ][c(i, i+1L)] <- 1
}
M
}
bratteliDimensions(Pascal, 4)
# the Euler graph ####
Euler <- function(n) {
M <- matrix(0, nrow = n+1, ncol = n+2)
for(i in 1:(n+1)) {
M[i, ][c(i, i+1L)] <- c(i, n+2-i)
}
M
}
bratteliDimensions(Euler, 4)
Intrinsic distances
Description
Intrinsic distances on a Bratteli graph
Usage
bratteliDistances(Mn, N)
Arguments
Mn |
a function returning for each integer |
N |
the level up to which the distances are wanted |
Value
The distance matrices in a list.
Examples
# the Pascal graph ####
Pascal <- function(n) {
M <- matrix(0, nrow = n+1, ncol = n+2)
for(i in 1:(n+1)) {
M[i, ][c(i, i+1L)] <- 1
}
M
}
bratteliDistances(Pascal, 4)
# the Euler graph ####
Euler <- function(n) {
M <- matrix(0, nrow = n+1, ncol = n+2)
for(i in 1:(n+1)) {
M[i, ][c(i, i+1L)] <- c(i, n+2-i)
}
M
}
bratteliDistances(Euler, 4)
LaTeX code drawing a Bratteli graph
Description
Generate a LaTeX file containing TikZ code that renders a picture of a Bratteli graph.
Usage
bratteliGraph(
outfile,
Mn,
N,
edgelabels = NA,
vertexlabels = "colnames",
colorpath = NA,
rootlabel = "\\varnothing",
latex = TRUE,
xscale = 50,
yscale = 50,
bending = 1,
hor = FALSE,
mirror = FALSE,
northsouth = FALSE
)
Arguments
outfile |
path to the output file |
Mn |
a function returning for each integer |
N |
the level up to which the graph is wanted |
edgelabels |
|
vertexlabels |
|
colorpath |
an index of a path to be colored, or |
rootlabel |
a label for the root vertex of the graph |
latex |
Boolean, whether to enclose all labels between dollars |
xscale , yscale |
scaling factors for the graph |
bending |
curvature when there are multiple edges |
hor |
Boolean, whether to render a horizontal graph |
mirror |
Boolean, whether to "reverse" the graph |
northsouth |
Boolean, whether to draw the edges with endpoints at the bottom and the top of the vertex labels |
Value
No return value; called to generate the LaTeX file.
Bratteli kernels
Description
Central kernels of a Bratteli graph.
Usage
bratteliKernels(Mn, N)
Arguments
Mn |
a function returning for each integer |
N |
the level up to which the kernels are wanted |
Value
The kernels in a list.
Examples
# the Pascal graph ####
Pascal <- function(n) {
M <- matrix(0, nrow = n+1, ncol = n+2)
for(i in 1:(n+1)) {
M[i, ][c(i, i+1L)] <- 1
}
M
}
bratteliKernels(Pascal, 4)
# the Euler graph ####
Euler <- function(n) {
M <- matrix(0, nrow = n+1, ncol = n+2)
for(i in 1:(n+1)) {
M[i, ][c(i, i+1L)] <- c(i, n+2-i)
}
M
}
bratteliKernels(Euler, 4)