Package 'bratteli'

Title: Deal with Bratteli Graphs
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>.
Authors: Stéphane Laurent [aut, cre]
Maintainer: Stéphane Laurent <[email protected]>
License: GPL-3
Version: 1.0.0
Built: 2024-11-18 06:10:26 UTC
Source: https://github.com/stla/brattelir

Help Index


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 incidence matrix between levels n and n+1; the matrix Mn(0) must have one and only one row

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 incidence matrix between levels n and n+1; the matrix Mn(0) must have one and only one row

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 incidence matrix between levels n and n+1; the matrix Mn(0) must have one and only one row

N

the level up to which the graph is wanted

edgelabels

"default", "letters", "order", "kernels", NA, or a vectorized function with four arguments: the level of the graph, the index of the "from" vertex, the index of the "to" vertex, and the index of the edge among the multiple edges, if there are multiple edges

vertexlabels

"colnames" to use the column names of the matrices, "dims" to use the dimensions of the vertices, NA, or a function with one argument, the level of the graph, returning for level n the vector of labels at the n-th level

colorpath

an index of a path to be colored, or NA

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 incidence matrix between levels n and n+1; the matrix Mn(0) must have one and only one row

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)