From 2c7e20fb250f13d84cbc9949d7a2eaa88d092b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABlle=20Salmon?= Date: Mon, 13 Nov 2023 14:39:44 +0100 Subject: [PATCH 1/2] feat!: change "incidence matrix" naming to "biadjacency matrix" --- NAMESPACE | 2 + R/adjacency.R | 4 +- R/bipartite.R | 2 +- R/conversion.R | 41 +- R/incidence.R | 67 +- R/layout.R | 2 +- R/zzz-deprecate.R | 4 +- _pkgdown.yml | 2 +- man/as.directed.Rd | 3 +- man/as.matrix.igraph.Rd | 3 +- man/as_adj_list.Rd | 3 +- man/as_adjacency_matrix.Rd | 3 +- man/as_biadjacency_matrix.Rd | 81 +++ man/as_edgelist.Rd | 3 +- man/as_graphnel.Rd | 3 +- man/as_incidence_matrix.Rd | 76 +-- man/as_long_data_frame.Rd | 3 +- man/bipartite_projection.Rd | 2 +- man/from_incidence_matrix.Rd | 20 + man/graph_from_adj_list.Rd | 3 +- man/graph_from_biadjacency_matrix.Rd | 94 +++ man/graph_from_data_frame.Rd | 17 + man/graph_from_graphnel.Rd | 3 +- man/graph_from_incidence_matrix.Rd | 92 +-- man/layout_as_bipartite.Rd | 2 +- src/cpp11.cpp | 750 ++++++++++----------- tests/testthat/_snaps/graph.adjacency.md | 12 +- tests/testthat/test-bipartite.projection.R | 2 +- tests/testthat/test-get.incidence.R | 8 +- tests/testthat/test-graph.bipartite.R | 4 +- tests/testthat/test-is.bipartite.R | 4 +- 31 files changed, 734 insertions(+), 581 deletions(-) create mode 100644 man/as_biadjacency_matrix.Rd create mode 100644 man/from_incidence_matrix.Rd create mode 100644 man/graph_from_biadjacency_matrix.Rd diff --git a/NAMESPACE b/NAMESPACE index 0a5d6b24c38..3ad0778d3fe 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -140,6 +140,7 @@ export(as_adj) export(as_adj_edge_list) export(as_adj_list) export(as_adjacency_matrix) +export(as_biadjacency_matrix) export(as_bipartite) export(as_data_frame) export(as_edgelist) @@ -442,6 +443,7 @@ export(graph_attr_names) export(graph_from_adj_list) export(graph_from_adjacency_matrix) export(graph_from_atlas) +export(graph_from_biadjacency_matrix) export(graph_from_data_frame) export(graph_from_edgelist) export(graph_from_graphdb) diff --git a/R/adjacency.R b/R/adjacency.R index c1d648a65c2..13053bb9a81 100644 --- a/R/adjacency.R +++ b/R/adjacency.R @@ -374,7 +374,7 @@ graph_from_adjacency_matrix <- function(adjmatrix, if (!is.matrix(adjmatrix) && !inherits(adjmatrix, "Matrix")) { lifecycle::deprecate_soft( - "1.5.2", + "1.6.0", "graph_from_adjacency_matrix(adjmatrix = 'must be a matrix')" ) adjmatrix <- as.matrix(1) @@ -383,7 +383,7 @@ graph_from_adjacency_matrix <- function(adjmatrix, if (mode == "undirected") { if (!is_symmetric(adjmatrix)) { lifecycle::deprecate_soft( - "1.5.2", + "1.6.0", "graph_from_adjacency_matrix(adjmatrix = 'must be symmetric with mode = \"undirected\"')", details = 'Use mode = "max" to achieve the original behavior.' ) diff --git a/R/bipartite.R b/R/bipartite.R index 534cfc72478..46250da34c4 100644 --- a/R/bipartite.R +++ b/R/bipartite.R @@ -83,7 +83,7 @@ #' colnames(M) <- c("Party", "Skiing", "Badminton") #' M[] <- sample(0:1, length(M), replace = TRUE) #' M -#' g2 <- graph_from_incidence_matrix(M) +#' g2 <- graph_from_biadjacency_matrix(M) #' g2$name <- "Event network" #' proj2 <- bipartite_projection(g2) #' print(proj2[[1]], g = TRUE, e = TRUE) diff --git a/R/conversion.R b/R/conversion.R index cbe7ce9b1af..ca0b1c3bc94 100644 --- a/R/conversion.R +++ b/R/conversion.R @@ -801,10 +801,10 @@ get.incidence.sparse <- function(graph, types, names, attr) { -#' Incidence matrix of a bipartite graph +#' Bipartite adjacency matrix of a bipartite graph #' -#' This function can return a sparse or dense incidence matrix of a bipartite -#' network. The incidence matrix is an \eqn{n} times \eqn{m} matrix, \eqn{n} +#' This function can return a sparse or dense bipartite adjacency matrix of a bipartite +#' network. The bipartite adjacency matrix is an \eqn{n} times \eqn{m} matrix, \eqn{n} #' and \eqn{m} are the number of vertices of the two kinds. #' #' Bipartite graphs have a `type` vertex attribute in igraph, this is @@ -818,9 +818,9 @@ get.incidence.sparse <- function(graph, types, names, attr) { #' `type` vertex attribute. You must supply this argument if the graph has #' no `type` vertex attribute. #' @param attr Either `NULL` or a character string giving an edge -#' attribute name. If `NULL`, then a traditional incidence matrix is +#' attribute name. If `NULL`, then a traditional bipartite adjacency matrix is #' returned. If not `NULL` then the values of the given edge attribute are -#' included in the incidence matrix. If the graph has multiple edges, the edge +#' included in the bipartite adjacency matrix. If the graph has multiple edges, the edge #' attribute of an arbitrarily chosen edge (for the multiple edges) is #' included. #' @param names Logical scalar, if `TRUE` and the vertices in the graph @@ -831,16 +831,20 @@ get.incidence.sparse <- function(graph, types, names, attr) { #' created, you will need the `Matrix` package for this. #' @return A sparse or dense matrix. #' @author Gabor Csardi \email{csardi.gabor@@gmail.com} -#' @seealso [graph_from_incidence_matrix()] for the opposite operation. +#' @seealso [graph_from_biadjacency_matrix()] for the opposite operation. #' @family conversion #' @export #' @keywords graphs +#' @details +#' Some authors refer to the bipartite adjacency matrix as the +#' "bipartite incidence matrix". igraph 1.6.0 and later does not use +#' this naming to avoid confusion with the edge-vertex incidence matrix. #' @examples #' #' g <- make_bipartite_graph(c(0, 1, 0, 1, 0, 0), c(1, 2, 2, 3, 3, 4)) -#' as_incidence_matrix(g) +#' as_biadjacency_matrix(g) #' -as_incidence_matrix <- function(graph, types = NULL, attr = NULL, +as_biadjacency_matrix <- function(graph, types = NULL, attr = NULL, names = TRUE, sparse = FALSE) { # Argument checks ensure_igraph(graph) @@ -855,11 +859,30 @@ as_incidence_matrix <- function(graph, types = NULL, attr = NULL, get.incidence.dense(graph, types = types, names = names, attr = attr) } } - +#' As incidence matrix +#' +#' @description +#' `r lifecycle::badge("deprecated")` +#' +#' `as_incidence_matrix()` was renamed to `as_biadjacency_matrix()` to create a more +#' consistent API. +#' @inheritParams as_biadjacency_matrix +#' @keywords internal +#' @details +#' Some authors refer to the bipartite adjacency matrix as the +#' "bipartite incidence matrix". igraph 1.6.0 and later does not use +#' this naming to avoid confusion with the edge-vertex incidence matrix. +#' @export +as_incidence_matrix <- function(...) { # nocov start + lifecycle::deprecate_soft("1.6.0", "as_incidence_matrix()", "as_biadjacency_matrix()") + as_biadjacency_matrix(...) +} # nocov end #' @rdname graph_from_data_frame #' @param x An igraph object. #' @param what Character constant, whether to return info about vertices, #' edges, or both. The default is \sQuote{edges}. +#' @family conversion +#' @family biadjacency #' @export as_data_frame <- function(x, what = c("edges", "vertices", "both")) { ensure_igraph(x) diff --git a/R/incidence.R b/R/incidence.R index 639c0608f3e..fcffb34e49c 100644 --- a/R/incidence.R +++ b/R/incidence.R @@ -137,36 +137,36 @@ graph.incidence.dense <- function(incidence, directed, mode, multiple, res } -#' Create graphs from an incidence matrix +#' Create graphs from a bipartite adjacency matrix #' -#' `graph_from_incidence_matrix()` creates a bipartite igraph graph from an incidence +#' `graph_from_biadjacency_matrix()` creates a bipartite igraph graph from an incidence #' matrix. #' #' Bipartite graphs have a \sQuote{`type`} vertex attribute in igraph, #' this is boolean and `FALSE` for the vertices of the first kind and #' `TRUE` for vertices of the second kind. #' -#' `graph_from_incidence_matrix()` can operate in two modes, depending on the +#' `graph_from_biadjacency_matrix()` can operate in two modes, depending on the #' `multiple` argument. If it is `FALSE` then a single edge is -#' created for every non-zero element in the incidence matrix. If +#' created for every non-zero element in the bipartite adjacency matrix. If #' `multiple` is `TRUE`, then the matrix elements are rounded up to #' the closest non-negative integer to get the number of edges to create #' between a pair of vertices. #' #' @aliases graph.incidence -#' @param incidence The input incidence matrix. It can also be a sparse matrix +#' @param incidence The input bipartite adjacency matrix. It can also be a sparse matrix #' from the `Matrix` package. #' @param directed Logical scalar, whether to create a directed graph. #' @param mode A character constant, defines the direction of the edges in #' directed graphs, ignored for undirected graphs. If \sQuote{`out`}, then #' edges go from vertices of the first kind (corresponding to rows in the -#' incidence matrix) to vertices of the second kind (columns in the incidence +#' bipartite adjacency matrix) to vertices of the second kind (columns in the incidence #' matrix). If \sQuote{`in`}, then the opposite direction is used. If #' \sQuote{`all`} or \sQuote{`total`}, then mutual edges are created. #' @param multiple Logical scalar, specifies how to interpret the matrix #' elements. See details below. #' @param weighted This argument specifies whether to create a weighted graph -#' from the incidence matrix. If it is `NULL` then an unweighted graph is +#' from the bipartite adjacency matrix. If it is `NULL` then an unweighted graph is #' created and the `multiple` argument is used to determine the edges of #' the graph. If it is a character constant then for every non-zero matrix #' entry an edge is created and the value of the entry is added as an edge @@ -174,9 +174,9 @@ graph.incidence.dense <- function(incidence, directed, mode, multiple, #' weighted graph is created and the name of the edge attribute will be #' \sQuote{`weight`}. #' @param add.names A character constant, `NA` or `NULL`. -#' `graph_from_incidence_matrix()` can add the row and column names of the incidence +#' `graph_from_biadjacency_matrix()` can add the row and column names of the incidence #' matrix as vertex attributes. If this argument is `NULL` (the default) -#' and the incidence matrix has both row and column names, then these are added +#' and the bipartite adjacency matrix has both row and column names, then these are added #' as the \sQuote{`name`} vertex attribute. If you want a different vertex #' attribute for this, then give the name of the attributes as a character #' string. If this argument is `NA`, then no vertex attributes (other than @@ -192,10 +192,15 @@ graph.incidence.dense <- function(incidence, directed, mode, multiple, #' inc <- matrix(sample(0:1, 15, repl = TRUE), 3, 5) #' colnames(inc) <- letters[1:5] #' rownames(inc) <- LETTERS[1:3] -#' graph_from_incidence_matrix(inc) +#' graph_from_biadjacency_matrix(inc) #' +#' @details +#' Some authors refer to the bipartite adjacency matrix as the +#' "bipartite incidence matrix". igraph 1.6.0 and later does not use +#' this naming to avoid confusion with the edge-vertex incidence matrix. +#' @family biadjacency #' @export -graph_from_incidence_matrix <- function(incidence, directed = FALSE, +graph_from_biadjacency_matrix <- function(incidence, directed = FALSE, mode = c("all", "out", "in", "total"), multiple = FALSE, weighted = NULL, add.names = NULL) { @@ -243,9 +248,39 @@ graph_from_incidence_matrix <- function(incidence, directed = FALSE, } res } - -#' @rdname graph_from_incidence_matrix -#' @param ... Passed to `graph_from_incidence_matrix()`. -#' @family incidence +#' Graph from incidence matrix +#' +#' @description +#' `r lifecycle::badge("deprecated")` +#' +#' `graph_from_incidence_matrix()` was renamed to `graph_from_biadjacency_matrix()` to create a more +#' consistent API. +#' @inheritParams graph_from_biadjacency_matrix +#' @keywords internal +#' @details +#' Some authors refer to the bipartite adjacency matrix as the +#' "bipartite incidence matrix". igraph 1.6.0 and later does not use +#' this naming to avoid confusion with the edge-vertex incidence matrix. +#' @export +from_incidence_matrix <- function(...) { # nocov start + lifecycle::deprecate_soft("1.6.0", "graph_from_incidence_matrix()", "graph_from_biadjacency_matrix()") + graph_from_biadjacency_matrix(...) +} # nocov end +#' From incidence matrix +#' +#' @description +#' `r lifecycle::badge("deprecated")` +#' +#' `graph_from_incidence_matrix()` was renamed to `graph_from_biadjacency_matrix()` to create a more +#' consistent API. +#' @inheritParams graph_from_biadjacency_matrix +#' @keywords internal +#' @details +#' Some authors refer to the bipartite adjacency matrix as the +#' "bipartite incidence matrix". igraph 1.6.0 and later does not use +#' this naming to avoid confusion with the edge-vertex incidence matrix. #' @export -from_incidence_matrix <- function(...) constructor_spec(graph_from_incidence_matrix, ...) +graph_from_incidence_matrix <- function(...) { # nocov start + lifecycle::deprecate_soft("1.6.0", "graph_from_incidence_matrix()", "graph_from_biadjacency_matrix()") + graph_from_biadjacency_matrix(...) +} # nocov end diff --git a/R/layout.R b/R/layout.R index f20292a7fb5..15b9973ccca 100644 --- a/R/layout.R +++ b/R/layout.R @@ -270,7 +270,7 @@ normalize <- function(xmin = -1, xmax = 1, ymin = xmin, ymax = xmax, #' @examples #' # Random bipartite graph #' inc <- matrix(sample(0:1, 50, replace = TRUE, prob = c(2, 1)), 10, 5) -#' g <- graph_from_incidence_matrix(inc) +#' g <- graph_from_biadjacency_matrix(inc) #' plot(g, #' layout = layout_as_bipartite, #' vertex.color = c("green", "cyan")[V(g)$type + 1] diff --git a/R/zzz-deprecate.R b/R/zzz-deprecate.R index 54785c00651..c950fc3300c 100644 --- a/R/zzz-deprecate.R +++ b/R/zzz-deprecate.R @@ -184,7 +184,7 @@ deprecated("get.edgelist", as_edgelist) #' @export get.graph.attribute deprecated("get.graph.attribute", graph_attr) #' @export get.incidence -deprecated("get.incidence", as_incidence_matrix) +deprecated("get.incidence", as_biadjacency_matrix) #' @export get.stochastic deprecated("get.stochastic", stochastic_matrix) #' @export get.vertex.attribute @@ -244,7 +244,7 @@ deprecated("graph.full.citation", make_full_citation_graph) #' @export graph.graphdb deprecated("graph.graphdb", graph_from_graphdb) #' @export graph.incidence -deprecated("graph.incidence", graph_from_incidence_matrix) +deprecated("graph.incidence", graph_from_biadjacency_matrix) #' @export graph.isocreate deprecated("graph.isocreate", graph_from_isomorphism_class) #' @export graph.kautz diff --git a/_pkgdown.yml b/_pkgdown.yml index d80863f9f4d..8e0cd4fb4a2 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -138,7 +138,7 @@ reference: - subtitle: Bipartite graphs - contents: - has_concept("bipartite") - - has_concept("incidence") + - has_concept("biadjacency") - subtitle: Efficiency - contents: - has_concept("efficiency") diff --git a/man/as.directed.Rd b/man/as.directed.Rd index f98074fa198..6da3a446a71 100644 --- a/man/as.directed.Rd +++ b/man/as.directed.Rd @@ -105,9 +105,10 @@ Other conversion: \code{\link{as.matrix.igraph}()}, \code{\link{as_adj_list}()}, \code{\link{as_adjacency_matrix}()}, +\code{\link{as_biadjacency_matrix}()}, +\code{\link{as_data_frame}()}, \code{\link{as_edgelist}()}, \code{\link{as_graphnel}()}, -\code{\link{as_incidence_matrix}()}, \code{\link{as_long_data_frame}()}, \code{\link{graph_from_adj_list}()}, \code{\link{graph_from_graphnel}()} diff --git a/man/as.matrix.igraph.Rd b/man/as.matrix.igraph.Rd index f29e9b74bf7..7c55a76cc05 100644 --- a/man/as.matrix.igraph.Rd +++ b/man/as.matrix.igraph.Rd @@ -50,9 +50,10 @@ Other conversion: \code{\link{as.directed}()}, \code{\link{as_adj_list}()}, \code{\link{as_adjacency_matrix}()}, +\code{\link{as_biadjacency_matrix}()}, +\code{\link{as_data_frame}()}, \code{\link{as_edgelist}()}, \code{\link{as_graphnel}()}, -\code{\link{as_incidence_matrix}()}, \code{\link{as_long_data_frame}()}, \code{\link{graph_from_adj_list}()}, \code{\link{graph_from_graphnel}()} diff --git a/man/as_adj_list.Rd b/man/as_adj_list.Rd index 0cbf6432654..c71f8989f61 100644 --- a/man/as_adj_list.Rd +++ b/man/as_adj_list.Rd @@ -71,9 +71,10 @@ Other conversion: \code{\link{as.directed}()}, \code{\link{as.matrix.igraph}()}, \code{\link{as_adjacency_matrix}()}, +\code{\link{as_biadjacency_matrix}()}, +\code{\link{as_data_frame}()}, \code{\link{as_edgelist}()}, \code{\link{as_graphnel}()}, -\code{\link{as_incidence_matrix}()}, \code{\link{as_long_data_frame}()}, \code{\link{graph_from_adj_list}()}, \code{\link{graph_from_graphnel}()} diff --git a/man/as_adjacency_matrix.Rd b/man/as_adjacency_matrix.Rd index 1fd13478551..46835075049 100644 --- a/man/as_adjacency_matrix.Rd +++ b/man/as_adjacency_matrix.Rd @@ -87,9 +87,10 @@ Other conversion: \code{\link{as.directed}()}, \code{\link{as.matrix.igraph}()}, \code{\link{as_adj_list}()}, +\code{\link{as_biadjacency_matrix}()}, +\code{\link{as_data_frame}()}, \code{\link{as_edgelist}()}, \code{\link{as_graphnel}()}, -\code{\link{as_incidence_matrix}()}, \code{\link{as_long_data_frame}()}, \code{\link{graph_from_adj_list}()}, \code{\link{graph_from_graphnel}()} diff --git a/man/as_biadjacency_matrix.Rd b/man/as_biadjacency_matrix.Rd new file mode 100644 index 00000000000..18e27092556 --- /dev/null +++ b/man/as_biadjacency_matrix.Rd @@ -0,0 +1,81 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/conversion.R +\name{as_biadjacency_matrix} +\alias{as_biadjacency_matrix} +\alias{get.incidence} +\title{Bipartite adjacency matrix of a bipartite graph} +\usage{ +as_biadjacency_matrix( + graph, + types = NULL, + attr = NULL, + names = TRUE, + sparse = FALSE +) +} +\arguments{ +\item{graph}{The input graph. The direction of the edges is ignored in +directed graphs.} + +\item{types}{An optional vertex type vector to use instead of the +\code{type} vertex attribute. You must supply this argument if the graph has +no \code{type} vertex attribute.} + +\item{attr}{Either \code{NULL} or a character string giving an edge +attribute name. If \code{NULL}, then a traditional bipartite adjacency matrix is +returned. If not \code{NULL} then the values of the given edge attribute are +included in the bipartite adjacency matrix. If the graph has multiple edges, the edge +attribute of an arbitrarily chosen edge (for the multiple edges) is +included.} + +\item{names}{Logical scalar, if \code{TRUE} and the vertices in the graph +are named (i.e. the graph has a vertex attribute called \code{name}), then +vertex names will be added to the result as row and column names. Otherwise +the ids of the vertices are used as row and column names.} + +\item{sparse}{Logical scalar, if it is \code{TRUE} then a sparse matrix is +created, you will need the \code{Matrix} package for this.} +} +\value{ +A sparse or dense matrix. +} +\description{ +This function can return a sparse or dense bipartite adjacency matrix of a bipartite +network. The bipartite adjacency matrix is an \eqn{n} times \eqn{m} matrix, \eqn{n} +and \eqn{m} are the number of vertices of the two kinds. +} +\details{ +Bipartite graphs have a \code{type} vertex attribute in igraph, this is +boolean and \code{FALSE} for the vertices of the first kind and \code{TRUE} +for vertices of the second kind. + +Some authors refer to the bipartite adjacency matrix as the +"bipartite incidence matrix". igraph 1.6.0 and later does not use +this naming to avoid confusion with the edge-vertex incidence matrix. +} +\examples{ + +g <- make_bipartite_graph(c(0, 1, 0, 1, 0, 0), c(1, 2, 2, 3, 3, 4)) +as_biadjacency_matrix(g) + +} +\seealso{ +\code{\link[=graph_from_biadjacency_matrix]{graph_from_biadjacency_matrix()}} for the opposite operation. + +Other conversion: +\code{\link{as.directed}()}, +\code{\link{as.matrix.igraph}()}, +\code{\link{as_adj_list}()}, +\code{\link{as_adjacency_matrix}()}, +\code{\link{as_data_frame}()}, +\code{\link{as_edgelist}()}, +\code{\link{as_graphnel}()}, +\code{\link{as_long_data_frame}()}, +\code{\link{graph_from_adj_list}()}, +\code{\link{graph_from_graphnel}()} +} +\author{ +Gabor Csardi \email{csardi.gabor@gmail.com} +} +\concept{conversion} +\keyword{graphs} diff --git a/man/as_edgelist.Rd b/man/as_edgelist.Rd index 221e3147808..2a62c68e448 100644 --- a/man/as_edgelist.Rd +++ b/man/as_edgelist.Rd @@ -41,8 +41,9 @@ Other conversion: \code{\link{as.matrix.igraph}()}, \code{\link{as_adj_list}()}, \code{\link{as_adjacency_matrix}()}, +\code{\link{as_biadjacency_matrix}()}, +\code{\link{as_data_frame}()}, \code{\link{as_graphnel}()}, -\code{\link{as_incidence_matrix}()}, \code{\link{as_long_data_frame}()}, \code{\link{graph_from_adj_list}()}, \code{\link{graph_from_graphnel}()} diff --git a/man/as_graphnel.Rd b/man/as_graphnel.Rd index 89aed16b28b..53d9a5f1b8c 100644 --- a/man/as_graphnel.Rd +++ b/man/as_graphnel.Rd @@ -53,8 +53,9 @@ Other conversion: \code{\link{as.matrix.igraph}()}, \code{\link{as_adj_list}()}, \code{\link{as_adjacency_matrix}()}, +\code{\link{as_biadjacency_matrix}()}, +\code{\link{as_data_frame}()}, \code{\link{as_edgelist}()}, -\code{\link{as_incidence_matrix}()}, \code{\link{as_long_data_frame}()}, \code{\link{graph_from_adj_list}()}, \code{\link{graph_from_graphnel}()} diff --git a/man/as_incidence_matrix.Rd b/man/as_incidence_matrix.Rd index 316927fbc14..50c68cb715c 100644 --- a/man/as_incidence_matrix.Rd +++ b/man/as_incidence_matrix.Rd @@ -2,75 +2,19 @@ % Please edit documentation in R/conversion.R \name{as_incidence_matrix} \alias{as_incidence_matrix} -\alias{get.incidence} -\title{Incidence matrix of a bipartite graph} +\title{As incidence matrix} \usage{ -as_incidence_matrix( - graph, - types = NULL, - attr = NULL, - names = TRUE, - sparse = FALSE -) -} -\arguments{ -\item{graph}{The input graph. The direction of the edges is ignored in -directed graphs.} - -\item{types}{An optional vertex type vector to use instead of the -\code{type} vertex attribute. You must supply this argument if the graph has -no \code{type} vertex attribute.} - -\item{attr}{Either \code{NULL} or a character string giving an edge -attribute name. If \code{NULL}, then a traditional incidence matrix is -returned. If not \code{NULL} then the values of the given edge attribute are -included in the incidence matrix. If the graph has multiple edges, the edge -attribute of an arbitrarily chosen edge (for the multiple edges) is -included.} - -\item{names}{Logical scalar, if \code{TRUE} and the vertices in the graph -are named (i.e. the graph has a vertex attribute called \code{name}), then -vertex names will be added to the result as row and column names. Otherwise -the ids of the vertices are used as row and column names.} - -\item{sparse}{Logical scalar, if it is \code{TRUE} then a sparse matrix is -created, you will need the \code{Matrix} package for this.} -} -\value{ -A sparse or dense matrix. +as_incidence_matrix(...) } \description{ -This function can return a sparse or dense incidence matrix of a bipartite -network. The incidence matrix is an \eqn{n} times \eqn{m} matrix, \eqn{n} -and \eqn{m} are the number of vertices of the two kinds. -} -\details{ -Bipartite graphs have a \code{type} vertex attribute in igraph, this is -boolean and \code{FALSE} for the vertices of the first kind and \code{TRUE} -for vertices of the second kind. -} -\examples{ - -g <- make_bipartite_graph(c(0, 1, 0, 1, 0, 0), c(1, 2, 2, 3, 3, 4)) -as_incidence_matrix(g) +\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} +\code{as_incidence_matrix()} was renamed to \code{as_biadjacency_matrix()} to create a more +consistent API. } -\seealso{ -\code{\link[=graph_from_incidence_matrix]{graph_from_incidence_matrix()}} for the opposite operation. - -Other conversion: -\code{\link{as.directed}()}, -\code{\link{as.matrix.igraph}()}, -\code{\link{as_adj_list}()}, -\code{\link{as_adjacency_matrix}()}, -\code{\link{as_edgelist}()}, -\code{\link{as_graphnel}()}, -\code{\link{as_long_data_frame}()}, -\code{\link{graph_from_adj_list}()}, -\code{\link{graph_from_graphnel}()} -} -\author{ -Gabor Csardi \email{csardi.gabor@gmail.com} +\details{ +Some authors refer to the bipartite adjacency matrix as the +"bipartite incidence matrix". igraph 1.6.0 and later does not use +this naming to avoid confusion with the edge-vertex incidence matrix. } -\concept{conversion} -\keyword{graphs} +\keyword{internal} diff --git a/man/as_long_data_frame.Rd b/man/as_long_data_frame.Rd index 045afcd8617..053e8077b5c 100644 --- a/man/as_long_data_frame.Rd +++ b/man/as_long_data_frame.Rd @@ -36,9 +36,10 @@ Other conversion: \code{\link{as.matrix.igraph}()}, \code{\link{as_adj_list}()}, \code{\link{as_adjacency_matrix}()}, +\code{\link{as_biadjacency_matrix}()}, +\code{\link{as_data_frame}()}, \code{\link{as_edgelist}()}, \code{\link{as_graphnel}()}, -\code{\link{as_incidence_matrix}()}, \code{\link{graph_from_adj_list}()}, \code{\link{graph_from_graphnel}()} } diff --git a/man/bipartite_projection.Rd b/man/bipartite_projection.Rd index bf17251d8b8..4e90535cef1 100644 --- a/man/bipartite_projection.Rd +++ b/man/bipartite_projection.Rd @@ -84,7 +84,7 @@ rownames(M) <- c("Alice", "Bob", "Cecil", "Dan", "Ethel") colnames(M) <- c("Party", "Skiing", "Badminton") M[] <- sample(0:1, length(M), replace = TRUE) M -g2 <- graph_from_incidence_matrix(M) +g2 <- graph_from_biadjacency_matrix(M) g2$name <- "Event network" proj2 <- bipartite_projection(g2) print(proj2[[1]], g = TRUE, e = TRUE) diff --git a/man/from_incidence_matrix.Rd b/man/from_incidence_matrix.Rd new file mode 100644 index 00000000000..4b54c6d6160 --- /dev/null +++ b/man/from_incidence_matrix.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/incidence.R +\name{from_incidence_matrix} +\alias{from_incidence_matrix} +\title{Graph from incidence matrix} +\usage{ +from_incidence_matrix(...) +} +\description{ +\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} + +\code{graph_from_incidence_matrix()} was renamed to \code{graph_from_biadjacency_matrix()} to create a more +consistent API. +} +\details{ +Some authors refer to the bipartite adjacency matrix as the +"bipartite incidence matrix". igraph 1.6.0 and later does not use +this naming to avoid confusion with the edge-vertex incidence matrix. +} +\keyword{internal} diff --git a/man/graph_from_adj_list.Rd b/man/graph_from_adj_list.Rd index 4e72b5fcb2e..21ecdb70ebc 100644 --- a/man/graph_from_adj_list.Rd +++ b/man/graph_from_adj_list.Rd @@ -71,9 +71,10 @@ Other conversion: \code{\link{as.matrix.igraph}()}, \code{\link{as_adj_list}()}, \code{\link{as_adjacency_matrix}()}, +\code{\link{as_biadjacency_matrix}()}, +\code{\link{as_data_frame}()}, \code{\link{as_edgelist}()}, \code{\link{as_graphnel}()}, -\code{\link{as_incidence_matrix}()}, \code{\link{as_long_data_frame}()}, \code{\link{graph_from_graphnel}()} } diff --git a/man/graph_from_biadjacency_matrix.Rd b/man/graph_from_biadjacency_matrix.Rd new file mode 100644 index 00000000000..3f4874ead70 --- /dev/null +++ b/man/graph_from_biadjacency_matrix.Rd @@ -0,0 +1,94 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/incidence.R +\name{graph_from_biadjacency_matrix} +\alias{graph_from_biadjacency_matrix} +\alias{graph.incidence} +\title{Create graphs from a bipartite adjacency matrix} +\usage{ +graph_from_biadjacency_matrix( + incidence, + directed = FALSE, + mode = c("all", "out", "in", "total"), + multiple = FALSE, + weighted = NULL, + add.names = NULL +) +} +\arguments{ +\item{incidence}{The input bipartite adjacency matrix. It can also be a sparse matrix +from the \code{Matrix} package.} + +\item{directed}{Logical scalar, whether to create a directed graph.} + +\item{mode}{A character constant, defines the direction of the edges in +directed graphs, ignored for undirected graphs. If \sQuote{\code{out}}, then +edges go from vertices of the first kind (corresponding to rows in the +bipartite adjacency matrix) to vertices of the second kind (columns in the incidence +matrix). If \sQuote{\verb{in}}, then the opposite direction is used. If +\sQuote{\code{all}} or \sQuote{\code{total}}, then mutual edges are created.} + +\item{multiple}{Logical scalar, specifies how to interpret the matrix +elements. See details below.} + +\item{weighted}{This argument specifies whether to create a weighted graph +from the bipartite adjacency matrix. If it is \code{NULL} then an unweighted graph is +created and the \code{multiple} argument is used to determine the edges of +the graph. If it is a character constant then for every non-zero matrix +entry an edge is created and the value of the entry is added as an edge +attribute named by the \code{weighted} argument. If it is \code{TRUE} then a +weighted graph is created and the name of the edge attribute will be +\sQuote{\code{weight}}.} + +\item{add.names}{A character constant, \code{NA} or \code{NULL}. +\code{graph_from_biadjacency_matrix()} can add the row and column names of the incidence +matrix as vertex attributes. If this argument is \code{NULL} (the default) +and the bipartite adjacency matrix has both row and column names, then these are added +as the \sQuote{\code{name}} vertex attribute. If you want a different vertex +attribute for this, then give the name of the attributes as a character +string. If this argument is \code{NA}, then no vertex attributes (other than +type) will be added.} +} +\value{ +A bipartite igraph graph. In other words, an igraph graph that has a +vertex attribute \code{type}. +} +\description{ +\code{graph_from_biadjacency_matrix()} creates a bipartite igraph graph from an incidence +matrix. +} +\details{ +Bipartite graphs have a \sQuote{\code{type}} vertex attribute in igraph, +this is boolean and \code{FALSE} for the vertices of the first kind and +\code{TRUE} for vertices of the second kind. + +\code{graph_from_biadjacency_matrix()} can operate in two modes, depending on the +\code{multiple} argument. If it is \code{FALSE} then a single edge is +created for every non-zero element in the bipartite adjacency matrix. If +\code{multiple} is \code{TRUE}, then the matrix elements are rounded up to +the closest non-negative integer to get the number of edges to create +between a pair of vertices. + +Some authors refer to the bipartite adjacency matrix as the +"bipartite incidence matrix". igraph 1.6.0 and later does not use +this naming to avoid confusion with the edge-vertex incidence matrix. +} +\examples{ + +inc <- matrix(sample(0:1, 15, repl = TRUE), 3, 5) +colnames(inc) <- letters[1:5] +rownames(inc) <- LETTERS[1:3] +graph_from_biadjacency_matrix(inc) + +} +\seealso{ +\code{\link[=make_bipartite_graph]{make_bipartite_graph()}} for another way to create bipartite +graphs + +Other biadjacency: +\code{\link{as_data_frame}()} +} +\author{ +Gabor Csardi \email{csardi.gabor@gmail.com} +} +\concept{biadjacency} +\keyword{graphs} diff --git a/man/graph_from_data_frame.Rd b/man/graph_from_data_frame.Rd index ea3c4706f6d..4f7c66b9fa4 100644 --- a/man/graph_from_data_frame.Rd +++ b/man/graph_from_data_frame.Rd @@ -129,8 +129,25 @@ as_data_frame(g, what = "edges") \code{\link[=graph_from_literal]{graph_from_literal()}} for another way to create graphs, \code{\link[=read.table]{read.table()}} to read in tables from files. + +Other conversion: +\code{\link{as.directed}()}, +\code{\link{as.matrix.igraph}()}, +\code{\link{as_adj_list}()}, +\code{\link{as_adjacency_matrix}()}, +\code{\link{as_biadjacency_matrix}()}, +\code{\link{as_edgelist}()}, +\code{\link{as_graphnel}()}, +\code{\link{as_long_data_frame}()}, +\code{\link{graph_from_adj_list}()}, +\code{\link{graph_from_graphnel}()} + +Other biadjacency: +\code{\link{graph_from_biadjacency_matrix}()} } \author{ Gabor Csardi \email{csardi.gabor@gmail.com} } +\concept{biadjacency} +\concept{conversion} \keyword{graphs} diff --git a/man/graph_from_graphnel.Rd b/man/graph_from_graphnel.Rd index 6b01472dda3..0dfc1dd48e9 100644 --- a/man/graph_from_graphnel.Rd +++ b/man/graph_from_graphnel.Rd @@ -67,9 +67,10 @@ Other conversion: \code{\link{as.matrix.igraph}()}, \code{\link{as_adj_list}()}, \code{\link{as_adjacency_matrix}()}, +\code{\link{as_biadjacency_matrix}()}, +\code{\link{as_data_frame}()}, \code{\link{as_edgelist}()}, \code{\link{as_graphnel}()}, -\code{\link{as_incidence_matrix}()}, \code{\link{as_long_data_frame}()}, \code{\link{graph_from_adj_list}()} } diff --git a/man/graph_from_incidence_matrix.Rd b/man/graph_from_incidence_matrix.Rd index 6efcf24146e..c7f6cf1df15 100644 --- a/man/graph_from_incidence_matrix.Rd +++ b/man/graph_from_incidence_matrix.Rd @@ -2,91 +2,19 @@ % Please edit documentation in R/incidence.R \name{graph_from_incidence_matrix} \alias{graph_from_incidence_matrix} -\alias{graph.incidence} -\alias{from_incidence_matrix} -\title{Create graphs from an incidence matrix} +\title{From incidence matrix} \usage{ -graph_from_incidence_matrix( - incidence, - directed = FALSE, - mode = c("all", "out", "in", "total"), - multiple = FALSE, - weighted = NULL, - add.names = NULL -) - -from_incidence_matrix(...) -} -\arguments{ -\item{incidence}{The input incidence matrix. It can also be a sparse matrix -from the \code{Matrix} package.} - -\item{directed}{Logical scalar, whether to create a directed graph.} - -\item{mode}{A character constant, defines the direction of the edges in -directed graphs, ignored for undirected graphs. If \sQuote{\code{out}}, then -edges go from vertices of the first kind (corresponding to rows in the -incidence matrix) to vertices of the second kind (columns in the incidence -matrix). If \sQuote{\verb{in}}, then the opposite direction is used. If -\sQuote{\code{all}} or \sQuote{\code{total}}, then mutual edges are created.} - -\item{multiple}{Logical scalar, specifies how to interpret the matrix -elements. See details below.} - -\item{weighted}{This argument specifies whether to create a weighted graph -from the incidence matrix. If it is \code{NULL} then an unweighted graph is -created and the \code{multiple} argument is used to determine the edges of -the graph. If it is a character constant then for every non-zero matrix -entry an edge is created and the value of the entry is added as an edge -attribute named by the \code{weighted} argument. If it is \code{TRUE} then a -weighted graph is created and the name of the edge attribute will be -\sQuote{\code{weight}}.} - -\item{add.names}{A character constant, \code{NA} or \code{NULL}. -\code{graph_from_incidence_matrix()} can add the row and column names of the incidence -matrix as vertex attributes. If this argument is \code{NULL} (the default) -and the incidence matrix has both row and column names, then these are added -as the \sQuote{\code{name}} vertex attribute. If you want a different vertex -attribute for this, then give the name of the attributes as a character -string. If this argument is \code{NA}, then no vertex attributes (other than -type) will be added.} - -\item{...}{Passed to \code{graph_from_incidence_matrix()}.} -} -\value{ -A bipartite igraph graph. In other words, an igraph graph that has a -vertex attribute \code{type}. +graph_from_incidence_matrix(...) } \description{ -\code{graph_from_incidence_matrix()} creates a bipartite igraph graph from an incidence -matrix. -} -\details{ -Bipartite graphs have a \sQuote{\code{type}} vertex attribute in igraph, -this is boolean and \code{FALSE} for the vertices of the first kind and -\code{TRUE} for vertices of the second kind. - -\code{graph_from_incidence_matrix()} can operate in two modes, depending on the -\code{multiple} argument. If it is \code{FALSE} then a single edge is -created for every non-zero element in the incidence matrix. If -\code{multiple} is \code{TRUE}, then the matrix elements are rounded up to -the closest non-negative integer to get the number of edges to create -between a pair of vertices. -} -\examples{ - -inc <- matrix(sample(0:1, 15, repl = TRUE), 3, 5) -colnames(inc) <- letters[1:5] -rownames(inc) <- LETTERS[1:3] -graph_from_incidence_matrix(inc) +\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} +\code{graph_from_incidence_matrix()} was renamed to \code{graph_from_biadjacency_matrix()} to create a more +consistent API. } -\seealso{ -\code{\link[=make_bipartite_graph]{make_bipartite_graph()}} for another way to create bipartite -graphs -} -\author{ -Gabor Csardi \email{csardi.gabor@gmail.com} +\details{ +Some authors refer to the bipartite adjacency matrix as the +"bipartite incidence matrix". igraph 1.6.0 and later does not use +this naming to avoid confusion with the edge-vertex incidence matrix. } -\concept{incidence} -\keyword{graphs} +\keyword{internal} diff --git a/man/layout_as_bipartite.Rd b/man/layout_as_bipartite.Rd index 4d900726f77..b4853a2809d 100644 --- a/man/layout_as_bipartite.Rd +++ b/man/layout_as_bipartite.Rd @@ -47,7 +47,7 @@ edge crossings, using the Sugiyama algorithm (see \examples{ # Random bipartite graph inc <- matrix(sample(0:1, 50, replace = TRUE, prob = c(2, 1)), 10, 5) -g <- graph_from_incidence_matrix(inc) +g <- graph_from_biadjacency_matrix(inc) plot(g, layout = layout_as_bipartite, vertex.color = c("green", "cyan")[V(g)$type + 1] diff --git a/src/cpp11.cpp b/src/cpp11.cpp index 3919e5309df..2457d779ddb 100644 --- a/src/cpp11.cpp +++ b/src/cpp11.cpp @@ -15,381 +15,381 @@ extern "C" SEXP _igraph_igraph_hcass2(SEXP n, SEXP ia, SEXP ib) { extern "C" { /* .Call calls */ -extern SEXP R_igraph_add_edges(void *, void *); -extern SEXP R_igraph_add_env(void *); -extern SEXP R_igraph_add_myid_to_env(void *); -extern SEXP R_igraph_add_version_to_env(void *); -extern SEXP R_igraph_add_vertices(void *, void *); -extern SEXP R_igraph_address(void *); -extern SEXP R_igraph_adhesion(void *, void *); -extern SEXP R_igraph_adjacency_spectral_embedding(void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_adjacent_triangles(void *, void *); -extern SEXP R_igraph_adjacent_vertices(void *, void *, void *); -extern SEXP R_igraph_adjlist(void *, void *, void *); -extern SEXP R_igraph_all_minimal_st_separators(void *); -extern SEXP R_igraph_all_st_cuts(void *, void *, void *); -extern SEXP R_igraph_all_st_mincuts(void *, void *, void *, void *); -extern SEXP R_igraph_are_connected(void *, void *, void *); -extern SEXP R_igraph_arpack(void *, void *, void *, void *, void *); -extern SEXP R_igraph_arpack_unpack_complex(void *, void *, void *); -extern SEXP R_igraph_articulation_points(void *); -extern SEXP R_igraph_assortativity(void *, void *, void *, void *); -extern SEXP R_igraph_assortativity_degree(void *, void *); -extern SEXP R_igraph_assortativity_nominal(void *, void *, void *); -extern SEXP R_igraph_asymmetric_preference_game(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_atlas(void *); -extern SEXP R_igraph_authority_score(void *, void *, void *, void *); -extern SEXP R_igraph_automorphism_group(void *, void *, void *); -extern SEXP R_igraph_automorphisms(void *, void *, void *); -extern SEXP R_igraph_average_local_efficiency(void *, void *, void *, void *); -extern SEXP R_igraph_average_path_length_dijkstra(void *, void *, void *, void *); -extern SEXP R_igraph_avg_nearest_neighbor_degree(void *, void *, void *, void *, void *); -extern SEXP R_igraph_barabasi_aging_game(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_barabasi_game(void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_betweenness_cutoff(void *, void *, void *, void *, void *); -extern SEXP R_igraph_bfs(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_bibcoupling(void *, void *); -extern SEXP R_igraph_biconnected_components(void *); -extern SEXP R_igraph_bipartite_game_gnm(void *, void *, void *, void *, void *); -extern SEXP R_igraph_bipartite_game_gnp(void *, void *, void *, void *, void *); -extern SEXP R_igraph_bipartite_projection(void *, void *, void *, void *); -extern SEXP R_igraph_bipartite_projection_size(void *, void *); -extern SEXP R_igraph_bridges(void *); -extern SEXP R_igraph_callaway_traits_game(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_canonical_permutation(void *, void *, void *); -extern SEXP R_igraph_centralization(void *, void *, void *); -extern SEXP R_igraph_centralization_betweenness(void *, void *, void *); -extern SEXP R_igraph_centralization_betweenness_tmax(void *, void *, void *); -extern SEXP R_igraph_centralization_closeness(void *, void *, void *); -extern SEXP R_igraph_centralization_closeness_tmax(void *, void *, void *); -extern SEXP R_igraph_centralization_degree(void *, void *, void *, void *); -extern SEXP R_igraph_centralization_degree_tmax(void *, void *, void *, void *); -extern SEXP R_igraph_centralization_eigenvector_centrality(void *, void *, void *, void *, void *); -extern SEXP R_igraph_centralization_eigenvector_centrality_tmax(void *, void *, void *, void *); -extern SEXP R_igraph_cited_type_game(void *, void *, void *, void *, void *); -extern SEXP R_igraph_citing_cited_type_game(void *, void *, void *, void *, void *); -extern SEXP R_igraph_clique_number(void *); -extern SEXP R_igraph_clique_size_hist(void *, void *, void *); -extern SEXP R_igraph_cliques(void *, void *, void *); -extern SEXP R_igraph_closeness_cutoff(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_clusters(void *, void *); -extern SEXP R_igraph_cocitation(void *, void *); -extern SEXP R_igraph_cohesion(void *, void *); -extern SEXP R_igraph_cohesive_blocks(void *); -extern SEXP R_igraph_community_edge_betweenness(void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_community_fastgreedy(void *, void *, void *, void *, void *); -extern SEXP R_igraph_community_fluid_communities(void *, void *); -extern SEXP R_igraph_community_infomap(void *, void *, void *, void *); -extern SEXP R_igraph_community_label_propagation(void *, void *, void *, void *); -extern SEXP R_igraph_community_leading_eigenvector(void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_community_leiden(void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_community_multilevel(void *, void *, void *); -extern SEXP R_igraph_community_optimal_modularity(void *, void *); -extern SEXP R_igraph_community_to_membership2(void *, void *, void *); -extern SEXP R_igraph_compare_communities(void *, void *, void *); -extern SEXP R_igraph_complementer(void *, void *); -extern SEXP R_igraph_compose(void *, void *, void *); -extern SEXP R_igraph_connect_neighborhood(void *, void *, void *); -extern SEXP R_igraph_constraint(void *, void *, void *); -extern SEXP R_igraph_contract_vertices(void *, void *, void *); -extern SEXP R_igraph_convex_hull(void *); -extern SEXP R_igraph_copy_env(void *); -extern SEXP R_igraph_copy_from(void *); -extern SEXP R_igraph_copy_to(void *); -extern SEXP R_igraph_coreness(void *, void *); -extern SEXP R_igraph_correlated_game(void *, void *, void *, void *); -extern SEXP R_igraph_correlated_pair_game(void *, void *, void *, void *, void *); -extern SEXP R_igraph_count_isomorphisms_vf2(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_count_multiple(void *, void *); -extern SEXP R_igraph_count_subisomorphisms_vf2(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_create(void *, void *, void *); -extern SEXP R_igraph_create_bipartite(void *, void *, void *); -extern SEXP R_igraph_de_bruijn(void *, void *); -extern SEXP R_igraph_decompose(void *, void *, void *, void *); -extern SEXP R_igraph_degree(void *, void *, void *, void *); -extern SEXP R_igraph_degree_sequence_game(void *, void *, void *); -extern SEXP R_igraph_delete_edges(void *, void *); -extern SEXP R_igraph_delete_vertices(void *, void *); -extern SEXP R_igraph_density(void *, void *); -extern SEXP R_igraph_dfs(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_diameter(void *, void *, void *, void *); -extern SEXP R_igraph_difference(void *, void *); -extern SEXP R_igraph_dim_select(void *); -extern SEXP R_igraph_disjoint_union(void *); -extern SEXP R_igraph_diversity(void *, void *, void *); -extern SEXP R_igraph_dominator_tree(void *, void *, void *); -extern SEXP R_igraph_dot_product_game(void *, void *); -extern SEXP R_igraph_dyad_census(void *); -extern SEXP R_igraph_eccentricity(void *, void *, void *); -extern SEXP R_igraph_ecount(void *); -extern SEXP R_igraph_edge_betweenness_cutoff(void *, void *, void *, void *); -extern SEXP R_igraph_edge_connectivity(void *, void *); -extern SEXP R_igraph_edge_disjoint_paths(void *, void *, void *); -extern SEXP R_igraph_edges(void *, void *); -extern SEXP R_igraph_eigen_adjacency(void *, void *, void *, void *); -extern SEXP R_igraph_eigenvector_centrality(void *, void *, void *, void *, void *); -extern SEXP R_igraph_empty(void *, void *); -extern SEXP R_igraph_erdos_renyi_game(void *, void *, void *, void *, void *); -extern SEXP R_igraph_es_adj(void *, void *, void *, void *); -extern SEXP R_igraph_es_pairs(void *, void *, void *); -extern SEXP R_igraph_es_path(void *, void *, void *); -extern SEXP R_igraph_establishment_game(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_eulerian_cycle(void *); -extern SEXP R_igraph_eulerian_path(void *); -extern SEXP R_igraph_extended_chordal_ring(void *, void *, void *); -extern SEXP R_igraph_famous(void *); -extern SEXP R_igraph_farthest_points(void *, void *, void *, void *); -extern SEXP R_igraph_feedback_arc_set(void *, void *, void *); -extern SEXP R_igraph_finalizer(void); -extern SEXP R_igraph_forest_fire_game(void *, void *, void *, void *, void *); -extern SEXP R_igraph_from_prufer(void *); -extern SEXP R_igraph_full(void *, void *, void *); -extern SEXP R_igraph_full_bipartite(void *, void *, void *, void *); -extern SEXP R_igraph_full_citation(void *, void *); -extern SEXP R_igraph_get_adjacency(void *, void *, void *); -extern SEXP R_igraph_get_adjedgelist(void *, void *, void *); -extern SEXP R_igraph_get_adjlist(void *, void *, void *, void *); -extern SEXP R_igraph_get_all_shortest_paths(void *, void *, void *, void *); -extern SEXP R_igraph_get_all_shortest_paths_dijkstra(void *, void *, void *, void *, void *); -extern SEXP R_igraph_get_all_simple_paths(void *, void *, void *, void *, void *); -extern SEXP R_igraph_get_all_simple_paths_pp(void *); -extern SEXP R_igraph_get_attr_mode(void *, void *); -extern SEXP R_igraph_get_diameter(void *, void *, void *, void *); -extern SEXP R_igraph_get_edge(void *, void *); -extern SEXP R_igraph_get_edgelist(void *, void *); -extern SEXP R_igraph_get_eids(void *, void *, void *, void *, void *); -extern SEXP R_igraph_get_graph_id(void *); -extern SEXP R_igraph_get_incidence(void *, void *); -extern SEXP R_igraph_get_isomorphisms_vf2(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_get_shortest_paths(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_get_stochastic(void *, void *); -extern SEXP R_igraph_get_stochastic_sparsemat(void *, void *); -extern SEXP R_igraph_get_subisomorphisms_vf2(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_getsphere(void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_girth(void *, void *); -extern SEXP R_igraph_global_efficiency(void *, void *, void *); -extern SEXP R_igraph_graph_adjacency(void *, void *); -extern SEXP R_igraph_graph_version(void *); -extern SEXP R_igraph_graphlets(void *, void *, void *); -extern SEXP R_igraph_graphlets_candidate_basis(void *, void *); -extern SEXP R_igraph_graphlets_project(void *, void *, void *, void *, void *); -extern SEXP R_igraph_grg_game(void *, void *, void *, void *); -extern SEXP R_igraph_growing_random_game(void *, void *, void *, void *); -extern SEXP R_igraph_harmonic_centrality_cutoff(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_has_loop(void *); -extern SEXP R_igraph_has_multiple(void *); -extern SEXP R_igraph_hrg_consensus(void *, void *, void *, void *); -extern SEXP R_igraph_hrg_create(void *, void *); -extern SEXP R_igraph_hrg_dendrogram(void *); -extern SEXP R_igraph_hrg_fit(void *, void *, void *, void *); -extern SEXP R_igraph_hrg_game(void *); -extern SEXP R_igraph_hrg_predict(void *, void *, void *, void *, void *); -extern SEXP R_igraph_hsbm_game(void *, void *, void *, void *, void *); -extern SEXP R_igraph_hsbm_list_game(void *, void *, void *, void *, void *); -extern SEXP R_igraph_hub_score(void *, void *, void *, void *); -extern SEXP R_igraph_i_levc_arp(void *, void *, void *); -extern SEXP R_igraph_identical_graphs(void *, void *, void *); -extern SEXP R_igraph_incidence(void *, void *, void *, void *); -extern SEXP R_igraph_incident(void *, void *, void *); -extern SEXP R_igraph_incident_edges(void *, void *, void *); -extern SEXP R_igraph_independence_number(void *); -extern SEXP R_igraph_independent_vertex_sets(void *, void *, void *); -extern SEXP R_igraph_induced_subgraph(void *, void *, void *); -extern SEXP R_igraph_intersection(void *, void *); -extern SEXP R_igraph_is_bipartite(void *); -extern SEXP R_igraph_is_chordal(void *, void *, void *, void *, void *); -extern SEXP R_igraph_is_connected(void *, void *); -extern SEXP R_igraph_is_dag(void *); -extern SEXP R_igraph_is_directed(void *); -extern SEXP R_igraph_is_eulerian(void *); -extern SEXP R_igraph_is_graphical(void *, void *, void *); -extern SEXP R_igraph_is_loop(void *, void *); -extern SEXP R_igraph_is_matching(void *, void *, void *); -extern SEXP R_igraph_is_maximal_matching(void *, void *, void *); -extern SEXP R_igraph_is_minimal_separator(void *, void *); -extern SEXP R_igraph_is_multiple(void *, void *); -extern SEXP R_igraph_is_mutual(void *, void *); -extern SEXP R_igraph_is_separator(void *, void *); -extern SEXP R_igraph_is_simple(void *); -extern SEXP R_igraph_is_tree(void *, void *); -extern SEXP R_igraph_isoclass(void *); -extern SEXP R_igraph_isoclass_create(void *, void *, void *); -extern SEXP R_igraph_isoclass_subgraph(void *, void *); -extern SEXP R_igraph_isomorphic(void *, void *); -extern SEXP R_igraph_isomorphic_34(void *, void *); -extern SEXP R_igraph_isomorphic_bliss(void *, void *, void *, void *, void *); -extern SEXP R_igraph_isomorphic_vf2(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_k_regular_game(void *, void *, void *, void *); -extern SEXP R_igraph_kautz(void *, void *); -extern SEXP R_igraph_laplacian(void *, void *, void *, void *); -extern SEXP R_igraph_laplacian_spectral_embedding(void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_largest_cliques(void *); -extern SEXP R_igraph_largest_independent_vertex_sets(void *); -extern SEXP R_igraph_largest_weighted_cliques(void *, void *); -extern SEXP R_igraph_lastcit_game(void *, void *, void *, void *, void *); -extern SEXP R_igraph_lattice(void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_bipartite(void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_circle(void *, void *); -extern SEXP R_igraph_layout_davidson_harel(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_drl(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_drl_3d(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_fruchterman_reingold(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_fruchterman_reingold_3d(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_gem(void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_graphopt(void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_grid(void *, void *); -extern SEXP R_igraph_layout_grid_3d(void *, void *, void *); -extern SEXP R_igraph_layout_kamada_kawai(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_kamada_kawai_3d(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_lgl(void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_mds(void *, void *, void *); -extern SEXP R_igraph_layout_merge_dla(void *, void *); -extern SEXP R_igraph_layout_random(void *); -extern SEXP R_igraph_layout_random_3d(void *); -extern SEXP R_igraph_layout_reingold_tilford(void *, void *, void *, void *, void *); -extern SEXP R_igraph_layout_sphere(void *); -extern SEXP R_igraph_layout_star(void *, void *, void *); -extern SEXP R_igraph_layout_sugiyama(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_lcf_vector(void *, void *, void *); -extern SEXP R_igraph_linegraph(void *); -extern SEXP R_igraph_list_triangles(void *); -extern SEXP R_igraph_local_efficiency(void *, void *, void *, void *, void *); -extern SEXP R_igraph_local_scan_0(void *, void *, void *); -extern SEXP R_igraph_local_scan_0_them(void *, void *, void *, void *); -extern SEXP R_igraph_local_scan_1_ecount(void *, void *, void *); -extern SEXP R_igraph_local_scan_1_ecount_them(void *, void *, void *, void *); -extern SEXP R_igraph_local_scan_k_ecount(void *, void *, void *, void *); -extern SEXP R_igraph_local_scan_k_ecount_them(void *, void *, void *, void *, void *); -extern SEXP R_igraph_local_scan_neighborhood_ecount(void *, void *, void *); -extern SEXP R_igraph_make_weak_ref(void *, void *, void *); -extern SEXP R_igraph_maxflow(void *, void *, void *, void *); -extern SEXP R_igraph_maximal_cliques(void *, void *, void *, void *); -extern SEXP R_igraph_maximal_cliques_count(void *, void *, void *, void *); -extern SEXP R_igraph_maximal_cliques_file(void *, void *, void *, void *, void *); -extern SEXP R_igraph_maximal_cliques_hist(void *, void *, void *); -extern SEXP R_igraph_maximal_independent_vertex_sets(void *); -extern SEXP R_igraph_maximum_bipartite_matching(void *, void *, void *, void *); -extern SEXP R_igraph_maximum_cardinality_search(void *); -extern SEXP R_igraph_mincut(void *, void *); -extern SEXP R_igraph_mincut_value(void *, void *); -extern SEXP R_igraph_minimum_size_separators(void *); -extern SEXP R_igraph_minimum_spanning_tree_prim(void *, void *); -extern SEXP R_igraph_minimum_spanning_tree_unweighted(void *); -extern SEXP R_igraph_modularity(void *, void *, void *, void *, void *); -extern SEXP R_igraph_modularity_matrix(void *, void *, void *, void *); -extern SEXP R_igraph_motifs_randesu(void *, void *, void *); -extern SEXP R_igraph_motifs_randesu_estimate(void *, void *, void *, void *, void *); -extern SEXP R_igraph_motifs_randesu_no(void *, void *, void *); -extern SEXP R_igraph_mybracket2(void *, void *, void *); -extern SEXP R_igraph_mybracket2_copy(void *, void *, void *); -extern SEXP R_igraph_mybracket2_names(void *, void *, void *); -extern SEXP R_igraph_mybracket2_set(void *, void *, void *, void *); -extern SEXP R_igraph_mybracket3_set(void *, void *, void *, void *, void *); -extern SEXP R_igraph_neighborhood(void *, void *, void *, void *, void *); -extern SEXP R_igraph_neighborhood_graphs(void *, void *, void *, void *, void *); -extern SEXP R_igraph_neighborhood_size(void *, void *, void *, void *, void *); -extern SEXP R_igraph_neighbors(void *, void *, void *); -extern SEXP R_igraph_no_clusters(void *, void *); -extern SEXP R_igraph_path_length_hist(void *, void *); -extern SEXP R_igraph_permute_vertices(void *, void *); -extern SEXP R_igraph_personalized_pagerank(void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_power_law_fit(void *, void *, void *); -extern SEXP R_igraph_preference_game(void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_radius(void *, void *); -extern SEXP R_igraph_random_edge_walk(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_random_sample(void *, void *, void *); -extern SEXP R_igraph_random_spanning_tree(void *, void *); -extern SEXP R_igraph_random_walk(void *, void *, void *, void *, void *); -extern SEXP R_igraph_read_graph_dimacs(void *, void *); -extern SEXP R_igraph_read_graph_dl(void *, void *); -extern SEXP R_igraph_read_graph_edgelist(void *, void *, void *); -extern SEXP R_igraph_read_graph_gml(void *); -extern SEXP R_igraph_read_graph_graphdb(void *, void *); -extern SEXP R_igraph_read_graph_graphml(void *, void *); -extern SEXP R_igraph_read_graph_lgl(void *, void *, void *, void *); -extern SEXP R_igraph_read_graph_ncol(void *, void *, void *, void *, void *); -extern SEXP R_igraph_read_graph_pajek(void *); -extern SEXP R_igraph_realize_degree_sequence(void *, void *, void *, void *); -extern SEXP R_igraph_recent_degree_aging_game(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_reciprocity(void *, void *, void *); -extern SEXP R_igraph_reverse_edges(void *, void *); -extern SEXP R_igraph_rewire(void *, void *, void *); -extern SEXP R_igraph_rewire_directed_edges(void *, void *, void *, void *); -extern SEXP R_igraph_rewire_edges(void *, void *, void *, void *); -extern SEXP R_igraph_ring(void *, void *, void *, void *); -extern SEXP R_igraph_running_mean(void *, void *); -extern SEXP R_igraph_sample_dirichlet(void *, void *); -extern SEXP R_igraph_sample_sphere_surface(void *, void *, void *, void *); -extern SEXP R_igraph_sample_sphere_volume(void *, void *, void *, void *); -extern SEXP R_igraph_sbm_game(void *, void *, void *, void *, void *); -extern SEXP R_igraph_scg_norm_eps(void *, void *, void *, void *, void *); -extern SEXP R_igraph_set_verbose(void *); -extern SEXP R_igraph_shortest_paths(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_similarity_dice(void *, void *, void *, void *); -extern SEXP R_igraph_similarity_inverse_log_weighted(void *, void *, void *); -extern SEXP R_igraph_similarity_jaccard(void *, void *, void *, void *); -extern SEXP R_igraph_simple_interconnected_islands_game(void *, void *, void *, void *); -extern SEXP R_igraph_simplify(void *, void *, void *, void *); -extern SEXP R_igraph_simplify_and_colorize(void *); -extern SEXP R_igraph_sir(void *, void *, void *, void *); -extern SEXP R_igraph_solve_lsap(void *, void *); -extern SEXP R_igraph_spinglass_community(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_spinglass_my_community(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_split_join_distance(void *, void *); -extern SEXP R_igraph_st_edge_connectivity(void *, void *, void *); -extern SEXP R_igraph_st_mincut(void *, void *, void *, void *); -extern SEXP R_igraph_st_mincut_value(void *, void *, void *, void *); -extern SEXP R_igraph_st_vertex_connectivity(void *, void *, void *); -extern SEXP R_igraph_star(void *, void *, void *); -extern SEXP R_igraph_static_fitness_game(void *, void *, void *, void *, void *); -extern SEXP R_igraph_static_power_law_game(void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_strength(void *, void *, void *, void *, void *); -extern SEXP R_igraph_subcomponent(void *, void *, void *); -extern SEXP R_igraph_subgraph_edges(void *, void *, void *); -extern SEXP R_igraph_subisomorphic_lad(void *, void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_subisomorphic_vf2(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_to_directed(void *, void *); -extern SEXP R_igraph_to_prufer(void *); -extern SEXP R_igraph_to_undirected(void *, void *, void *); -extern SEXP R_igraph_topological_sorting(void *, void *); -extern SEXP R_igraph_transitivity_avglocal_undirected(void *, void *); -extern SEXP R_igraph_transitivity_barrat(void *, void *, void *, void *); -extern SEXP R_igraph_transitivity_local_undirected(void *, void *, void *); -extern SEXP R_igraph_transitivity_local_undirected_all(void *, void *); -extern SEXP R_igraph_transitivity_undirected(void *, void *); -extern SEXP R_igraph_tree(void *, void *, void *); -extern SEXP R_igraph_tree_game(void *, void *, void *); -extern SEXP R_igraph_triad_census(void *); -extern SEXP R_igraph_unfold_tree(void *, void *, void *); -extern SEXP R_igraph_union(void *, void *); -extern SEXP R_igraph_vcount(void *); -extern SEXP R_igraph_vertex_coloring_greedy(void *, void *); -extern SEXP R_igraph_vertex_connectivity(void *, void *); -extern SEXP R_igraph_vertex_disjoint_paths(void *, void *, void *); -extern SEXP R_igraph_vs_adj(void *, void *, void *, void *); -extern SEXP R_igraph_vs_nei(void *, void *, void *, void *); -extern SEXP R_igraph_walktrap_community(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_watts_strogatz_game(void *, void *, void *, void *, void *, void *); -extern SEXP R_igraph_weak_ref_key(void *); -extern SEXP R_igraph_weak_ref_run_finalizer(void *); -extern SEXP R_igraph_weak_ref_value(void *); -extern SEXP R_igraph_weighted_adjacency(void *, void *, void *, void *); -extern SEXP R_igraph_weighted_clique_number(void *, void *); -extern SEXP R_igraph_weighted_cliques(void *, void *, void *, void *, void *); -extern SEXP R_igraph_write_graph_dimacs(void *, void *, void *, void *, void *); -extern SEXP R_igraph_write_graph_dot(void *, void *); -extern SEXP R_igraph_write_graph_edgelist(void *, void *); -extern SEXP R_igraph_write_graph_gml(void *, void *, void *, void *); -extern SEXP R_igraph_write_graph_graphml(void *, void *, void *); -extern SEXP R_igraph_write_graph_leda(void *, void *, void *, void *); -extern SEXP R_igraph_write_graph_lgl(void *, void *, void *, void *, void *); -extern SEXP R_igraph_write_graph_ncol(void *, void *, void *, void *); -extern SEXP R_igraph_write_graph_pajek(void *, void *); -extern SEXP UUID_gen(void *); -extern SEXP make_lazy(void *, void *, void *); -extern SEXP make_lazy_dots(void *, void *); -extern SEXP promise_env_(void *); -extern SEXP promise_expr_(void *); +extern SEXP R_igraph_add_edges(SEXP, SEXP); +extern SEXP R_igraph_add_env(SEXP); +extern SEXP R_igraph_add_myid_to_env(SEXP); +extern SEXP R_igraph_add_version_to_env(SEXP); +extern SEXP R_igraph_add_vertices(SEXP, SEXP); +extern SEXP R_igraph_address(SEXP); +extern SEXP R_igraph_adhesion(SEXP, SEXP); +extern SEXP R_igraph_adjacency_spectral_embedding(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_adjacent_triangles(SEXP, SEXP); +extern SEXP R_igraph_adjacent_vertices(SEXP, SEXP, SEXP); +extern SEXP R_igraph_adjlist(SEXP, SEXP, SEXP); +extern SEXP R_igraph_all_minimal_st_separators(SEXP); +extern SEXP R_igraph_all_st_cuts(SEXP, SEXP, SEXP); +extern SEXP R_igraph_all_st_mincuts(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_are_connected(SEXP, SEXP, SEXP); +extern SEXP R_igraph_arpack(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_arpack_unpack_complex(SEXP, SEXP, SEXP); +extern SEXP R_igraph_articulation_points(SEXP); +extern SEXP R_igraph_assortativity(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_assortativity_degree(SEXP, SEXP); +extern SEXP R_igraph_assortativity_nominal(SEXP, SEXP, SEXP); +extern SEXP R_igraph_asymmetric_preference_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_atlas(SEXP); +extern SEXP R_igraph_authority_score(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_automorphism_group(SEXP, SEXP, SEXP); +extern SEXP R_igraph_automorphisms(SEXP, SEXP, SEXP); +extern SEXP R_igraph_average_local_efficiency(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_average_path_length_dijkstra(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_avg_nearest_neighbor_degree(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_barabasi_aging_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_barabasi_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_betweenness_cutoff(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_bfs(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_bibcoupling(SEXP, SEXP); +extern SEXP R_igraph_biconnected_components(SEXP); +extern SEXP R_igraph_bipartite_game_gnm(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_bipartite_game_gnp(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_bipartite_projection(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_bipartite_projection_size(SEXP, SEXP); +extern SEXP R_igraph_bridges(SEXP); +extern SEXP R_igraph_callaway_traits_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_canonical_permutation(SEXP, SEXP, SEXP); +extern SEXP R_igraph_centralization(SEXP, SEXP, SEXP); +extern SEXP R_igraph_centralization_betweenness(SEXP, SEXP, SEXP); +extern SEXP R_igraph_centralization_betweenness_tmax(SEXP, SEXP, SEXP); +extern SEXP R_igraph_centralization_closeness(SEXP, SEXP, SEXP); +extern SEXP R_igraph_centralization_closeness_tmax(SEXP, SEXP, SEXP); +extern SEXP R_igraph_centralization_degree(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_centralization_degree_tmax(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_centralization_eigenvector_centrality(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_centralization_eigenvector_centrality_tmax(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_cited_type_game(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_citing_cited_type_game(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_clique_number(SEXP); +extern SEXP R_igraph_clique_size_hist(SEXP, SEXP, SEXP); +extern SEXP R_igraph_cliques(SEXP, SEXP, SEXP); +extern SEXP R_igraph_closeness_cutoff(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_clusters(SEXP, SEXP); +extern SEXP R_igraph_cocitation(SEXP, SEXP); +extern SEXP R_igraph_cohesion(SEXP, SEXP); +extern SEXP R_igraph_cohesive_blocks(SEXP); +extern SEXP R_igraph_community_edge_betweenness(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_community_fastgreedy(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_community_fluid_communities(SEXP, SEXP); +extern SEXP R_igraph_community_infomap(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_community_label_propagation(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_community_leading_eigenvector(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_community_leiden(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_community_multilevel(SEXP, SEXP, SEXP); +extern SEXP R_igraph_community_optimal_modularity(SEXP, SEXP); +extern SEXP R_igraph_community_to_membership2(SEXP, SEXP, SEXP); +extern SEXP R_igraph_compare_communities(SEXP, SEXP, SEXP); +extern SEXP R_igraph_complementer(SEXP, SEXP); +extern SEXP R_igraph_compose(SEXP, SEXP, SEXP); +extern SEXP R_igraph_connect_neighborhood(SEXP, SEXP, SEXP); +extern SEXP R_igraph_constraint(SEXP, SEXP, SEXP); +extern SEXP R_igraph_contract_vertices(SEXP, SEXP, SEXP); +extern SEXP R_igraph_convex_hull(SEXP); +extern SEXP R_igraph_copy_env(SEXP); +extern SEXP R_igraph_copy_from(SEXP); +extern SEXP R_igraph_copy_to(SEXP); +extern SEXP R_igraph_coreness(SEXP, SEXP); +extern SEXP R_igraph_correlated_game(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_correlated_pair_game(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_count_isomorphisms_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_count_multiple(SEXP, SEXP); +extern SEXP R_igraph_count_subisomorphisms_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_create(SEXP, SEXP, SEXP); +extern SEXP R_igraph_create_bipartite(SEXP, SEXP, SEXP); +extern SEXP R_igraph_de_bruijn(SEXP, SEXP); +extern SEXP R_igraph_decompose(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_degree(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_degree_sequence_game(SEXP, SEXP, SEXP); +extern SEXP R_igraph_delete_edges(SEXP, SEXP); +extern SEXP R_igraph_delete_vertices(SEXP, SEXP); +extern SEXP R_igraph_density(SEXP, SEXP); +extern SEXP R_igraph_dfs(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_diameter(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_difference(SEXP, SEXP); +extern SEXP R_igraph_dim_select(SEXP); +extern SEXP R_igraph_disjoint_union(SEXP); +extern SEXP R_igraph_diversity(SEXP, SEXP, SEXP); +extern SEXP R_igraph_dominator_tree(SEXP, SEXP, SEXP); +extern SEXP R_igraph_dot_product_game(SEXP, SEXP); +extern SEXP R_igraph_dyad_census(SEXP); +extern SEXP R_igraph_eccentricity(SEXP, SEXP, SEXP); +extern SEXP R_igraph_ecount(SEXP); +extern SEXP R_igraph_edge_betweenness_cutoff(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_edge_connectivity(SEXP, SEXP); +extern SEXP R_igraph_edge_disjoint_paths(SEXP, SEXP, SEXP); +extern SEXP R_igraph_edges(SEXP, SEXP); +extern SEXP R_igraph_eigen_adjacency(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_eigenvector_centrality(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_empty(SEXP, SEXP); +extern SEXP R_igraph_erdos_renyi_game(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_es_adj(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_es_pairs(SEXP, SEXP, SEXP); +extern SEXP R_igraph_es_path(SEXP, SEXP, SEXP); +extern SEXP R_igraph_establishment_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_eulerian_cycle(SEXP); +extern SEXP R_igraph_eulerian_path(SEXP); +extern SEXP R_igraph_extended_chordal_ring(SEXP, SEXP, SEXP); +extern SEXP R_igraph_famous(SEXP); +extern SEXP R_igraph_farthest_points(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_feedback_arc_set(SEXP, SEXP, SEXP); +extern SEXP R_igraph_finalizer(); +extern SEXP R_igraph_forest_fire_game(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_from_prufer(SEXP); +extern SEXP R_igraph_full(SEXP, SEXP, SEXP); +extern SEXP R_igraph_full_bipartite(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_full_citation(SEXP, SEXP); +extern SEXP R_igraph_get_adjacency(SEXP, SEXP, SEXP); +extern SEXP R_igraph_get_adjedgelist(SEXP, SEXP, SEXP); +extern SEXP R_igraph_get_adjlist(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_get_all_shortest_paths(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_get_all_shortest_paths_dijkstra(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_get_all_simple_paths(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_get_all_simple_paths_pp(SEXP); +extern SEXP R_igraph_get_attr_mode(SEXP, SEXP); +extern SEXP R_igraph_get_diameter(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_get_edge(SEXP, SEXP); +extern SEXP R_igraph_get_edgelist(SEXP, SEXP); +extern SEXP R_igraph_get_eids(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_get_graph_id(SEXP); +extern SEXP R_igraph_get_incidence(SEXP, SEXP); +extern SEXP R_igraph_get_isomorphisms_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_get_shortest_paths(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_get_stochastic(SEXP, SEXP); +extern SEXP R_igraph_get_stochastic_sparsemat(SEXP, SEXP); +extern SEXP R_igraph_get_subisomorphisms_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_getsphere(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_girth(SEXP, SEXP); +extern SEXP R_igraph_global_efficiency(SEXP, SEXP, SEXP); +extern SEXP R_igraph_graph_adjacency(SEXP, SEXP); +extern SEXP R_igraph_graph_version(SEXP); +extern SEXP R_igraph_graphlets(SEXP, SEXP, SEXP); +extern SEXP R_igraph_graphlets_candidate_basis(SEXP, SEXP); +extern SEXP R_igraph_graphlets_project(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_grg_game(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_growing_random_game(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_harmonic_centrality_cutoff(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_has_loop(SEXP); +extern SEXP R_igraph_has_multiple(SEXP); +extern SEXP R_igraph_hrg_consensus(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_hrg_create(SEXP, SEXP); +extern SEXP R_igraph_hrg_dendrogram(SEXP); +extern SEXP R_igraph_hrg_fit(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_hrg_game(SEXP); +extern SEXP R_igraph_hrg_predict(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_hsbm_game(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_hsbm_list_game(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_hub_score(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_i_levc_arp(SEXP, SEXP, SEXP); +extern SEXP R_igraph_identical_graphs(SEXP, SEXP, SEXP); +extern SEXP R_igraph_incidence(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_incident(SEXP, SEXP, SEXP); +extern SEXP R_igraph_incident_edges(SEXP, SEXP, SEXP); +extern SEXP R_igraph_independence_number(SEXP); +extern SEXP R_igraph_independent_vertex_sets(SEXP, SEXP, SEXP); +extern SEXP R_igraph_induced_subgraph(SEXP, SEXP, SEXP); +extern SEXP R_igraph_intersection(SEXP, SEXP); +extern SEXP R_igraph_is_bipartite(SEXP); +extern SEXP R_igraph_is_chordal(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_is_connected(SEXP, SEXP); +extern SEXP R_igraph_is_dag(SEXP); +extern SEXP R_igraph_is_directed(SEXP); +extern SEXP R_igraph_is_eulerian(SEXP); +extern SEXP R_igraph_is_graphical(SEXP, SEXP, SEXP); +extern SEXP R_igraph_is_loop(SEXP, SEXP); +extern SEXP R_igraph_is_matching(SEXP, SEXP, SEXP); +extern SEXP R_igraph_is_maximal_matching(SEXP, SEXP, SEXP); +extern SEXP R_igraph_is_minimal_separator(SEXP, SEXP); +extern SEXP R_igraph_is_multiple(SEXP, SEXP); +extern SEXP R_igraph_is_mutual(SEXP, SEXP); +extern SEXP R_igraph_is_separator(SEXP, SEXP); +extern SEXP R_igraph_is_simple(SEXP); +extern SEXP R_igraph_is_tree(SEXP, SEXP); +extern SEXP R_igraph_isoclass(SEXP); +extern SEXP R_igraph_isoclass_create(SEXP, SEXP, SEXP); +extern SEXP R_igraph_isoclass_subgraph(SEXP, SEXP); +extern SEXP R_igraph_isomorphic(SEXP, SEXP); +extern SEXP R_igraph_isomorphic_34(SEXP, SEXP); +extern SEXP R_igraph_isomorphic_bliss(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_isomorphic_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_k_regular_game(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_kautz(SEXP, SEXP); +extern SEXP R_igraph_laplacian(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_laplacian_spectral_embedding(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_largest_cliques(SEXP); +extern SEXP R_igraph_largest_independent_vertex_sets(SEXP); +extern SEXP R_igraph_largest_weighted_cliques(SEXP, SEXP); +extern SEXP R_igraph_lastcit_game(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_lattice(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_bipartite(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_circle(SEXP, SEXP); +extern SEXP R_igraph_layout_davidson_harel(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_drl(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_drl_3d(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_fruchterman_reingold(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_fruchterman_reingold_3d(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_gem(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_graphopt(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_grid(SEXP, SEXP); +extern SEXP R_igraph_layout_grid_3d(SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_kamada_kawai(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_kamada_kawai_3d(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_lgl(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_mds(SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_merge_dla(SEXP, SEXP); +extern SEXP R_igraph_layout_random(SEXP); +extern SEXP R_igraph_layout_random_3d(SEXP); +extern SEXP R_igraph_layout_reingold_tilford(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_sphere(SEXP); +extern SEXP R_igraph_layout_star(SEXP, SEXP, SEXP); +extern SEXP R_igraph_layout_sugiyama(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_lcf_vector(SEXP, SEXP, SEXP); +extern SEXP R_igraph_linegraph(SEXP); +extern SEXP R_igraph_list_triangles(SEXP); +extern SEXP R_igraph_local_efficiency(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_local_scan_0(SEXP, SEXP, SEXP); +extern SEXP R_igraph_local_scan_0_them(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_local_scan_1_ecount(SEXP, SEXP, SEXP); +extern SEXP R_igraph_local_scan_1_ecount_them(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_local_scan_k_ecount(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_local_scan_k_ecount_them(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_local_scan_neighborhood_ecount(SEXP, SEXP, SEXP); +extern SEXP R_igraph_make_weak_ref(SEXP, SEXP, SEXP); +extern SEXP R_igraph_maxflow(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_maximal_cliques(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_maximal_cliques_count(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_maximal_cliques_file(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_maximal_cliques_hist(SEXP, SEXP, SEXP); +extern SEXP R_igraph_maximal_independent_vertex_sets(SEXP); +extern SEXP R_igraph_maximum_bipartite_matching(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_maximum_cardinality_search(SEXP); +extern SEXP R_igraph_mincut(SEXP, SEXP); +extern SEXP R_igraph_mincut_value(SEXP, SEXP); +extern SEXP R_igraph_minimum_size_separators(SEXP); +extern SEXP R_igraph_minimum_spanning_tree_prim(SEXP, SEXP); +extern SEXP R_igraph_minimum_spanning_tree_unweighted(SEXP); +extern SEXP R_igraph_modularity(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_modularity_matrix(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_motifs_randesu(SEXP, SEXP, SEXP); +extern SEXP R_igraph_motifs_randesu_estimate(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_motifs_randesu_no(SEXP, SEXP, SEXP); +extern SEXP R_igraph_mybracket2(SEXP, SEXP, SEXP); +extern SEXP R_igraph_mybracket2_copy(SEXP, SEXP, SEXP); +extern SEXP R_igraph_mybracket2_names(SEXP, SEXP, SEXP); +extern SEXP R_igraph_mybracket2_set(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_mybracket3_set(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_neighborhood(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_neighborhood_graphs(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_neighborhood_size(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_neighbors(SEXP, SEXP, SEXP); +extern SEXP R_igraph_no_clusters(SEXP, SEXP); +extern SEXP R_igraph_path_length_hist(SEXP, SEXP); +extern SEXP R_igraph_permute_vertices(SEXP, SEXP); +extern SEXP R_igraph_personalized_pagerank(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_power_law_fit(SEXP, SEXP, SEXP); +extern SEXP R_igraph_preference_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_radius(SEXP, SEXP); +extern SEXP R_igraph_random_edge_walk(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_random_sample(SEXP, SEXP, SEXP); +extern SEXP R_igraph_random_spanning_tree(SEXP, SEXP); +extern SEXP R_igraph_random_walk(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_read_graph_dimacs(SEXP, SEXP); +extern SEXP R_igraph_read_graph_dl(SEXP, SEXP); +extern SEXP R_igraph_read_graph_edgelist(SEXP, SEXP, SEXP); +extern SEXP R_igraph_read_graph_gml(SEXP); +extern SEXP R_igraph_read_graph_graphdb(SEXP, SEXP); +extern SEXP R_igraph_read_graph_graphml(SEXP, SEXP); +extern SEXP R_igraph_read_graph_lgl(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_read_graph_ncol(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_read_graph_pajek(SEXP); +extern SEXP R_igraph_realize_degree_sequence(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_recent_degree_aging_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_reciprocity(SEXP, SEXP, SEXP); +extern SEXP R_igraph_reverse_edges(SEXP, SEXP); +extern SEXP R_igraph_rewire(SEXP, SEXP, SEXP); +extern SEXP R_igraph_rewire_directed_edges(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_rewire_edges(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_ring(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_running_mean(SEXP, SEXP); +extern SEXP R_igraph_sample_dirichlet(SEXP, SEXP); +extern SEXP R_igraph_sample_sphere_surface(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_sample_sphere_volume(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_sbm_game(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_scg_norm_eps(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_set_verbose(SEXP); +extern SEXP R_igraph_shortest_paths(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_similarity_dice(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_similarity_inverse_log_weighted(SEXP, SEXP, SEXP); +extern SEXP R_igraph_similarity_jaccard(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_simple_interconnected_islands_game(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_simplify(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_simplify_and_colorize(SEXP); +extern SEXP R_igraph_sir(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_solve_lsap(SEXP, SEXP); +extern SEXP R_igraph_spinglass_community(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_spinglass_my_community(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_split_join_distance(SEXP, SEXP); +extern SEXP R_igraph_st_edge_connectivity(SEXP, SEXP, SEXP); +extern SEXP R_igraph_st_mincut(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_st_mincut_value(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_st_vertex_connectivity(SEXP, SEXP, SEXP); +extern SEXP R_igraph_star(SEXP, SEXP, SEXP); +extern SEXP R_igraph_static_fitness_game(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_static_power_law_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_strength(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_subcomponent(SEXP, SEXP, SEXP); +extern SEXP R_igraph_subgraph_edges(SEXP, SEXP, SEXP); +extern SEXP R_igraph_subisomorphic_lad(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_subisomorphic_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_to_directed(SEXP, SEXP); +extern SEXP R_igraph_to_prufer(SEXP); +extern SEXP R_igraph_to_undirected(SEXP, SEXP, SEXP); +extern SEXP R_igraph_topological_sorting(SEXP, SEXP); +extern SEXP R_igraph_transitivity_avglocal_undirected(SEXP, SEXP); +extern SEXP R_igraph_transitivity_barrat(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_transitivity_local_undirected(SEXP, SEXP, SEXP); +extern SEXP R_igraph_transitivity_local_undirected_all(SEXP, SEXP); +extern SEXP R_igraph_transitivity_undirected(SEXP, SEXP); +extern SEXP R_igraph_tree(SEXP, SEXP, SEXP); +extern SEXP R_igraph_tree_game(SEXP, SEXP, SEXP); +extern SEXP R_igraph_triad_census(SEXP); +extern SEXP R_igraph_unfold_tree(SEXP, SEXP, SEXP); +extern SEXP R_igraph_union(SEXP, SEXP); +extern SEXP R_igraph_vcount(SEXP); +extern SEXP R_igraph_vertex_coloring_greedy(SEXP, SEXP); +extern SEXP R_igraph_vertex_connectivity(SEXP, SEXP); +extern SEXP R_igraph_vertex_disjoint_paths(SEXP, SEXP, SEXP); +extern SEXP R_igraph_vs_adj(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_vs_nei(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_walktrap_community(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_watts_strogatz_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_weak_ref_key(SEXP); +extern SEXP R_igraph_weak_ref_run_finalizer(SEXP); +extern SEXP R_igraph_weak_ref_value(SEXP); +extern SEXP R_igraph_weighted_adjacency(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_weighted_clique_number(SEXP, SEXP); +extern SEXP R_igraph_weighted_cliques(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_write_graph_dimacs(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_write_graph_dot(SEXP, SEXP); +extern SEXP R_igraph_write_graph_edgelist(SEXP, SEXP); +extern SEXP R_igraph_write_graph_gml(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_write_graph_graphml(SEXP, SEXP, SEXP); +extern SEXP R_igraph_write_graph_leda(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_write_graph_lgl(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_write_graph_ncol(SEXP, SEXP, SEXP, SEXP); +extern SEXP R_igraph_write_graph_pajek(SEXP, SEXP); +extern SEXP UUID_gen(SEXP); +extern SEXP make_lazy(SEXP, SEXP, SEXP); +extern SEXP make_lazy_dots(SEXP, SEXP); +extern SEXP promise_env_(SEXP); +extern SEXP promise_expr_(SEXP); static const R_CallMethodDef CallEntries[] = { {"R_igraph_add_edges", (DL_FUNC) &R_igraph_add_edges, 2}, diff --git a/tests/testthat/_snaps/graph.adjacency.md b/tests/testthat/_snaps/graph.adjacency.md index 301f8d84952..c46c4146288 100644 --- a/tests/testthat/_snaps/graph.adjacency.md +++ b/tests/testthat/_snaps/graph.adjacency.md @@ -21,7 +21,7 @@ graph_from_adjacency_matrix(m, mode = "undirected") Condition Warning: - The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be symmetric with mode = "undirected" as of igraph 1.5.2. + The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be symmetric with mode = "undirected" as of igraph 1.6.0. i Use mode = "max" to achieve the original behavior. Output IGRAPH U--- 2 2 -- @@ -53,7 +53,7 @@ graph_from_adjacency_matrix(m2, mode = "undirected") Condition Warning: - The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be symmetric with mode = "undirected" as of igraph 1.5.2. + The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be symmetric with mode = "undirected" as of igraph 1.6.0. i Use mode = "max" to achieve the original behavior. Output IGRAPH U--- 2 0 -- @@ -62,7 +62,7 @@ graph_from_adjacency_matrix(1) Condition Warning: - The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be a matrix as of igraph 1.5.2. + The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be a matrix as of igraph 1.6.0. Output IGRAPH D--- 1 1 -- + edge: @@ -71,7 +71,7 @@ graph_from_adjacency_matrix(1, mode = "undirected") Condition Warning: - The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be a matrix as of igraph 1.5.2. + The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be a matrix as of igraph 1.6.0. Output IGRAPH U--- 1 1 -- + edge: @@ -101,7 +101,7 @@ graph_from_adjacency_matrix(m, mode = "undirected") Condition Warning: - The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be symmetric with mode = "undirected" as of igraph 1.5.2. + The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be symmetric with mode = "undirected" as of igraph 1.6.0. i Use mode = "max" to achieve the original behavior. Output IGRAPH U--- 2 2 -- @@ -133,7 +133,7 @@ graph_from_adjacency_matrix(m2, mode = "undirected") Condition Warning: - The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be symmetric with mode = "undirected" as of igraph 1.5.2. + The `adjmatrix` argument of `graph_from_adjacency_matrix()` must be symmetric with mode = "undirected" as of igraph 1.6.0. i Use mode = "max" to achieve the original behavior. Output IGRAPH U--- 2 0 -- diff --git a/tests/testthat/test-bipartite.projection.R b/tests/testthat/test-bipartite.projection.R index 9ec2a8abcc7..27b039aac3c 100644 --- a/tests/testthat/test-bipartite.projection.R +++ b/tests/testthat/test-bipartite.projection.R @@ -12,7 +12,7 @@ test_that("bipartite_projection works", { colnames(M) <- c("Party", "Skiing", "Badminton") M[] <- sample(0:1, length(M), replace = TRUE) M - g2 <- graph_from_incidence_matrix(M) + g2 <- graph_from_biadjacency_matrix(M) expect_that(as.matrix(g2[1:5, 6:8]), equals(M)) expect_that(as.matrix(g2[1:5, 1:5]), is_equivalent_to(matrix(0, 5, 5))) expect_that(as.matrix(g2[6:8, 6:8]), is_equivalent_to(matrix(0, 3, 3))) diff --git a/tests/testthat/test-get.incidence.R b/tests/testthat/test-get.incidence.R index 36fb800950d..b4f820dfdee 100644 --- a/tests/testthat/test-get.incidence.R +++ b/tests/testthat/test-get.incidence.R @@ -1,15 +1,15 @@ -test_that("as_incidence_matrix works", { +test_that("as_biadjacency_matrix works", { ## Dense I <- matrix(sample(0:1, 35, replace = TRUE, prob = c(3, 1)), ncol = 5) - g <- graph_from_incidence_matrix(I) - I2 <- as_incidence_matrix(g) + g <- graph_from_biadjacency_matrix(I) + I2 <- as_biadjacency_matrix(g) expect_that(I, is_equivalent_to(I2)) expect_that(rownames(I2), equals(as.character(1:7))) expect_that(colnames(I2), equals(as.character(8:12))) ## Sparse - I3 <- as_incidence_matrix(g, sparse = TRUE) + I3 <- as_biadjacency_matrix(g, sparse = TRUE) expect_that(as.matrix(I3), is_equivalent_to(I)) expect_that(rownames(I3), equals(as.character(1:7))) expect_that(colnames(I3), equals(as.character(8:12))) diff --git a/tests/testthat/test-graph.bipartite.R b/tests/testthat/test-graph.bipartite.R index 19b60b76f19..8b2c09d9b54 100644 --- a/tests/testthat/test-graph.bipartite.R +++ b/tests/testthat/test-graph.bipartite.R @@ -1,6 +1,6 @@ test_that("make_bipartite_graph works", { I <- matrix(sample(0:1, 35, replace = TRUE, prob = c(3, 1)), ncol = 5) - g <- graph_from_incidence_matrix(I) + g <- graph_from_biadjacency_matrix(I) edges <- unlist(sapply(seq_len(nrow(I)), function(x) { w <- which(I[x, ] != 0) + nrow(I) @@ -11,7 +11,7 @@ test_that("make_bipartite_graph works", { } })) g2 <- make_bipartite_graph(seq_len(nrow(I) + ncol(I)) > nrow(I), edges) - I2 <- as_incidence_matrix(g2) + I2 <- as_biadjacency_matrix(g2) expect_that(I2, is_equivalent_to(I)) }) diff --git a/tests/testthat/test-is.bipartite.R b/tests/testthat/test-is.bipartite.R index 47679e884ed..0d0015a4fc3 100644 --- a/tests/testthat/test-is.bipartite.R +++ b/tests/testthat/test-is.bipartite.R @@ -1,11 +1,11 @@ test_that("is_bipartite works", { I <- matrix(sample(0:1, 35, replace = TRUE, prob = c(3, 1)), ncol = 5) - g <- graph_from_incidence_matrix(I) + g <- graph_from_biadjacency_matrix(I) expect_true(bipartite_mapping(g)$res) set.seed(42) I <- matrix(sample(0:1, 35, replace = TRUE, prob = c(3, 1)), ncol = 5) - g <- graph_from_incidence_matrix(I) + g <- graph_from_biadjacency_matrix(I) expect_that( bipartite_mapping(g), equals(list(res = TRUE, type = c(rep(FALSE, 7), rep(TRUE, 5)))) From e5537db6696608d0fb5a9193484d4e5550a71014 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Tue, 21 Nov 2023 06:02:53 +0100 Subject: [PATCH 2/2] Restore cpp11.cpp --- src/cpp11.cpp | 750 +++++++++++++++++++++++++------------------------- 1 file changed, 375 insertions(+), 375 deletions(-) diff --git a/src/cpp11.cpp b/src/cpp11.cpp index 2457d779ddb..3919e5309df 100644 --- a/src/cpp11.cpp +++ b/src/cpp11.cpp @@ -15,381 +15,381 @@ extern "C" SEXP _igraph_igraph_hcass2(SEXP n, SEXP ia, SEXP ib) { extern "C" { /* .Call calls */ -extern SEXP R_igraph_add_edges(SEXP, SEXP); -extern SEXP R_igraph_add_env(SEXP); -extern SEXP R_igraph_add_myid_to_env(SEXP); -extern SEXP R_igraph_add_version_to_env(SEXP); -extern SEXP R_igraph_add_vertices(SEXP, SEXP); -extern SEXP R_igraph_address(SEXP); -extern SEXP R_igraph_adhesion(SEXP, SEXP); -extern SEXP R_igraph_adjacency_spectral_embedding(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_adjacent_triangles(SEXP, SEXP); -extern SEXP R_igraph_adjacent_vertices(SEXP, SEXP, SEXP); -extern SEXP R_igraph_adjlist(SEXP, SEXP, SEXP); -extern SEXP R_igraph_all_minimal_st_separators(SEXP); -extern SEXP R_igraph_all_st_cuts(SEXP, SEXP, SEXP); -extern SEXP R_igraph_all_st_mincuts(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_are_connected(SEXP, SEXP, SEXP); -extern SEXP R_igraph_arpack(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_arpack_unpack_complex(SEXP, SEXP, SEXP); -extern SEXP R_igraph_articulation_points(SEXP); -extern SEXP R_igraph_assortativity(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_assortativity_degree(SEXP, SEXP); -extern SEXP R_igraph_assortativity_nominal(SEXP, SEXP, SEXP); -extern SEXP R_igraph_asymmetric_preference_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_atlas(SEXP); -extern SEXP R_igraph_authority_score(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_automorphism_group(SEXP, SEXP, SEXP); -extern SEXP R_igraph_automorphisms(SEXP, SEXP, SEXP); -extern SEXP R_igraph_average_local_efficiency(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_average_path_length_dijkstra(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_avg_nearest_neighbor_degree(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_barabasi_aging_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_barabasi_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_betweenness_cutoff(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_bfs(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_bibcoupling(SEXP, SEXP); -extern SEXP R_igraph_biconnected_components(SEXP); -extern SEXP R_igraph_bipartite_game_gnm(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_bipartite_game_gnp(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_bipartite_projection(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_bipartite_projection_size(SEXP, SEXP); -extern SEXP R_igraph_bridges(SEXP); -extern SEXP R_igraph_callaway_traits_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_canonical_permutation(SEXP, SEXP, SEXP); -extern SEXP R_igraph_centralization(SEXP, SEXP, SEXP); -extern SEXP R_igraph_centralization_betweenness(SEXP, SEXP, SEXP); -extern SEXP R_igraph_centralization_betweenness_tmax(SEXP, SEXP, SEXP); -extern SEXP R_igraph_centralization_closeness(SEXP, SEXP, SEXP); -extern SEXP R_igraph_centralization_closeness_tmax(SEXP, SEXP, SEXP); -extern SEXP R_igraph_centralization_degree(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_centralization_degree_tmax(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_centralization_eigenvector_centrality(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_centralization_eigenvector_centrality_tmax(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_cited_type_game(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_citing_cited_type_game(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_clique_number(SEXP); -extern SEXP R_igraph_clique_size_hist(SEXP, SEXP, SEXP); -extern SEXP R_igraph_cliques(SEXP, SEXP, SEXP); -extern SEXP R_igraph_closeness_cutoff(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_clusters(SEXP, SEXP); -extern SEXP R_igraph_cocitation(SEXP, SEXP); -extern SEXP R_igraph_cohesion(SEXP, SEXP); -extern SEXP R_igraph_cohesive_blocks(SEXP); -extern SEXP R_igraph_community_edge_betweenness(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_community_fastgreedy(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_community_fluid_communities(SEXP, SEXP); -extern SEXP R_igraph_community_infomap(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_community_label_propagation(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_community_leading_eigenvector(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_community_leiden(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_community_multilevel(SEXP, SEXP, SEXP); -extern SEXP R_igraph_community_optimal_modularity(SEXP, SEXP); -extern SEXP R_igraph_community_to_membership2(SEXP, SEXP, SEXP); -extern SEXP R_igraph_compare_communities(SEXP, SEXP, SEXP); -extern SEXP R_igraph_complementer(SEXP, SEXP); -extern SEXP R_igraph_compose(SEXP, SEXP, SEXP); -extern SEXP R_igraph_connect_neighborhood(SEXP, SEXP, SEXP); -extern SEXP R_igraph_constraint(SEXP, SEXP, SEXP); -extern SEXP R_igraph_contract_vertices(SEXP, SEXP, SEXP); -extern SEXP R_igraph_convex_hull(SEXP); -extern SEXP R_igraph_copy_env(SEXP); -extern SEXP R_igraph_copy_from(SEXP); -extern SEXP R_igraph_copy_to(SEXP); -extern SEXP R_igraph_coreness(SEXP, SEXP); -extern SEXP R_igraph_correlated_game(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_correlated_pair_game(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_count_isomorphisms_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_count_multiple(SEXP, SEXP); -extern SEXP R_igraph_count_subisomorphisms_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_create(SEXP, SEXP, SEXP); -extern SEXP R_igraph_create_bipartite(SEXP, SEXP, SEXP); -extern SEXP R_igraph_de_bruijn(SEXP, SEXP); -extern SEXP R_igraph_decompose(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_degree(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_degree_sequence_game(SEXP, SEXP, SEXP); -extern SEXP R_igraph_delete_edges(SEXP, SEXP); -extern SEXP R_igraph_delete_vertices(SEXP, SEXP); -extern SEXP R_igraph_density(SEXP, SEXP); -extern SEXP R_igraph_dfs(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_diameter(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_difference(SEXP, SEXP); -extern SEXP R_igraph_dim_select(SEXP); -extern SEXP R_igraph_disjoint_union(SEXP); -extern SEXP R_igraph_diversity(SEXP, SEXP, SEXP); -extern SEXP R_igraph_dominator_tree(SEXP, SEXP, SEXP); -extern SEXP R_igraph_dot_product_game(SEXP, SEXP); -extern SEXP R_igraph_dyad_census(SEXP); -extern SEXP R_igraph_eccentricity(SEXP, SEXP, SEXP); -extern SEXP R_igraph_ecount(SEXP); -extern SEXP R_igraph_edge_betweenness_cutoff(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_edge_connectivity(SEXP, SEXP); -extern SEXP R_igraph_edge_disjoint_paths(SEXP, SEXP, SEXP); -extern SEXP R_igraph_edges(SEXP, SEXP); -extern SEXP R_igraph_eigen_adjacency(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_eigenvector_centrality(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_empty(SEXP, SEXP); -extern SEXP R_igraph_erdos_renyi_game(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_es_adj(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_es_pairs(SEXP, SEXP, SEXP); -extern SEXP R_igraph_es_path(SEXP, SEXP, SEXP); -extern SEXP R_igraph_establishment_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_eulerian_cycle(SEXP); -extern SEXP R_igraph_eulerian_path(SEXP); -extern SEXP R_igraph_extended_chordal_ring(SEXP, SEXP, SEXP); -extern SEXP R_igraph_famous(SEXP); -extern SEXP R_igraph_farthest_points(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_feedback_arc_set(SEXP, SEXP, SEXP); -extern SEXP R_igraph_finalizer(); -extern SEXP R_igraph_forest_fire_game(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_from_prufer(SEXP); -extern SEXP R_igraph_full(SEXP, SEXP, SEXP); -extern SEXP R_igraph_full_bipartite(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_full_citation(SEXP, SEXP); -extern SEXP R_igraph_get_adjacency(SEXP, SEXP, SEXP); -extern SEXP R_igraph_get_adjedgelist(SEXP, SEXP, SEXP); -extern SEXP R_igraph_get_adjlist(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_get_all_shortest_paths(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_get_all_shortest_paths_dijkstra(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_get_all_simple_paths(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_get_all_simple_paths_pp(SEXP); -extern SEXP R_igraph_get_attr_mode(SEXP, SEXP); -extern SEXP R_igraph_get_diameter(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_get_edge(SEXP, SEXP); -extern SEXP R_igraph_get_edgelist(SEXP, SEXP); -extern SEXP R_igraph_get_eids(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_get_graph_id(SEXP); -extern SEXP R_igraph_get_incidence(SEXP, SEXP); -extern SEXP R_igraph_get_isomorphisms_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_get_shortest_paths(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_get_stochastic(SEXP, SEXP); -extern SEXP R_igraph_get_stochastic_sparsemat(SEXP, SEXP); -extern SEXP R_igraph_get_subisomorphisms_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_getsphere(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_girth(SEXP, SEXP); -extern SEXP R_igraph_global_efficiency(SEXP, SEXP, SEXP); -extern SEXP R_igraph_graph_adjacency(SEXP, SEXP); -extern SEXP R_igraph_graph_version(SEXP); -extern SEXP R_igraph_graphlets(SEXP, SEXP, SEXP); -extern SEXP R_igraph_graphlets_candidate_basis(SEXP, SEXP); -extern SEXP R_igraph_graphlets_project(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_grg_game(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_growing_random_game(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_harmonic_centrality_cutoff(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_has_loop(SEXP); -extern SEXP R_igraph_has_multiple(SEXP); -extern SEXP R_igraph_hrg_consensus(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_hrg_create(SEXP, SEXP); -extern SEXP R_igraph_hrg_dendrogram(SEXP); -extern SEXP R_igraph_hrg_fit(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_hrg_game(SEXP); -extern SEXP R_igraph_hrg_predict(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_hsbm_game(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_hsbm_list_game(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_hub_score(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_i_levc_arp(SEXP, SEXP, SEXP); -extern SEXP R_igraph_identical_graphs(SEXP, SEXP, SEXP); -extern SEXP R_igraph_incidence(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_incident(SEXP, SEXP, SEXP); -extern SEXP R_igraph_incident_edges(SEXP, SEXP, SEXP); -extern SEXP R_igraph_independence_number(SEXP); -extern SEXP R_igraph_independent_vertex_sets(SEXP, SEXP, SEXP); -extern SEXP R_igraph_induced_subgraph(SEXP, SEXP, SEXP); -extern SEXP R_igraph_intersection(SEXP, SEXP); -extern SEXP R_igraph_is_bipartite(SEXP); -extern SEXP R_igraph_is_chordal(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_is_connected(SEXP, SEXP); -extern SEXP R_igraph_is_dag(SEXP); -extern SEXP R_igraph_is_directed(SEXP); -extern SEXP R_igraph_is_eulerian(SEXP); -extern SEXP R_igraph_is_graphical(SEXP, SEXP, SEXP); -extern SEXP R_igraph_is_loop(SEXP, SEXP); -extern SEXP R_igraph_is_matching(SEXP, SEXP, SEXP); -extern SEXP R_igraph_is_maximal_matching(SEXP, SEXP, SEXP); -extern SEXP R_igraph_is_minimal_separator(SEXP, SEXP); -extern SEXP R_igraph_is_multiple(SEXP, SEXP); -extern SEXP R_igraph_is_mutual(SEXP, SEXP); -extern SEXP R_igraph_is_separator(SEXP, SEXP); -extern SEXP R_igraph_is_simple(SEXP); -extern SEXP R_igraph_is_tree(SEXP, SEXP); -extern SEXP R_igraph_isoclass(SEXP); -extern SEXP R_igraph_isoclass_create(SEXP, SEXP, SEXP); -extern SEXP R_igraph_isoclass_subgraph(SEXP, SEXP); -extern SEXP R_igraph_isomorphic(SEXP, SEXP); -extern SEXP R_igraph_isomorphic_34(SEXP, SEXP); -extern SEXP R_igraph_isomorphic_bliss(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_isomorphic_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_k_regular_game(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_kautz(SEXP, SEXP); -extern SEXP R_igraph_laplacian(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_laplacian_spectral_embedding(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_largest_cliques(SEXP); -extern SEXP R_igraph_largest_independent_vertex_sets(SEXP); -extern SEXP R_igraph_largest_weighted_cliques(SEXP, SEXP); -extern SEXP R_igraph_lastcit_game(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_lattice(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_bipartite(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_circle(SEXP, SEXP); -extern SEXP R_igraph_layout_davidson_harel(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_drl(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_drl_3d(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_fruchterman_reingold(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_fruchterman_reingold_3d(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_gem(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_graphopt(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_grid(SEXP, SEXP); -extern SEXP R_igraph_layout_grid_3d(SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_kamada_kawai(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_kamada_kawai_3d(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_lgl(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_mds(SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_merge_dla(SEXP, SEXP); -extern SEXP R_igraph_layout_random(SEXP); -extern SEXP R_igraph_layout_random_3d(SEXP); -extern SEXP R_igraph_layout_reingold_tilford(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_sphere(SEXP); -extern SEXP R_igraph_layout_star(SEXP, SEXP, SEXP); -extern SEXP R_igraph_layout_sugiyama(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_lcf_vector(SEXP, SEXP, SEXP); -extern SEXP R_igraph_linegraph(SEXP); -extern SEXP R_igraph_list_triangles(SEXP); -extern SEXP R_igraph_local_efficiency(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_local_scan_0(SEXP, SEXP, SEXP); -extern SEXP R_igraph_local_scan_0_them(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_local_scan_1_ecount(SEXP, SEXP, SEXP); -extern SEXP R_igraph_local_scan_1_ecount_them(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_local_scan_k_ecount(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_local_scan_k_ecount_them(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_local_scan_neighborhood_ecount(SEXP, SEXP, SEXP); -extern SEXP R_igraph_make_weak_ref(SEXP, SEXP, SEXP); -extern SEXP R_igraph_maxflow(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_maximal_cliques(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_maximal_cliques_count(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_maximal_cliques_file(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_maximal_cliques_hist(SEXP, SEXP, SEXP); -extern SEXP R_igraph_maximal_independent_vertex_sets(SEXP); -extern SEXP R_igraph_maximum_bipartite_matching(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_maximum_cardinality_search(SEXP); -extern SEXP R_igraph_mincut(SEXP, SEXP); -extern SEXP R_igraph_mincut_value(SEXP, SEXP); -extern SEXP R_igraph_minimum_size_separators(SEXP); -extern SEXP R_igraph_minimum_spanning_tree_prim(SEXP, SEXP); -extern SEXP R_igraph_minimum_spanning_tree_unweighted(SEXP); -extern SEXP R_igraph_modularity(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_modularity_matrix(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_motifs_randesu(SEXP, SEXP, SEXP); -extern SEXP R_igraph_motifs_randesu_estimate(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_motifs_randesu_no(SEXP, SEXP, SEXP); -extern SEXP R_igraph_mybracket2(SEXP, SEXP, SEXP); -extern SEXP R_igraph_mybracket2_copy(SEXP, SEXP, SEXP); -extern SEXP R_igraph_mybracket2_names(SEXP, SEXP, SEXP); -extern SEXP R_igraph_mybracket2_set(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_mybracket3_set(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_neighborhood(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_neighborhood_graphs(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_neighborhood_size(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_neighbors(SEXP, SEXP, SEXP); -extern SEXP R_igraph_no_clusters(SEXP, SEXP); -extern SEXP R_igraph_path_length_hist(SEXP, SEXP); -extern SEXP R_igraph_permute_vertices(SEXP, SEXP); -extern SEXP R_igraph_personalized_pagerank(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_power_law_fit(SEXP, SEXP, SEXP); -extern SEXP R_igraph_preference_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_radius(SEXP, SEXP); -extern SEXP R_igraph_random_edge_walk(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_random_sample(SEXP, SEXP, SEXP); -extern SEXP R_igraph_random_spanning_tree(SEXP, SEXP); -extern SEXP R_igraph_random_walk(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_read_graph_dimacs(SEXP, SEXP); -extern SEXP R_igraph_read_graph_dl(SEXP, SEXP); -extern SEXP R_igraph_read_graph_edgelist(SEXP, SEXP, SEXP); -extern SEXP R_igraph_read_graph_gml(SEXP); -extern SEXP R_igraph_read_graph_graphdb(SEXP, SEXP); -extern SEXP R_igraph_read_graph_graphml(SEXP, SEXP); -extern SEXP R_igraph_read_graph_lgl(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_read_graph_ncol(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_read_graph_pajek(SEXP); -extern SEXP R_igraph_realize_degree_sequence(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_recent_degree_aging_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_reciprocity(SEXP, SEXP, SEXP); -extern SEXP R_igraph_reverse_edges(SEXP, SEXP); -extern SEXP R_igraph_rewire(SEXP, SEXP, SEXP); -extern SEXP R_igraph_rewire_directed_edges(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_rewire_edges(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_ring(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_running_mean(SEXP, SEXP); -extern SEXP R_igraph_sample_dirichlet(SEXP, SEXP); -extern SEXP R_igraph_sample_sphere_surface(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_sample_sphere_volume(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_sbm_game(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_scg_norm_eps(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_set_verbose(SEXP); -extern SEXP R_igraph_shortest_paths(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_similarity_dice(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_similarity_inverse_log_weighted(SEXP, SEXP, SEXP); -extern SEXP R_igraph_similarity_jaccard(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_simple_interconnected_islands_game(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_simplify(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_simplify_and_colorize(SEXP); -extern SEXP R_igraph_sir(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_solve_lsap(SEXP, SEXP); -extern SEXP R_igraph_spinglass_community(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_spinglass_my_community(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_split_join_distance(SEXP, SEXP); -extern SEXP R_igraph_st_edge_connectivity(SEXP, SEXP, SEXP); -extern SEXP R_igraph_st_mincut(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_st_mincut_value(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_st_vertex_connectivity(SEXP, SEXP, SEXP); -extern SEXP R_igraph_star(SEXP, SEXP, SEXP); -extern SEXP R_igraph_static_fitness_game(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_static_power_law_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_strength(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_subcomponent(SEXP, SEXP, SEXP); -extern SEXP R_igraph_subgraph_edges(SEXP, SEXP, SEXP); -extern SEXP R_igraph_subisomorphic_lad(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_subisomorphic_vf2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_to_directed(SEXP, SEXP); -extern SEXP R_igraph_to_prufer(SEXP); -extern SEXP R_igraph_to_undirected(SEXP, SEXP, SEXP); -extern SEXP R_igraph_topological_sorting(SEXP, SEXP); -extern SEXP R_igraph_transitivity_avglocal_undirected(SEXP, SEXP); -extern SEXP R_igraph_transitivity_barrat(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_transitivity_local_undirected(SEXP, SEXP, SEXP); -extern SEXP R_igraph_transitivity_local_undirected_all(SEXP, SEXP); -extern SEXP R_igraph_transitivity_undirected(SEXP, SEXP); -extern SEXP R_igraph_tree(SEXP, SEXP, SEXP); -extern SEXP R_igraph_tree_game(SEXP, SEXP, SEXP); -extern SEXP R_igraph_triad_census(SEXP); -extern SEXP R_igraph_unfold_tree(SEXP, SEXP, SEXP); -extern SEXP R_igraph_union(SEXP, SEXP); -extern SEXP R_igraph_vcount(SEXP); -extern SEXP R_igraph_vertex_coloring_greedy(SEXP, SEXP); -extern SEXP R_igraph_vertex_connectivity(SEXP, SEXP); -extern SEXP R_igraph_vertex_disjoint_paths(SEXP, SEXP, SEXP); -extern SEXP R_igraph_vs_adj(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_vs_nei(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_walktrap_community(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_watts_strogatz_game(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_weak_ref_key(SEXP); -extern SEXP R_igraph_weak_ref_run_finalizer(SEXP); -extern SEXP R_igraph_weak_ref_value(SEXP); -extern SEXP R_igraph_weighted_adjacency(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_weighted_clique_number(SEXP, SEXP); -extern SEXP R_igraph_weighted_cliques(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_write_graph_dimacs(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_write_graph_dot(SEXP, SEXP); -extern SEXP R_igraph_write_graph_edgelist(SEXP, SEXP); -extern SEXP R_igraph_write_graph_gml(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_write_graph_graphml(SEXP, SEXP, SEXP); -extern SEXP R_igraph_write_graph_leda(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_write_graph_lgl(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_write_graph_ncol(SEXP, SEXP, SEXP, SEXP); -extern SEXP R_igraph_write_graph_pajek(SEXP, SEXP); -extern SEXP UUID_gen(SEXP); -extern SEXP make_lazy(SEXP, SEXP, SEXP); -extern SEXP make_lazy_dots(SEXP, SEXP); -extern SEXP promise_env_(SEXP); -extern SEXP promise_expr_(SEXP); +extern SEXP R_igraph_add_edges(void *, void *); +extern SEXP R_igraph_add_env(void *); +extern SEXP R_igraph_add_myid_to_env(void *); +extern SEXP R_igraph_add_version_to_env(void *); +extern SEXP R_igraph_add_vertices(void *, void *); +extern SEXP R_igraph_address(void *); +extern SEXP R_igraph_adhesion(void *, void *); +extern SEXP R_igraph_adjacency_spectral_embedding(void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_adjacent_triangles(void *, void *); +extern SEXP R_igraph_adjacent_vertices(void *, void *, void *); +extern SEXP R_igraph_adjlist(void *, void *, void *); +extern SEXP R_igraph_all_minimal_st_separators(void *); +extern SEXP R_igraph_all_st_cuts(void *, void *, void *); +extern SEXP R_igraph_all_st_mincuts(void *, void *, void *, void *); +extern SEXP R_igraph_are_connected(void *, void *, void *); +extern SEXP R_igraph_arpack(void *, void *, void *, void *, void *); +extern SEXP R_igraph_arpack_unpack_complex(void *, void *, void *); +extern SEXP R_igraph_articulation_points(void *); +extern SEXP R_igraph_assortativity(void *, void *, void *, void *); +extern SEXP R_igraph_assortativity_degree(void *, void *); +extern SEXP R_igraph_assortativity_nominal(void *, void *, void *); +extern SEXP R_igraph_asymmetric_preference_game(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_atlas(void *); +extern SEXP R_igraph_authority_score(void *, void *, void *, void *); +extern SEXP R_igraph_automorphism_group(void *, void *, void *); +extern SEXP R_igraph_automorphisms(void *, void *, void *); +extern SEXP R_igraph_average_local_efficiency(void *, void *, void *, void *); +extern SEXP R_igraph_average_path_length_dijkstra(void *, void *, void *, void *); +extern SEXP R_igraph_avg_nearest_neighbor_degree(void *, void *, void *, void *, void *); +extern SEXP R_igraph_barabasi_aging_game(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_barabasi_game(void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_betweenness_cutoff(void *, void *, void *, void *, void *); +extern SEXP R_igraph_bfs(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_bibcoupling(void *, void *); +extern SEXP R_igraph_biconnected_components(void *); +extern SEXP R_igraph_bipartite_game_gnm(void *, void *, void *, void *, void *); +extern SEXP R_igraph_bipartite_game_gnp(void *, void *, void *, void *, void *); +extern SEXP R_igraph_bipartite_projection(void *, void *, void *, void *); +extern SEXP R_igraph_bipartite_projection_size(void *, void *); +extern SEXP R_igraph_bridges(void *); +extern SEXP R_igraph_callaway_traits_game(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_canonical_permutation(void *, void *, void *); +extern SEXP R_igraph_centralization(void *, void *, void *); +extern SEXP R_igraph_centralization_betweenness(void *, void *, void *); +extern SEXP R_igraph_centralization_betweenness_tmax(void *, void *, void *); +extern SEXP R_igraph_centralization_closeness(void *, void *, void *); +extern SEXP R_igraph_centralization_closeness_tmax(void *, void *, void *); +extern SEXP R_igraph_centralization_degree(void *, void *, void *, void *); +extern SEXP R_igraph_centralization_degree_tmax(void *, void *, void *, void *); +extern SEXP R_igraph_centralization_eigenvector_centrality(void *, void *, void *, void *, void *); +extern SEXP R_igraph_centralization_eigenvector_centrality_tmax(void *, void *, void *, void *); +extern SEXP R_igraph_cited_type_game(void *, void *, void *, void *, void *); +extern SEXP R_igraph_citing_cited_type_game(void *, void *, void *, void *, void *); +extern SEXP R_igraph_clique_number(void *); +extern SEXP R_igraph_clique_size_hist(void *, void *, void *); +extern SEXP R_igraph_cliques(void *, void *, void *); +extern SEXP R_igraph_closeness_cutoff(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_clusters(void *, void *); +extern SEXP R_igraph_cocitation(void *, void *); +extern SEXP R_igraph_cohesion(void *, void *); +extern SEXP R_igraph_cohesive_blocks(void *); +extern SEXP R_igraph_community_edge_betweenness(void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_community_fastgreedy(void *, void *, void *, void *, void *); +extern SEXP R_igraph_community_fluid_communities(void *, void *); +extern SEXP R_igraph_community_infomap(void *, void *, void *, void *); +extern SEXP R_igraph_community_label_propagation(void *, void *, void *, void *); +extern SEXP R_igraph_community_leading_eigenvector(void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_community_leiden(void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_community_multilevel(void *, void *, void *); +extern SEXP R_igraph_community_optimal_modularity(void *, void *); +extern SEXP R_igraph_community_to_membership2(void *, void *, void *); +extern SEXP R_igraph_compare_communities(void *, void *, void *); +extern SEXP R_igraph_complementer(void *, void *); +extern SEXP R_igraph_compose(void *, void *, void *); +extern SEXP R_igraph_connect_neighborhood(void *, void *, void *); +extern SEXP R_igraph_constraint(void *, void *, void *); +extern SEXP R_igraph_contract_vertices(void *, void *, void *); +extern SEXP R_igraph_convex_hull(void *); +extern SEXP R_igraph_copy_env(void *); +extern SEXP R_igraph_copy_from(void *); +extern SEXP R_igraph_copy_to(void *); +extern SEXP R_igraph_coreness(void *, void *); +extern SEXP R_igraph_correlated_game(void *, void *, void *, void *); +extern SEXP R_igraph_correlated_pair_game(void *, void *, void *, void *, void *); +extern SEXP R_igraph_count_isomorphisms_vf2(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_count_multiple(void *, void *); +extern SEXP R_igraph_count_subisomorphisms_vf2(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_create(void *, void *, void *); +extern SEXP R_igraph_create_bipartite(void *, void *, void *); +extern SEXP R_igraph_de_bruijn(void *, void *); +extern SEXP R_igraph_decompose(void *, void *, void *, void *); +extern SEXP R_igraph_degree(void *, void *, void *, void *); +extern SEXP R_igraph_degree_sequence_game(void *, void *, void *); +extern SEXP R_igraph_delete_edges(void *, void *); +extern SEXP R_igraph_delete_vertices(void *, void *); +extern SEXP R_igraph_density(void *, void *); +extern SEXP R_igraph_dfs(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_diameter(void *, void *, void *, void *); +extern SEXP R_igraph_difference(void *, void *); +extern SEXP R_igraph_dim_select(void *); +extern SEXP R_igraph_disjoint_union(void *); +extern SEXP R_igraph_diversity(void *, void *, void *); +extern SEXP R_igraph_dominator_tree(void *, void *, void *); +extern SEXP R_igraph_dot_product_game(void *, void *); +extern SEXP R_igraph_dyad_census(void *); +extern SEXP R_igraph_eccentricity(void *, void *, void *); +extern SEXP R_igraph_ecount(void *); +extern SEXP R_igraph_edge_betweenness_cutoff(void *, void *, void *, void *); +extern SEXP R_igraph_edge_connectivity(void *, void *); +extern SEXP R_igraph_edge_disjoint_paths(void *, void *, void *); +extern SEXP R_igraph_edges(void *, void *); +extern SEXP R_igraph_eigen_adjacency(void *, void *, void *, void *); +extern SEXP R_igraph_eigenvector_centrality(void *, void *, void *, void *, void *); +extern SEXP R_igraph_empty(void *, void *); +extern SEXP R_igraph_erdos_renyi_game(void *, void *, void *, void *, void *); +extern SEXP R_igraph_es_adj(void *, void *, void *, void *); +extern SEXP R_igraph_es_pairs(void *, void *, void *); +extern SEXP R_igraph_es_path(void *, void *, void *); +extern SEXP R_igraph_establishment_game(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_eulerian_cycle(void *); +extern SEXP R_igraph_eulerian_path(void *); +extern SEXP R_igraph_extended_chordal_ring(void *, void *, void *); +extern SEXP R_igraph_famous(void *); +extern SEXP R_igraph_farthest_points(void *, void *, void *, void *); +extern SEXP R_igraph_feedback_arc_set(void *, void *, void *); +extern SEXP R_igraph_finalizer(void); +extern SEXP R_igraph_forest_fire_game(void *, void *, void *, void *, void *); +extern SEXP R_igraph_from_prufer(void *); +extern SEXP R_igraph_full(void *, void *, void *); +extern SEXP R_igraph_full_bipartite(void *, void *, void *, void *); +extern SEXP R_igraph_full_citation(void *, void *); +extern SEXP R_igraph_get_adjacency(void *, void *, void *); +extern SEXP R_igraph_get_adjedgelist(void *, void *, void *); +extern SEXP R_igraph_get_adjlist(void *, void *, void *, void *); +extern SEXP R_igraph_get_all_shortest_paths(void *, void *, void *, void *); +extern SEXP R_igraph_get_all_shortest_paths_dijkstra(void *, void *, void *, void *, void *); +extern SEXP R_igraph_get_all_simple_paths(void *, void *, void *, void *, void *); +extern SEXP R_igraph_get_all_simple_paths_pp(void *); +extern SEXP R_igraph_get_attr_mode(void *, void *); +extern SEXP R_igraph_get_diameter(void *, void *, void *, void *); +extern SEXP R_igraph_get_edge(void *, void *); +extern SEXP R_igraph_get_edgelist(void *, void *); +extern SEXP R_igraph_get_eids(void *, void *, void *, void *, void *); +extern SEXP R_igraph_get_graph_id(void *); +extern SEXP R_igraph_get_incidence(void *, void *); +extern SEXP R_igraph_get_isomorphisms_vf2(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_get_shortest_paths(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_get_stochastic(void *, void *); +extern SEXP R_igraph_get_stochastic_sparsemat(void *, void *); +extern SEXP R_igraph_get_subisomorphisms_vf2(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_getsphere(void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_girth(void *, void *); +extern SEXP R_igraph_global_efficiency(void *, void *, void *); +extern SEXP R_igraph_graph_adjacency(void *, void *); +extern SEXP R_igraph_graph_version(void *); +extern SEXP R_igraph_graphlets(void *, void *, void *); +extern SEXP R_igraph_graphlets_candidate_basis(void *, void *); +extern SEXP R_igraph_graphlets_project(void *, void *, void *, void *, void *); +extern SEXP R_igraph_grg_game(void *, void *, void *, void *); +extern SEXP R_igraph_growing_random_game(void *, void *, void *, void *); +extern SEXP R_igraph_harmonic_centrality_cutoff(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_has_loop(void *); +extern SEXP R_igraph_has_multiple(void *); +extern SEXP R_igraph_hrg_consensus(void *, void *, void *, void *); +extern SEXP R_igraph_hrg_create(void *, void *); +extern SEXP R_igraph_hrg_dendrogram(void *); +extern SEXP R_igraph_hrg_fit(void *, void *, void *, void *); +extern SEXP R_igraph_hrg_game(void *); +extern SEXP R_igraph_hrg_predict(void *, void *, void *, void *, void *); +extern SEXP R_igraph_hsbm_game(void *, void *, void *, void *, void *); +extern SEXP R_igraph_hsbm_list_game(void *, void *, void *, void *, void *); +extern SEXP R_igraph_hub_score(void *, void *, void *, void *); +extern SEXP R_igraph_i_levc_arp(void *, void *, void *); +extern SEXP R_igraph_identical_graphs(void *, void *, void *); +extern SEXP R_igraph_incidence(void *, void *, void *, void *); +extern SEXP R_igraph_incident(void *, void *, void *); +extern SEXP R_igraph_incident_edges(void *, void *, void *); +extern SEXP R_igraph_independence_number(void *); +extern SEXP R_igraph_independent_vertex_sets(void *, void *, void *); +extern SEXP R_igraph_induced_subgraph(void *, void *, void *); +extern SEXP R_igraph_intersection(void *, void *); +extern SEXP R_igraph_is_bipartite(void *); +extern SEXP R_igraph_is_chordal(void *, void *, void *, void *, void *); +extern SEXP R_igraph_is_connected(void *, void *); +extern SEXP R_igraph_is_dag(void *); +extern SEXP R_igraph_is_directed(void *); +extern SEXP R_igraph_is_eulerian(void *); +extern SEXP R_igraph_is_graphical(void *, void *, void *); +extern SEXP R_igraph_is_loop(void *, void *); +extern SEXP R_igraph_is_matching(void *, void *, void *); +extern SEXP R_igraph_is_maximal_matching(void *, void *, void *); +extern SEXP R_igraph_is_minimal_separator(void *, void *); +extern SEXP R_igraph_is_multiple(void *, void *); +extern SEXP R_igraph_is_mutual(void *, void *); +extern SEXP R_igraph_is_separator(void *, void *); +extern SEXP R_igraph_is_simple(void *); +extern SEXP R_igraph_is_tree(void *, void *); +extern SEXP R_igraph_isoclass(void *); +extern SEXP R_igraph_isoclass_create(void *, void *, void *); +extern SEXP R_igraph_isoclass_subgraph(void *, void *); +extern SEXP R_igraph_isomorphic(void *, void *); +extern SEXP R_igraph_isomorphic_34(void *, void *); +extern SEXP R_igraph_isomorphic_bliss(void *, void *, void *, void *, void *); +extern SEXP R_igraph_isomorphic_vf2(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_k_regular_game(void *, void *, void *, void *); +extern SEXP R_igraph_kautz(void *, void *); +extern SEXP R_igraph_laplacian(void *, void *, void *, void *); +extern SEXP R_igraph_laplacian_spectral_embedding(void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_largest_cliques(void *); +extern SEXP R_igraph_largest_independent_vertex_sets(void *); +extern SEXP R_igraph_largest_weighted_cliques(void *, void *); +extern SEXP R_igraph_lastcit_game(void *, void *, void *, void *, void *); +extern SEXP R_igraph_lattice(void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_bipartite(void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_circle(void *, void *); +extern SEXP R_igraph_layout_davidson_harel(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_drl(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_drl_3d(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_fruchterman_reingold(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_fruchterman_reingold_3d(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_gem(void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_graphopt(void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_grid(void *, void *); +extern SEXP R_igraph_layout_grid_3d(void *, void *, void *); +extern SEXP R_igraph_layout_kamada_kawai(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_kamada_kawai_3d(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_lgl(void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_mds(void *, void *, void *); +extern SEXP R_igraph_layout_merge_dla(void *, void *); +extern SEXP R_igraph_layout_random(void *); +extern SEXP R_igraph_layout_random_3d(void *); +extern SEXP R_igraph_layout_reingold_tilford(void *, void *, void *, void *, void *); +extern SEXP R_igraph_layout_sphere(void *); +extern SEXP R_igraph_layout_star(void *, void *, void *); +extern SEXP R_igraph_layout_sugiyama(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_lcf_vector(void *, void *, void *); +extern SEXP R_igraph_linegraph(void *); +extern SEXP R_igraph_list_triangles(void *); +extern SEXP R_igraph_local_efficiency(void *, void *, void *, void *, void *); +extern SEXP R_igraph_local_scan_0(void *, void *, void *); +extern SEXP R_igraph_local_scan_0_them(void *, void *, void *, void *); +extern SEXP R_igraph_local_scan_1_ecount(void *, void *, void *); +extern SEXP R_igraph_local_scan_1_ecount_them(void *, void *, void *, void *); +extern SEXP R_igraph_local_scan_k_ecount(void *, void *, void *, void *); +extern SEXP R_igraph_local_scan_k_ecount_them(void *, void *, void *, void *, void *); +extern SEXP R_igraph_local_scan_neighborhood_ecount(void *, void *, void *); +extern SEXP R_igraph_make_weak_ref(void *, void *, void *); +extern SEXP R_igraph_maxflow(void *, void *, void *, void *); +extern SEXP R_igraph_maximal_cliques(void *, void *, void *, void *); +extern SEXP R_igraph_maximal_cliques_count(void *, void *, void *, void *); +extern SEXP R_igraph_maximal_cliques_file(void *, void *, void *, void *, void *); +extern SEXP R_igraph_maximal_cliques_hist(void *, void *, void *); +extern SEXP R_igraph_maximal_independent_vertex_sets(void *); +extern SEXP R_igraph_maximum_bipartite_matching(void *, void *, void *, void *); +extern SEXP R_igraph_maximum_cardinality_search(void *); +extern SEXP R_igraph_mincut(void *, void *); +extern SEXP R_igraph_mincut_value(void *, void *); +extern SEXP R_igraph_minimum_size_separators(void *); +extern SEXP R_igraph_minimum_spanning_tree_prim(void *, void *); +extern SEXP R_igraph_minimum_spanning_tree_unweighted(void *); +extern SEXP R_igraph_modularity(void *, void *, void *, void *, void *); +extern SEXP R_igraph_modularity_matrix(void *, void *, void *, void *); +extern SEXP R_igraph_motifs_randesu(void *, void *, void *); +extern SEXP R_igraph_motifs_randesu_estimate(void *, void *, void *, void *, void *); +extern SEXP R_igraph_motifs_randesu_no(void *, void *, void *); +extern SEXP R_igraph_mybracket2(void *, void *, void *); +extern SEXP R_igraph_mybracket2_copy(void *, void *, void *); +extern SEXP R_igraph_mybracket2_names(void *, void *, void *); +extern SEXP R_igraph_mybracket2_set(void *, void *, void *, void *); +extern SEXP R_igraph_mybracket3_set(void *, void *, void *, void *, void *); +extern SEXP R_igraph_neighborhood(void *, void *, void *, void *, void *); +extern SEXP R_igraph_neighborhood_graphs(void *, void *, void *, void *, void *); +extern SEXP R_igraph_neighborhood_size(void *, void *, void *, void *, void *); +extern SEXP R_igraph_neighbors(void *, void *, void *); +extern SEXP R_igraph_no_clusters(void *, void *); +extern SEXP R_igraph_path_length_hist(void *, void *); +extern SEXP R_igraph_permute_vertices(void *, void *); +extern SEXP R_igraph_personalized_pagerank(void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_power_law_fit(void *, void *, void *); +extern SEXP R_igraph_preference_game(void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_radius(void *, void *); +extern SEXP R_igraph_random_edge_walk(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_random_sample(void *, void *, void *); +extern SEXP R_igraph_random_spanning_tree(void *, void *); +extern SEXP R_igraph_random_walk(void *, void *, void *, void *, void *); +extern SEXP R_igraph_read_graph_dimacs(void *, void *); +extern SEXP R_igraph_read_graph_dl(void *, void *); +extern SEXP R_igraph_read_graph_edgelist(void *, void *, void *); +extern SEXP R_igraph_read_graph_gml(void *); +extern SEXP R_igraph_read_graph_graphdb(void *, void *); +extern SEXP R_igraph_read_graph_graphml(void *, void *); +extern SEXP R_igraph_read_graph_lgl(void *, void *, void *, void *); +extern SEXP R_igraph_read_graph_ncol(void *, void *, void *, void *, void *); +extern SEXP R_igraph_read_graph_pajek(void *); +extern SEXP R_igraph_realize_degree_sequence(void *, void *, void *, void *); +extern SEXP R_igraph_recent_degree_aging_game(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_reciprocity(void *, void *, void *); +extern SEXP R_igraph_reverse_edges(void *, void *); +extern SEXP R_igraph_rewire(void *, void *, void *); +extern SEXP R_igraph_rewire_directed_edges(void *, void *, void *, void *); +extern SEXP R_igraph_rewire_edges(void *, void *, void *, void *); +extern SEXP R_igraph_ring(void *, void *, void *, void *); +extern SEXP R_igraph_running_mean(void *, void *); +extern SEXP R_igraph_sample_dirichlet(void *, void *); +extern SEXP R_igraph_sample_sphere_surface(void *, void *, void *, void *); +extern SEXP R_igraph_sample_sphere_volume(void *, void *, void *, void *); +extern SEXP R_igraph_sbm_game(void *, void *, void *, void *, void *); +extern SEXP R_igraph_scg_norm_eps(void *, void *, void *, void *, void *); +extern SEXP R_igraph_set_verbose(void *); +extern SEXP R_igraph_shortest_paths(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_similarity_dice(void *, void *, void *, void *); +extern SEXP R_igraph_similarity_inverse_log_weighted(void *, void *, void *); +extern SEXP R_igraph_similarity_jaccard(void *, void *, void *, void *); +extern SEXP R_igraph_simple_interconnected_islands_game(void *, void *, void *, void *); +extern SEXP R_igraph_simplify(void *, void *, void *, void *); +extern SEXP R_igraph_simplify_and_colorize(void *); +extern SEXP R_igraph_sir(void *, void *, void *, void *); +extern SEXP R_igraph_solve_lsap(void *, void *); +extern SEXP R_igraph_spinglass_community(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_spinglass_my_community(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_split_join_distance(void *, void *); +extern SEXP R_igraph_st_edge_connectivity(void *, void *, void *); +extern SEXP R_igraph_st_mincut(void *, void *, void *, void *); +extern SEXP R_igraph_st_mincut_value(void *, void *, void *, void *); +extern SEXP R_igraph_st_vertex_connectivity(void *, void *, void *); +extern SEXP R_igraph_star(void *, void *, void *); +extern SEXP R_igraph_static_fitness_game(void *, void *, void *, void *, void *); +extern SEXP R_igraph_static_power_law_game(void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_strength(void *, void *, void *, void *, void *); +extern SEXP R_igraph_subcomponent(void *, void *, void *); +extern SEXP R_igraph_subgraph_edges(void *, void *, void *); +extern SEXP R_igraph_subisomorphic_lad(void *, void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_subisomorphic_vf2(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_to_directed(void *, void *); +extern SEXP R_igraph_to_prufer(void *); +extern SEXP R_igraph_to_undirected(void *, void *, void *); +extern SEXP R_igraph_topological_sorting(void *, void *); +extern SEXP R_igraph_transitivity_avglocal_undirected(void *, void *); +extern SEXP R_igraph_transitivity_barrat(void *, void *, void *, void *); +extern SEXP R_igraph_transitivity_local_undirected(void *, void *, void *); +extern SEXP R_igraph_transitivity_local_undirected_all(void *, void *); +extern SEXP R_igraph_transitivity_undirected(void *, void *); +extern SEXP R_igraph_tree(void *, void *, void *); +extern SEXP R_igraph_tree_game(void *, void *, void *); +extern SEXP R_igraph_triad_census(void *); +extern SEXP R_igraph_unfold_tree(void *, void *, void *); +extern SEXP R_igraph_union(void *, void *); +extern SEXP R_igraph_vcount(void *); +extern SEXP R_igraph_vertex_coloring_greedy(void *, void *); +extern SEXP R_igraph_vertex_connectivity(void *, void *); +extern SEXP R_igraph_vertex_disjoint_paths(void *, void *, void *); +extern SEXP R_igraph_vs_adj(void *, void *, void *, void *); +extern SEXP R_igraph_vs_nei(void *, void *, void *, void *); +extern SEXP R_igraph_walktrap_community(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_watts_strogatz_game(void *, void *, void *, void *, void *, void *); +extern SEXP R_igraph_weak_ref_key(void *); +extern SEXP R_igraph_weak_ref_run_finalizer(void *); +extern SEXP R_igraph_weak_ref_value(void *); +extern SEXP R_igraph_weighted_adjacency(void *, void *, void *, void *); +extern SEXP R_igraph_weighted_clique_number(void *, void *); +extern SEXP R_igraph_weighted_cliques(void *, void *, void *, void *, void *); +extern SEXP R_igraph_write_graph_dimacs(void *, void *, void *, void *, void *); +extern SEXP R_igraph_write_graph_dot(void *, void *); +extern SEXP R_igraph_write_graph_edgelist(void *, void *); +extern SEXP R_igraph_write_graph_gml(void *, void *, void *, void *); +extern SEXP R_igraph_write_graph_graphml(void *, void *, void *); +extern SEXP R_igraph_write_graph_leda(void *, void *, void *, void *); +extern SEXP R_igraph_write_graph_lgl(void *, void *, void *, void *, void *); +extern SEXP R_igraph_write_graph_ncol(void *, void *, void *, void *); +extern SEXP R_igraph_write_graph_pajek(void *, void *); +extern SEXP UUID_gen(void *); +extern SEXP make_lazy(void *, void *, void *); +extern SEXP make_lazy_dots(void *, void *); +extern SEXP promise_env_(void *); +extern SEXP promise_expr_(void *); static const R_CallMethodDef CallEntries[] = { {"R_igraph_add_edges", (DL_FUNC) &R_igraph_add_edges, 2},