From 059125dba6f0d95119c7b908efd6d240946f87a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABlle=20Salmon?= Date: Fri, 23 Oct 2026 11:41:40 +0200 Subject: [PATCH 1/2] docs: stop vendoring igraph.r2cdocs, put it within R/ --- .Rbuildignore | 2 + .../workflows/custom/after-install/action.yml | 12 - .handbook-ignore | 4 - CONTRIBUTING.md | 9 +- DESCRIPTION | 14 +- .../R/roxygen.R => R/roxygen-cdocs.R | 114 +- codecov.yml | 2 + .../r-layer/documentation/README.md | 33 +- handbook/meta/local/README.md | 1 - igraph.Rproj | 2 +- scripts/flavor-package-name.R | 5 +- scripts/flavor.patch | 5 + scripts/rcc-one.sh | 12 +- tests/testthat/test-roxygen-cdocs.R | 273 ++++ tools/igraph.r2cdocs/.Rbuildignore | 5 - tools/igraph.r2cdocs/.gitignore | 6 - tools/igraph.r2cdocs/.gitrepo | 12 - tools/igraph.r2cdocs/DESCRIPTION | 27 - tools/igraph.r2cdocs/LICENSE | 2 - tools/igraph.r2cdocs/LICENSE.md | 21 - tools/igraph.r2cdocs/NAMESPACE | 9 - .../igraph.r2cdocs/R/igraph.r2cdocs-package.R | 7 - .../R/import-standalone-purrr.R | 241 ---- tools/igraph.r2cdocs/README.md | 21 - tools/igraph.r2cdocs/data-raw/clinks.R | 45 - tools/igraph.r2cdocs/igraph.r2cdocs.Rproj | 22 - tools/igraph.r2cdocs/inst/clinks/0.10.17.csv | 1194 ----------------- .../man/igraph.r2cdocs-package.Rd | 23 - tools/igraph.r2cdocs/tests/testthat.R | 4 - .../tests/testthat/test-c-links.R | 72 - .../tests/testthat/test-call-graph.R | 67 - .../tests/testthat/test-roclet.R | 52 - 32 files changed, 399 insertions(+), 1919 deletions(-) rename tools/igraph.r2cdocs/R/roxygen.R => R/roxygen-cdocs.R (74%) create mode 100644 tests/testthat/test-roxygen-cdocs.R delete mode 100644 tools/igraph.r2cdocs/.Rbuildignore delete mode 100644 tools/igraph.r2cdocs/.gitignore delete mode 100644 tools/igraph.r2cdocs/.gitrepo delete mode 100644 tools/igraph.r2cdocs/DESCRIPTION delete mode 100644 tools/igraph.r2cdocs/LICENSE delete mode 100644 tools/igraph.r2cdocs/LICENSE.md delete mode 100644 tools/igraph.r2cdocs/NAMESPACE delete mode 100644 tools/igraph.r2cdocs/R/igraph.r2cdocs-package.R delete mode 100644 tools/igraph.r2cdocs/R/import-standalone-purrr.R delete mode 100644 tools/igraph.r2cdocs/README.md delete mode 100644 tools/igraph.r2cdocs/data-raw/clinks.R delete mode 100644 tools/igraph.r2cdocs/igraph.r2cdocs.Rproj delete mode 100644 tools/igraph.r2cdocs/inst/clinks/0.10.17.csv delete mode 100644 tools/igraph.r2cdocs/man/igraph.r2cdocs-package.Rd delete mode 100644 tools/igraph.r2cdocs/tests/testthat.R delete mode 100644 tools/igraph.r2cdocs/tests/testthat/test-c-links.R delete mode 100644 tools/igraph.r2cdocs/tests/testthat/test-call-graph.R delete mode 100644 tools/igraph.r2cdocs/tests/testthat/test-roclet.R diff --git a/.Rbuildignore b/.Rbuildignore index 227f214909b..7b2766dd9e3 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -63,6 +63,8 @@ ^src/*\.gcda$ ^src/*\.gcno$ ^R/release\.R$ +^R/roxygen-cdocs\.R$ +^tests/testthat/test-roxygen-cdocs\.R$ ^scripts$ ^\.claude$ ^\.series-source$ diff --git a/.github/workflows/custom/after-install/action.yml b/.github/workflows/custom/after-install/action.yml index bb28e3f3fda..a15ef35ff97 100644 --- a/.github/workflows/custom/after-install/action.yml +++ b/.github/workflows/custom/after-install/action.yml @@ -42,18 +42,6 @@ runs: run: scripts/warnings.sh glue shell: bash - # The roclet that links the C manual from the reference pages, named in - # DESCRIPTION's Roxygen field, is vendored in tools/igraph.r2cdocs - # (handbook/architecture/r-layer/documentation/). Only the smoke test - # roxygenizes, and only it installs the roclet's dependencies - # (Config/Needs/roxygen2). scripts/rcc-one.sh installs it the same way. - - name: Install the vendored C-docs roclet and run its tests - if: github.job == 'rcc-smoke' - run: | - R CMD INSTALL tools/igraph.r2cdocs - Rscript -e 'testthat::test_local("tools/igraph.r2cdocs", reporter = "summary")' - shell: bash - # Guard for the flavor rename (scripts/flavor-package-name.R): fails when # the package name is hard-coded where scripts/flavor.patch does not rewrite # it, when a file the patch renames still carries the mainline name, when a diff --git a/.handbook-ignore b/.handbook-ignore index 95cb89406f3..5aca94e9f54 100644 --- a/.handbook-ignore +++ b/.handbook-ignore @@ -16,10 +16,6 @@ em-dash: .claude/ src/vendor/cigraph/ tools/py-stimulus/ -# The C-docs roclet subrepo is igraph/igraph.r2cdocs, with its own README; -# handbook/architecture/r-layer/documentation/ says how this repository uses it. -tools/igraph.r2cdocs/ - # Generated documents cannot carry a backreference; the generator does. # NEWS.md is fledge's, the snapshots testthat's, and revdep/ holds reports # revdepcheck writes and the notes kept beside them for one release. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b40f7d579eb..d4fa34d2d31 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -232,12 +232,11 @@ under `tools/migrations/`. ### Documentation -- Install roxygen2 and the roclet that links the C docs, which is vendored in `tools/igraph.r2cdocs` +- Install roxygen2 and what the roclet that links the C docs needs, which is defined in `R/roxygen-cdocs.R` ([documentation](/handbook/architecture/r-layer/documentation/README.md) in the handbook): ```r pak::pak(dependencies = "Config/Needs/roxygen2") -pak::local_install("tools/igraph.r2cdocs", upgrade = FALSE) ``` - Please document your new functions using @@ -255,10 +254,10 @@ can check roxygen prose for stray lowercase forms with: Rscript tools/check-id-casing.R ``` -### Maintaining igraph.r2cdocs +### Maintaining the C-docs roclet -The roclet is a git subrepo in `tools/igraph.r2cdocs`, and a fix to it belongs upstream as well. -The link table for a new release of the C library is added +The roclet is `R/roxygen-cdocs.R`, left out of the built package, with its tests in `tests/testthat/test-roxygen-cdocs.R`. +The link table for a new release of the C library is downloaded and cached on first use, as the handbook's [documentation](/handbook/architecture/r-layer/documentation/README.md) page says. ### Test Cases diff --git a/DESCRIPTION b/DESCRIPTION index 9751b6f7535..911db9e41c7 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -83,11 +83,13 @@ Config/comment/gha/extra-packages: graph is an optional Enhances Config/Needs/build: devtools, irlba, pkgconfig Config/Needs/coverage: covr Config/Needs/roxygen2: r-lib/roxygen2, moodymudskipper/devtag, - treesitter, treesitter.r -Config/comment/Needs/roxygen2: The roclet igraph.r2cdocs::docs_rd that - the Roxygen field names is vendored in tools/igraph.r2cdocs and - installed from there; treesitter and treesitter.r are the dependencies - it adds. See handbook/architecture/r-layer/documentation/. + treesitter, treesitter.r, xml2 +Config/comment/Needs/roxygen2: The roclet igraph:::docs_rd that the + Roxygen field names is defined in R/roxygen-cdocs.R, which + .Rbuildignore leaves out of the package; treesitter, treesitter.r and + xml2 are what it needs, and roxygen2 from GitHub finds a roclet + defined in the package it documents. See + handbook/architecture/r-layer/documentation/. Config/Needs/website: here, readr, tibble, xmlparsedata, xml2 Config/testthat/edition: 3 Config/testthat/parallel: true @@ -95,6 +97,6 @@ Config/testthat/start-first: aaa-*, vs-es, scan, vs-operators, weakref, watts.strogatz.game Encoding: UTF-8 Roxygen: list(markdown = TRUE, roclets = c("collate", "namespace", - "igraph.r2cdocs::docs_rd", "devtag::dev_roclet")) + "igraph:::docs_rd", "devtag::dev_roclet")) SystemRequirements: libxml2 (optional), glpk (>= 4.57, optional) Config/roxygen2/version: 8.1.1.9000 diff --git a/tools/igraph.r2cdocs/R/roxygen.R b/R/roxygen-cdocs.R similarity index 74% rename from tools/igraph.r2cdocs/R/roxygen.R rename to R/roxygen-cdocs.R index c07fc915de7..536cc4ab6f7 100644 --- a/tools/igraph.r2cdocs/R/roxygen.R +++ b/R/roxygen-cdocs.R @@ -1,20 +1,23 @@ -#' @importFrom roxygen2 roclet -#' @export +# The roclet that links the C manual from the reference pages. +# The `Roxygen` field of `DESCRIPTION` names it as `docs_rd` of this package, +# in place of roxygen2's `rd`; +# roxygen2 finds it after loading the package code, so it needs no install. +# This file is `.Rbuildignore`d: the roclet serves documenting only, +# and its dependencies are in `Config/Needs/roxygen2` rather than `Imports`. +# See handbook/architecture/r-layer/documentation/. docs_rd <- function() { - roclet(c("docs_rd", "rd")) -} - -#' @importFrom roxygen2 roclet_process -#' @export - -roclet_process.roclet_docs_rd <- function(x, blocks, env, base_path) { - NextMethod() + # Registered here rather than in `NAMESPACE`, + # which the built package, without this file, could not honor. + registerS3method( + "roclet_output", + "roclet_docs_rd", + roclet_output.roclet_docs_rd, + envir = asNamespace("roxygen2") + ) + roxygen2::roclet(c("docs_rd", "rd")) } -#' @importFrom roxygen2 roclet_output -#' @export - roclet_output.roclet_docs_rd <- function(x, results, base_path, ...) { # Built once per run rather than memoised across runs, # where a second run in the same session would get the call graph @@ -206,7 +209,7 @@ r_call_graph <- function(base_path) { # as the function names (`vertices`) and the callees of each one # (`callees`, sorted vertex indices). # Vertices are numbered in order of first appearance, callers first, -# as igraph::graph_from_data_frame() numbers them. +# as graph_from_data_frame() numbers them. call_graph <- function(from, to) { vertices <- unique(c(from, to)) callees <- split( @@ -220,7 +223,7 @@ call_graph <- function(from, to) { } # The functions reachable from `start` through calls, `start` included, -# in the order igraph::subcomponent(mode = "out") returns them: +# in the order subcomponent(mode = "out") returns them: # breadth first, and the callees of each function by ascending index. # Empty when `start` is not a vertex. reachable_functions <- function(call_graph, start) { @@ -264,17 +267,58 @@ c_docs_version <- function(version) { sub("-[0-9]+-g[0-9a-f]+(-dirty)?$", "", version) } -# The link tables this package carries, one per release of the C manual, -# as data-raw/clinks.R writes them, named by the release. +# The releases of the C library vendored at `base_path`, +# from the headings of its changelog, such as `## [0.10.17] - 2025-09-19`. +c_releases <- function(base_path) { + lines <- readLines(file.path( + base_path, + "src", + "vendor", + "cigraph", + "CHANGELOG.md" + )) + headings <- regmatches(lines, regexec("^## \\[([0-9][^]]*)\\]", lines)) + map_chr(compact(headings), \(x) x[[2]]) +} + +# The directory caching the link tables, one per release of the C manual. +# The tables describe the C library, so every flavor of this package shares them. +c_links_cache_dir <- function() { + file.path(tools::R_user_dir("igraph", "cache"), "clinks") +} + +# The link tables in the cache, named by the release. c_links_tables <- function() { - files <- dir( - system.file("clinks", package = "igraph.r2cdocs"), - pattern = "[.]csv$", - full.names = TRUE - ) + files <- dir(c_links_cache_dir(), pattern = "[.]csv$", full.names = TRUE) set_names(files, sub("[.]csv$", "", basename(files))) } +# Downloads the link table for one release of the C manual into the cache, +# from the index igraph.org publishes for that release. +# The release tarball of the C library carries the same index +# as `doc/html/ix01.html`, which `index_url` can name instead. +c_links_download <- function( + version, + index_url = sprintf("https://igraph.org/c/html/%s/ix01.html", version) +) { + index <- xml2::read_html(index_url) + entries <- xml2::xml_find_all(index, ".//dt") + href <- map_chr(entries, \(dt) xml2::xml_attr(xml2::xml_child(dt), "href")) + + clinks <- data.frame( + method = sub(".*#", "", href), + url = sprintf("https://igraph.org/c/html/%s/%s", version, href) + ) + + dir <- c_links_cache_dir() + dir.create(dir, recursive = TRUE, showWarnings = FALSE) + utils::write.csv( + clinks, + file.path(dir, paste0(version, ".csv")), + row.names = FALSE + ) +} + # The release whose link table serves `version`: # its own, else the newest release before it, else `NA`. # Versions compare by their numeric part, so a pre-release comes after the @@ -294,30 +338,42 @@ c_links_release <- function(version, releases) { older[[order(core(older), is_release, decreasing = TRUE)[[1]]]] } -# The link table for the version of the C library vendored at `base_path`, -# from the tables this package carries rather than from igraph.org, -# so that the links depend on the sources alone. +# The link table for the version of the C library vendored at `base_path`. +# The table of its release is downloaded once and cached; +# the links depend on the sources and that cache alone. c_links <- function(base_path) { engine <- igraph_c_version(base_path) version <- c_docs_version(engine) + + # The newest release of the C library documenting `version`, + # as the changelog vendored with it lists the releases. + target <- c_links_release(version, c_releases(base_path)) + if (!is.na(target) && !target %in% names(c_links_tables())) { + tryCatch( + c_links_download(target), + error = function(e) NULL + ) + } + tables <- c_links_tables() release <- c_links_release(version, names(tables)) if (is.na(release)) { cli::cli_abort(c( "No link table for the C manual of igraph {version} or an earlier release.", - i = "Add one with {.file data-raw/clinks.R} in {.pkg igraph.r2cdocs}." + i = "Could not download it from igraph.org; check the network access." )) } if (release != version) { - # The links stay those of the newest release that has a table. + # The links stay those of the newest release in the cache. # A development snapshot past that release is the normal state of a - # vendoring series; a release without a table is a table to add. + # vendoring series, whose manual is not published yet; + # a release whose manual cannot be downloaded is worth a warning. notify <- if (engine != version) cli::cli_inform else cli::cli_warn notify(c( "No link table for the C manual of igraph {version}, linking the manual of {release}.", - i = "Add one with {.file data-raw/clinks.R} in {.pkg igraph.r2cdocs} once that manual is published." + i = "It is downloaded from igraph.org once that manual is published." )) } diff --git a/codecov.yml b/codecov.yml index 32247686350..c95199713b5 100644 --- a/codecov.yml +++ b/codecov.yml @@ -21,3 +21,5 @@ ignore: - "src/vendor/io" - "src/vendor/simpleraytracer" - "src/vendor/uuid" + # The C-docs roclet serves documenting only, and does not ship. + - "R/roxygen-cdocs.R" diff --git a/handbook/architecture/r-layer/documentation/README.md b/handbook/architecture/r-layer/documentation/README.md index 63bd443412c..54e6d750d81 100644 --- a/handbook/architecture/r-layer/documentation/README.md +++ b/handbook/architecture/r-layer/documentation/README.md @@ -11,37 +11,28 @@ How the reference pages are written: roxygen2 with Markdown syntax, regenerated `Rscript tools/check-id-casing.R` finds violations. **Links to the C manual are generated, not written.** -The roclet `igraph.r2cdocs::docs_rd` runs in place of roxygen2's `rd`, as the `Roxygen` field of `DESCRIPTION` says. +The roclet `igraph:::docs_rd` runs in place of roxygen2's `rd`, as the `Roxygen` field of `DESCRIPTION` says. It follows each topic's aliases through the call graph of `R/` to the `*_impl()` functions they reach, and adds a section "Related documentation in the C library" that links the C function behind each. It reads the call graph from the sources, so documenting needs no installed igraph. -Its name does not change under a flavor ([`branches/flavors/`](/handbook/branches/flavors/README.md)). +Its name follows the flavor, which `scripts/flavor.patch` rewrites in `DESCRIPTION` ([`branches/flavors/`](/handbook/branches/flavors/README.md)). -**The roclet is vendored.** -`tools/igraph.r2cdocs/` is a git subrepo of [igraph/igraph.r2cdocs](https://github.com/igraph/igraph.r2cdocs), -as `tools/py-stimulus/` is of Stimulus ([`architecture/stimulus/`](/handbook/architecture/stimulus/README.md)). -Its `.gitrepo` records the upstream commit, and a fix made there belongs upstream as well. -It is a package of its own, installed before documenting and again whenever it changes: +**The roclet is part of the sources, not of the package.** +It is defined in `R/roxygen-cdocs.R` and tested in `tests/testthat/test-roxygen-cdocs.R`, +both left out of the built package by `.Rbuildignore`, and the first left out of coverage by `codecov.yml`. +roxygen2 from GitHub finds a roclet defined in the package it documents, after loading its code, +so documenting needs only the dependencies in `Config/Needs/roxygen2`: ```r pak::pak(dependencies = "Config/Needs/roxygen2") -pak::local_install("tools/igraph.r2cdocs", upgrade = FALSE) ``` -CI installs it and runs its tests in `.github/workflows/custom/after-install`, in the `rcc-smoke` job that roxygenizes. -The `roxygen` gate of `scripts/rcc-one.sh` installs it for every commit of a series. - -**The links follow the vendored C library, without a network.** +**The links follow the vendored C library.** The roclet reads `IGRAPH_VERSION` from `src/vendor/igraph_version.h` and links the manual of the release that documents it. A development snapshot carries the version `git describe` gives its commit, such as `0.10.17-1-g16081ce60`, and links the manual of its tag. -The roclet carries one link table per release, under its `inst/clinks/`. -A version without one links the newest release before it that has one, with a message for a snapshot and a warning for a release. -So the links in `man/` change only with the commit that adds a table. -`data-raw/clinks.R` writes one from the index igraph.org publishes for the release, or from `doc/html/ix01.html` in its release tarball: - -```sh -cd tools/igraph.r2cdocs -Rscript data-raw/clinks.R 1.0.1 -``` +The release is the newest that the vendored `CHANGELOG.md` lists, up to that version. +Its link table is read from the index igraph.org publishes for the release, +once, into `tools::R_user_dir("igraph", "cache")/clinks/.csv`. +Where the download fails, the newest cached release before it serves, with a message for a snapshot and a warning for a release. *To deepen: document the devtag convention for internal functions once it settles.* diff --git a/handbook/meta/local/README.md b/handbook/meta/local/README.md index 01445cfa59d..09867ebc70e 100644 --- a/handbook/meta/local/README.md +++ b/handbook/meta/local/README.md @@ -16,7 +16,6 @@ The status of the vendoring series lives in its refs and the per-commit verdicts **What this repository does not author.** The vendored C library under `src/vendor/cigraph/` ([`architecture/engine/`](/handbook/architecture/engine/README.md)), the Stimulus subrepo under `tools/py-stimulus/`, -the C-docs roclet subrepo under `tools/igraph.r2cdocs/` ([`architecture/r-layer/documentation/`](/handbook/architecture/r-layer/documentation/README.md)), the generated R/C interface `R/aaa-*.R` and `src/rinterface.c` ([`architecture/stimulus/`](/handbook/architecture/stimulus/README.md)), `src/cpp11.cpp` and `R/cpp11.R`, `NEWS.md` (fledge), the `man/` pages (roxygen2), the snapshots under `tests/testthat/_snaps/`, and the reports under `revdep/`. diff --git a/igraph.Rproj b/igraph.Rproj index 85df3ea61b0..1977fee2486 100644 --- a/igraph.Rproj +++ b/igraph.Rproj @@ -20,4 +20,4 @@ LineEndingConversion: Posix BuildType: Package PackageUseDevtools: Yes PackageInstallArgs: --no-multiarch --with-keep.source -PackageRoxygenize: collate,namespace,igraph.r2cdocs::docs_rd,devtag::dev_roclet +PackageRoxygenize: collate,namespace,igraph:::docs_rd,devtag::dev_roclet diff --git a/scripts/flavor-package-name.R b/scripts/flavor-package-name.R index b285091ec9f..0784c70e3b2 100644 --- a/scripts/flavor-package-name.R +++ b/scripts/flavor-package-name.R @@ -77,7 +77,10 @@ flavor_legitimate_spellings <- c( 'Rf_install[(]"igraph"[)]', # An instruction to install the mainline package from CRAN, which is what # the vignettes give: it names that package, not this one. - "install[.]packages[(][\"']igraph[\"'][)]" + "install[.]packages[(][\"']igraph[\"'][)]", + # The cache of the C manual's link tables (R/roxygen-cdocs.R), which + # describe the C library and so serve every flavor. + 'R_user_dir[(]"igraph", "cache"[)]' ) # The files to scan, as paths relative to `root`, each named by the pattern that diff --git a/scripts/flavor.patch b/scripts/flavor.patch index 652d326e58c..1fbbddc4681 100644 --- a/scripts/flavor.patch +++ b/scripts/flavor.patch @@ -6,6 +6,11 @@ index 98169e0..8a75ced 100644 -Package: igraph +Package: igraph.1.3 Title: Network Analysis and Visualization +@@ -99,3 +99,3 @@ Encoding: UTF-8 + Roxygen: list(markdown = TRUE, roclets = c("collate", "namespace", +- "igraph:::docs_rd", "devtag::dev_roclet")) ++ "igraph.1.3:::docs_rd", "devtag::dev_roclet")) + SystemRequirements: libxml2 (optional), glpk (>= 4.57, optional) diff --git a/NAMESPACE b/NAMESPACE index 7831331..abf11dd 100644 --- a/NAMESPACE diff --git a/scripts/rcc-one.sh b/scripts/rcc-one.sh index 25c045bb7b5..854683c20ec 100755 --- a/scripts/rcc-one.sh +++ b/scripts/rcc-one.sh @@ -190,7 +190,7 @@ stage_budget() { flavor) echo 300 ;; # a base-R scan of the checkout style) echo 600 ;; snapshots) echo 1800 ;; # the snapshot tests: ~350 s - roxygen) echo 900 ;; # ~60 s, after installing the vendored roclet + roxygen) echo 900 ;; # ~60 s, the first run downloading the C docs index clean) echo 900 ;; warnings) echo 600 ;; # recompiles the ten glue files: ~10 s check) echo 2700 ;; # rebuilds the package, then the suite again: ~400 s @@ -568,15 +568,9 @@ EOF return "${rc}" } -# Mirrors cynkra/cynkratemplate's roxygenize action, after installing the -# C-docs roclet vendored in tools/igraph.r2cdocs as -# .github/workflows/custom/after-install does for `rcc-smoke`. Installed per -# commit, so each commit is documented by its own copy of the roclet; its -# dependencies come with Config/Needs/roxygen2. +# Mirrors cynkra/cynkratemplate's roxygenize action. The C-docs roclet is +# R/roxygen-cdocs.R, so each commit is documented by its own copy of it. gate_roxygen() { - if [ -d tools/igraph.r2cdocs ]; then - R CMD INSTALL tools/igraph.r2cdocs || return 1 - fi rscript <<'EOF' roxygen2::roxygenize() EOF diff --git a/tests/testthat/test-roxygen-cdocs.R b/tests/testthat/test-roxygen-cdocs.R new file mode 100644 index 00000000000..6392c63fe0d --- /dev/null +++ b/tests/testthat/test-roxygen-cdocs.R @@ -0,0 +1,273 @@ +# The C-docs roclet of R/roxygen-cdocs.R. +# Both files are `.Rbuildignore`d, so only `testthat::test_local()` runs these, +# where `Config/Needs/roxygen2` is installed. + +skip_if_not_installed("roxygen2") +skip_if_not_installed("treesitter") +skip_if_not_installed("treesitter.r") +skip_if_not_installed("xml2") + +# A package root whose vendored C library reports `version`, +# and whose changelog lists `releases`. +local_engine <- function( + version, + releases = "0.10.17", + env = parent.frame() +) { + base_path <- withr::local_tempdir(.local_envir = env) + dir.create( + file.path(base_path, "src", "vendor", "cigraph"), + recursive = TRUE + ) + writeLines( + c( + "#ifndef IGRAPH_VERSION_H", + sprintf("#define IGRAPH_VERSION \"%s\"", version), + "#define IGRAPH_VERSION_MAJOR 0" + ), + file.path(base_path, "src", "vendor", "igraph_version.h") + ) + writeLines( + c( + "# igraph C library changelog", + "## [master]", + sprintf("## [%s] - 2025-09-19", releases) + ), + file.path(base_path, "src", "vendor", "cigraph", "CHANGELOG.md") + ) + base_path +} + +# A cache of link tables holding one for each of `releases`, +# without a download. +local_clinks_cache <- function(releases = "0.10.17", env = parent.frame()) { + withr::local_envvar( + R_USER_CACHE_DIR = withr::local_tempdir(.local_envir = env), + .local_envir = env + ) + dir.create(c_links_cache_dir(), recursive = TRUE) + for (release in releases) { + utils::write.csv( + data.frame( + method = c("igraph_degree", "igraph_vcount"), + url = sprintf( + "https://igraph.org/c/html/%s/igraph-Basic.html#%s", + release, + c("igraph_degree", "igraph_vcount") + ) + ), + file.path(c_links_cache_dir(), paste0(release, ".csv")), + row.names = FALSE + ) + } +} + +test_that("a development snapshot maps to the release of its tag", { + expect_equal(c_docs_version("0.10.17-1-g16081ce60"), "0.10.17") + expect_equal(c_docs_version("0.11.0-156-g4b67f79d4"), "0.11.0") + expect_equal(c_docs_version("1.0.0-rc.1-3-gabcdef0"), "1.0.0-rc.1") + expect_equal(c_docs_version("0.10.17-1-g16081ce60-dirty"), "0.10.17") +}) + +test_that("a release maps to itself", { + expect_equal(c_docs_version("0.10.17"), "0.10.17") + expect_equal(c_docs_version("1.0.0"), "1.0.0") + expect_equal(c_docs_version("1.0.0-rc.1"), "1.0.0-rc.1") + expect_equal(c_docs_version("1.0.0-rc1"), "1.0.0-rc1") +}) + +test_that("a version without a table is served by the newest release before it", { + releases <- c("0.10.16", "0.10.17", "1.0.1") + + expect_equal(c_links_release("0.10.17", releases), "0.10.17") + expect_equal(c_links_release("0.11.0", releases), "0.10.17") + expect_equal(c_links_release("1.0.0", releases), "0.10.17") + expect_equal(c_links_release("1.0.0-rc1", c(releases, "1.0.0")), "0.10.17") + expect_equal(c_links_release("1.0.2", c("1.0.0", "1.0.0-rc1")), "1.0.0") + expect_identical(c_links_release("0.10.15", releases), NA_character_) +}) + +test_that("the releases come from the vendored changelog", { + base_path <- local_engine("0.10.17", releases = c("0.10.17", "0.10.16")) + expect_equal(c_releases(base_path), c("0.10.17", "0.10.16")) +}) + +test_that("a release links the cached table for it", { + local_clinks_cache() + clinks <- c_links(local_engine("0.10.17")) + + expect_named(clinks, c("method", "url")) + expect_contains(clinks$method, "igraph_degree") + expect_true(all(startsWith(clinks$url, "https://igraph.org/c/html/0.10.17/"))) +}) + +test_that("a development snapshot links the manual of its tag, quietly", { + local_clinks_cache() + expect_silent(clinks <- c_links(local_engine("0.10.17-1-g16081ce60"))) + expect_identical(clinks, c_links(local_engine("0.10.17"))) +}) + +test_that("a snapshot past the newest table keeps that table, and says so", { + local_clinks_cache() + expect_message( + clinks <- c_links(local_engine("0.11.0-156-g4b67f79d4")), + "linking the manual of 0.10.17" + ) + expect_identical(clinks, c_links(local_engine("0.10.17"))) +}) + +test_that("a release whose table cannot be downloaded keeps the newest one before it, with a warning", { + local_clinks_cache() + local_mocked_bindings(c_links_download = function(...) stop("offline")) + expect_warning( + clinks <- c_links(local_engine( + "99.0.0", + releases = c("99.0.0", "0.10.17") + )), + "linking the manual of 0.10.17" + ) + expect_identical(clinks, c_links(local_engine("0.10.17"))) +}) + +test_that("a version before every table is an error", { + local_clinks_cache() + local_mocked_bindings(c_links_download = function(...) stop("offline")) + expect_error( + c_links(local_engine("0.9.0", releases = "0.9.0")), + "or an earlier release" + ) +}) + +test_that("a release missing from the cache is downloaded once", { + local_clinks_cache(releases = character()) + downloaded <- character() + local_mocked_bindings(c_links_download = function(version, ...) { + downloaded <<- c(downloaded, version) + utils::write.csv( + data.frame(method = "igraph_degree", url = "u"), + file.path(c_links_cache_dir(), paste0(version, ".csv")), + row.names = FALSE + ) + }) + + c_links(local_engine("0.10.17-1-g16081ce60")) + c_links(local_engine("0.10.17")) + expect_equal(downloaded, "0.10.17") +}) + +test_that("callees are visited breadth first, by vertex index", { + # `b` is numbered before `c`, having appeared first as a caller, + # so it comes first among the callees of `a`, which calls `c` first. + graph <- call_graph( + from = c("a", "a", "b", "c", "c"), + to = c("c", "b", "d_impl", "a", "e_impl") + ) + + expect_equal(graph$vertices, c("a", "b", "c", "d_impl", "e_impl")) + expect_equal( + reachable_functions(graph, "a"), + c("a", "b", "c", "d_impl", "e_impl") + ) + expect_equal( + reachable_functions(graph, "c"), + c("c", "a", "e_impl", "b", "d_impl") + ) + expect_equal(find_impl("c", graph), c("e_impl", "d_impl")) +}) + +test_that("a function that is not defined reaches nothing", { + graph <- call_graph(from = "a", to = "b_impl") + + expect_equal(reachable_functions(graph, "z"), character()) + expect_equal(find_impl("z", graph), character()) +}) + +test_that("the walk visits functions in the order subcomponent() does", { + set.seed(20261016) + functions <- c(paste0("f", 1:30), paste0("g", 1:10, "_impl")) + from <- sample(functions[1:30], 120, replace = TRUE) + to <- sample(functions, 120, replace = TRUE) + + graph <- call_graph(from, to) + reference <- graph_from_data_frame(data.frame(from = from, to = to)) + + expect_equal(graph$vertices, V(reference)$name) + for (start in graph$vertices) { + expect_equal( + reachable_functions(graph, start), + names(subcomponent(reference, start, mode = "out")) + ) + } +}) + +test_that("the call graph comes from the function definitions under R/", { + base_path <- withr::local_tempdir() + dir.create(file.path(base_path, "R")) + writeLines( + c( + "outer <- function(x) inner(x)", + "inner <- function(x) {", + " list(degree_impl(x), vcount_impl(x))", + "}" + ), + file.path(base_path, "R", "a.R") + ) + + graph <- r_call_graph(base_path) + + expect_equal( + reachable_functions(graph, "outer"), + c("outer", "inner", "list", "degree_impl", "vcount_impl") + ) +}) + +test_that("the roclet links the C functions a topic reaches", { + local_clinks_cache() + base_path <- local_engine("0.10.17-1-g16081ce60") + writeLines( + c( + "Package: minipkg", + "Title: Test", + "Version: 0.0.1", + "Description: Test.", + "License: MIT", + "Encoding: UTF-8" + ), + file.path(base_path, "DESCRIPTION") + ) + dir.create(file.path(base_path, "R")) + writeLines( + c( + "#' Degrees", + "#'", + "#' @param graph A graph.", + "#' @returns The degrees.", + "#' @export", + "my_degree <- function(graph) {", + " count_degrees(graph)", + "}", + "", + "count_degrees <- function(graph) {", + " degree_impl(graph)", + "}", + "", + "degree_impl <- function(graph) NULL" + ), + file.path(base_path, "R", "degree.R") + ) + + # `docs_rd` is found on the search path, where the package under test is + # attached, whatever its flavored name. + suppressMessages(roxygen2::roxygenize( + base_path, + roclets = "docs_rd", + load_code = "source" + )) + + rd <- readLines(file.path(base_path, "man", "my_degree.Rd")) + expect_contains(rd, "\\section{Related documentation in the C library}{") + expect_contains( + rd, + "\\href{https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_degree}{\\code{degree()}}" + ) +}) diff --git a/tools/igraph.r2cdocs/.Rbuildignore b/tools/igraph.r2cdocs/.Rbuildignore deleted file mode 100644 index a0e461ff19a..00000000000 --- a/tools/igraph.r2cdocs/.Rbuildignore +++ /dev/null @@ -1,5 +0,0 @@ -^igraph\.r2cdocs\.Rproj$ -^\.Rproj\.user$ -^data-raw$ -^LICENSE\.md$ -^\.gitrepo$ diff --git a/tools/igraph.r2cdocs/.gitignore b/tools/igraph.r2cdocs/.gitignore deleted file mode 100644 index 7c794aae41a..00000000000 --- a/tools/igraph.r2cdocs/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.Rproj.user -.Rhistory -.Rdata -.httr-oauth -.DS_Store -.quarto diff --git a/tools/igraph.r2cdocs/.gitrepo b/tools/igraph.r2cdocs/.gitrepo deleted file mode 100644 index dd894c0319d..00000000000 --- a/tools/igraph.r2cdocs/.gitrepo +++ /dev/null @@ -1,12 +0,0 @@ -; DO NOT EDIT (unless you know what you are doing) -; -; This subdirectory is a git "subrepo", and this file is maintained by the -; git-subrepo command. See https://github.com/ingydotnet/git-subrepo#readme -; -[subrepo] - remote = https://github.com/igraph/igraph.r2cdocs - branch = main - commit = 4b208c6598df86123534923c0404942cb033e50d - parent = ed9d226cb279ab64aaa561b26af0021b1ece2932 - method = merge - cmdver = 0.4.9 diff --git a/tools/igraph.r2cdocs/DESCRIPTION b/tools/igraph.r2cdocs/DESCRIPTION deleted file mode 100644 index 6e83bab5daf..00000000000 --- a/tools/igraph.r2cdocs/DESCRIPTION +++ /dev/null @@ -1,27 +0,0 @@ -Package: igraph.r2cdocs -Title: Link C docs for the igraph package -Version: 0.0.0.9001 -Authors@R: - person("Maëlle", "Salmon", , "msmaellesalmon@gmail.com", role = c("cre", "aut"), - comment = c(ORCID = "0000-0002-2815-0399")) -Description: Holds infrastructure for a special roclet that lets us link to C - docs from R manual pages. -License: MIT + file LICENSE -Encoding: UTF-8 -Roxygen: list(markdown = TRUE) -RoxygenNote: 7.3.3.9000 -Depends: - R (>= 4.1.0) -URL: https://github.com/igraph/igraph.r2cdocs -BugReports: https://github.com/igraph/igraph.r2cdocs/issues -Imports: - cli, - rlang, - roxygen2, - treesitter, - treesitter.r, - utils -Suggests: - testthat (>= 3.0.0), - withr -Config/testthat/edition: 3 diff --git a/tools/igraph.r2cdocs/LICENSE b/tools/igraph.r2cdocs/LICENSE deleted file mode 100644 index 73002b9bc02..00000000000 --- a/tools/igraph.r2cdocs/LICENSE +++ /dev/null @@ -1,2 +0,0 @@ -YEAR: 2024 -COPYRIGHT HOLDER: igraph.r2cdocs authors diff --git a/tools/igraph.r2cdocs/LICENSE.md b/tools/igraph.r2cdocs/LICENSE.md deleted file mode 100644 index 5094898e129..00000000000 --- a/tools/igraph.r2cdocs/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# MIT License - -Copyright (c) 2024 igraph.r2cdocs authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/tools/igraph.r2cdocs/NAMESPACE b/tools/igraph.r2cdocs/NAMESPACE deleted file mode 100644 index 9b9644df677..00000000000 --- a/tools/igraph.r2cdocs/NAMESPACE +++ /dev/null @@ -1,9 +0,0 @@ -# Generated by roxygen2: do not edit by hand - -S3method(roclet_output,roclet_docs_rd) -S3method(roclet_process,roclet_docs_rd) -export(docs_rd) -import(rlang) -importFrom(roxygen2,roclet) -importFrom(roxygen2,roclet_output) -importFrom(roxygen2,roclet_process) diff --git a/tools/igraph.r2cdocs/R/igraph.r2cdocs-package.R b/tools/igraph.r2cdocs/R/igraph.r2cdocs-package.R deleted file mode 100644 index d248733b2d1..00000000000 --- a/tools/igraph.r2cdocs/R/igraph.r2cdocs-package.R +++ /dev/null @@ -1,7 +0,0 @@ -#' @keywords internal -"_PACKAGE" - -## usethis namespace: start -#' @import rlang -## usethis namespace: end -NULL diff --git a/tools/igraph.r2cdocs/R/import-standalone-purrr.R b/tools/igraph.r2cdocs/R/import-standalone-purrr.R deleted file mode 100644 index 5a21be5a209..00000000000 --- a/tools/igraph.r2cdocs/R/import-standalone-purrr.R +++ /dev/null @@ -1,241 +0,0 @@ -# Standalone file: do not edit by hand -# Source: https://github.com/r-lib/rlang/blob/HEAD/R/standalone-purrr.R -# Generated by: usethis::use_standalone("r-lib/rlang", "purrr") -# ---------------------------------------------------------------------- -# -# --- -# repo: r-lib/rlang -# file: standalone-purrr.R -# last-updated: 2023-02-23 -# license: https://unlicense.org -# imports: rlang -# --- -# -# This file provides a minimal shim to provide a purrr-like API on top of -# base R functions. They are not drop-in replacements but allow a similar style -# of programming. -# -# ## Changelog -# -# 2023-02-23: -# * Added `list_c()` -# -# 2022-06-07: -# * `transpose()` is now more consistent with purrr when inner names -# are not congruent (#1346). -# -# 2021-12-15: -# * `transpose()` now supports empty lists. -# -# 2021-05-21: -# * Fixed "object `x` not found" error in `imap()` (@mgirlich) -# -# 2020-04-14: -# * Removed `pluck*()` functions -# * Removed `*_cpl()` functions -# * Used `as_function()` to allow use of `~` -# * Used `.` prefix for helpers -# -# nocov start - -map <- function(.x, .f, ...) { - .f <- as_function(.f, env = global_env()) - lapply(.x, .f, ...) -} -walk <- function(.x, .f, ...) { - map(.x, .f, ...) - invisible(.x) -} - -map_lgl <- function(.x, .f, ...) { - .rlang_purrr_map_mold(.x, .f, logical(1), ...) -} -map_int <- function(.x, .f, ...) { - .rlang_purrr_map_mold(.x, .f, integer(1), ...) -} -map_dbl <- function(.x, .f, ...) { - .rlang_purrr_map_mold(.x, .f, double(1), ...) -} -map_chr <- function(.x, .f, ...) { - .rlang_purrr_map_mold(.x, .f, character(1), ...) -} -.rlang_purrr_map_mold <- function(.x, .f, .mold, ...) { - .f <- as_function(.f, env = global_env()) - out <- vapply(.x, .f, .mold, ..., USE.NAMES = FALSE) - names(out) <- names(.x) - out -} - -map2 <- function(.x, .y, .f, ...) { - .f <- as_function(.f, env = global_env()) - out <- mapply(.f, .x, .y, MoreArgs = list(...), SIMPLIFY = FALSE) - if (length(out) == length(.x)) { - set_names(out, names(.x)) - } else { - set_names(out, NULL) - } -} -map2_lgl <- function(.x, .y, .f, ...) { - as.vector(map2(.x, .y, .f, ...), "logical") -} -map2_int <- function(.x, .y, .f, ...) { - as.vector(map2(.x, .y, .f, ...), "integer") -} -map2_dbl <- function(.x, .y, .f, ...) { - as.vector(map2(.x, .y, .f, ...), "double") -} -map2_chr <- function(.x, .y, .f, ...) { - as.vector(map2(.x, .y, .f, ...), "character") -} -imap <- function(.x, .f, ...) { - map2(.x, names(.x) %||% seq_along(.x), .f, ...) -} - -pmap <- function(.l, .f, ...) { - .f <- as.function(.f) - args <- .rlang_purrr_args_recycle(.l) - do.call("mapply", c( - FUN = list(quote(.f)), - args, MoreArgs = quote(list(...)), - SIMPLIFY = FALSE, USE.NAMES = FALSE - )) -} -.rlang_purrr_args_recycle <- function(args) { - lengths <- map_int(args, length) - n <- max(lengths) - - stopifnot(all(lengths == 1L | lengths == n)) - to_recycle <- lengths == 1L - args[to_recycle] <- map(args[to_recycle], function(x) rep.int(x, n)) - - args -} - -keep <- function(.x, .f, ...) { - .x[.rlang_purrr_probe(.x, .f, ...)] -} -discard <- function(.x, .p, ...) { - sel <- .rlang_purrr_probe(.x, .p, ...) - .x[is.na(sel) | !sel] -} -map_if <- function(.x, .p, .f, ...) { - matches <- .rlang_purrr_probe(.x, .p) - .x[matches] <- map(.x[matches], .f, ...) - .x -} -.rlang_purrr_probe <- function(.x, .p, ...) { - if (is_logical(.p)) { - stopifnot(length(.p) == length(.x)) - .p - } else { - .p <- as_function(.p, env = global_env()) - map_lgl(.x, .p, ...) - } -} - -compact <- function(.x) { - Filter(length, .x) -} - -transpose <- function(.l) { - if (!length(.l)) { - return(.l) - } - - inner_names <- names(.l[[1]]) - - if (is.null(inner_names)) { - fields <- seq_along(.l[[1]]) - } else { - fields <- set_names(inner_names) - .l <- map(.l, function(x) { - if (is.null(names(x))) { - set_names(x, inner_names) - } else { - x - } - }) - } - - # This way missing fields are subsetted as `NULL` instead of causing - # an error - .l <- map(.l, as.list) - - map(fields, function(i) { - map(.l, .subset2, i) - }) -} - -every <- function(.x, .p, ...) { - .p <- as_function(.p, env = global_env()) - - for (i in seq_along(.x)) { - if (!rlang::is_true(.p(.x[[i]], ...))) return(FALSE) - } - TRUE -} -some <- function(.x, .p, ...) { - .p <- as_function(.p, env = global_env()) - - for (i in seq_along(.x)) { - if (rlang::is_true(.p(.x[[i]], ...))) return(TRUE) - } - FALSE -} -negate <- function(.p) { - .p <- as_function(.p, env = global_env()) - function(...) !.p(...) -} - -reduce <- function(.x, .f, ..., .init) { - f <- function(x, y) .f(x, y, ...) - Reduce(f, .x, init = .init) -} -reduce_right <- function(.x, .f, ..., .init) { - f <- function(x, y) .f(y, x, ...) - Reduce(f, .x, init = .init, right = TRUE) -} -accumulate <- function(.x, .f, ..., .init) { - f <- function(x, y) .f(x, y, ...) - Reduce(f, .x, init = .init, accumulate = TRUE) -} -accumulate_right <- function(.x, .f, ..., .init) { - f <- function(x, y) .f(y, x, ...) - Reduce(f, .x, init = .init, right = TRUE, accumulate = TRUE) -} - -detect <- function(.x, .f, ..., .right = FALSE, .p = is_true) { - .p <- as_function(.p, env = global_env()) - .f <- as_function(.f, env = global_env()) - - for (i in .rlang_purrr_index(.x, .right)) { - if (.p(.f(.x[[i]], ...))) { - return(.x[[i]]) - } - } - NULL -} -detect_index <- function(.x, .f, ..., .right = FALSE, .p = is_true) { - .p <- as_function(.p, env = global_env()) - .f <- as_function(.f, env = global_env()) - - for (i in .rlang_purrr_index(.x, .right)) { - if (.p(.f(.x[[i]], ...))) { - return(i) - } - } - 0L -} -.rlang_purrr_index <- function(x, right = FALSE) { - idx <- seq_along(x) - if (right) { - idx <- rev(idx) - } - idx -} - -list_c <- function(x) { - inject(c(!!!x)) -} - -# nocov end diff --git a/tools/igraph.r2cdocs/README.md b/tools/igraph.r2cdocs/README.md deleted file mode 100644 index 777873dcfc8..00000000000 --- a/tools/igraph.r2cdocs/README.md +++ /dev/null @@ -1,21 +0,0 @@ - -# igraph.r2cdocs - - - - -The goal of igraph.r2cdocs is to help us link C docs from the manual pages of -the R functions that calls them. - -This package will therefore only be useful for developers of the R igraph package. - -Context: https://github.com/igraph/rigraph/issues/1317 - -## Installation - -You can install the development version of igraph.r2cdocs like so: - -``` r -pak::pak("igraph/igraph.r2cdocs") -``` - diff --git a/tools/igraph.r2cdocs/data-raw/clinks.R b/tools/igraph.r2cdocs/data-raw/clinks.R deleted file mode 100644 index 5bd1d10fe64..00000000000 --- a/tools/igraph.r2cdocs/data-raw/clinks.R +++ /dev/null @@ -1,45 +0,0 @@ -# Writes the link table for one release of the C manual -# to inst/clinks/.csv, where the roclet looks for it. -# -# The table comes from the manual's index, -# by default the one igraph.org publishes for that release. -# The release tarball of the C library carries the same file -# as doc/html/ix01.html, which serves where igraph.org cannot be reached. -# -# Usage, from the root of this package: -# -# Rscript data-raw/clinks.R [] - -args <- commandArgs(trailingOnly = TRUE) -if (!length(args) %in% 1:2) { - stop( - "Usage: Rscript data-raw/clinks.R []" - ) -} - -version <- args[[1]] -index_url <- if (length(args) == 2) { - args[[2]] -} else { - sprintf("https://igraph.org/c/html/%s/ix01.html", version) -} - -index <- xml2::read_html(index_url) -entries <- xml2::xml_find_all(index, ".//dt") -href <- vapply( - entries, - \(dt) xml2::xml_attr(xml2::xml_child(dt), "href"), - character(1) -) - -clinks <- data.frame( - method = sub(".*#", "", href), - url = sprintf("https://igraph.org/c/html/%s/%s", version, href) -) - -dir.create(file.path("inst", "clinks"), recursive = TRUE, showWarnings = FALSE) -utils::write.csv( - clinks, - file.path("inst", "clinks", paste0(version, ".csv")), - row.names = FALSE -) diff --git a/tools/igraph.r2cdocs/igraph.r2cdocs.Rproj b/tools/igraph.r2cdocs/igraph.r2cdocs.Rproj deleted file mode 100644 index 69fafd4b6dd..00000000000 --- a/tools/igraph.r2cdocs/igraph.r2cdocs.Rproj +++ /dev/null @@ -1,22 +0,0 @@ -Version: 1.0 - -RestoreWorkspace: No -SaveWorkspace: No -AlwaysSaveHistory: Default - -EnableCodeIndexing: Yes -UseSpacesForTab: Yes -NumSpacesForTab: 2 -Encoding: UTF-8 - -RnwWeave: Sweave -LaTeX: pdfLaTeX - -AutoAppendNewline: Yes -StripTrailingWhitespace: Yes -LineEndingConversion: Posix - -BuildType: Package -PackageUseDevtools: Yes -PackageInstallArgs: --no-multiarch --with-keep.source -PackageRoxygenize: rd,collate,namespace diff --git a/tools/igraph.r2cdocs/inst/clinks/0.10.17.csv b/tools/igraph.r2cdocs/inst/clinks/0.10.17.csv deleted file mode 100644 index f313170fc2e..00000000000 --- a/tools/igraph.r2cdocs/inst/clinks/0.10.17.csv +++ /dev/null @@ -1,1194 +0,0 @@ -"method","url" -"igraph_add_edge","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_add_edge" -"igraph_add_edges","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_add_edges" -"igraph_add_vertices","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_add_vertices" -"igraph_adhesion","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_adhesion" -"igraph_adjacency","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_adjacency" -"igraph_adjacency_spectral_embedding","https://igraph.org/c/html/0.10.17/igraph-Embedding.html#igraph_adjacency_spectral_embedding" -"igraph_adjacent_triangles","https://igraph.org/c/html/0.10.17/igraph-Motifs.html#igraph_adjacent_triangles" -"igraph_adjlist","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_adjlist" -"igraph_adjlist_clear","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_adjlist_clear" -"igraph_adjlist_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_adjlist_destroy" -"igraph_adjlist_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_adjlist_get" -"igraph_adjlist_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_adjlist_init" -"igraph_adjlist_init_complementer","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_adjlist_init_complementer" -"igraph_adjlist_init_empty","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_adjlist_init_empty" -"igraph_adjlist_init_from_inclist","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_adjlist_init_from_inclist" -"igraph_adjlist_simplify","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_adjlist_simplify" -"igraph_adjlist_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_adjlist_size" -"igraph_adjlist_sort","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_adjlist_sort" -"igraph_all_minimal_st_separators","https://igraph.org/c/html/0.10.17/igraph-Separators.html#igraph_all_minimal_st_separators" -"igraph_all_st_cuts","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_all_st_cuts" -"igraph_all_st_mincuts","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_all_st_mincuts" -"igraph_almost_equals","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_almost_equals" -"igraph_are_adjacent","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_are_adjacent" -"igraph_are_connected","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_are_connected" -"igraph_arpack_function_t","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_arpack_function_t" -"igraph_arpack_options_init","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_arpack_options_init" -"igraph_arpack_options_t","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_arpack_options_t" -"igraph_arpack_rnsolve","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_arpack_rnsolve" -"igraph_arpack_rssolve","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_arpack_rssolve" -"igraph_arpack_storage_destroy","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_arpack_storage_destroy" -"igraph_arpack_storage_init","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_arpack_storage_init" -"igraph_arpack_storage_t","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_arpack_storage_t" -"igraph_arpack_unpack_complex","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_arpack_unpack_complex" -"igraph_articulation_points","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_articulation_points" -"IGRAPH_ASSERT","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_ASSERT" -"igraph_assortativity","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_assortativity" -"igraph_assortativity_degree","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_assortativity_degree" -"igraph_assortativity_nominal","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_assortativity_nominal" -"igraph_astar_heuristic_func_t","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_astar_heuristic_func_t" -"igraph_asymmetric_preference_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_asymmetric_preference_game" -"igraph_atlas","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_atlas" -"igraph_attribute_combination","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_attribute_combination" -"igraph_attribute_combination_add","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_attribute_combination_add" -"igraph_attribute_combination_destroy","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_attribute_combination_destroy" -"igraph_attribute_combination_init","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_attribute_combination_init" -"igraph_attribute_combination_remove","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_attribute_combination_remove" -"igraph_attribute_combination_type_t","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_attribute_combination_type_t" -"igraph_attribute_table_t","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_attribute_table_t" -"igraph_attribute_type_t","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_attribute_type_t" -"igraph_authority_score","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_authority_score" -"igraph_automorphisms","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_automorphisms" -"igraph_automorphism_group","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_automorphism_group" -"igraph_average_local_efficiency","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_average_local_efficiency" -"igraph_average_path_length","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_average_path_length" -"igraph_average_path_length_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_average_path_length_dijkstra" -"igraph_avg_nearest_neighbor_degree","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_avg_nearest_neighbor_degree" -"igraph_barabasi_aging_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_barabasi_aging_game" -"igraph_barabasi_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_barabasi_game" -"igraph_betweenness","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_betweenness" -"igraph_betweenness_cutoff","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_betweenness_cutoff" -"igraph_betweenness_subset","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_betweenness_subset" -"igraph_bfs","https://igraph.org/c/html/0.10.17/igraph-Visitors.html#igraph_bfs" -"igraph_bfshandler_t","https://igraph.org/c/html/0.10.17/igraph-Visitors.html#igraph_bfshandler_t" -"igraph_bfs_simple","https://igraph.org/c/html/0.10.17/igraph-Visitors.html#igraph_bfs_simple" -"igraph_biadjacency","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_biadjacency" -"igraph_bibcoupling","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_bibcoupling" -"igraph_biconnected_components","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_biconnected_components" -"igraph_bipartite_game","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_bipartite_game" -"igraph_bipartite_game_gnm","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_bipartite_game_gnm" -"igraph_bipartite_game_gnp","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_bipartite_game_gnp" -"igraph_bipartite_projection","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_bipartite_projection" -"igraph_bipartite_projection_size","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_bipartite_projection_size" -"igraph_bitset_and","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_and" -"igraph_bitset_capacity","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_capacity" -"igraph_bitset_countl_one","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_countl_one" -"igraph_bitset_countl_zero","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_countl_zero" -"igraph_bitset_countr_one","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_countr_one" -"igraph_bitset_countr_zero","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_countr_zero" -"igraph_bitset_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_destroy" -"igraph_bitset_fill","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_fill" -"igraph_bitset_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_init" -"igraph_bitset_init_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_init_copy" -"igraph_bitset_is_all_one","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_is_all_one" -"igraph_bitset_is_all_zero","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_is_all_zero" -"igraph_bitset_is_any_one","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_is_any_one" -"igraph_bitset_is_any_zero","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_is_any_zero" -"igraph_bitset_not","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_not" -"igraph_bitset_null","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_null" -"igraph_bitset_or","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_or" -"igraph_bitset_popcount","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_popcount" -"igraph_bitset_reserve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_reserve" -"igraph_bitset_resize","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_resize" -"igraph_bitset_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_size" -"igraph_bitset_update","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_update" -"igraph_bitset_xor","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_bitset_xor" -"IGRAPH_BIT_CLEAR","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#IGRAPH_BIT_CLEAR" -"IGRAPH_BIT_MASK","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#IGRAPH_BIT_MASK" -"IGRAPH_BIT_NSLOTS","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#IGRAPH_BIT_NSLOTS" -"IGRAPH_BIT_SET","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#IGRAPH_BIT_SET" -"IGRAPH_BIT_SLOT","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#IGRAPH_BIT_SLOT" -"IGRAPH_BIT_TEST","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#IGRAPH_BIT_TEST" -"igraph_blas_ddot","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_blas_ddot" -"igraph_blas_dgemm","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_blas_dgemm" -"igraph_blas_dgemv","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_blas_dgemv" -"igraph_blas_dgemv_array","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_blas_dgemv_array" -"igraph_blas_dnrm2","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_blas_dnrm2" -"igraph_bliss_info_t","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_bliss_info_t" -"igraph_bliss_sh_t","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_bliss_sh_t" -"igraph_bond_percolation","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_bond_percolation" -"igraph_bridges","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_bridges" -"igraph_callaway_traits_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_callaway_traits_game" -"igraph_calloc","https://igraph.org/c/html/0.10.17/igraph-Memory.html#igraph_calloc" -"igraph_canonical_permutation","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_canonical_permutation" -"igraph_cattribute_EAB","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EAB" -"igraph_cattribute_EABV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EABV" -"igraph_cattribute_EAB_set","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EAB_set" -"igraph_cattribute_EAB_setv","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EAB_setv" -"igraph_cattribute_EAN","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EAN" -"igraph_cattribute_EANV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EANV" -"igraph_cattribute_EAN_set","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EAN_set" -"igraph_cattribute_EAN_setv","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EAN_setv" -"igraph_cattribute_EAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EAS" -"igraph_cattribute_EASV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EASV" -"igraph_cattribute_EAS_set","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EAS_set" -"igraph_cattribute_EAS_setv","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_EAS_setv" -"igraph_cattribute_GAB","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_GAB" -"igraph_cattribute_GAB_set","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_GAB_set" -"igraph_cattribute_GAN","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_GAN" -"igraph_cattribute_GAN_set","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_GAN_set" -"igraph_cattribute_GAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_GAS" -"igraph_cattribute_GAS_set","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_GAS_set" -"igraph_cattribute_has_attr","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_has_attr" -"igraph_cattribute_list","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_list" -"igraph_cattribute_remove_all","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_remove_all" -"igraph_cattribute_remove_e","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_remove_e" -"igraph_cattribute_remove_g","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_remove_g" -"igraph_cattribute_remove_v","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_remove_v" -"igraph_cattribute_VAB","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VAB" -"igraph_cattribute_VABV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VABV" -"igraph_cattribute_VAB_set","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VAB_set" -"igraph_cattribute_VAB_setv","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VAB_setv" -"igraph_cattribute_VAN","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VAN" -"igraph_cattribute_VANV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VANV" -"igraph_cattribute_VAN_set","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VAN_set" -"igraph_cattribute_VAN_setv","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VAN_setv" -"igraph_cattribute_VAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VAS" -"igraph_cattribute_VASV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VASV" -"igraph_cattribute_VAS_set","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VAS_set" -"igraph_cattribute_VAS_setv","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_cattribute_VAS_setv" -"igraph_centralization","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_centralization" -"igraph_centralization_betweenness","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_centralization_betweenness" -"igraph_centralization_betweenness_tmax","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_centralization_betweenness_tmax" -"igraph_centralization_closeness","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_centralization_closeness" -"igraph_centralization_closeness_tmax","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_centralization_closeness_tmax" -"igraph_centralization_degree","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_centralization_degree" -"igraph_centralization_degree_tmax","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_centralization_degree_tmax" -"igraph_centralization_eigenvector_centrality","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_centralization_eigenvector_centrality" -"igraph_centralization_eigenvector_centrality_tmax","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_centralization_eigenvector_centrality_tmax" -"IGRAPH_CHECK","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_CHECK" -"IGRAPH_CHECK_CALLBACK","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_CHECK_CALLBACK" -"igraph_chung_lu_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_chung_lu_game" -"igraph_circulant","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_circulant" -"igraph_cited_type_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_cited_type_game" -"igraph_citing_cited_type_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_citing_cited_type_game" -"igraph_cliques","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_cliques" -"igraph_cliques_callback","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_cliques_callback" -"igraph_clique_handler_t","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_clique_handler_t" -"igraph_clique_number","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_clique_number" -"igraph_clique_size_hist","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_clique_size_hist" -"igraph_closeness","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_closeness" -"igraph_closeness_cutoff","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_closeness_cutoff" -"igraph_clusters","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_clusters" -"igraph_cmp_epsilon","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_cmp_epsilon" -"igraph_cocitation","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_cocitation" -"igraph_cohesion","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_cohesion" -"igraph_cohesive_blocks","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_cohesive_blocks" -"igraph_coloring_greedy_t","https://igraph.org/c/html/0.10.17/igraph-Coloring.html#igraph_coloring_greedy_t" -"igraph_community_eb_get_merges","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_eb_get_merges" -"igraph_community_edge_betweenness","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_edge_betweenness" -"igraph_community_fastgreedy","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_fastgreedy" -"igraph_community_fluid_communities","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_fluid_communities" -"igraph_community_infomap","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_infomap" -"igraph_community_label_propagation","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_label_propagation" -"igraph_community_leading_eigenvector","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_leading_eigenvector" -"igraph_community_leading_eigenvector_callback_t","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_leading_eigenvector_callback_t" -"igraph_community_leiden","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_leiden" -"igraph_community_multilevel","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_multilevel" -"igraph_community_optimal_modularity","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_optimal_modularity" -"igraph_community_spinglass","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_spinglass" -"igraph_community_spinglass_single","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_spinglass_single" -"igraph_community_to_membership","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_to_membership" -"igraph_community_voronoi","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_voronoi" -"igraph_community_walktrap","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_community_walktrap" -"igraph_compare_communities","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_compare_communities" -"igraph_complementer","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_complementer" -"igraph_complex_almost_equals","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_complex_almost_equals" -"igraph_compose","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_compose" -"igraph_connected_components","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_connected_components" -"igraph_connect_neighborhood","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_connect_neighborhood" -"igraph_constraint","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_constraint" -"igraph_contract_vertices","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_contract_vertices" -"igraph_convergence_degree","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_convergence_degree" -"igraph_convex_hull","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_convex_hull" -"igraph_convex_hull_2d","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_convex_hull_2d" -"igraph_copy","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_copy" -"igraph_coreness","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_coreness" -"igraph_correlated_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_correlated_game" -"igraph_correlated_pair_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_correlated_pair_game" -"igraph_count_adjacent_triangles","https://igraph.org/c/html/0.10.17/igraph-Motifs.html#igraph_count_adjacent_triangles" -"igraph_count_automorphisms","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_count_automorphisms" -"igraph_count_isomorphisms_vf2","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_count_isomorphisms_vf2" -"igraph_count_loops","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_count_loops" -"igraph_count_multiple","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_count_multiple" -"igraph_count_multiple_1","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_count_multiple_1" -"igraph_count_reachable","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_count_reachable" -"igraph_count_subisomorphisms_vf2","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_count_subisomorphisms_vf2" -"igraph_count_triangles","https://igraph.org/c/html/0.10.17/igraph-Motifs.html#igraph_count_triangles" -"igraph_create","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_create" -"igraph_create_bipartite","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_create_bipartite" -"igraph_cycle_graph","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_cycle_graph" -"igraph_cycle_handler_t","https://igraph.org/c/html/0.10.17/igraph-Cycles.html#igraph_cycle_handler_t" -"igraph_decompose","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_decompose" -"igraph_decompose_destroy","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_decompose_destroy" -"igraph_degree","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_degree" -"igraph_degree_1","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_degree_1" -"igraph_degree_correlation_vector","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_degree_correlation_vector" -"igraph_degree_sequence_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_degree_sequence_game" -"DELALL","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#DELALL" -"DELEA","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#DELEA" -"DELEAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#DELEAS" -"igraph_delete_edges","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_delete_edges" -"igraph_delete_vertices","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_delete_vertices" -"igraph_delete_vertices_idx","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_delete_vertices_idx" -"DELGA","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#DELGA" -"DELGAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#DELGAS" -"DELVA","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#DELVA" -"DELVAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#DELVAS" -"igraph_density","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_density" -"igraph_destroy","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_destroy" -"igraph_deterministic_optimal_imitation","https://igraph.org/c/html/0.10.17/igraph-Spatial-Games.html#igraph_deterministic_optimal_imitation" -"igraph_de_bruijn","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_de_bruijn" -"igraph_dfs","https://igraph.org/c/html/0.10.17/igraph-Visitors.html#igraph_dfs" -"igraph_dfshandler_t","https://igraph.org/c/html/0.10.17/igraph-Visitors.html#igraph_dfshandler_t" -"igraph_diameter","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_diameter" -"igraph_diameter_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_diameter_dijkstra" -"igraph_difference","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_difference" -"igraph_dim_select","https://igraph.org/c/html/0.10.17/igraph-Embedding.html#igraph_dim_select" -"igraph_disjoint_union","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_disjoint_union" -"igraph_disjoint_union_many","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_disjoint_union_many" -"igraph_distances","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_distances" -"igraph_distances_bellman_ford","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_distances_bellman_ford" -"igraph_distances_cutoff","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_distances_cutoff" -"igraph_distances_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_distances_dijkstra" -"igraph_distances_dijkstra_cutoff","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_distances_dijkstra_cutoff" -"igraph_distances_floyd_warshall","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_distances_floyd_warshall" -"igraph_distances_johnson","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_distances_johnson" -"igraph_diversity","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_diversity" -"igraph_dominator_tree","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_dominator_tree" -"igraph_dot_product_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_dot_product_game" -"igraph_dqueue_back","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_back" -"igraph_dqueue_clear","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_clear" -"igraph_dqueue_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_destroy" -"igraph_dqueue_empty","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_empty" -"igraph_dqueue_full","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_full" -"igraph_dqueue_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_get" -"igraph_dqueue_head","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_head" -"igraph_dqueue_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_init" -"igraph_dqueue_pop","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_pop" -"igraph_dqueue_pop_back","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_pop_back" -"igraph_dqueue_push","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_push" -"igraph_dqueue_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_dqueue_size" -"igraph_dyad_census","https://igraph.org/c/html/0.10.17/igraph-Motifs.html#igraph_dyad_census" -"EAB","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#EAB" -"EABV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#EABV" -"EAN","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#EAN" -"EANV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#EANV" -"EAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#EAS" -"EASV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#EASV" -"igraph_ecc","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_ecc" -"igraph_eccentricity","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_eccentricity" -"igraph_eccentricity_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_eccentricity_dijkstra" -"igraph_ecount","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_ecount" -"IGRAPH_ECOUNT_MAX","https://igraph.org/c/html/0.10.17/igraph-Basic.html#IGRAPH_ECOUNT_MAX" -"igraph_edge","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_edge" -"igraph_edgelist_percolation","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_edgelist_percolation" -"igraph_edges","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_edges" -"igraph_edge_betweenness","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_edge_betweenness" -"igraph_edge_betweenness_cutoff","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_edge_betweenness_cutoff" -"igraph_edge_betweenness_subset","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_edge_betweenness_subset" -"igraph_edge_connectivity","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_edge_connectivity" -"igraph_edge_disjoint_paths","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_edge_disjoint_paths" -"igraph_eigenvector_centrality","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_eigenvector_centrality" -"igraph_eit_create","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_eit_create" -"igraph_eit_destroy","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_eit_destroy" -"IGRAPH_EIT_END","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#IGRAPH_EIT_END" -"IGRAPH_EIT_GET","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#IGRAPH_EIT_GET" -"IGRAPH_EIT_NEXT","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#IGRAPH_EIT_NEXT" -"IGRAPH_EIT_RESET","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#IGRAPH_EIT_RESET" -"IGRAPH_EIT_SIZE","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#IGRAPH_EIT_SIZE" -"igraph_empty","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_empty" -"igraph_empty_attrs","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_empty_attrs" -"igraph_enter_safelocale","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_enter_safelocale" -"igraph_erdos_renyi_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_erdos_renyi_game" -"igraph_erdos_renyi_game_gnm","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_erdos_renyi_game_gnm" -"igraph_erdos_renyi_game_gnp","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_erdos_renyi_game_gnp" -"IGRAPH_ERROR","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_ERROR" -"igraph_error","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_error" -"IGRAPH_ERRORF","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_ERRORF" -"igraph_errorf","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_errorf" -"igraph_error_handler_abort","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_error_handler_abort" -"igraph_error_handler_ignore","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_error_handler_ignore" -"igraph_error_handler_printignore","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_error_handler_printignore" -"igraph_error_handler_t","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_error_handler_t" -"igraph_error_t","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_error_t" -"igraph_error_type_t","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_error_type_t" -"igraph_ess_1","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_ess_1" -"igraph_ess_all","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_ess_all" -"igraph_ess_none","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_ess_none" -"igraph_ess_range","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_ess_range" -"igraph_ess_seq","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_ess_seq" -"igraph_ess_vector","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_ess_vector" -"igraph_establishment_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_establishment_game" -"igraph_es_1","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_1" -"igraph_es_all","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_all" -"igraph_es_all_between","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_all_between" -"igraph_es_as_vector","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_as_vector" -"igraph_es_copy","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_copy" -"igraph_es_destroy","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_destroy" -"igraph_es_incident","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_incident" -"igraph_es_is_all","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_is_all" -"igraph_es_none","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_none" -"igraph_es_pairs","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_pairs" -"igraph_es_pairs_small","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_pairs_small" -"igraph_es_path","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_path" -"igraph_es_range","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_range" -"igraph_es_seq","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_seq" -"igraph_es_size","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_size" -"igraph_es_type","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_type" -"igraph_es_vector","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_vector" -"igraph_es_vector_copy","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_es_vector_copy" -"igraph_eulerian_cycle","https://igraph.org/c/html/0.10.17/igraph-Cycles.html#igraph_eulerian_cycle" -"igraph_eulerian_path","https://igraph.org/c/html/0.10.17/igraph-Cycles.html#igraph_eulerian_path" -"igraph_even_tarjan_reduction","https://igraph.org/c/html/0.10.17/igraph-Separators.html#igraph_even_tarjan_reduction" -"igraph_exit_safelocale","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_exit_safelocale" -"igraph_expand_path_to_pairs","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_expand_path_to_pairs" -"igraph_extended_chordal_ring","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_extended_chordal_ring" -"igraph_famous","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_famous" -"IGRAPH_FATAL","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_FATAL" -"igraph_fatal","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_fatal" -"IGRAPH_FATALF","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_FATALF" -"igraph_fatalf","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_fatalf" -"igraph_fatal_handler_abort","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_fatal_handler_abort" -"igraph_fatal_handler_t","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_fatal_handler_t" -"igraph_feedback_arc_set","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_feedback_arc_set" -"igraph_feedback_vertex_set","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_feedback_vertex_set" -"IGRAPH_FINALLY","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_FINALLY" -"IGRAPH_FINALLY_CLEAN","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_FINALLY_CLEAN" -"IGRAPH_FINALLY_FREE","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_FINALLY_FREE" -"igraph_find_cycle","https://igraph.org/c/html/0.10.17/igraph-Cycles.html#igraph_find_cycle" -"igraph_forest_fire_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_forest_fire_game" -"igraph_free","https://igraph.org/c/html/0.10.17/igraph-Memory.html#igraph_free" -"IGRAPH_FROM","https://igraph.org/c/html/0.10.17/igraph-Basic.html#IGRAPH_FROM" -"igraph_from_hrg_dendrogram","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_from_hrg_dendrogram" -"igraph_from_prufer","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_from_prufer" -"igraph_full","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_full" -"igraph_full_bipartite","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_full_bipartite" -"igraph_full_citation","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_full_citation" -"igraph_full_multipartite","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_full_multipartite" -"igraph_fundamental_cycles","https://igraph.org/c/html/0.10.17/igraph-Cycles.html#igraph_fundamental_cycles" -"GAB","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#GAB" -"GAN","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#GAN" -"GAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#GAS" -"igraph_generalized_petersen","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_generalized_petersen" -"igraph_get_adjacency","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_adjacency" -"igraph_get_adjacency_sparse","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_adjacency_sparse" -"igraph_get_all_eids_between","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_get_all_eids_between" -"igraph_get_all_shortest_paths","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_all_shortest_paths" -"igraph_get_all_shortest_paths_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_all_shortest_paths_dijkstra" -"igraph_get_all_simple_paths","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_all_simple_paths" -"igraph_get_biadjacency","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_get_biadjacency" -"igraph_get_edgelist","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_edgelist" -"igraph_get_eid","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_get_eid" -"igraph_get_eids","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_get_eids" -"igraph_get_incidence","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_get_incidence" -"igraph_get_isomorphisms_vf2","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_get_isomorphisms_vf2" -"igraph_get_isomorphisms_vf2_callback","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_get_isomorphisms_vf2_callback" -"igraph_get_k_shortest_paths","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_k_shortest_paths" -"igraph_get_laplacian","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_laplacian" -"igraph_get_laplacian_sparse","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_laplacian_sparse" -"igraph_get_shortest_path","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_shortest_path" -"igraph_get_shortest_paths","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_shortest_paths" -"igraph_get_shortest_paths_bellman_ford","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_shortest_paths_bellman_ford" -"igraph_get_shortest_paths_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_shortest_paths_dijkstra" -"igraph_get_shortest_path_astar","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_shortest_path_astar" -"igraph_get_shortest_path_bellman_ford","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_shortest_path_bellman_ford" -"igraph_get_shortest_path_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_shortest_path_dijkstra" -"igraph_get_sparsemat","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_sparsemat" -"igraph_get_stochastic","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_stochastic" -"igraph_get_stochastic_sparse","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_stochastic_sparse" -"igraph_get_stochastic_sparsemat","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_stochastic_sparsemat" -"igraph_get_subisomorphisms_vf2","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_get_subisomorphisms_vf2" -"igraph_get_subisomorphisms_vf2_callback","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_get_subisomorphisms_vf2_callback" -"igraph_get_widest_path","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_widest_path" -"igraph_get_widest_paths","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_get_widest_paths" -"igraph_girth","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_girth" -"igraph_global_efficiency","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_global_efficiency" -"igraph_gomory_hu_tree","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_gomory_hu_tree" -"igraph_graphlets","https://igraph.org/c/html/0.10.17/igraph-Graphlets.html#igraph_graphlets" -"igraph_graphlets_candidate_basis","https://igraph.org/c/html/0.10.17/igraph-Graphlets.html#igraph_graphlets_candidate_basis" -"igraph_graphlets_project","https://igraph.org/c/html/0.10.17/igraph-Graphlets.html#igraph_graphlets_project" -"igraph_graph_center","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_graph_center" -"igraph_graph_center_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_graph_center_dijkstra" -"igraph_graph_count","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_graph_count" -"igraph_graph_power","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_graph_power" -"igraph_grg_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_grg_game" -"igraph_growing_random_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_growing_random_game" -"igraph_harmonic_centrality","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_harmonic_centrality" -"igraph_harmonic_centrality_cutoff","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_harmonic_centrality_cutoff" -"igraph_has_loop","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_has_loop" -"igraph_has_multiple","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_has_multiple" -"igraph_has_mutual","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_has_mutual" -"igraph_heap_clear","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_heap_clear" -"igraph_heap_delete_top","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_heap_delete_top" -"igraph_heap_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_heap_destroy" -"igraph_heap_empty","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_heap_empty" -"igraph_heap_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_heap_init" -"igraph_heap_init_array","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_heap_init_array" -"igraph_heap_push","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_heap_push" -"igraph_heap_reserve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_heap_reserve" -"igraph_heap_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_heap_size" -"igraph_heap_top","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_heap_top" -"igraph_hexagonal_lattice","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_hexagonal_lattice" -"igraph_hrg_consensus","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_consensus" -"igraph_hrg_create","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_create" -"igraph_hrg_dendrogram","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_dendrogram" -"igraph_hrg_destroy","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_destroy" -"igraph_hrg_fit","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_fit" -"igraph_hrg_game","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_game" -"igraph_hrg_init","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_init" -"igraph_hrg_predict","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_predict" -"igraph_hrg_resize","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_resize" -"igraph_hrg_sample","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_sample" -"igraph_hrg_size","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_size" -"igraph_hrg_t","https://igraph.org/c/html/0.10.17/igraph-HRG.html#igraph_hrg_t" -"igraph_hsbm_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_hsbm_game" -"igraph_hsbm_list_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_hsbm_list_game" -"igraph_hub_and_authority_scores","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_hub_and_authority_scores" -"igraph_hub_score","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_hub_score" -"igraph_hypercube","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_hypercube" -"basic-data-types","https://igraph.org/c/html/0.10.17/igraph-Basic.html#basic-data-types" -"basic-data-types","https://igraph.org/c/html/0.10.17/igraph-Basic.html#basic-data-types" -"basic-data-types","https://igraph.org/c/html/0.10.17/igraph-Basic.html#basic-data-types" -"basic-data-types","https://igraph.org/c/html/0.10.17/igraph-Basic.html#basic-data-types" -"basic-data-types","https://igraph.org/c/html/0.10.17/igraph-Basic.html#basic-data-types" -"basic-data-types","https://igraph.org/c/html/0.10.17/igraph-Basic.html#basic-data-types" -"basic-data-types","https://igraph.org/c/html/0.10.17/igraph-Basic.html#basic-data-types" -"basic-data-types","https://igraph.org/c/html/0.10.17/igraph-Basic.html#basic-data-types" -"igraph_incidence","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_incidence" -"igraph_incident","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_incident" -"igraph_inclist_clear","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_inclist_clear" -"igraph_inclist_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_inclist_destroy" -"igraph_inclist_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_inclist_get" -"igraph_inclist_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_inclist_init" -"igraph_inclist_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_inclist_size" -"igraph_independence_number","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_independence_number" -"igraph_independent_vertex_sets","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_independent_vertex_sets" -"igraph_induced_subgraph","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_induced_subgraph" -"igraph_induced_subgraph_edges","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_induced_subgraph_edges" -"igraph_induced_subgraph_map","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_induced_subgraph_map" -"igraph_intersection","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_intersection" -"igraph_intersection_many","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_intersection_many" -"igraph_invalidate_cache","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_invalidate_cache" -"igraph_invert_permutation","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_invert_permutation" -"igraph_isoclass","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_isoclass" -"igraph_isoclass_create","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_isoclass_create" -"igraph_isoclass_subgraph","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_isoclass_subgraph" -"igraph_isocompat_t","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_isocompat_t" -"igraph_isohandler_t","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_isohandler_t" -"igraph_isomorphic","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_isomorphic" -"igraph_isomorphic_34","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_isomorphic_34" -"igraph_isomorphic_bliss","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_isomorphic_bliss" -"igraph_isomorphic_function_vf2","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_isomorphic_function_vf2" -"igraph_isomorphic_vf2","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_isomorphic_vf2" -"igraph_is_acyclic","https://igraph.org/c/html/0.10.17/igraph-Cycles.html#igraph_is_acyclic" -"igraph_is_biconnected","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_biconnected" -"igraph_is_bigraphical","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_bigraphical" -"igraph_is_bipartite","https://igraph.org/c/html/0.10.17/igraph-Bipartite.html#igraph_is_bipartite" -"igraph_is_bipartite_coloring","https://igraph.org/c/html/0.10.17/igraph-Coloring.html#igraph_is_bipartite_coloring" -"igraph_is_chordal","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_chordal" -"igraph_is_clique","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_is_clique" -"igraph_is_complete","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_is_complete" -"igraph_is_connected","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_connected" -"igraph_is_dag","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_dag" -"igraph_is_directed","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_is_directed" -"igraph_is_edge_coloring","https://igraph.org/c/html/0.10.17/igraph-Coloring.html#igraph_is_edge_coloring" -"igraph_is_eulerian","https://igraph.org/c/html/0.10.17/igraph-Cycles.html#igraph_is_eulerian" -"igraph_is_forest","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_forest" -"igraph_is_graphical","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_graphical" -"igraph_is_independent_vertex_set","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_is_independent_vertex_set" -"igraph_is_loop","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_loop" -"igraph_is_matching","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_matching" -"igraph_is_maximal_matching","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_maximal_matching" -"igraph_is_minimal_separator","https://igraph.org/c/html/0.10.17/igraph-Separators.html#igraph_is_minimal_separator" -"igraph_is_multiple","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_multiple" -"igraph_is_mutual","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_mutual" -"igraph_is_perfect","https://igraph.org/c/html/0.10.17/igraph-Coloring.html#igraph_is_perfect" -"igraph_is_same_graph","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_is_same_graph" -"igraph_is_separator","https://igraph.org/c/html/0.10.17/igraph-Separators.html#igraph_is_separator" -"igraph_is_simple","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_simple" -"igraph_is_tree","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_is_tree" -"igraph_is_vertex_coloring","https://igraph.org/c/html/0.10.17/igraph-Coloring.html#igraph_is_vertex_coloring" -"igraph_join","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_join" -"igraph_joint_degree_distribution","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_joint_degree_distribution" -"igraph_joint_degree_matrix","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_joint_degree_matrix" -"igraph_joint_type_distribution","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_joint_type_distribution" -"igraph_kary_tree","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_kary_tree" -"igraph_kautz","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_kautz" -"igraph_k_regular_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_k_regular_game" -"igraph_lapack_dgeev","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_lapack_dgeev" -"igraph_lapack_dgeevx","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_lapack_dgeevx" -"igraph_lapack_dgesv","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_lapack_dgesv" -"igraph_lapack_dgetrf","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_lapack_dgetrf" -"igraph_lapack_dgetrs","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_lapack_dgetrs" -"igraph_lapack_dsyevr","https://igraph.org/c/html/0.10.17/igraph-Arpack.html#igraph_lapack_dsyevr" -"igraph_laplacian","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_laplacian" -"igraph_laplacian_normalization_t","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_laplacian_normalization_t" -"igraph_laplacian_spectral_embedding","https://igraph.org/c/html/0.10.17/igraph-Embedding.html#igraph_laplacian_spectral_embedding" -"igraph_largest_cliques","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_largest_cliques" -"igraph_largest_independent_vertex_sets","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_largest_independent_vertex_sets" -"igraph_largest_weighted_cliques","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_largest_weighted_cliques" -"igraph_lastcit_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_lastcit_game" -"igraph_lattice","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_lattice" -"igraph_layout_align","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_align" -"igraph_layout_bipartite","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_bipartite" -"igraph_layout_circle","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_circle" -"igraph_layout_davidson_harel","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_davidson_harel" -"igraph_layout_drl","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_drl" -"igraph_layout_drl_3d","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_drl_3d" -"igraph_layout_drl_default_t","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_drl_default_t" -"igraph_layout_drl_options_init","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_drl_options_init" -"igraph_layout_drl_options_t","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_drl_options_t" -"igraph_layout_fruchterman_reingold","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_fruchterman_reingold" -"igraph_layout_fruchterman_reingold_3d","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_fruchterman_reingold_3d" -"igraph_layout_gem","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_gem" -"igraph_layout_graphopt","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_graphopt" -"igraph_layout_grid","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_grid" -"igraph_layout_grid_3d","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_grid_3d" -"igraph_layout_kamada_kawai","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_kamada_kawai" -"igraph_layout_kamada_kawai_3d","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_kamada_kawai_3d" -"igraph_layout_lgl","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_lgl" -"igraph_layout_mds","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_mds" -"igraph_layout_merge_dla","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_merge_dla" -"igraph_layout_random","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_random" -"igraph_layout_random_3d","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_random_3d" -"igraph_layout_reingold_tilford","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_reingold_tilford" -"igraph_layout_reingold_tilford_circular","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_reingold_tilford_circular" -"igraph_layout_sphere","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_sphere" -"igraph_layout_star","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_star" -"igraph_layout_sugiyama","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_sugiyama" -"igraph_layout_umap","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_umap" -"igraph_layout_umap_3d","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_umap_3d" -"igraph_layout_umap_compute_weights","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_layout_umap_compute_weights" -"igraph_lazy_adjlist_clear","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_adjlist_clear" -"igraph_lazy_adjlist_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_adjlist_destroy" -"igraph_lazy_adjlist_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_adjlist_get" -"igraph_lazy_adjlist_has","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_adjlist_has" -"igraph_lazy_adjlist_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_adjlist_init" -"igraph_lazy_adjlist_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_adjlist_size" -"igraph_lazy_inclist_clear","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_inclist_clear" -"igraph_lazy_inclist_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_inclist_destroy" -"igraph_lazy_inclist_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_inclist_get" -"igraph_lazy_inclist_has","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_inclist_has" -"igraph_lazy_inclist_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_inclist_init" -"igraph_lazy_inclist_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_lazy_inclist_size" -"igraph_lcf","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_lcf" -"igraph_lcf_vector","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_lcf_vector" -"igraph_le_community_to_membership","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_le_community_to_membership" -"igraph_linegraph","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_linegraph" -"igraph_list_triangles","https://igraph.org/c/html/0.10.17/igraph-Motifs.html#igraph_list_triangles" -"igraph_local_efficiency","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_local_efficiency" -"igraph_local_scan_0","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_local_scan_0" -"igraph_local_scan_0_them","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_local_scan_0_them" -"igraph_local_scan_1_ecount","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_local_scan_1_ecount" -"igraph_local_scan_1_ecount_them","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_local_scan_1_ecount_them" -"igraph_local_scan_k_ecount","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_local_scan_k_ecount" -"igraph_local_scan_k_ecount_them","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_local_scan_k_ecount_them" -"igraph_local_scan_neighborhood_ecount","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_local_scan_neighborhood_ecount" -"igraph_local_scan_subset_ecount","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_local_scan_subset_ecount" -"igraph_malloc","https://igraph.org/c/html/0.10.17/igraph-Memory.html#igraph_malloc" -"MATRIX","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#MATRIX" -"igraph_matrix_add","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_add" -"igraph_matrix_add_cols","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_add_cols" -"igraph_matrix_add_constant","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_add_constant" -"igraph_matrix_add_rows","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_add_rows" -"igraph_matrix_all_almost_e","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_all_almost_e" -"igraph_matrix_all_e","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_all_e" -"igraph_matrix_all_g","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_all_g" -"igraph_matrix_all_ge","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_all_ge" -"igraph_matrix_all_l","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_all_l" -"igraph_matrix_all_le","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_all_le" -"igraph_matrix_as_sparsemat","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_as_sparsemat" -"igraph_matrix_capacity","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_capacity" -"igraph_matrix_cbind","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_cbind" -"igraph_matrix_colsum","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_colsum" -"igraph_matrix_complex_all_almost_e","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_complex_all_almost_e" -"igraph_matrix_complex_create","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_complex_create" -"igraph_matrix_complex_create_polar","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_complex_create_polar" -"igraph_matrix_complex_imag","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_complex_imag" -"igraph_matrix_complex_real","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_complex_real" -"igraph_matrix_complex_realimag","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_complex_realimag" -"igraph_matrix_complex_zapsmall","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_complex_zapsmall" -"igraph_matrix_contains","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_contains" -"igraph_matrix_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_copy" -"igraph_matrix_copy_to","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_copy_to" -"igraph_matrix_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_destroy" -"igraph_matrix_div_elements","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_div_elements" -"igraph_matrix_e","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_e" -"igraph_matrix_empty","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_empty" -"igraph_matrix_e_ptr","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_e_ptr" -"igraph_matrix_fill","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_fill" -"igraph_matrix_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_get" -"igraph_matrix_get_col","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_get_col" -"igraph_matrix_get_ptr","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_get_ptr" -"igraph_matrix_get_row","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_get_row" -"igraph_matrix_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_init" -"igraph_matrix_init_array","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_init_array" -"igraph_matrix_init_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_init_copy" -"igraph_matrix_isnull","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_isnull" -"igraph_matrix_is_symmetric","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_is_symmetric" -"igraph_matrix_max","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_max" -"igraph_matrix_maxdifference","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_maxdifference" -"igraph_matrix_min","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_min" -"igraph_matrix_minmax","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_minmax" -"igraph_matrix_mul_elements","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_mul_elements" -"igraph_matrix_ncol","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_ncol" -"igraph_matrix_nrow","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_nrow" -"igraph_matrix_null","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_null" -"igraph_matrix_prod","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_prod" -"igraph_matrix_rbind","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_rbind" -"igraph_matrix_remove_col","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_remove_col" -"igraph_matrix_remove_row","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_remove_row" -"igraph_matrix_resize","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_resize" -"igraph_matrix_resize_min","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_resize_min" -"igraph_matrix_rowsum","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_rowsum" -"igraph_matrix_scale","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_scale" -"igraph_matrix_search","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_search" -"igraph_matrix_select_cols","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_select_cols" -"igraph_matrix_select_rows","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_select_rows" -"igraph_matrix_select_rows_cols","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_select_rows_cols" -"igraph_matrix_set","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_set" -"igraph_matrix_set_col","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_set_col" -"igraph_matrix_set_row","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_set_row" -"igraph_matrix_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_size" -"igraph_matrix_sub","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_sub" -"igraph_matrix_sum","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_sum" -"igraph_matrix_swap","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_swap" -"igraph_matrix_swap_cols","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_swap_cols" -"igraph_matrix_swap_rows","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_swap_rows" -"igraph_matrix_transpose","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_transpose" -"igraph_matrix_update","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_update" -"igraph_matrix_view","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_view" -"igraph_matrix_view_from_vector","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_view_from_vector" -"igraph_matrix_which_max","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_which_max" -"igraph_matrix_which_min","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_which_min" -"igraph_matrix_which_minmax","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_which_minmax" -"igraph_matrix_zapsmall","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_matrix_zapsmall" -"igraph_maxdegree","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_maxdegree" -"igraph_maxflow","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_maxflow" -"igraph_maxflow_stats_t","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_maxflow_stats_t" -"igraph_maxflow_value","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_maxflow_value" -"igraph_maximal_cliques","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_maximal_cliques" -"igraph_maximal_cliques_callback","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_maximal_cliques_callback" -"igraph_maximal_cliques_count","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_maximal_cliques_count" -"igraph_maximal_cliques_file","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_maximal_cliques_file" -"igraph_maximal_cliques_hist","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_maximal_cliques_hist" -"igraph_maximal_cliques_subset","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_maximal_cliques_subset" -"igraph_maximal_independent_vertex_sets","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_maximal_independent_vertex_sets" -"igraph_maximum_bipartite_matching","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_maximum_bipartite_matching" -"igraph_maximum_cardinality_search","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_maximum_cardinality_search" -"igraph_mean_degree","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_mean_degree" -"igraph_mincut","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_mincut" -"igraph_mincut_value","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_mincut_value" -"igraph_minimum_cycle_basis","https://igraph.org/c/html/0.10.17/igraph-Cycles.html#igraph_minimum_cycle_basis" -"igraph_minimum_size_separators","https://igraph.org/c/html/0.10.17/igraph-Separators.html#igraph_minimum_size_separators" -"igraph_minimum_spanning_tree","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_minimum_spanning_tree" -"igraph_minimum_spanning_tree_prim","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_minimum_spanning_tree_prim" -"igraph_minimum_spanning_tree_unweighted","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_minimum_spanning_tree_unweighted" -"igraph_modularity","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_modularity" -"igraph_modularity_matrix","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_modularity_matrix" -"igraph_moran_process","https://igraph.org/c/html/0.10.17/igraph-Spatial-Games.html#igraph_moran_process" -"igraph_motifs_handler_t","https://igraph.org/c/html/0.10.17/igraph-Motifs.html#igraph_motifs_handler_t" -"igraph_motifs_randesu","https://igraph.org/c/html/0.10.17/igraph-Motifs.html#igraph_motifs_randesu" -"igraph_motifs_randesu_callback","https://igraph.org/c/html/0.10.17/igraph-Motifs.html#igraph_motifs_randesu_callback" -"igraph_motifs_randesu_estimate","https://igraph.org/c/html/0.10.17/igraph-Motifs.html#igraph_motifs_randesu_estimate" -"igraph_motifs_randesu_no","https://igraph.org/c/html/0.10.17/igraph-Motifs.html#igraph_motifs_randesu_no" -"igraph_mycielskian","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_mycielskian" -"igraph_mycielski_graph","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_mycielski_graph" -"igraph_neighborhood","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_neighborhood" -"igraph_neighborhood_graphs","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_neighborhood_graphs" -"igraph_neighborhood_size","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_neighborhood_size" -"igraph_neighbors","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_neighbors" -"IGRAPH_OTHER","https://igraph.org/c/html/0.10.17/igraph-Basic.html#IGRAPH_OTHER" -"igraph_pagerank","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_pagerank" -"igraph_pagerank_algo_t","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_pagerank_algo_t" -"igraph_path_graph","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_path_graph" -"igraph_path_length_hist","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_path_length_hist" -"igraph_permute_vertices","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_permute_vertices" -"igraph_personalized_pagerank","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_personalized_pagerank" -"igraph_personalized_pagerank_vs","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_personalized_pagerank_vs" -"igraph_plfit_result_calculate_p_value","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_plfit_result_calculate_p_value" -"igraph_plfit_result_t","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_plfit_result_t" -"igraph_power_law_fit","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_power_law_fit" -"igraph_preference_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_preference_game" -"igraph_product","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_product" -"IGRAPH_PROGRESS","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#IGRAPH_PROGRESS" -"igraph_progress","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#igraph_progress" -"igraph_progressf","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#igraph_progressf" -"igraph_progress_handler_stderr","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#igraph_progress_handler_stderr" -"igraph_progress_handler_t","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#igraph_progress_handler_t" -"igraph_pseudo_diameter","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_pseudo_diameter" -"igraph_pseudo_diameter_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_pseudo_diameter_dijkstra" -"igraph_psumtree_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_psumtree_destroy" -"igraph_psumtree_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_psumtree_get" -"igraph_psumtree_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_psumtree_init" -"igraph_psumtree_reset","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_psumtree_reset" -"igraph_psumtree_search","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_psumtree_search" -"igraph_psumtree_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_psumtree_size" -"igraph_psumtree_sum","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_psumtree_sum" -"igraph_psumtree_update","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_psumtree_update" -"igraph_radius","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_radius" -"igraph_radius_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_radius_dijkstra" -"igraph_random_edge_walk","https://igraph.org/c/html/0.10.17/igraph-Visitors.html#igraph_random_edge_walk" -"igraph_random_sample","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_random_sample" -"igraph_random_spanning_tree","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_random_spanning_tree" -"igraph_random_walk","https://igraph.org/c/html/0.10.17/igraph-Visitors.html#igraph_random_walk" -"igraph_reachability","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_reachability" -"igraph_read_graph_dimacs","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_read_graph_dimacs" -"igraph_read_graph_dimacs_flow","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_read_graph_dimacs_flow" -"igraph_read_graph_dl","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_read_graph_dl" -"igraph_read_graph_edgelist","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_read_graph_edgelist" -"igraph_read_graph_gml","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_read_graph_gml" -"igraph_read_graph_graphdb","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_read_graph_graphdb" -"igraph_read_graph_graphml","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_read_graph_graphml" -"igraph_read_graph_lgl","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_read_graph_lgl" -"igraph_read_graph_ncol","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_read_graph_ncol" -"igraph_read_graph_pajek","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_read_graph_pajek" -"igraph_realize_bipartite_degree_sequence","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_realize_bipartite_degree_sequence" -"igraph_realize_degree_sequence","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_realize_degree_sequence" -"igraph_realloc","https://igraph.org/c/html/0.10.17/igraph-Memory.html#igraph_realloc" -"igraph_recent_degree_aging_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_recent_degree_aging_game" -"igraph_recent_degree_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_recent_degree_game" -"igraph_reciprocity","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_reciprocity" -"igraph_regular_tree","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_regular_tree" -"igraph_reindex_membership","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_reindex_membership" -"igraph_reverse_edges","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_reverse_edges" -"igraph_rewire","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_rewire" -"igraph_rewire_directed_edges","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_rewire_directed_edges" -"igraph_rewire_edges","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_rewire_edges" -"igraph_rich_club_sequence","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_rich_club_sequence" -"igraph_ring","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_ring" -"igraph_rngtype_glibc2","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rngtype_glibc2" -"igraph_rngtype_mt19937","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rngtype_mt19937" -"igraph_rngtype_pcg32","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rngtype_pcg32" -"igraph_rngtype_pcg64","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rngtype_pcg64" -"igraph_rng_bits","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_bits" -"igraph_rng_default","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_default" -"igraph_rng_destroy","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_destroy" -"igraph_rng_get_binom","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_get_binom" -"igraph_rng_get_bool","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_get_bool" -"igraph_rng_get_exp","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_get_exp" -"igraph_rng_get_gamma","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_get_gamma" -"igraph_rng_get_geom","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_get_geom" -"igraph_rng_get_integer","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_get_integer" -"igraph_rng_get_normal","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_get_normal" -"igraph_rng_get_pois","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_get_pois" -"igraph_rng_get_unif","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_get_unif" -"igraph_rng_get_unif01","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_get_unif01" -"igraph_rng_init","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_init" -"igraph_rng_max","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_max" -"igraph_rng_name","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_name" -"igraph_rng_seed","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_seed" -"igraph_rng_set_default","https://igraph.org/c/html/0.10.17/igraph-Random.html#igraph_rng_set_default" -"igraph_rooted_product","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_rooted_product" -"igraph_roots_for_tree_layout","https://igraph.org/c/html/0.10.17/igraph-Layout.html#igraph_roots_for_tree_layout" -"igraph_roulette_wheel_imitation","https://igraph.org/c/html/0.10.17/igraph-Spatial-Games.html#igraph_roulette_wheel_imitation" -"igraph_running_mean","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_running_mean" -"igraph_sample_dirichlet","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_sample_dirichlet" -"igraph_sample_sphere_surface","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_sample_sphere_surface" -"igraph_sample_sphere_volume","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_sample_sphere_volume" -"igraph_sbm_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_sbm_game" -"SETEAB","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETEAB" -"SETEABV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETEABV" -"SETEAN","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETEAN" -"SETEANV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETEANV" -"SETEAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETEAS" -"SETEASV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETEASV" -"SETGAB","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETGAB" -"SETGAN","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETGAN" -"SETGAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETGAS" -"SETVAB","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETVAB" -"SETVABV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETVABV" -"SETVAN","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETVAN" -"SETVANV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETVANV" -"SETVAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETVAS" -"SETVASV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#SETVASV" -"igraph_set_attribute_table","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#igraph_set_attribute_table" -"igraph_set_error_handler","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_set_error_handler" -"igraph_set_fatal_handler","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_set_fatal_handler" -"igraph_set_progress_handler","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#igraph_set_progress_handler" -"igraph_set_status_handler","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#igraph_set_status_handler" -"igraph_set_warning_handler","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_set_warning_handler" -"igraph_shortest_paths","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_shortest_paths" -"igraph_shortest_paths_bellman_ford","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_shortest_paths_bellman_ford" -"igraph_shortest_paths_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_shortest_paths_dijkstra" -"igraph_shortest_paths_johnson","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_shortest_paths_johnson" -"igraph_similarity_dice","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_similarity_dice" -"igraph_similarity_dice_es","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_similarity_dice_es" -"igraph_similarity_dice_pairs","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_similarity_dice_pairs" -"igraph_similarity_inverse_log_weighted","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_similarity_inverse_log_weighted" -"igraph_similarity_jaccard","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_similarity_jaccard" -"igraph_similarity_jaccard_es","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_similarity_jaccard_es" -"igraph_similarity_jaccard_pairs","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_similarity_jaccard_pairs" -"igraph_simple_cycles","https://igraph.org/c/html/0.10.17/igraph-Cycles.html#igraph_simple_cycles" -"igraph_simple_cycles_callback","https://igraph.org/c/html/0.10.17/igraph-Cycles.html#igraph_simple_cycles_callback" -"igraph_simple_interconnected_islands_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_simple_interconnected_islands_game" -"igraph_simplify","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_simplify" -"igraph_simplify_and_colorize","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_simplify_and_colorize" -"igraph_sir","https://igraph.org/c/html/0.10.17/igraph-Spatial-Games.html#igraph_sir" -"igraph_sir_destroy","https://igraph.org/c/html/0.10.17/igraph-Spatial-Games.html#igraph_sir_destroy" -"igraph_sir_t","https://igraph.org/c/html/0.10.17/igraph-Spatial-Games.html#igraph_sir_t" -"igraph_site_percolation","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_site_percolation" -"igraph_small","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_small" -"igraph_spanner","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_spanner" -"igraph_sparsemat","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat" -"igraph_sparsemat_add","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_add" -"igraph_sparsemat_add_cols","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_add_cols" -"igraph_sparsemat_add_rows","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_add_rows" -"igraph_sparsemat_arpack_rnsolve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_arpack_rnsolve" -"igraph_sparsemat_arpack_rssolve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_arpack_rssolve" -"igraph_sparsemat_as_matrix","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_as_matrix" -"igraph_sparsemat_cholsol","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_cholsol" -"igraph_sparsemat_colsums","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_colsums" -"igraph_sparsemat_compress","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_compress" -"igraph_sparsemat_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_copy" -"igraph_sparsemat_count_nonzero","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_count_nonzero" -"igraph_sparsemat_count_nonzerotol","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_count_nonzerotol" -"igraph_sparsemat_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_destroy" -"igraph_sparsemat_diag","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_diag" -"igraph_sparsemat_droptol","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_droptol" -"igraph_sparsemat_dropzeros","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_dropzeros" -"igraph_sparsemat_dupl","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_dupl" -"igraph_sparsemat_entry","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_entry" -"igraph_sparsemat_eye","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_eye" -"igraph_sparsemat_fkeep","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_fkeep" -"igraph_sparsemat_gaxpy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_gaxpy" -"igraph_sparsemat_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_get" -"igraph_sparsemat_getelements","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_getelements" -"igraph_sparsemat_getelements_sorted","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_getelements_sorted" -"igraph_sparsemat_index","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_index" -"igraph_sparsemat_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_init" -"igraph_sparsemat_init_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_init_copy" -"igraph_sparsemat_init_diag","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_init_diag" -"igraph_sparsemat_init_eye","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_init_eye" -"igraph_sparsemat_is_cc","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_is_cc" -"igraph_sparsemat_is_symmetric","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_is_symmetric" -"igraph_sparsemat_is_triplet","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_is_triplet" -"igraph_sparsemat_iterator_col","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_iterator_col" -"igraph_sparsemat_iterator_end","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_iterator_end" -"igraph_sparsemat_iterator_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_iterator_get" -"igraph_sparsemat_iterator_idx","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_iterator_idx" -"igraph_sparsemat_iterator_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_iterator_init" -"igraph_sparsemat_iterator_next","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_iterator_next" -"igraph_sparsemat_iterator_reset","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_iterator_reset" -"igraph_sparsemat_iterator_row","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_iterator_row" -"igraph_sparsemat_lsolve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_lsolve" -"igraph_sparsemat_ltsolve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_ltsolve" -"igraph_sparsemat_lu","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_lu" -"igraph_sparsemat_luresol","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_luresol" -"igraph_sparsemat_lusol","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_lusol" -"igraph_sparsemat_max","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_max" -"igraph_sparsemat_min","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_min" -"igraph_sparsemat_minmax","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_minmax" -"igraph_sparsemat_multiply","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_multiply" -"igraph_sparsemat_ncol","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_ncol" -"igraph_sparsemat_nonzero_storage","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_nonzero_storage" -"igraph_sparsemat_nrow","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_nrow" -"igraph_sparsemat_numeric_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_numeric_destroy" -"igraph_sparsemat_permute","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_permute" -"igraph_sparsemat_print","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_print" -"igraph_sparsemat_qr","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_qr" -"igraph_sparsemat_qrresol","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_qrresol" -"igraph_sparsemat_realloc","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_realloc" -"igraph_sparsemat_resize","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_resize" -"igraph_sparsemat_rowsums","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_rowsums" -"igraph_sparsemat_scale","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_scale" -"igraph_sparsemat_sort","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_sort" -"igraph_sparsemat_symblu","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_symblu" -"igraph_sparsemat_symbolic_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_symbolic_destroy" -"igraph_sparsemat_symbqr","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_symbqr" -"igraph_sparsemat_transpose","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_transpose" -"igraph_sparsemat_type","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_type" -"igraph_sparsemat_usolve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_usolve" -"igraph_sparsemat_utsolve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_utsolve" -"igraph_sparsemat_view","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_sparsemat_view" -"igraph_sparse_adjacency","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_sparse_adjacency" -"igraph_sparse_weighted_adjacency","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_sparse_weighted_adjacency" -"igraph_split_join_distance","https://igraph.org/c/html/0.10.17/igraph-Community.html#igraph_split_join_distance" -"igraph_square_lattice","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_square_lattice" -"igraph_stack_clear","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_stack_clear" -"igraph_stack_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_stack_destroy" -"igraph_stack_empty","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_stack_empty" -"igraph_stack_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_stack_init" -"igraph_stack_pop","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_stack_pop" -"igraph_stack_push","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_stack_push" -"igraph_stack_reserve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_stack_reserve" -"igraph_stack_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_stack_size" -"igraph_stack_top","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_stack_top" -"igraph_star","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_star" -"igraph_static_fitness_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_static_fitness_game" -"igraph_static_power_law_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_static_power_law_game" -"IGRAPH_STATUS","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#IGRAPH_STATUS" -"igraph_status","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#igraph_status" -"IGRAPH_STATUSF","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#IGRAPH_STATUSF" -"igraph_statusf","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#igraph_statusf" -"igraph_status_handler_stderr","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#igraph_status_handler_stderr" -"igraph_status_handler_t","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#igraph_status_handler_t" -"igraph_stochastic_imitation","https://igraph.org/c/html/0.10.17/igraph-Spatial-Games.html#igraph_stochastic_imitation" -"STR","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#STR" -"igraph_strength","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_strength" -"igraph_strerror","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_strerror" -"igraph_strvector_add","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_add" -"igraph_strvector_append","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_append" -"igraph_strvector_capacity","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_capacity" -"igraph_strvector_clear","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_clear" -"igraph_strvector_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_copy" -"igraph_strvector_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_destroy" -"igraph_strvector_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_get" -"igraph_strvector_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_init" -"igraph_strvector_init_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_init_copy" -"igraph_strvector_merge","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_merge" -"igraph_strvector_push_back","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_push_back" -"igraph_strvector_push_back_len","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_push_back_len" -"igraph_strvector_remove","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_remove" -"igraph_strvector_remove_section","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_remove_section" -"igraph_strvector_reserve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_reserve" -"igraph_strvector_resize","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_resize" -"igraph_strvector_resize_min","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_resize_min" -"igraph_strvector_set","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_set" -"igraph_strvector_set2","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_set2" -"igraph_strvector_set_len","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_set_len" -"igraph_strvector_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_size" -"igraph_strvector_swap_elements","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_strvector_swap_elements" -"igraph_st_edge_connectivity","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_st_edge_connectivity" -"igraph_st_mincut","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_st_mincut" -"igraph_st_mincut_value","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_st_mincut_value" -"igraph_st_vertex_connectivity","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_st_vertex_connectivity" -"igraph_subcomponent","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_subcomponent" -"igraph_subgraph_edges","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_subgraph_edges" -"igraph_subgraph_from_edges","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_subgraph_from_edges" -"igraph_subisomorphic","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_subisomorphic" -"igraph_subisomorphic_function_vf2","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_subisomorphic_function_vf2" -"igraph_subisomorphic_lad","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_subisomorphic_lad" -"igraph_subisomorphic_vf2","https://igraph.org/c/html/0.10.17/igraph-Isomorphism.html#igraph_subisomorphic_vf2" -"igraph_symmetric_tree","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_symmetric_tree" -"IGRAPH_THREAD_SAFE","https://igraph.org/c/html/0.10.17/igraph-Advanced.html#IGRAPH_THREAD_SAFE" -"IGRAPH_TO","https://igraph.org/c/html/0.10.17/igraph-Basic.html#IGRAPH_TO" -"igraph_topological_sorting","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_topological_sorting" -"igraph_to_directed","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_to_directed" -"igraph_to_prufer","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_to_prufer" -"igraph_to_undirected","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_to_undirected" -"igraph_transitive_closure","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_transitive_closure" -"igraph_transitivity_avglocal_undirected","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_transitivity_avglocal_undirected" -"igraph_transitivity_barrat","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_transitivity_barrat" -"igraph_transitivity_local_undirected","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_transitivity_local_undirected" -"igraph_transitivity_undirected","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_transitivity_undirected" -"igraph_tree","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_tree" -"igraph_tree_from_parent_vector","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_tree_from_parent_vector" -"igraph_tree_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_tree_game" -"igraph_triad_census","https://igraph.org/c/html/0.10.17/igraph-Motifs.html#igraph_triad_census" -"igraph_triangular_lattice","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_triangular_lattice" -"igraph_trussness","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_trussness" -"igraph_turan","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_turan" -"igraph_unfold_tree","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_unfold_tree" -"igraph_union","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_union" -"igraph_union_many","https://igraph.org/c/html/0.10.17/igraph-Operators.html#igraph_union_many" -"VAB","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#VAB" -"VABV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#VABV" -"VAN","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#VAN" -"VANV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#VANV" -"VAS","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#VAS" -"VASV","https://igraph.org/c/html/0.10.17/igraph-Attributes.html#VASV" -"igraph_vcount","https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_vcount" -"IGRAPH_VCOUNT_MAX","https://igraph.org/c/html/0.10.17/igraph-Basic.html#IGRAPH_VCOUNT_MAX" -"VECTOR","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#VECTOR" -"igraph_vector_add","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_add" -"igraph_vector_add_constant","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_add_constant" -"igraph_vector_all_almost_e","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_all_almost_e" -"igraph_vector_all_e","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_all_e" -"igraph_vector_all_g","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_all_g" -"igraph_vector_all_ge","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_all_ge" -"igraph_vector_all_l","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_all_l" -"igraph_vector_all_le","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_all_le" -"igraph_vector_append","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_append" -"igraph_vector_binsearch","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_binsearch" -"igraph_vector_binsearch2","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_binsearch2" -"igraph_vector_binsearch_slice","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_binsearch_slice" -"igraph_vector_capacity","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_capacity" -"igraph_vector_clear","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_clear" -"igraph_vector_colex_cmp","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_colex_cmp" -"igraph_vector_colex_cmp_untyped","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_colex_cmp_untyped" -"igraph_vector_complex_all_almost_e","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_complex_all_almost_e" -"igraph_vector_complex_create","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_complex_create" -"igraph_vector_complex_create_polar","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_complex_create_polar" -"igraph_vector_complex_imag","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_complex_imag" -"igraph_vector_complex_real","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_complex_real" -"igraph_vector_complex_realimag","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_complex_realimag" -"igraph_vector_complex_zapsmall","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_complex_zapsmall" -"igraph_vector_contains","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_contains" -"igraph_vector_contains_sorted","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_contains_sorted" -"igraph_vector_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_copy" -"igraph_vector_copy_to","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_copy_to" -"igraph_vector_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_destroy" -"igraph_vector_difference_sorted","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_difference_sorted" -"igraph_vector_div","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_div" -"igraph_vector_e","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_e" -"igraph_vector_empty","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_empty" -"igraph_vector_e_ptr","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_e_ptr" -"igraph_vector_fill","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_fill" -"igraph_vector_floor","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_floor" -"igraph_vector_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_get" -"igraph_vector_get_ptr","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_get_ptr" -"igraph_vector_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_init" -"igraph_vector_init_array","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_init_array" -"igraph_vector_init_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_init_copy" -"igraph_vector_init_range","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_init_range" -"igraph_vector_init_seq","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_init_seq" -"igraph_vector_insert","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_insert" -"igraph_vector_intersection_size_sorted","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_intersection_size_sorted" -"igraph_vector_intersect_sorted","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_intersect_sorted" -"igraph_vector_isininterval","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_isininterval" -"igraph_vector_is_all_finite","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_is_all_finite" -"igraph_vector_is_any_nan","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_is_any_nan" -"igraph_vector_is_equal","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_is_equal" -"igraph_vector_is_nan","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_is_nan" -"igraph_vector_lex_cmp","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_lex_cmp" -"igraph_vector_lex_cmp_untyped","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_lex_cmp_untyped" -"igraph_vector_list_capacity","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_capacity" -"igraph_vector_list_clear","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_clear" -"igraph_vector_list_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_destroy" -"igraph_vector_list_discard","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_discard" -"igraph_vector_list_discard_back","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_discard_back" -"igraph_vector_list_discard_fast","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_discard_fast" -"igraph_vector_list_empty","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_empty" -"igraph_vector_list_get_ptr","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_get_ptr" -"igraph_vector_list_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_init" -"igraph_vector_list_insert","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_insert" -"igraph_vector_list_insert_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_insert_copy" -"igraph_vector_list_insert_new","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_insert_new" -"igraph_vector_list_permute","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_permute" -"igraph_vector_list_pop_back","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_pop_back" -"igraph_vector_list_push_back","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_push_back" -"igraph_vector_list_push_back_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_push_back_copy" -"igraph_vector_list_push_back_new","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_push_back_new" -"igraph_vector_list_remove","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_remove" -"igraph_vector_list_remove_fast","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_remove_fast" -"igraph_vector_list_replace","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_replace" -"igraph_vector_list_reserve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_reserve" -"igraph_vector_list_resize","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_resize" -"igraph_vector_list_set","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_set" -"igraph_vector_list_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_size" -"igraph_vector_list_sort","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_sort" -"igraph_vector_list_sort_ind","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_sort_ind" -"igraph_vector_list_swap","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_swap" -"igraph_vector_list_swap_elements","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_swap_elements" -"igraph_vector_list_tail_ptr","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_list_tail_ptr" -"igraph_vector_max","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_max" -"igraph_vector_maxdifference","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_maxdifference" -"igraph_vector_min","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_min" -"igraph_vector_minmax","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_minmax" -"igraph_vector_mul","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_mul" -"igraph_vector_null","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_null" -"igraph_vector_permute","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_permute" -"igraph_vector_pop_back","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_pop_back" -"igraph_vector_prod","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_prod" -"igraph_vector_ptr_clear","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_clear" -"igraph_vector_ptr_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_copy" -"igraph_vector_ptr_destroy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_destroy" -"igraph_vector_ptr_destroy_all","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_destroy_all" -"igraph_vector_ptr_e","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_e" -"igraph_vector_ptr_free_all","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_free_all" -"igraph_vector_ptr_get","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_get" -"igraph_vector_ptr_get_item_destructor","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_get_item_destructor" -"igraph_vector_ptr_init","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_init" -"igraph_vector_ptr_init_copy","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_init_copy" -"igraph_vector_ptr_insert","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_insert" -"igraph_vector_ptr_permute","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_permute" -"igraph_vector_ptr_pop_back","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_pop_back" -"igraph_vector_ptr_push_back","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_push_back" -"igraph_vector_ptr_resize","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_resize" -"igraph_vector_ptr_set","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_set" -"igraph_vector_ptr_set_item_destructor","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_set_item_destructor" -"IGRAPH_VECTOR_PTR_SET_ITEM_DESTRUCTOR","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#IGRAPH_VECTOR_PTR_SET_ITEM_DESTRUCTOR" -"igraph_vector_ptr_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_size" -"igraph_vector_ptr_sort","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_sort" -"igraph_vector_ptr_sort_ind","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_ptr_sort_ind" -"igraph_vector_push_back","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_push_back" -"igraph_vector_qsort_ind","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_qsort_ind" -"igraph_vector_range","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_range" -"igraph_vector_remove","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_remove" -"igraph_vector_remove_section","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_remove_section" -"igraph_vector_reserve","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_reserve" -"igraph_vector_resize","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_resize" -"igraph_vector_resize_min","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_resize_min" -"igraph_vector_reverse","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_reverse" -"igraph_vector_reverse_section","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_reverse_section" -"igraph_vector_reverse_sort","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_reverse_sort" -"igraph_vector_rotate_left","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_rotate_left" -"igraph_vector_scale","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_scale" -"igraph_vector_search","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_search" -"igraph_vector_set","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_set" -"igraph_vector_shuffle","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_shuffle" -"igraph_vector_size","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_size" -"igraph_vector_sort","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_sort" -"igraph_vector_sort_ind","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_sort_ind" -"igraph_vector_sub","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_sub" -"igraph_vector_sum","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_sum" -"igraph_vector_swap","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_swap" -"igraph_vector_swap_elements","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_swap_elements" -"igraph_vector_tail","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_tail" -"igraph_vector_update","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_update" -"igraph_vector_view","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_view" -"igraph_vector_which_max","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_which_max" -"igraph_vector_which_min","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_which_min" -"igraph_vector_which_minmax","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_which_minmax" -"igraph_vector_zapsmall","https://igraph.org/c/html/0.10.17/igraph-Data-structures.html#igraph_vector_zapsmall" -"igraph_version","https://igraph.org/c/html/0.10.17/igraph-Nongraph.html#igraph_version" -"igraph_vertex_coloring_greedy","https://igraph.org/c/html/0.10.17/igraph-Coloring.html#igraph_vertex_coloring_greedy" -"igraph_vertex_connectivity","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_vertex_connectivity" -"igraph_vertex_disjoint_paths","https://igraph.org/c/html/0.10.17/igraph-Flows.html#igraph_vertex_disjoint_paths" -"igraph_vertex_path_from_edge_path","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_vertex_path_from_edge_path" -"igraph_vit_create","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vit_create" -"igraph_vit_destroy","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vit_destroy" -"IGRAPH_VIT_END","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#IGRAPH_VIT_END" -"IGRAPH_VIT_GET","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#IGRAPH_VIT_GET" -"IGRAPH_VIT_NEXT","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#IGRAPH_VIT_NEXT" -"IGRAPH_VIT_RESET","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#IGRAPH_VIT_RESET" -"IGRAPH_VIT_SIZE","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#IGRAPH_VIT_SIZE" -"igraph_voronoi","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_voronoi" -"igraph_vss_1","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vss_1" -"igraph_vss_all","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vss_all" -"igraph_vss_none","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vss_none" -"igraph_vss_range","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vss_range" -"igraph_vss_seq","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vss_seq" -"igraph_vss_vector","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vss_vector" -"igraph_vs_1","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_1" -"igraph_vs_adj","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_adj" -"igraph_vs_all","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_all" -"igraph_vs_copy","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_copy" -"igraph_vs_destroy","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_destroy" -"igraph_vs_is_all","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_is_all" -"igraph_vs_nonadj","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_nonadj" -"igraph_vs_none","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_none" -"igraph_vs_range","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_range" -"igraph_vs_seq","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_seq" -"igraph_vs_size","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_size" -"igraph_vs_type","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_type" -"igraph_vs_vector","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_vector" -"igraph_vs_vector_copy","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_vector_copy" -"igraph_vs_vector_small","https://igraph.org/c/html/0.10.17/igraph-Iterators.html#igraph_vs_vector_small" -"IGRAPH_WARNING","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_WARNING" -"igraph_warning","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_warning" -"IGRAPH_WARNINGF","https://igraph.org/c/html/0.10.17/igraph-Error.html#IGRAPH_WARNINGF" -"igraph_warningf","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_warningf" -"igraph_warning_handler_ignore","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_warning_handler_ignore" -"igraph_warning_handler_print","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_warning_handler_print" -"igraph_warning_handler_t","https://igraph.org/c/html/0.10.17/igraph-Error.html#igraph_warning_handler_t" -"igraph_watts_strogatz_game","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_watts_strogatz_game" -"igraph_weighted_adjacency","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_weighted_adjacency" -"igraph_weighted_cliques","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_weighted_cliques" -"igraph_weighted_clique_number","https://igraph.org/c/html/0.10.17/igraph-Cliques.html#igraph_weighted_clique_number" -"igraph_wheel","https://igraph.org/c/html/0.10.17/igraph-Generators.html#igraph_wheel" -"igraph_widest_path_widths_dijkstra","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_widest_path_widths_dijkstra" -"igraph_widest_path_widths_floyd_warshall","https://igraph.org/c/html/0.10.17/igraph-Structural.html#igraph_widest_path_widths_floyd_warshall" -"igraph_write_graph_dimacs","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_write_graph_dimacs" -"igraph_write_graph_dimacs_flow","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_write_graph_dimacs_flow" -"igraph_write_graph_dot","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_write_graph_dot" -"igraph_write_graph_edgelist","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_write_graph_edgelist" -"igraph_write_graph_gml","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_write_graph_gml" -"igraph_write_graph_graphml","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_write_graph_graphml" -"igraph_write_graph_leda","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_write_graph_leda" -"igraph_write_graph_lgl","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_write_graph_lgl" -"igraph_write_graph_ncol","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_write_graph_ncol" -"igraph_write_graph_pajek","https://igraph.org/c/html/0.10.17/igraph-Foreign.html#igraph_write_graph_pajek" diff --git a/tools/igraph.r2cdocs/man/igraph.r2cdocs-package.Rd b/tools/igraph.r2cdocs/man/igraph.r2cdocs-package.Rd deleted file mode 100644 index ff3a045fe5f..00000000000 --- a/tools/igraph.r2cdocs/man/igraph.r2cdocs-package.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/igraph.r2cdocs-package.R -\docType{package} -\name{igraph.r2cdocs-package} -\alias{igraph.r2cdocs} -\alias{igraph.r2cdocs-package} -\title{igraph.r2cdocs: Link C docs for the igraph package} -\description{ -Holds infrastructure for a special roclet that lets us link to C docs from R manual pages. -} -\seealso{ -Useful links: -\itemize{ - \item \url{https://github.com/igraph/igraph.r2cdocs} - \item Report bugs at \url{https://github.com/igraph/igraph.r2cdocs/issues} -} - -} -\author{ -\strong{Maintainer}: Maëlle Salmon \email{msmaellesalmon@gmail.com} (\href{https://orcid.org/0000-0002-2815-0399}{ORCID}) - -} -\keyword{internal} diff --git a/tools/igraph.r2cdocs/tests/testthat.R b/tools/igraph.r2cdocs/tests/testthat.R deleted file mode 100644 index 8948fac7ecd..00000000000 --- a/tools/igraph.r2cdocs/tests/testthat.R +++ /dev/null @@ -1,4 +0,0 @@ -library(testthat) -library(igraph.r2cdocs) - -test_check("igraph.r2cdocs") diff --git a/tools/igraph.r2cdocs/tests/testthat/test-c-links.R b/tools/igraph.r2cdocs/tests/testthat/test-c-links.R deleted file mode 100644 index 7d553f0fdee..00000000000 --- a/tools/igraph.r2cdocs/tests/testthat/test-c-links.R +++ /dev/null @@ -1,72 +0,0 @@ -# A package root whose vendored C library reports `version`. -local_engine <- function(version, env = parent.frame()) { - base_path <- withr::local_tempdir(.local_envir = env) - dir.create(file.path(base_path, "src", "vendor"), recursive = TRUE) - writeLines( - c( - "#ifndef IGRAPH_VERSION_H", - sprintf("#define IGRAPH_VERSION \"%s\"", version), - "#define IGRAPH_VERSION_MAJOR 0" - ), - file.path(base_path, "src", "vendor", "igraph_version.h") - ) - base_path -} - -test_that("a development snapshot maps to the release of its tag", { - expect_equal(c_docs_version("0.10.17-1-g16081ce60"), "0.10.17") - expect_equal(c_docs_version("0.11.0-156-g4b67f79d4"), "0.11.0") - expect_equal(c_docs_version("1.0.0-rc.1-3-gabcdef0"), "1.0.0-rc.1") - expect_equal(c_docs_version("0.10.17-1-g16081ce60-dirty"), "0.10.17") -}) - -test_that("a release maps to itself", { - expect_equal(c_docs_version("0.10.17"), "0.10.17") - expect_equal(c_docs_version("1.0.0"), "1.0.0") - expect_equal(c_docs_version("1.0.0-rc.1"), "1.0.0-rc.1") - expect_equal(c_docs_version("1.0.0-rc1"), "1.0.0-rc1") -}) - -test_that("a version without a table is served by the newest release before it", { - releases <- c("0.10.16", "0.10.17", "1.0.1") - - expect_equal(c_links_release("0.10.17", releases), "0.10.17") - expect_equal(c_links_release("0.11.0", releases), "0.10.17") - expect_equal(c_links_release("1.0.0", releases), "0.10.17") - expect_equal(c_links_release("1.0.0-rc1", c(releases, "1.0.0")), "0.10.17") - expect_equal(c_links_release("1.0.2", c("1.0.0", "1.0.0-rc1")), "1.0.0") - expect_identical(c_links_release("0.10.15", releases), NA_character_) -}) - -test_that("a release links the table this package carries for it", { - clinks <- c_links(local_engine("0.10.17")) - - expect_named(clinks, c("method", "url")) - expect_contains(clinks$method, "igraph_degree") - expect_true(all(startsWith(clinks$url, "https://igraph.org/c/html/0.10.17/"))) -}) - -test_that("a development snapshot links the manual of its tag, quietly", { - expect_silent(clinks <- c_links(local_engine("0.10.17-1-g16081ce60"))) - expect_identical(clinks, c_links(local_engine("0.10.17"))) -}) - -test_that("a snapshot past the newest table keeps that table, and says so", { - expect_message( - clinks <- c_links(local_engine("0.11.0-156-g4b67f79d4")), - "linking the manual of 0.10.17" - ) - expect_identical(clinks, c_links(local_engine("0.10.17"))) -}) - -test_that("a release without a table keeps the newest one before it, with a warning", { - expect_warning( - clinks <- c_links(local_engine("99.0.0")), - "linking the manual of 0.10.17" - ) - expect_identical(clinks, c_links(local_engine("0.10.17"))) -}) - -test_that("a version before every table is an error", { - expect_error(c_links(local_engine("0.9.0")), "or an earlier release") -}) diff --git a/tools/igraph.r2cdocs/tests/testthat/test-call-graph.R b/tools/igraph.r2cdocs/tests/testthat/test-call-graph.R deleted file mode 100644 index 0b08746fdea..00000000000 --- a/tools/igraph.r2cdocs/tests/testthat/test-call-graph.R +++ /dev/null @@ -1,67 +0,0 @@ -test_that("callees are visited breadth first, by vertex index", { - # `b` is numbered before `c`, having appeared first as a caller, - # so it comes first among the callees of `a`, which calls `c` first. - graph <- call_graph( - from = c("a", "a", "b", "c", "c"), - to = c("c", "b", "d_impl", "a", "e_impl") - ) - - expect_equal(graph$vertices, c("a", "b", "c", "d_impl", "e_impl")) - expect_equal( - reachable_functions(graph, "a"), - c("a", "b", "c", "d_impl", "e_impl") - ) - expect_equal( - reachable_functions(graph, "c"), - c("c", "a", "e_impl", "b", "d_impl") - ) - expect_equal(find_impl("c", graph), c("e_impl", "d_impl")) -}) - -test_that("a function that is not defined reaches nothing", { - graph <- call_graph(from = "a", to = "b_impl") - - expect_equal(reachable_functions(graph, "z"), character()) - expect_equal(find_impl("z", graph), character()) -}) - -test_that("the walk visits functions in the order igraph::subcomponent() does", { - skip_if_not_installed("igraph") - - set.seed(20261016) - functions <- c(paste0("f", 1:30), paste0("g", 1:10, "_impl")) - from <- sample(functions[1:30], 120, replace = TRUE) - to <- sample(functions, 120, replace = TRUE) - - graph <- call_graph(from, to) - reference <- igraph::graph_from_data_frame(data.frame(from = from, to = to)) - - expect_equal(graph$vertices, igraph::V(reference)$name) - for (start in graph$vertices) { - expect_equal( - reachable_functions(graph, start), - names(igraph::subcomponent(reference, start, mode = "out")) - ) - } -}) - -test_that("the call graph comes from the function definitions under R/", { - base_path <- withr::local_tempdir() - dir.create(file.path(base_path, "R")) - writeLines( - c( - "outer <- function(x) inner(x)", - "inner <- function(x) {", - " list(degree_impl(x), vcount_impl(x))", - "}" - ), - file.path(base_path, "R", "a.R") - ) - - graph <- r_call_graph(base_path) - - expect_equal( - reachable_functions(graph, "outer"), - c("outer", "inner", "list", "degree_impl", "vcount_impl") - ) -}) diff --git a/tools/igraph.r2cdocs/tests/testthat/test-roclet.R b/tools/igraph.r2cdocs/tests/testthat/test-roclet.R deleted file mode 100644 index 7ac942e5f34..00000000000 --- a/tools/igraph.r2cdocs/tests/testthat/test-roclet.R +++ /dev/null @@ -1,52 +0,0 @@ -test_that("the roclet links the C functions a topic reaches", { - base_path <- withr::local_tempdir() - writeLines( - c( - "Package: minipkg", - "Title: Test", - "Version: 0.0.1", - "Description: Test.", - "License: MIT", - "Encoding: UTF-8" - ), - file.path(base_path, "DESCRIPTION") - ) - dir.create(file.path(base_path, "R")) - writeLines( - c( - "#' Degrees", - "#'", - "#' @param graph A graph.", - "#' @returns The degrees.", - "#' @export", - "my_degree <- function(graph) {", - " count_degrees(graph)", - "}", - "", - "count_degrees <- function(graph) {", - " degree_impl(graph)", - "}", - "", - "degree_impl <- function(graph) NULL" - ), - file.path(base_path, "R", "degree.R") - ) - dir.create(file.path(base_path, "src", "vendor"), recursive = TRUE) - writeLines( - "#define IGRAPH_VERSION \"0.10.17-1-g16081ce60\"", - file.path(base_path, "src", "vendor", "igraph_version.h") - ) - - suppressMessages(roxygen2::roxygenize( - base_path, - roclets = "igraph.r2cdocs::docs_rd", - load_code = "source" - )) - - rd <- readLines(file.path(base_path, "man", "my_degree.Rd")) - expect_contains(rd, "\\section{Related documentation in the C library}{") - expect_contains( - rd, - "\\href{https://igraph.org/c/html/0.10.17/igraph-Basic.html#igraph_degree}{\\code{degree()}}" - ) -}) From d4071582be1428544e9462cec3b24d65d890de96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABlle=20Salmon?= Date: Fri, 23 Oct 2026 15:05:44 +0200 Subject: [PATCH 2/2] exclude from covr --- tests/testthat/test-roxygen-cdocs.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/testthat/test-roxygen-cdocs.R b/tests/testthat/test-roxygen-cdocs.R index 6392c63fe0d..31ffab38839 100644 --- a/tests/testthat/test-roxygen-cdocs.R +++ b/tests/testthat/test-roxygen-cdocs.R @@ -1,7 +1,10 @@ # The C-docs roclet of R/roxygen-cdocs.R. # Both files are `.Rbuildignore`d, so only `testthat::test_local()` runs these, # where `Config/Needs/roxygen2` is installed. +# covr ignores `.Rbuildignore` but attaches only the exports, without `docs_rd`; +# codecov.yml leaves the roclet out of coverage anyway. +skip_on_covr() skip_if_not_installed("roxygen2") skip_if_not_installed("treesitter") skip_if_not_installed("treesitter.r")