├── .Rbuildignore ├── .gitattributes ├── .github ├── .gitignore ├── CONTRIBUTING.md ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── config.yml │ └── feature_request.md ├── pull_request_template.md └── workflows │ ├── R-CMD-check-dev.yaml │ ├── R-CMD-check-status.yaml │ ├── R-CMD-check.yaml │ ├── build-and-check.yml │ ├── check │ └── action.yml │ ├── commit │ └── action.yml │ ├── covr │ └── action.yml │ ├── custom │ ├── after-install │ │ └── action.yml │ └── before-install │ │ └── action.yml │ ├── dep-matrix │ └── action.yml │ ├── dep-suggests-matrix │ ├── action.R │ └── action.yml │ ├── each.yaml │ ├── fledge.yaml │ ├── get-extra │ └── action.yml │ ├── git-identity │ └── action.yml │ ├── install │ └── action.yml │ ├── lock.yaml │ ├── matrix-check │ └── action.yml │ ├── pkgdown-build │ └── action.yml │ ├── pkgdown-deploy │ └── action.yml │ ├── pkgdown.yaml │ ├── pr-commands.yaml │ ├── rate-limit │ └── action.yml │ ├── revdep.yaml │ ├── rhub.yaml │ ├── roxygenize │ └── action.yml │ ├── style │ └── action.yml │ ├── update-citation-cff.yaml │ ├── update-snapshots │ └── action.yml │ ├── vendor.yaml │ └── versions-matrix │ ├── action.R │ └── action.yml ├── .gitignore ├── .gitmodules ├── .zenodo.json ├── AUTHORS-list.md ├── CITATION.cff ├── CONTRIBUTING.md ├── DESCRIPTION ├── Makefile ├── Makefile-cigraph ├── NAMESPACE ├── NEWS.md ├── R ├── aaa-auto.R ├── adjacency.R ├── as_phylo.R ├── assortativity.R ├── attributes.R ├── basic.R ├── bipartite.R ├── centrality.R ├── centralization.R ├── cliques.R ├── cocitation.R ├── cohesive.blocks.R ├── coloring.R ├── community.R ├── components.R ├── console.R ├── conversion.R ├── cpp11.R ├── cran.R ├── cycles.R ├── decomposition.R ├── degseq.R ├── demo.R ├── efficiency.R ├── embedding.R ├── env-and-data.R ├── epi.R ├── eulerian.R ├── fit.R ├── flow.R ├── foreign.R ├── games.R ├── glet.R ├── has.R ├── hrg.R ├── idx.R ├── igraph-package.R ├── import-standalone-obj-type.R ├── import-standalone-purrr.R ├── import-standalone-types-check.R ├── incidence.R ├── indexing.R ├── interface.R ├── iterators.R ├── layout.R ├── make.R ├── minimum.spanning.tree.R ├── motifs.R ├── old-0_1_1.R ├── old-0_2.R ├── old-0_5.R ├── old-0_6.R ├── old-1_0_0.R ├── old-1_5_0.R ├── operators.R ├── other.R ├── package.R ├── palette.R ├── par.R ├── paths.R ├── plot.R ├── plot.common.R ├── plot.shapes.R ├── pp.R ├── print.R ├── printr.R ├── random_walk.R ├── revdep.R ├── rewire.R ├── scan.R ├── sgm.R ├── similarity.R ├── simple.R ├── sir.R ├── sparsedf.R ├── stochastic_matrix.R ├── structural-properties.R ├── structure.info.R ├── tkigraph.R ├── tkplot.R ├── topology.R ├── trees.R ├── triangles.R ├── utils-assert-args.R ├── utils-s3.R ├── utils.R ├── uuid.R ├── versions.R ├── weakref.R └── zzz.R ├── README.md ├── _pkgdown.yml ├── cleanup ├── cleanup.win ├── codecov.yml ├── configure ├── configure.win ├── cran-comments.md ├── cran-comments.template.md ├── demo ├── 00Index ├── centrality.R ├── cohesive.R ├── community.R ├── crashR.R ├── hrg.R └── smallworld.R ├── doc ├── plot.common.Rd └── vertex.shape.pie.Rd ├── igraph.Rproj ├── inst ├── AUTHORS ├── CITATION ├── benchmarks │ ├── correlated.R │ ├── local.scan.R │ ├── time_call.R │ ├── time_dirSelect.R │ ├── time_fr_layout.R │ ├── time_kk_layout.R │ ├── time_print.R │ ├── time_sgm.R │ └── time_sir.R └── lifecycle │ ├── deprecated-table-creation.R │ └── deprecated.csv ├── man ├── E.Rd ├── V.Rd ├── aaa-igraph-package.Rd ├── add.edges.Rd ├── add.vertex.shape.Rd ├── add.vertices.Rd ├── add_edges.Rd ├── add_layout_.Rd ├── add_vertices.Rd ├── adjacent.triangles.Rd ├── adjacent_vertices.Rd ├── aging.ba.game.Rd ├── aging.barabasi.game.Rd ├── aging.prefatt.game.Rd ├── all_simple_paths.Rd ├── alpha.centrality.Rd ├── alpha_centrality.Rd ├── are.connected.Rd ├── are_adjacent.Rd ├── arpack.Rd ├── articulation.points.Rd ├── articulation_points.Rd ├── as.directed.Rd ├── as.igraph.Rd ├── as.matrix.igraph.Rd ├── as.undirected.Rd ├── as_adj.Rd ├── as_adj_list.Rd ├── as_adjacency_matrix.Rd ├── as_biadjacency_matrix.Rd ├── as_directed.Rd ├── as_edgelist.Rd ├── as_graphnel.Rd ├── as_ids.Rd ├── as_incidence_matrix.Rd ├── as_long_data_frame.Rd ├── as_membership.Rd ├── as_phylo.Rd ├── assortativity.Rd ├── assortativity.degree.Rd ├── assortativity.nominal.Rd ├── asymmetric.preference.game.Rd ├── authority.score.Rd ├── autocurve.edges.Rd ├── automorphism_group.Rd ├── automorphisms.Rd ├── average.path.length.Rd ├── ba.game.Rd ├── barabasi.game.Rd ├── betweenness.Rd ├── bfs.Rd ├── biconnected.components.Rd ├── biconnected_components.Rd ├── bipartite.mapping.Rd ├── bipartite.projection.Rd ├── bipartite.projection.size.Rd ├── bipartite.random.game.Rd ├── bipartite_mapping.Rd ├── bipartite_projection.Rd ├── blockGraphs.Rd ├── bonpow.Rd ├── c.igraph.es.Rd ├── c.igraph.vs.Rd ├── callaway.traits.game.Rd ├── canonical.permutation.Rd ├── canonical_permutation.Rd ├── categorical_pal.Rd ├── centr_betw.Rd ├── centr_betw_tmax.Rd ├── centr_clo.Rd ├── centr_clo_tmax.Rd ├── centr_degree.Rd ├── centr_degree_tmax.Rd ├── centr_eigen.Rd ├── centr_eigen_tmax.Rd ├── centralization.betweenness.Rd ├── centralization.betweenness.tmax.Rd ├── centralization.closeness.Rd ├── centralization.closeness.tmax.Rd ├── centralization.degree.Rd ├── centralization.degree.tmax.Rd ├── centralization.evcent.Rd ├── centralization.evcent.tmax.Rd ├── centralize.Rd ├── centralize.scores.Rd ├── cited.type.game.Rd ├── citing.cited.type.game.Rd ├── clique.number.Rd ├── cliques.Rd ├── closeness.Rd ├── cluster.distribution.Rd ├── cluster_edge_betweenness.Rd ├── cluster_fast_greedy.Rd ├── cluster_fluid_communities.Rd ├── cluster_infomap.Rd ├── cluster_label_prop.Rd ├── cluster_leading_eigen.Rd ├── cluster_leiden.Rd ├── cluster_louvain.Rd ├── cluster_optimal.Rd ├── cluster_spinglass.Rd ├── cluster_walktrap.Rd ├── clusters.Rd ├── cocitation.Rd ├── code.length.Rd ├── cohesive.blocks.Rd ├── cohesive_blocks.Rd ├── communities.Rd ├── compare.Rd ├── complementer.Rd ├── component_wise.Rd ├── components.Rd ├── compose.Rd ├── connect.neighborhood.Rd ├── consensus_tree.Rd ├── console.Rd ├── constraint.Rd ├── contract.Rd ├── contract.vertices.Rd ├── convex.hull.Rd ├── convex_hull.Rd ├── coreness.Rd ├── count.multiple.Rd ├── count_automorphisms.Rd ├── count_isomorphisms.Rd ├── count_motifs.Rd ├── count_subgraph_isomorphisms.Rd ├── count_triangles.Rd ├── create.communities.Rd ├── curve_multiple.Rd ├── cutat.Rd ├── decompose.Rd ├── decompose.graph.Rd ├── degree.Rd ├── degree.distribution.Rd ├── degree.sequence.game.Rd ├── delete.edges.Rd ├── delete.vertices.Rd ├── delete_edge_attr.Rd ├── delete_edges.Rd ├── delete_graph_attr.Rd ├── delete_vertex_attr.Rd ├── delete_vertices.Rd ├── dendPlot.Rd ├── dfs.Rd ├── diameter.Rd ├── difference.Rd ├── difference.igraph.Rd ├── difference.igraph.es.Rd ├── difference.igraph.vs.Rd ├── dim_select.Rd ├── disjoint_union.Rd ├── distances.Rd ├── diverging_pal.Rd ├── diversity.Rd ├── dominator.tree.Rd ├── dominator_tree.Rd ├── dot-apply_modifiers.Rd ├── dot-data.Rd ├── dot-extract_constructor_and_modifiers.Rd ├── dot-igraph.progress.Rd ├── dot-igraph.status.Rd ├── dyad.census.Rd ├── dyad_census.Rd ├── each_edge.Rd ├── eccentricity.Rd ├── edge.Rd ├── edge.betweenness.Rd ├── edge.betweenness.community.Rd ├── edge.connectivity.Rd ├── edge.disjoint.paths.Rd ├── edge_attr-set.Rd ├── edge_attr.Rd ├── edge_attr_names.Rd ├── edge_connectivity.Rd ├── edge_density.Rd ├── ego.Rd ├── eigen_centrality.Rd ├── embed_adjacency_matrix.Rd ├── embed_laplacian_matrix.Rd ├── ends.Rd ├── erdos.renyi.game.Rd ├── establishment.game.Rd ├── estimate_betweenness.Rd ├── estimate_closeness.Rd ├── estimate_edge_betweenness.Rd ├── evcent.Rd ├── exportPajek.Rd ├── farthest.nodes.Rd ├── fastgreedy.community.Rd ├── feedback_arc_set.Rd ├── feedback_vertex_set.Rd ├── figures │ ├── lifecycle-archived.svg │ ├── lifecycle-defunct.svg │ ├── lifecycle-deprecated.svg │ ├── lifecycle-experimental.svg │ ├── lifecycle-maturing.svg │ ├── lifecycle-questioning.svg │ ├── lifecycle-soft-deprecated.svg │ ├── lifecycle-stable.svg │ ├── lifecycle-superseded.svg │ └── logo.png ├── find_cycle.Rd ├── fit_hrg.Rd ├── fit_power_law.Rd ├── forest.fire.game.Rd ├── from_incidence_matrix.Rd ├── get.adjacency.Rd ├── get.adjedgelist.Rd ├── get.adjlist.Rd ├── get.all.shortest.paths.Rd ├── get.data.frame.Rd ├── get.diameter.Rd ├── get.edge.Rd ├── get.edge.attribute.Rd ├── get.edge.ids.Rd ├── get.edgelist.Rd ├── get.graph.attribute.Rd ├── get.incidence.Rd ├── get.shortest.paths.Rd ├── get.stochastic.Rd ├── get.vertex.attribute.Rd ├── getIgraphOpt.Rd ├── get_edge_ids.Rd ├── girth.Rd ├── global_efficiency.Rd ├── gorder.Rd ├── graph.Rd ├── graph.adhesion.Rd ├── graph.adjacency.Rd ├── graph.adjlist.Rd ├── graph.atlas.Rd ├── graph.automorphisms.Rd ├── graph.bfs.Rd ├── graph.bipartite.Rd ├── graph.cohesion.Rd ├── graph.complementer.Rd ├── graph.compose.Rd ├── graph.coreness.Rd ├── graph.data.frame.Rd ├── graph.de.bruijn.Rd ├── graph.density.Rd ├── graph.dfs.Rd ├── graph.difference.Rd ├── graph.disjoint.union.Rd ├── graph.diversity.Rd ├── graph.edgelist.Rd ├── graph.eigen.Rd ├── graph.empty.Rd ├── graph.extended.chordal.ring.Rd ├── graph.famous.Rd ├── graph.formula.Rd ├── graph.full.Rd ├── graph.full.bipartite.Rd ├── graph.full.citation.Rd ├── graph.graphdb.Rd ├── graph.incidence.Rd ├── graph.intersection.Rd ├── graph.isocreate.Rd ├── graph.kautz.Rd ├── graph.knn.Rd ├── graph.laplacian.Rd ├── graph.lattice.Rd ├── graph.lcf.Rd ├── graph.maxflow.Rd ├── graph.mincut.Rd ├── graph.motifs.Rd ├── graph.motifs.est.Rd ├── graph.motifs.no.Rd ├── graph.neighborhood.Rd ├── graph.ring.Rd ├── graph.star.Rd ├── graph.strength.Rd ├── graph.tree.Rd ├── graph.union.Rd ├── graph_.Rd ├── graph_attr-set.Rd ├── graph_attr.Rd ├── graph_attr_names.Rd ├── graph_center.Rd ├── graph_from_adj_list.Rd ├── graph_from_adjacency_matrix.Rd ├── graph_from_atlas.Rd ├── graph_from_biadjacency_matrix.Rd ├── graph_from_data_frame.Rd ├── graph_from_edgelist.Rd ├── graph_from_graphdb.Rd ├── graph_from_graphnel.Rd ├── graph_from_incidence_matrix.Rd ├── graph_from_isomorphism_class.Rd ├── graph_from_lcf.Rd ├── graph_from_literal.Rd ├── graph_id.Rd ├── graph_version.Rd ├── graphlet_basis.Rd ├── graphlets.candidate.basis.Rd ├── graphlets.project.Rd ├── greedy_vertex_coloring.Rd ├── grg.game.Rd ├── groups.Rd ├── growing.random.game.Rd ├── gsize.Rd ├── handle_vertex_type_arg.Rd ├── harmonic_centrality.Rd ├── has.multiple.Rd ├── has_eulerian_path.Rd ├── head_of.Rd ├── head_print.Rd ├── hits_scores.Rd ├── hrg-methods.Rd ├── hrg.Rd ├── hrg.consensus.Rd ├── hrg.create.Rd ├── hrg.dendrogram.Rd ├── hrg.fit.Rd ├── hrg.game.Rd ├── hrg.predict.Rd ├── hrg_tree.Rd ├── hub.score.Rd ├── hub_score.Rd ├── identical_graphs.Rd ├── igraph-attribute-combination.Rd ├── igraph-dollar.Rd ├── igraph-es-attributes.Rd ├── igraph-es-indexing.Rd ├── igraph-es-indexing2.Rd ├── igraph-minus.Rd ├── igraph-vs-attributes.Rd ├── igraph-vs-indexing.Rd ├── igraph-vs-indexing2.Rd ├── igraph.console.Rd ├── igraph.from.graphNEL.Rd ├── igraph.options.Rd ├── igraph.sample.Rd ├── igraph.shape.noclip.Rd ├── igraph.shape.noplot.Rd ├── igraph.to.graphNEL.Rd ├── igraph.version.Rd ├── igraph_demo.Rd ├── igraph_options.Rd ├── igraph_version.Rd ├── igraphdemo.Rd ├── incident.Rd ├── incident_edges.Rd ├── indent_print.Rd ├── independence.number.Rd ├── independent.vertex.sets.Rd ├── induced.subgraph.Rd ├── infomap.community.Rd ├── inside-square-error.Rd ├── interconnected.islands.game.Rd ├── intersection.Rd ├── intersection.igraph.Rd ├── intersection.igraph.es.Rd ├── intersection.igraph.vs.Rd ├── is.bipartite.Rd ├── is.chordal.Rd ├── is.connected.Rd ├── is.dag.Rd ├── is.degree.sequence.Rd ├── is.directed.Rd ├── is.graphical.degree.sequence.Rd ├── is.hierarchical.Rd ├── is.igraph.Rd ├── is.loop.Rd ├── is.matching.Rd ├── is.maximal.matching.Rd ├── is.minimal.separator.Rd ├── is.multiple.Rd ├── is.mutual.Rd ├── is.named.Rd ├── is.separator.Rd ├── is.simple.Rd ├── is.weighted.Rd ├── is_acyclic.Rd ├── is_biconnected.Rd ├── is_bipartite.Rd ├── is_chordal.Rd ├── is_complete.Rd ├── is_dag.Rd ├── is_degseq.Rd ├── is_directed.Rd ├── is_forest.Rd ├── is_graphical.Rd ├── is_igraph.Rd ├── is_min_separator.Rd ├── is_named.Rd ├── is_printer_callback.Rd ├── is_separator.Rd ├── is_tree.Rd ├── is_weighted.Rd ├── isomorphic.Rd ├── isomorphism_class.Rd ├── isomorphisms.Rd ├── ivs.Rd ├── k.regular.game.Rd ├── k_shortest_paths.Rd ├── keeping_degseq.Rd ├── knn.Rd ├── label.propagation.community.Rd ├── laplacian_matrix.Rd ├── largest.cliques.Rd ├── largest.independent.vertex.sets.Rd ├── lastcit.game.Rd ├── layout.auto.Rd ├── layout.bipartite.Rd ├── layout.circle.Rd ├── layout.davidson.harel.Rd ├── layout.drl.Rd ├── layout.fruchterman.reingold.Rd ├── layout.fruchterman.reingold.grid.Rd ├── layout.gem.Rd ├── layout.graphopt.Rd ├── layout.grid.3d.Rd ├── layout.grid.Rd ├── layout.kamada.kawai.Rd ├── layout.lgl.Rd ├── layout.mds.Rd ├── layout.merge.Rd ├── layout.norm.Rd ├── layout.random.Rd ├── layout.reingold.tilford.Rd ├── layout.sphere.Rd ├── layout.spring.Rd ├── layout.star.Rd ├── layout.sugiyama.Rd ├── layout.svd.Rd ├── layout_.Rd ├── layout_as_bipartite.Rd ├── layout_as_star.Rd ├── layout_as_tree.Rd ├── layout_in_circle.Rd ├── layout_nicely.Rd ├── layout_on_grid.Rd ├── layout_on_sphere.Rd ├── layout_randomly.Rd ├── layout_with_dh.Rd ├── layout_with_drl.Rd ├── layout_with_fr.Rd ├── layout_with_gem.Rd ├── layout_with_graphopt.Rd ├── layout_with_kk.Rd ├── layout_with_lgl.Rd ├── layout_with_mds.Rd ├── layout_with_sugiyama.Rd ├── leading.eigenvector.community.Rd ├── line.graph.Rd ├── list.edge.attributes.Rd ├── list.graph.attributes.Rd ├── list.vertex.attributes.Rd ├── local_scan.Rd ├── make_.Rd ├── make_bipartite_graph.Rd ├── make_chordal_ring.Rd ├── make_clusters.Rd ├── make_de_bruijn_graph.Rd ├── make_empty_graph.Rd ├── make_from_prufer.Rd ├── make_full_bipartite_graph.Rd ├── make_full_citation_graph.Rd ├── make_full_graph.Rd ├── make_graph.Rd ├── make_kautz_graph.Rd ├── make_lattice.Rd ├── make_line_graph.Rd ├── make_ring.Rd ├── make_star.Rd ├── make_tree.Rd ├── match_vertices.Rd ├── matching.Rd ├── max_cardinality.Rd ├── max_flow.Rd ├── maxcohesion.Rd ├── maximal.cliques.Rd ├── maximal.cliques.count.Rd ├── maximal.independent.vertex.sets.Rd ├── maximal_ivs.Rd ├── maximum.bipartite.matching.Rd ├── maximum.cardinality.search.Rd ├── merge_coords.Rd ├── min_cut.Rd ├── min_separators.Rd ├── min_st_separators.Rd ├── minimal.st.separators.Rd ├── minimum.size.separators.Rd ├── minimum.spanning.tree.Rd ├── mod.matrix.Rd ├── modularity.igraph.Rd ├── motifs.Rd ├── mst.Rd ├── multilevel.community.Rd ├── neighborhood.size.Rd ├── neighbors.Rd ├── no.clusters.Rd ├── norm_coords.Rd ├── normalize.Rd ├── optimal.community.Rd ├── page.rank.Rd ├── page_rank.Rd ├── path.Rd ├── path.length.hist.Rd ├── permute.Rd ├── permute.vertices.Rd ├── piecewise.layout.Rd ├── pipe.Rd ├── plot.common.Rd ├── plot.igraph.Rd ├── plot.sir.Rd ├── plotHierarchy.Rd ├── plot_dendrogram.communities.Rd ├── plot_dendrogram.igraphHRG.Rd ├── plus-.igraph.Rd ├── power.law.fit.Rd ├── power_centrality.Rd ├── predict_edges.Rd ├── preference.game.Rd ├── print.igraph.Rd ├── print.igraph.es.Rd ├── print.igraph.vs.Rd ├── print.igraphHRG.Rd ├── print.igraphHRGConsensus.Rd ├── printer_callback.Rd ├── r_pal.Rd ├── radius.Rd ├── random_walk.Rd ├── read.graph.Rd ├── read_graph.Rd ├── realize_bipartite_degseq.Rd ├── realize_degseq.Rd ├── reciprocity.Rd ├── remove.edge.attribute.Rd ├── remove.graph.attribute.Rd ├── remove.vertex.attribute.Rd ├── rep.igraph.Rd ├── rev.igraph.es.Rd ├── rev.igraph.vs.Rd ├── reverse_edges.Rd ├── rewire.Rd ├── rglplot.Rd ├── roxygen │ └── meta.R ├── running.mean.Rd ├── running_mean.Rd ├── sample_.Rd ├── sample_bipartite.Rd ├── sample_bipartite_gnm.Rd ├── sample_chung_lu.Rd ├── sample_correlated_gnp.Rd ├── sample_correlated_gnp_pair.Rd ├── sample_degseq.Rd ├── sample_dirichlet.Rd ├── sample_dot_product.Rd ├── sample_fitness.Rd ├── sample_fitness_pl.Rd ├── sample_forestfire.Rd ├── sample_gnm.Rd ├── sample_gnp.Rd ├── sample_grg.Rd ├── sample_growing.Rd ├── sample_hierarchical_sbm.Rd ├── sample_hrg.Rd ├── sample_islands.Rd ├── sample_k_regular.Rd ├── sample_last_cit.Rd ├── sample_motifs.Rd ├── sample_pa.Rd ├── sample_pa_age.Rd ├── sample_pref.Rd ├── sample_sbm.Rd ├── sample_seq.Rd ├── sample_smallworld.Rd ├── sample_spanning_tree.Rd ├── sample_sphere_surface.Rd ├── sample_sphere_volume.Rd ├── sample_traits_callaway.Rd ├── sample_tree.Rd ├── sbm.game.Rd ├── scan_stat.Rd ├── sequential_pal.Rd ├── set.edge.attribute.Rd ├── set.graph.attribute.Rd ├── set.vertex.attribute.Rd ├── set_edge_attr.Rd ├── set_graph_attr.Rd ├── set_vertex_attr.Rd ├── shapes.Rd ├── shortest.paths.Rd ├── showtrace.Rd ├── similarity.Rd ├── similarity.dice.Rd ├── similarity.invlogweighted.Rd ├── similarity.jaccard.Rd ├── simple_cycles.Rd ├── simplified.Rd ├── simplify.Rd ├── sir.Rd ├── spectrum.Rd ├── spinglass.community.Rd ├── split_join_distance.Rd ├── stCuts.Rd ├── stMincuts.Rd ├── st_cuts.Rd ├── st_min_cuts.Rd ├── static.fitness.game.Rd ├── static.power.law.game.Rd ├── stochastic_matrix.Rd ├── strength.Rd ├── sub-.igraph.Rd ├── sub-sub-.igraph.Rd ├── subcomponent.Rd ├── subgraph.Rd ├── subgraph.centrality.Rd ├── subgraph.edges.Rd ├── subgraph_centrality.Rd ├── subgraph_isomorphic.Rd ├── subgraph_isomorphisms.Rd ├── tail_of.Rd ├── tkigraph.Rd ├── tkplot.Rd ├── tkplot.canvas.Rd ├── tkplot.center.Rd ├── tkplot.close.Rd ├── tkplot.export.postscript.Rd ├── tkplot.fit.to.screen.Rd ├── tkplot.getcoords.Rd ├── tkplot.off.Rd ├── tkplot.reshape.Rd ├── tkplot.rotate.Rd ├── tkplot.setcoords.Rd ├── to_prufer.Rd ├── topo_sort.Rd ├── topological.sort.Rd ├── transitivity.Rd ├── triad.census.Rd ├── triad_census.Rd ├── unfold.tree.Rd ├── unfold_tree.Rd ├── union.Rd ├── union.igraph.Rd ├── union.igraph.es.Rd ├── union.igraph.vs.Rd ├── unique.igraph.es.Rd ├── unique.igraph.vs.Rd ├── upgrade_graph.Rd ├── vertex.Rd ├── vertex.connectivity.Rd ├── vertex.disjoint.paths.Rd ├── vertex.shape.pie.Rd ├── vertex.shapes.Rd ├── vertex_attr-set.Rd ├── vertex_attr.Rd ├── vertex_attr_names.Rd ├── vertex_connectivity.Rd ├── voronoi_cells.Rd ├── walktrap.community.Rd ├── watts.strogatz.game.Rd ├── weighted_cliques.Rd ├── which_multiple.Rd ├── which_mutual.Rd ├── with_edge_.Rd ├── with_graph_.Rd ├── with_igraph_opt.Rd ├── with_vertex_.Rd ├── without_attr.Rd ├── without_loops.Rd ├── without_multiples.Rd ├── write.graph.Rd └── write_graph.Rd ├── patch └── 0001-fix-include-quotes.patch ├── pkgdown └── favicon │ ├── apple-touch-icon-120x120.png │ ├── apple-touch-icon-152x152.png │ ├── apple-touch-icon-180x180.png │ ├── apple-touch-icon-60x60.png │ ├── apple-touch-icon-76x76.png │ ├── apple-touch-icon.png │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ └── favicon.ico ├── rconfigure.py ├── revdep ├── .gitignore ├── README.md ├── cran.md ├── failures.md ├── problems.md ├── run-all.R ├── run-broken.R ├── run.R └── times.R ├── src ├── .gitignore ├── CMakeLists.txt ├── Makevars.in ├── Makevars.ucrt ├── Makevars.win ├── README.md ├── config.h.in ├── cpp11.cpp ├── cpp11.dd ├── cpprinterface.cpp ├── cpprinterface.dd ├── deps.mk ├── igraph-win.def ├── igraph_types.hpp ├── igraph_vector.hpp ├── init.cpp ├── init.dd ├── mkfile.plan9 ├── rinterface.c ├── rinterface.dd ├── rinterface.h ├── rinterface_extra.c ├── rinterface_extra.dd ├── rrandom.c ├── rrandom.dd ├── rrandom.h ├── simpleraytracer.cpp ├── simpleraytracer.dd ├── sources-glpk.mk ├── sources-glue-c.mk ├── sources-glue-cpp.mk ├── sources-igraph.mk ├── sources-mini-gmp.mk └── vendor │ ├── arpack │ ├── debug.h │ ├── dgetv0.f │ ├── dlaqrb.f │ ├── dmout.f │ ├── dnaitr.f │ ├── dnapps.f │ ├── dnaup2.f │ ├── dnaupd.f │ ├── dnconv.f │ ├── dneigh.f │ ├── dneupd.f │ ├── dngets.f │ ├── dsaitr.f │ ├── dsapps.f │ ├── dsaup2.f │ ├── dsaupd.f │ ├── dsconv.f │ ├── dseigt.f │ ├── dsesrt.f │ ├── dseupd.f │ ├── dsgets.f │ ├── dsortc.f │ ├── dsortr.f │ ├── dstatn.f │ ├── dstats.f │ ├── dstqrb.f │ ├── dvout.f │ ├── ivout.f │ ├── second.f │ ├── stat.h │ └── wrap.f │ ├── cigraph │ ├── .all-contributorsrc │ ├── .astylerc │ ├── .azure │ │ ├── build-win.yml │ │ └── build.yml │ ├── .devcontainer │ │ └── devcontainer.json │ ├── .editorconfig │ ├── .gitignore │ ├── .pre-commit-config.yaml │ ├── .travis.yml │ ├── .zenodo.json │ ├── ACKNOWLEDGEMENTS.md │ ├── AUTHORS │ ├── CHANGELOG.md │ ├── CITATION.cff │ ├── CMakeLists.txt │ ├── CONTRIBUTING.md │ ├── CONTRIBUTORS.md │ ├── CONTRIBUTORS.txt │ ├── COPYING │ ├── ChangeLog │ ├── INSTALL │ ├── NEWS │ ├── ONEWS │ ├── README.md │ ├── SUPPORT.md │ ├── azure-pipelines.yml │ ├── codecov.yml │ ├── etc │ │ └── cmake │ │ │ ├── BuildType.cmake │ │ │ ├── CheckTLSSupport.cmake │ │ │ ├── CodeCoverage.cmake │ │ │ ├── FindARPACK.cmake │ │ │ ├── FindGLPK.cmake │ │ │ ├── FindGMP.cmake │ │ │ ├── FindPLFIT.cmake │ │ │ ├── GetGitRevisionDescription.cmake │ │ │ ├── GetGitRevisionDescription.cmake.in │ │ │ ├── JoinPaths.cmake │ │ │ ├── PadString.cmake │ │ │ ├── PreventInSourceBuilds.cmake │ │ │ ├── UseCCacheWhenInstalled.cmake │ │ │ ├── attribute_support.cmake │ │ │ ├── benchmark_helpers.cmake │ │ │ ├── bit_operations_support.cmake │ │ │ ├── compilers.cmake │ │ │ ├── cpack_install_script.cmake │ │ │ ├── create_igraph_version_file.cmake │ │ │ ├── debugging.cmake │ │ │ ├── dependencies.cmake │ │ │ ├── features.cmake │ │ │ ├── fuzz_helpers.cmake │ │ │ ├── generate_tags_file.cmake │ │ │ ├── helpers.cmake │ │ │ ├── ieee754_endianness.cmake │ │ │ ├── ieee754_endianness_check.c │ │ │ ├── igraph-config.cmake.in │ │ │ ├── lto.cmake │ │ │ ├── packaging.cmake │ │ │ ├── pkgconfig_helpers.cmake │ │ │ ├── run_legacy_test.cmake │ │ │ ├── safe_math_support.cmake │ │ │ ├── sanitizers.cmake │ │ │ ├── summary.cmake │ │ │ ├── test_helpers.cmake │ │ │ ├── tls.cmake │ │ │ ├── uint128_support.cmake │ │ │ └── version.cmake │ ├── igraph.pc.in │ ├── include │ │ ├── igraph.h │ │ ├── igraph_adjlist.h │ │ ├── igraph_arpack.h │ │ ├── igraph_array.h │ │ ├── igraph_array_pmt.h │ │ ├── igraph_attributes.h │ │ ├── igraph_bipartite.h │ │ ├── igraph_bitset.h │ │ ├── igraph_bitset_list.h │ │ ├── igraph_blas.h │ │ ├── igraph_centrality.h │ │ ├── igraph_cliques.h │ │ ├── igraph_cocitation.h │ │ ├── igraph_cohesive_blocks.h │ │ ├── igraph_coloring.h │ │ ├── igraph_community.h │ │ ├── igraph_complex.h │ │ ├── igraph_components.h │ │ ├── igraph_config.h.in │ │ ├── igraph_constants.h │ │ ├── igraph_constructors.h │ │ ├── igraph_conversion.h │ │ ├── igraph_cycles.h │ │ ├── igraph_datatype.h │ │ ├── igraph_decls.h │ │ ├── igraph_dqueue.h │ │ ├── igraph_dqueue_pmt.h │ │ ├── igraph_eigen.h │ │ ├── igraph_embedding.h │ │ ├── igraph_epidemics.h │ │ ├── igraph_error.h │ │ ├── igraph_eulerian.h │ │ ├── igraph_flow.h │ │ ├── igraph_foreign.h │ │ ├── igraph_games.h │ │ ├── igraph_graph_list.h │ │ ├── igraph_graphicality.h │ │ ├── igraph_graphlets.h │ │ ├── igraph_heap.h │ │ ├── igraph_heap_pmt.h │ │ ├── igraph_hrg.h │ │ ├── igraph_interface.h │ │ ├── igraph_interrupt.h │ │ ├── igraph_iterators.h │ │ ├── igraph_lapack.h │ │ ├── igraph_layout.h │ │ ├── igraph_lsap.h │ │ ├── igraph_matching.h │ │ ├── igraph_matrix.h │ │ ├── igraph_matrix_list.h │ │ ├── igraph_matrix_pmt.h │ │ ├── igraph_memory.h │ │ ├── igraph_microscopic_update.h │ │ ├── igraph_mixing.h │ │ ├── igraph_motifs.h │ │ ├── igraph_neighborhood.h │ │ ├── igraph_nongraph.h │ │ ├── igraph_operators.h │ │ ├── igraph_paths.h │ │ ├── igraph_pmt.h │ │ ├── igraph_pmt_off.h │ │ ├── igraph_progress.h │ │ ├── igraph_psumtree.h │ │ ├── igraph_qsort.h │ │ ├── igraph_random.h │ │ ├── igraph_reachability.h │ │ ├── igraph_scan.h │ │ ├── igraph_separators.h │ │ ├── igraph_sparsemat.h │ │ ├── igraph_stack.h │ │ ├── igraph_stack_pmt.h │ │ ├── igraph_statusbar.h │ │ ├── igraph_structural.h │ │ ├── igraph_strvector.h │ │ ├── igraph_threading.h.in │ │ ├── igraph_topology.h │ │ ├── igraph_transitivity.h │ │ ├── igraph_typed_list_pmt.h │ │ ├── igraph_types.h │ │ ├── igraph_vector.h │ │ ├── igraph_vector_list.h │ │ ├── igraph_vector_pmt.h │ │ ├── igraph_vector_ptr.h │ │ ├── igraph_vector_type.h │ │ ├── igraph_version.h.in │ │ └── igraph_visitor.h │ ├── interfaces │ │ ├── CMakeLists.txt │ │ ├── functions.yaml │ │ └── types.yaml │ ├── msvc │ │ └── include │ │ │ └── unistd.h │ ├── src │ │ ├── CMakeLists.txt │ │ ├── centrality │ │ │ ├── betweenness.c │ │ │ ├── centrality_internal.h │ │ │ ├── centrality_other.c │ │ │ ├── centralization.c │ │ │ ├── closeness.c │ │ │ ├── coreness.c │ │ │ ├── eigenvector.c │ │ │ ├── hub_authority.c │ │ │ ├── pagerank.c │ │ │ ├── prpack.cpp │ │ │ ├── prpack │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── prpack.h │ │ │ │ ├── prpack_base_graph.cpp │ │ │ │ ├── prpack_base_graph.h │ │ │ │ ├── prpack_csc.h │ │ │ │ ├── prpack_csr.h │ │ │ │ ├── prpack_edge_list.h │ │ │ │ ├── prpack_igraph_graph.cpp │ │ │ │ ├── prpack_igraph_graph.h │ │ │ │ ├── prpack_preprocessed_ge_graph.cpp │ │ │ │ ├── prpack_preprocessed_ge_graph.h │ │ │ │ ├── prpack_preprocessed_graph.h │ │ │ │ ├── prpack_preprocessed_gs_graph.cpp │ │ │ │ ├── prpack_preprocessed_gs_graph.h │ │ │ │ ├── prpack_preprocessed_scc_graph.cpp │ │ │ │ ├── prpack_preprocessed_scc_graph.h │ │ │ │ ├── prpack_preprocessed_schur_graph.cpp │ │ │ │ ├── prpack_preprocessed_schur_graph.h │ │ │ │ ├── prpack_result.cpp │ │ │ │ ├── prpack_result.h │ │ │ │ ├── prpack_solver.cpp │ │ │ │ ├── prpack_solver.h │ │ │ │ ├── prpack_utils.cpp │ │ │ │ └── prpack_utils.h │ │ │ ├── prpack_internal.h │ │ │ └── truss.cpp │ │ ├── cliques │ │ │ ├── cliquer │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README │ │ │ │ ├── cliquer.c │ │ │ │ ├── cliquer.h │ │ │ │ ├── cliquer_graph.c │ │ │ │ ├── cliquerconf.h │ │ │ │ ├── graph.h │ │ │ │ ├── misc.h │ │ │ │ ├── reorder.c │ │ │ │ ├── reorder.h │ │ │ │ └── set.h │ │ │ ├── cliquer_internal.h │ │ │ ├── cliquer_wrapper.c │ │ │ ├── cliques.c │ │ │ ├── glet.c │ │ │ ├── maximal_cliques.c │ │ │ └── maximal_cliques_template.h │ │ ├── community │ │ │ ├── community_misc.c │ │ │ ├── edge_betweenness.c │ │ │ ├── fast_modularity.c │ │ │ ├── fluid.c │ │ │ ├── infomap │ │ │ │ ├── infomap.cc │ │ │ │ ├── infomap_FlowGraph.cc │ │ │ │ ├── infomap_FlowGraph.h │ │ │ │ ├── infomap_Greedy.cc │ │ │ │ ├── infomap_Greedy.h │ │ │ │ └── infomap_Node.h │ │ │ ├── label_propagation.c │ │ │ ├── leading_eigenvector.c │ │ │ ├── leiden.c │ │ │ ├── louvain.c │ │ │ ├── modularity.c │ │ │ ├── optimal_modularity.c │ │ │ ├── spinglass │ │ │ │ ├── NetDataTypes.cpp │ │ │ │ ├── NetDataTypes.h │ │ │ │ ├── NetRoutines.cpp │ │ │ │ ├── NetRoutines.h │ │ │ │ ├── clustertool.cpp │ │ │ │ ├── pottsmodel_2.cpp │ │ │ │ └── pottsmodel_2.h │ │ │ ├── voronoi.c │ │ │ └── walktrap │ │ │ │ ├── walktrap.cpp │ │ │ │ ├── walktrap_communities.cpp │ │ │ │ ├── walktrap_communities.h │ │ │ │ ├── walktrap_graph.cpp │ │ │ │ ├── walktrap_graph.h │ │ │ │ ├── walktrap_heap.cpp │ │ │ │ └── walktrap_heap.h │ │ ├── config.h.in │ │ ├── connectivity │ │ │ ├── cohesive_blocks.c │ │ │ ├── components.c │ │ │ ├── reachability.c │ │ │ └── separators.c │ │ ├── constructors │ │ │ ├── adjacency.c │ │ │ ├── atlas-edges.h │ │ │ ├── atlas.c │ │ │ ├── basic_constructors.c │ │ │ ├── circulant.c │ │ │ ├── de_bruijn.c │ │ │ ├── famous.c │ │ │ ├── full.c │ │ │ ├── generalized_petersen.c │ │ │ ├── kautz.c │ │ │ ├── lattices.c │ │ │ ├── lcf.c │ │ │ ├── linegraph.c │ │ │ ├── prufer.c │ │ │ ├── regular.c │ │ │ └── trees.c │ │ ├── core │ │ │ ├── array.c │ │ │ ├── array.pmt │ │ │ ├── bitset.c │ │ │ ├── bitset_list.c │ │ │ ├── buckets.c │ │ │ ├── buckets.h │ │ │ ├── cutheap.c │ │ │ ├── cutheap.h │ │ │ ├── dqueue.c │ │ │ ├── dqueue.pmt │ │ │ ├── error.c │ │ │ ├── estack.c │ │ │ ├── estack.h │ │ │ ├── exceptions.h │ │ │ ├── fixed_vectorlist.c │ │ │ ├── fixed_vectorlist.h │ │ │ ├── genheap.c │ │ │ ├── genheap.h │ │ │ ├── grid.c │ │ │ ├── grid.h │ │ │ ├── heap.c │ │ │ ├── heap.pmt │ │ │ ├── indheap.c │ │ │ ├── indheap.h │ │ │ ├── interruption.c │ │ │ ├── interruption.h │ │ │ ├── marked_queue.c │ │ │ ├── marked_queue.h │ │ │ ├── math.h │ │ │ ├── matrix.c │ │ │ ├── matrix.pmt │ │ │ ├── matrix_list.c │ │ │ ├── memory.c │ │ │ ├── printing.c │ │ │ ├── progress.c │ │ │ ├── psumtree.c │ │ │ ├── set.c │ │ │ ├── set.h │ │ │ ├── sparsemat.c │ │ │ ├── stack.c │ │ │ ├── stack.pmt │ │ │ ├── statusbar.c │ │ │ ├── strvector.c │ │ │ ├── trie.c │ │ │ ├── trie.h │ │ │ ├── typed_list.pmt │ │ │ ├── vector.c │ │ │ ├── vector.pmt │ │ │ ├── vector_list.c │ │ │ └── vector_ptr.c │ │ ├── cycles │ │ │ └── simple_cycles.c │ │ ├── f2c.h │ │ ├── flow │ │ │ ├── flow.c │ │ │ ├── flow_conversion.c │ │ │ ├── flow_internal.h │ │ │ └── st-cuts.c │ │ ├── games │ │ │ ├── barabasi.c │ │ │ ├── callaway_traits.c │ │ │ ├── chung_lu.c │ │ │ ├── citations.c │ │ │ ├── correlated.c │ │ │ ├── degree_sequence.c │ │ │ ├── degree_sequence_vl │ │ │ │ ├── degree_sequence_vl.h │ │ │ │ ├── gengraph_definitions.h │ │ │ │ ├── gengraph_degree_sequence.cpp │ │ │ │ ├── gengraph_degree_sequence.h │ │ │ │ ├── gengraph_graph_molloy_hash.cpp │ │ │ │ ├── gengraph_graph_molloy_hash.h │ │ │ │ ├── gengraph_graph_molloy_optimized.cpp │ │ │ │ ├── gengraph_graph_molloy_optimized.h │ │ │ │ ├── gengraph_hash.h │ │ │ │ ├── gengraph_header.h │ │ │ │ ├── gengraph_mr-connected.cpp │ │ │ │ ├── gengraph_qsort.h │ │ │ │ ├── gengraph_random.cpp │ │ │ │ └── gengraph_random.h │ │ │ ├── dotproduct.c │ │ │ ├── erdos_renyi.c │ │ │ ├── establishment.c │ │ │ ├── forestfire.c │ │ │ ├── grg.c │ │ │ ├── growing_random.c │ │ │ ├── islands.c │ │ │ ├── k_regular.c │ │ │ ├── preference.c │ │ │ ├── recent_degree.c │ │ │ ├── sbm.c │ │ │ ├── static_fitness.c │ │ │ ├── tree.c │ │ │ └── watts_strogatz.c │ │ ├── graph │ │ │ ├── adjlist.c │ │ │ ├── attributes.c │ │ │ ├── attributes.h │ │ │ ├── basic_query.c │ │ │ ├── caching.c │ │ │ ├── caching.h │ │ │ ├── cattributes.c │ │ │ ├── graph_list.c │ │ │ ├── internal.h │ │ │ ├── iterators.c │ │ │ ├── type_common.c │ │ │ ├── type_indexededgelist.c │ │ │ └── visitors.c │ │ ├── hrg │ │ │ ├── dendro.h │ │ │ ├── graph.h │ │ │ ├── graph_simp.h │ │ │ ├── hrg.cc │ │ │ ├── hrg_types.cc │ │ │ ├── rbtree.h │ │ │ └── splittree_eq.h │ │ ├── internal │ │ │ ├── glpk_support.c │ │ │ ├── glpk_support.h │ │ │ ├── gmp_internal.h │ │ │ ├── hacks.c │ │ │ ├── hacks.h │ │ │ ├── lsap.c │ │ │ ├── qsort.c │ │ │ ├── qsort_r.c │ │ │ ├── utils.c │ │ │ ├── utils.h │ │ │ └── zeroin.c │ │ ├── io │ │ │ ├── dimacs.c │ │ │ ├── dl-header.h │ │ │ ├── dl-lexer.l │ │ │ ├── dl-parser.y │ │ │ ├── dl.c │ │ │ ├── dot.c │ │ │ ├── edgelist.c │ │ │ ├── gml-header.h │ │ │ ├── gml-lexer.l │ │ │ ├── gml-parser.y │ │ │ ├── gml-tree.c │ │ │ ├── gml-tree.h │ │ │ ├── gml.c │ │ │ ├── graphdb.c │ │ │ ├── graphml.c │ │ │ ├── leda.c │ │ │ ├── lgl-header.h │ │ │ ├── lgl-lexer.l │ │ │ ├── lgl-parser.y │ │ │ ├── lgl.c │ │ │ ├── ncol-header.h │ │ │ ├── ncol-lexer.l │ │ │ ├── ncol-parser.y │ │ │ ├── ncol.c │ │ │ ├── pajek-header.h │ │ │ ├── pajek-lexer.l │ │ │ ├── pajek-parser.y │ │ │ ├── pajek.c │ │ │ ├── parse_utils.c │ │ │ └── parse_utils.h │ │ ├── isomorphism │ │ │ ├── bliss.cc │ │ │ ├── bliss │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── bignum.hh │ │ │ │ ├── defs.cc │ │ │ │ ├── defs.hh │ │ │ │ ├── graph.cc │ │ │ │ ├── graph.hh │ │ │ │ ├── heap.cc │ │ │ │ ├── heap.hh │ │ │ │ ├── igraph-changes.md │ │ │ │ ├── kqueue.hh │ │ │ │ ├── kstack.hh │ │ │ │ ├── orbit.cc │ │ │ │ ├── orbit.hh │ │ │ │ ├── partition.cc │ │ │ │ ├── partition.hh │ │ │ │ ├── stats.hh │ │ │ │ ├── uintseqhash.cc │ │ │ │ ├── uintseqhash.hh │ │ │ │ ├── utils.cc │ │ │ │ └── utils.hh │ │ │ ├── isoclasses.c │ │ │ ├── isoclasses.h │ │ │ ├── isomorphism_misc.c │ │ │ ├── lad.c │ │ │ ├── queries.c │ │ │ └── vf2.c │ │ ├── layout │ │ │ ├── circular.c │ │ │ ├── davidson_harel.c │ │ │ ├── drl │ │ │ │ ├── DensityGrid.cpp │ │ │ │ ├── DensityGrid.h │ │ │ │ ├── DensityGrid_3d.cpp │ │ │ │ ├── DensityGrid_3d.h │ │ │ │ ├── drl_Node.h │ │ │ │ ├── drl_Node_3d.h │ │ │ │ ├── drl_graph.cpp │ │ │ │ ├── drl_graph.h │ │ │ │ ├── drl_graph_3d.cpp │ │ │ │ ├── drl_graph_3d.h │ │ │ │ ├── drl_layout.cpp │ │ │ │ ├── drl_layout.h │ │ │ │ ├── drl_layout_3d.cpp │ │ │ │ ├── drl_layout_3d.h │ │ │ │ ├── drl_parse.cpp │ │ │ │ └── drl_parse.h │ │ │ ├── fruchterman_reingold.c │ │ │ ├── gem.c │ │ │ ├── graphopt.c │ │ │ ├── kamada_kawai.c │ │ │ ├── large_graph.c │ │ │ ├── layout_bipartite.c │ │ │ ├── layout_grid.c │ │ │ ├── layout_internal.h │ │ │ ├── layout_random.c │ │ │ ├── mds.c │ │ │ ├── merge_dla.c │ │ │ ├── merge_grid.c │ │ │ ├── merge_grid.h │ │ │ ├── reingold_tilford.c │ │ │ ├── sugiyama.c │ │ │ └── umap.c │ │ ├── linalg │ │ │ ├── arpack.c │ │ │ ├── arpack_internal.h │ │ │ ├── blas.c │ │ │ ├── blas_internal.h │ │ │ ├── eigen.c │ │ │ ├── lapack.c │ │ │ └── lapack_internal.h │ │ ├── math │ │ │ ├── complex.c │ │ │ ├── safe_intop.c │ │ │ ├── safe_intop.h │ │ │ └── utils.c │ │ ├── misc │ │ │ ├── bipartite.c │ │ │ ├── chordality.c │ │ │ ├── cocitation.c │ │ │ ├── coloring.c │ │ │ ├── conversion.c │ │ │ ├── cycle_bases.c │ │ │ ├── degree_sequence.cpp │ │ │ ├── embedding.c │ │ │ ├── feedback_arc_set.c │ │ │ ├── feedback_arc_set.h │ │ │ ├── graphicality.c │ │ │ ├── matching.c │ │ │ ├── microscopic_update.c │ │ │ ├── mixing.c │ │ │ ├── motifs.c │ │ │ ├── order_cycle.cpp │ │ │ ├── order_cycle.h │ │ │ ├── other.c │ │ │ ├── power_law_fit.c │ │ │ ├── scan.c │ │ │ ├── sir.c │ │ │ └── spanning_trees.c │ │ ├── operators │ │ │ ├── add_edge.c │ │ │ ├── complementer.c │ │ │ ├── compose.c │ │ │ ├── connect_neighborhood.c │ │ │ ├── contract.c │ │ │ ├── difference.c │ │ │ ├── disjoint_union.c │ │ │ ├── intersection.c │ │ │ ├── join.c │ │ │ ├── misc_internal.c │ │ │ ├── misc_internal.h │ │ │ ├── permute.c │ │ │ ├── reverse.c │ │ │ ├── rewire.c │ │ │ ├── rewire_edges.c │ │ │ ├── rewire_internal.h │ │ │ ├── simplify.c │ │ │ ├── subgraph.c │ │ │ ├── subgraph.h │ │ │ └── union.c │ │ ├── paths │ │ │ ├── all_shortest_paths.c │ │ │ ├── astar.c │ │ │ ├── bellman_ford.c │ │ │ ├── dijkstra.c │ │ │ ├── distances.c │ │ │ ├── eulerian.c │ │ │ ├── floyd_warshall.c │ │ │ ├── histogram.c │ │ │ ├── johnson.c │ │ │ ├── random_walk.c │ │ │ ├── shortest_paths.c │ │ │ ├── simple_paths.c │ │ │ ├── sparsifier.c │ │ │ ├── unweighted.c │ │ │ ├── voronoi.c │ │ │ └── widest_paths.c │ │ ├── properties │ │ │ ├── basic_properties.c │ │ │ ├── complete.c │ │ │ ├── constraint.c │ │ │ ├── convergence_degree.c │ │ │ ├── dag.c │ │ │ ├── degrees.c │ │ │ ├── ecc.c │ │ │ ├── girth.c │ │ │ ├── loops.c │ │ │ ├── multiplicity.c │ │ │ ├── neighborhood.c │ │ │ ├── perfect.c │ │ │ ├── properties_internal.h │ │ │ ├── spectral.c │ │ │ ├── trees.c │ │ │ ├── triangles.c │ │ │ ├── triangles_template.h │ │ │ └── triangles_template1.h │ │ ├── random │ │ │ ├── random.c │ │ │ ├── random_internal.h │ │ │ ├── rng_glibc2.c │ │ │ ├── rng_mt19937.c │ │ │ ├── rng_pcg32.c │ │ │ └── rng_pcg64.c │ │ └── version.c │ └── vendor │ │ ├── CMakeLists.txt │ │ ├── cs │ │ ├── CMakeLists.txt │ │ ├── License.txt │ │ ├── cs.h │ │ ├── cs_add.c │ │ ├── cs_amd.c │ │ ├── cs_chol.c │ │ ├── cs_cholsol.c │ │ ├── cs_compress.c │ │ ├── cs_counts.c │ │ ├── cs_cumsum.c │ │ ├── cs_dfs.c │ │ ├── cs_dmperm.c │ │ ├── cs_droptol.c │ │ ├── cs_dropzeros.c │ │ ├── cs_dupl.c │ │ ├── cs_entry.c │ │ ├── cs_ereach.c │ │ ├── cs_etree.c │ │ ├── cs_fkeep.c │ │ ├── cs_gaxpy.c │ │ ├── cs_happly.c │ │ ├── cs_house.c │ │ ├── cs_ipvec.c │ │ ├── cs_leaf.c │ │ ├── cs_load.c │ │ ├── cs_lsolve.c │ │ ├── cs_ltsolve.c │ │ ├── cs_lu.c │ │ ├── cs_lusol.c │ │ ├── cs_malloc.c │ │ ├── cs_maxtrans.c │ │ ├── cs_multiply.c │ │ ├── cs_norm.c │ │ ├── cs_permute.c │ │ ├── cs_pinv.c │ │ ├── cs_post.c │ │ ├── cs_print.c │ │ ├── cs_pvec.c │ │ ├── cs_qr.c │ │ ├── cs_qrsol.c │ │ ├── cs_randperm.c │ │ ├── cs_reach.c │ │ ├── cs_scatter.c │ │ ├── cs_scc.c │ │ ├── cs_schol.c │ │ ├── cs_spsolve.c │ │ ├── cs_sqr.c │ │ ├── cs_symperm.c │ │ ├── cs_tdfs.c │ │ ├── cs_transpose.c │ │ ├── cs_updown.c │ │ ├── cs_usolve.c │ │ ├── cs_util.c │ │ └── cs_utsolve.c │ │ ├── f2c │ │ ├── CMakeLists.txt │ │ ├── Notice │ │ ├── README │ │ ├── abort_.c │ │ ├── arithchk.c │ │ ├── backspac.c │ │ ├── c_abs.c │ │ ├── c_cos.c │ │ ├── c_div.c │ │ ├── c_exp.c │ │ ├── c_log.c │ │ ├── c_sin.c │ │ ├── c_sqrt.c │ │ ├── cabs.c │ │ ├── changes │ │ ├── close.c │ │ ├── ctype.c │ │ ├── ctype.h │ │ ├── d_abs.c │ │ ├── d_acos.c │ │ ├── d_asin.c │ │ ├── d_atan.c │ │ ├── d_atn2.c │ │ ├── d_cnjg.c │ │ ├── d_cos.c │ │ ├── d_cosh.c │ │ ├── d_dim.c │ │ ├── d_exp.c │ │ ├── d_imag.c │ │ ├── d_int.c │ │ ├── d_lg10.c │ │ ├── d_log.c │ │ ├── d_mod.c │ │ ├── d_nint.c │ │ ├── d_prod.c │ │ ├── d_sign.c │ │ ├── d_sin.c │ │ ├── d_sinh.c │ │ ├── d_sqrt.c │ │ ├── d_tan.c │ │ ├── d_tanh.c │ │ ├── derf_.c │ │ ├── derfc_.c │ │ ├── dfe.c │ │ ├── dolio.c │ │ ├── dtime_.c │ │ ├── due.c │ │ ├── dummy.c │ │ ├── ef1asc_.c │ │ ├── ef1cmc_.c │ │ ├── endfile.c │ │ ├── erf_.c │ │ ├── erfc_.c │ │ ├── err.c │ │ ├── etime_.c │ │ ├── exit_.c │ │ ├── f77_aloc.c │ │ ├── f77vers.c │ │ ├── fio.h │ │ ├── fmt.c │ │ ├── fmt.h │ │ ├── fmtlib.c │ │ ├── fp.h │ │ ├── ftell_.c │ │ ├── getarg_.c │ │ ├── getenv_.c │ │ ├── h_abs.c │ │ ├── h_dim.c │ │ ├── h_dnnt.c │ │ ├── h_indx.c │ │ ├── h_len.c │ │ ├── h_mod.c │ │ ├── h_nint.c │ │ ├── h_sign.c │ │ ├── hl_ge.c │ │ ├── hl_gt.c │ │ ├── hl_le.c │ │ ├── hl_lt.c │ │ ├── i77vers.c │ │ ├── i_abs.c │ │ ├── i_dim.c │ │ ├── i_dnnt.c │ │ ├── i_indx.c │ │ ├── i_len.c │ │ ├── i_mod.c │ │ ├── i_nint.c │ │ ├── i_sign.c │ │ ├── iargc_.c │ │ ├── iio.c │ │ ├── ilnw.c │ │ ├── inquire.c │ │ ├── l_ge.c │ │ ├── l_gt.c │ │ ├── l_le.c │ │ ├── l_lt.c │ │ ├── lbitbits.c │ │ ├── lbitshft.c │ │ ├── lio.h │ │ ├── lread.c │ │ ├── lwrite.c │ │ ├── open.c │ │ ├── pow_ci.c │ │ ├── pow_dd.c │ │ ├── pow_di.c │ │ ├── pow_hh.c │ │ ├── pow_ii.c │ │ ├── pow_ri.c │ │ ├── pow_zi.c │ │ ├── pow_zz.c │ │ ├── r_abs.c │ │ ├── r_acos.c │ │ ├── r_asin.c │ │ ├── r_atan.c │ │ ├── r_atn2.c │ │ ├── r_cnjg.c │ │ ├── r_cos.c │ │ ├── r_cosh.c │ │ ├── r_dim.c │ │ ├── r_exp.c │ │ ├── r_imag.c │ │ ├── r_int.c │ │ ├── r_lg10.c │ │ ├── r_log.c │ │ ├── r_mod.c │ │ ├── r_nint.c │ │ ├── r_sign.c │ │ ├── r_sin.c │ │ ├── r_sinh.c │ │ ├── r_sqrt.c │ │ ├── r_tan.c │ │ ├── r_tanh.c │ │ ├── rawio.h │ │ ├── rdfmt.c │ │ ├── rewind.c │ │ ├── rsfe.c │ │ ├── rsli.c │ │ ├── rsne.c │ │ ├── s_cat.c │ │ ├── s_cmp.c │ │ ├── s_copy.c │ │ ├── s_paus.c │ │ ├── s_rnge.c │ │ ├── s_stop.c │ │ ├── sfe.c │ │ ├── sig_die.c │ │ ├── signal1.h │ │ ├── signal_.c │ │ ├── signbit.c │ │ ├── sue.c │ │ ├── sysdep1.h │ │ ├── system_.c │ │ ├── typesize.c │ │ ├── uio.c │ │ ├── uninit.c │ │ ├── util.c │ │ ├── wref.c │ │ ├── wrtfmt.c │ │ ├── wsfe.c │ │ ├── wsle.c │ │ ├── wsne.c │ │ ├── xwsne.c │ │ ├── z_abs.c │ │ ├── z_cos.c │ │ ├── z_div.c │ │ ├── z_exp.c │ │ ├── z_log.c │ │ ├── z_sin.c │ │ └── z_sqrt.c │ │ ├── glpk │ │ ├── CMakeLists.txt │ │ ├── COPYING │ │ ├── README │ │ ├── amd │ │ │ ├── COPYING │ │ │ ├── README │ │ │ ├── amd.h │ │ │ ├── amd_1.c │ │ │ ├── amd_2.c │ │ │ ├── amd_aat.c │ │ │ ├── amd_control.c │ │ │ ├── amd_defaults.c │ │ │ ├── amd_dump.c │ │ │ ├── amd_info.c │ │ │ ├── amd_internal.h │ │ │ ├── amd_order.c │ │ │ ├── amd_post_tree.c │ │ │ ├── amd_postorder.c │ │ │ ├── amd_preprocess.c │ │ │ └── amd_valid.c │ │ ├── api │ │ │ ├── advbas.c │ │ │ ├── asnhall.c │ │ │ ├── asnlp.c │ │ │ ├── asnokalg.c │ │ │ ├── ckasn.c │ │ │ ├── ckcnf.c │ │ │ ├── cplex.c │ │ │ ├── cpp.c │ │ │ ├── cpxbas.c │ │ │ ├── graph.c │ │ │ ├── gridgen.c │ │ │ ├── intfeas1.c │ │ │ ├── maxffalg.c │ │ │ ├── maxflp.c │ │ │ ├── mcflp.c │ │ │ ├── mcfokalg.c │ │ │ ├── mcfrelax.c │ │ │ ├── minisat1.c │ │ │ ├── mpl.c │ │ │ ├── mps.c │ │ │ ├── netgen.c │ │ │ ├── npp.c │ │ │ ├── pript.c │ │ │ ├── prmip.c │ │ │ ├── prob.h │ │ │ ├── prob1.c │ │ │ ├── prob2.c │ │ │ ├── prob3.c │ │ │ ├── prob4.c │ │ │ ├── prob5.c │ │ │ ├── prrngs.c │ │ │ ├── prsol.c │ │ │ ├── rdasn.c │ │ │ ├── rdcc.c │ │ │ ├── rdcnf.c │ │ │ ├── rdipt.c │ │ │ ├── rdmaxf.c │ │ │ ├── rdmcf.c │ │ │ ├── rdmip.c │ │ │ ├── rdprob.c │ │ │ ├── rdsol.c │ │ │ ├── rmfgen.c │ │ │ ├── strong.c │ │ │ ├── topsort.c │ │ │ ├── wcliqex.c │ │ │ ├── weak.c │ │ │ ├── wrasn.c │ │ │ ├── wrcc.c │ │ │ ├── wrcnf.c │ │ │ ├── wript.c │ │ │ ├── wrmaxf.c │ │ │ ├── wrmcf.c │ │ │ ├── wrmip.c │ │ │ ├── wrprob.c │ │ │ └── wrsol.c │ │ ├── bflib │ │ │ ├── btf.c │ │ │ ├── btf.h │ │ │ ├── btfint.c │ │ │ ├── btfint.h │ │ │ ├── fhv.c │ │ │ ├── fhv.h │ │ │ ├── fhvint.c │ │ │ ├── fhvint.h │ │ │ ├── ifu.c │ │ │ ├── ifu.h │ │ │ ├── luf.c │ │ │ ├── luf.h │ │ │ ├── lufint.c │ │ │ ├── lufint.h │ │ │ ├── scf.c │ │ │ ├── scf.h │ │ │ ├── scfint.c │ │ │ ├── scfint.h │ │ │ ├── sgf.c │ │ │ ├── sgf.h │ │ │ ├── sva.c │ │ │ └── sva.h │ │ ├── colamd │ │ │ ├── COPYING │ │ │ ├── README │ │ │ ├── colamd.c │ │ │ └── colamd.h │ │ ├── draft │ │ │ ├── bfd.c │ │ │ ├── bfd.h │ │ │ ├── bfx.c │ │ │ ├── bfx.h │ │ │ ├── draft.h │ │ │ ├── glpapi06.c │ │ │ ├── glpapi07.c │ │ │ ├── glpapi08.c │ │ │ ├── glpapi09.c │ │ │ ├── glpapi10.c │ │ │ ├── glpapi12.c │ │ │ ├── glpapi13.c │ │ │ ├── glpios01.c │ │ │ ├── glpios02.c │ │ │ ├── glpios03.c │ │ │ ├── glpios07.c │ │ │ ├── glpios09.c │ │ │ ├── glpios11.c │ │ │ ├── glpios12.c │ │ │ ├── glpipm.c │ │ │ ├── glpipm.h │ │ │ ├── glpmat.c │ │ │ ├── glpmat.h │ │ │ ├── glpscl.c │ │ │ ├── glpssx.h │ │ │ ├── glpssx01.c │ │ │ ├── glpssx02.c │ │ │ ├── ios.h │ │ │ ├── lux.c │ │ │ └── lux.h │ │ ├── env │ │ │ ├── alloc.c │ │ │ ├── dlsup.c │ │ │ ├── env.c │ │ │ ├── env.h │ │ │ ├── error.c │ │ │ ├── stdc.c │ │ │ ├── stdc.h │ │ │ ├── stdout.c │ │ │ ├── stream.c │ │ │ ├── time.c │ │ │ └── tls.c │ │ ├── glpk.h │ │ ├── glpk_tls_config.h │ │ ├── intopt │ │ │ ├── cfg.c │ │ │ ├── cfg.h │ │ │ ├── cfg1.c │ │ │ ├── cfg2.c │ │ │ ├── clqcut.c │ │ │ ├── covgen.c │ │ │ ├── fpump.c │ │ │ ├── gmicut.c │ │ │ ├── gmigen.c │ │ │ ├── mirgen.c │ │ │ ├── spv.c │ │ │ └── spv.h │ │ ├── minisat │ │ │ ├── LICENSE │ │ │ ├── README │ │ │ ├── minisat.c │ │ │ └── minisat.h │ │ ├── misc │ │ │ ├── avl.c │ │ │ ├── avl.h │ │ │ ├── bignum.c │ │ │ ├── bignum.h │ │ │ ├── dimacs.c │ │ │ ├── dimacs.h │ │ │ ├── dmp.c │ │ │ ├── dmp.h │ │ │ ├── ffalg.c │ │ │ ├── ffalg.h │ │ │ ├── fp2rat.c │ │ │ ├── fvs.c │ │ │ ├── fvs.h │ │ │ ├── gcd.c │ │ │ ├── hbm.c │ │ │ ├── hbm.h │ │ │ ├── jd.c │ │ │ ├── jd.h │ │ │ ├── keller.c │ │ │ ├── keller.h │ │ │ ├── ks.c │ │ │ ├── ks.h │ │ │ ├── mc13d.c │ │ │ ├── mc13d.h │ │ │ ├── mc21a.c │ │ │ ├── mc21a.h │ │ │ ├── misc.h │ │ │ ├── mt1.c │ │ │ ├── mt1.f │ │ │ ├── mt1.h │ │ │ ├── mygmp.c │ │ │ ├── mygmp.h │ │ │ ├── okalg.c │ │ │ ├── okalg.h │ │ │ ├── qmd.c │ │ │ ├── qmd.h │ │ │ ├── relax4.c │ │ │ ├── relax4.h │ │ │ ├── rgr.c │ │ │ ├── rgr.h │ │ │ ├── rng.c │ │ │ ├── rng.h │ │ │ ├── rng1.c │ │ │ ├── round2n.c │ │ │ ├── spm.c │ │ │ ├── spm.h │ │ │ ├── str2int.c │ │ │ ├── str2num.c │ │ │ ├── strspx.c │ │ │ ├── strtrim.c │ │ │ ├── triang.c │ │ │ ├── triang.h │ │ │ ├── wclique.c │ │ │ ├── wclique.h │ │ │ ├── wclique1.c │ │ │ └── wclique1.h │ │ ├── mpl │ │ │ ├── mpl.h │ │ │ ├── mpl1.c │ │ │ ├── mpl2.c │ │ │ ├── mpl3.c │ │ │ ├── mpl4.c │ │ │ ├── mpl5.c │ │ │ ├── mpl6.c │ │ │ ├── mplsql.c │ │ │ └── mplsql.h │ │ ├── npp │ │ │ ├── npp.h │ │ │ ├── npp1.c │ │ │ ├── npp2.c │ │ │ ├── npp3.c │ │ │ ├── npp4.c │ │ │ ├── npp5.c │ │ │ └── npp6.c │ │ ├── proxy │ │ │ ├── main.c │ │ │ ├── proxy.c │ │ │ ├── proxy.h │ │ │ └── proxy1.c │ │ └── simplex │ │ │ ├── simplex.h │ │ │ ├── spxat.c │ │ │ ├── spxat.h │ │ │ ├── spxchuzc.c │ │ │ ├── spxchuzc.h │ │ │ ├── spxchuzr.c │ │ │ ├── spxchuzr.h │ │ │ ├── spxlp.c │ │ │ ├── spxlp.h │ │ │ ├── spxnt.c │ │ │ ├── spxnt.h │ │ │ ├── spxprim.c │ │ │ ├── spxprob.c │ │ │ ├── spxprob.h │ │ │ ├── spychuzc.c │ │ │ ├── spychuzc.h │ │ │ ├── spychuzr.c │ │ │ ├── spychuzr.h │ │ │ └── spydual.c │ │ ├── lapack │ │ ├── CMakeLists.txt │ │ ├── arscnd.c │ │ ├── dasum.c │ │ ├── daxpy.c │ │ ├── dcopy.c │ │ ├── ddot.c │ │ ├── debug.h │ │ ├── dgebak.c │ │ ├── dgebal.c │ │ ├── dgeev.c │ │ ├── dgeevx.c │ │ ├── dgehd2.c │ │ ├── dgehrd.c │ │ ├── dgemm.c │ │ ├── dgemv.c │ │ ├── dgeqr2.c │ │ ├── dger.c │ │ ├── dgesv.c │ │ ├── dgetf2.c │ │ ├── dgetrf.c │ │ ├── dgetrs.c │ │ ├── dgetv0.c │ │ ├── dhseqr.c │ │ ├── disnan.c │ │ ├── dlabad.c │ │ ├── dlacn2.c │ │ ├── dlacpy.c │ │ ├── dladiv.c │ │ ├── dlae2.c │ │ ├── dlaebz.c │ │ ├── dlaev2.c │ │ ├── dlaexc.c │ │ ├── dlagtf.c │ │ ├── dlagts.c │ │ ├── dlahqr.c │ │ ├── dlahr2.c │ │ ├── dlaisnan.c │ │ ├── dlaln2.c │ │ ├── dlamch.c │ │ ├── dlaneg.c │ │ ├── dlange.c │ │ ├── dlanhs.c │ │ ├── dlanst.c │ │ ├── dlansy.c │ │ ├── dlanv2.c │ │ ├── dlapy2.c │ │ ├── dlaqr0.c │ │ ├── dlaqr1.c │ │ ├── dlaqr2.c │ │ ├── dlaqr3.c │ │ ├── dlaqr4.c │ │ ├── dlaqr5.c │ │ ├── dlaqrb.c │ │ ├── dlaqtr.c │ │ ├── dlar1v.c │ │ ├── dlarf.c │ │ ├── dlarfb.c │ │ ├── dlarfg.c │ │ ├── dlarft.c │ │ ├── dlarfx.c │ │ ├── dlarnv.c │ │ ├── dlarra.c │ │ ├── dlarrb.c │ │ ├── dlarrc.c │ │ ├── dlarrd.c │ │ ├── dlarre.c │ │ ├── dlarrf.c │ │ ├── dlarrj.c │ │ ├── dlarrk.c │ │ ├── dlarrr.c │ │ ├── dlarrv.c │ │ ├── dlartg.c │ │ ├── dlaruv.c │ │ ├── dlascl.c │ │ ├── dlaset.c │ │ ├── dlasq2.c │ │ ├── dlasq3.c │ │ ├── dlasq4.c │ │ ├── dlasq5.c │ │ ├── dlasq6.c │ │ ├── dlasr.c │ │ ├── dlasrt.c │ │ ├── dlassq.c │ │ ├── dlaswp.c │ │ ├── dlasy2.c │ │ ├── dlatrd.c │ │ ├── dmout.c │ │ ├── dnaitr.c │ │ ├── dnapps.c │ │ ├── dnaup2.c │ │ ├── dnaupd.c │ │ ├── dnconv.c │ │ ├── dneigh.c │ │ ├── dneupd.c │ │ ├── dngets.c │ │ ├── dnrm2.c │ │ ├── dorg2r.c │ │ ├── dorghr.c │ │ ├── dorgqr.c │ │ ├── dorm2l.c │ │ ├── dorm2r.c │ │ ├── dormhr.c │ │ ├── dormql.c │ │ ├── dormqr.c │ │ ├── dormtr.c │ │ ├── dpotf2.c │ │ ├── dpotrf.c │ │ ├── drot.c │ │ ├── dsaitr.c │ │ ├── dsapps.c │ │ ├── dsaup2.c │ │ ├── dsaupd.c │ │ ├── dscal.c │ │ ├── dsconv.c │ │ ├── dseigt.c │ │ ├── dsesrt.c │ │ ├── dseupd.c │ │ ├── dsgets.c │ │ ├── dsortc.c │ │ ├── dsortr.c │ │ ├── dstats.c │ │ ├── dstebz.c │ │ ├── dstein.c │ │ ├── dstemr.c │ │ ├── dsteqr.c │ │ ├── dsterf.c │ │ ├── dstqrb.c │ │ ├── dswap.c │ │ ├── dsyevr.c │ │ ├── dsymv.c │ │ ├── dsyr2.c │ │ ├── dsyr2k.c │ │ ├── dsyrk.c │ │ ├── dsytd2.c │ │ ├── dsytrd.c │ │ ├── dtrevc.c │ │ ├── dtrexc.c │ │ ├── dtrmm.c │ │ ├── dtrmv.c │ │ ├── dtrsen.c │ │ ├── dtrsm.c │ │ ├── dtrsna.c │ │ ├── dtrsv.c │ │ ├── dtrsyl.c │ │ ├── dvout.c │ │ ├── fortran_intrinsics.c │ │ ├── idamax.c │ │ ├── ieeeck.c │ │ ├── iladlc.c │ │ ├── iladlr.c │ │ ├── ilaenv.c │ │ ├── iparmq.c │ │ ├── ivout.c │ │ ├── len_trim.c │ │ ├── lsame.c │ │ └── xerbla.c │ │ ├── mini-gmp │ │ ├── CMakeLists.txt │ │ ├── mini-gmp.c │ │ └── mini-gmp.h │ │ ├── pcg │ │ ├── CMakeLists.txt │ │ ├── LICENSE.txt │ │ ├── pcg-advance-128.c │ │ ├── pcg-advance-64.c │ │ ├── pcg-output-128.c │ │ ├── pcg-output-32.c │ │ ├── pcg-output-64.c │ │ ├── pcg-rngs-128.c │ │ ├── pcg-rngs-64.c │ │ └── pcg_variants.h │ │ └── plfit │ │ ├── CMakeLists.txt │ │ ├── arithmetic_ansi.h │ │ ├── arithmetic_sse_double.h │ │ ├── arithmetic_sse_float.h │ │ ├── gss.c │ │ ├── gss.h │ │ ├── hzeta.c │ │ ├── hzeta.h │ │ ├── kolmogorov.c │ │ ├── kolmogorov.h │ │ ├── lbfgs.c │ │ ├── lbfgs.h │ │ ├── mt.c │ │ ├── options.c │ │ ├── plfit.c │ │ ├── plfit.h │ │ ├── plfit_decls.h │ │ ├── plfit_error.c │ │ ├── plfit_error.h │ │ ├── plfit_mt.h │ │ ├── plfit_sampling.h │ │ ├── plfit_version.h │ │ ├── rbinom.c │ │ └── sampling.c │ ├── config.h │ ├── igraph_config.h │ ├── igraph_export.h │ ├── igraph_threading.h │ ├── igraph_version.h │ ├── io │ ├── dl-lexer.c │ ├── dl-parser.c │ ├── gml-lexer.c │ ├── gml-parser.c │ ├── lgl-lexer.c │ ├── lgl-parser.c │ ├── ncol-lexer.c │ ├── ncol-parser.c │ ├── pajek-lexer.c │ ├── pajek-parser.c │ └── parsers │ │ ├── dl-lexer.h │ │ ├── dl-parser.h │ │ ├── gml-lexer.h │ │ ├── gml-parser.h │ │ ├── lgl-lexer.h │ │ ├── lgl-parser.h │ │ ├── ncol-lexer.h │ │ ├── ncol-parser.h │ │ ├── pajek-lexer.h │ │ └── pajek-parser.h │ ├── simpleraytracer │ ├── CMakeLists.txt │ ├── Color.cpp │ ├── Color.h │ ├── Light.cpp │ ├── Light.h │ ├── Point.cpp │ ├── Point.h │ ├── Ray.cpp │ ├── Ray.h │ ├── RayTracer.cpp │ ├── RayTracer.h │ ├── RayVector.cpp │ ├── RayVector.h │ ├── Shape.cpp │ ├── Shape.h │ ├── Sphere.cpp │ ├── Sphere.h │ ├── Triangle.cpp │ ├── Triangle.h │ ├── unit_limiter.cpp │ └── unit_limiter.h │ └── uuid │ ├── CMakeLists.txt │ ├── COPYING │ ├── Makevars.in │ ├── Makevars.win │ ├── R.c │ ├── clear.c │ ├── compare.c │ ├── config.h │ ├── config.h.in │ ├── copy.c │ ├── gen_uuid.c │ ├── isnull.c │ ├── pack.c │ ├── parse.c │ ├── unpack.c │ ├── unparse.c │ ├── uuid.h │ ├── uuidP.h │ ├── uuidd.h │ └── win32 │ └── config.h ├── tests ├── testthat.R └── testthat │ ├── _snaps │ ├── adjacency.md │ ├── attributes.md │ ├── centrality.md │ ├── community.md │ ├── conversion.md │ ├── flow.md │ ├── foreign.md │ ├── games.md │ ├── hrg.md │ ├── incidence.md │ ├── interface.md │ ├── iterators.md │ ├── layout.md │ ├── make.md │ ├── minimum.spanning.tree.md │ ├── operators.md │ ├── other.md │ ├── par.md │ ├── paths.md │ ├── plot │ │ ├── basic-graph-layout-1.svg │ │ ├── basic-graph-layout-2.svg │ │ ├── basic-graph-spheres.svg │ │ ├── loop-graph.svg │ │ └── rectangle-edges.svg │ ├── print.md │ ├── structural-properties.md │ ├── trees.md │ ├── utils-assert-args.md │ └── versions.md │ ├── celegansneural.gml.gz │ ├── football.gml.gz │ ├── helper-indexing.R │ ├── helper-unvs.R │ ├── helper.R │ ├── power.gml.gz │ ├── test-adjacency.R │ ├── test-assortativity.R │ ├── test-attributes.R │ ├── test-bipartite.R │ ├── test-centrality.R │ ├── test-centralization.R │ ├── test-cliques.R │ ├── test-cocitation.R │ ├── test-coloring.R │ ├── test-community.R │ ├── test-components.R │ ├── test-conversion.R │ ├── test-cycles.R │ ├── test-decomposition.R │ ├── test-degseq.R │ ├── test-efficiency.R │ ├── test-embedding.R │ ├── test-eulerian.R │ ├── test-fit.R │ ├── test-flow.R │ ├── test-foreign.R │ ├── test-games.R │ ├── test-glet.R │ ├── test-hrg.R │ ├── test-incidence.R │ ├── test-indexing.R │ ├── test-interface.R │ ├── test-iterators.R │ ├── test-layout.R │ ├── test-make.R │ ├── test-minimum.spanning.tree.R │ ├── test-motifs.R │ ├── test-operators.R │ ├── test-other.R │ ├── test-par.R │ ├── test-paths.R │ ├── test-plot.R │ ├── test-print.R │ ├── test-random_walk.R │ ├── test-rewire.R │ ├── test-scan.R │ ├── test-sgm.R │ ├── test-similarity.R │ ├── test-sir.R │ ├── test-sparsedf.R │ ├── test-stochastic_matrix.R │ ├── test-structural-properties.R │ ├── test-structure.info.R │ ├── test-topology.R │ ├── test-trees.R │ ├── test-triangles.R │ ├── test-utils-assert-args.R │ ├── test-versions.R │ ├── test-weakref.R │ └── zachary.graphml.gz ├── tools ├── README.md ├── add-ctags.R ├── apply-patch.sh ├── build-requirements.txt ├── builddocs.sh ├── clean-up-scripts.R ├── deprecate-make-template.txt ├── deprecate-make.R ├── deprecate-template.txt ├── deprecate-tests.R ├── deprecate.R ├── expect_equal.R ├── extract_examples.R ├── find-duplicate-seealso.R ├── fix-lexers.sh ├── getversion.sh ├── rd.R ├── run_examples.R ├── stimulus │ ├── aaa-auto.R.in │ ├── config.h │ ├── functions-R.yaml │ ├── igraph_export.h │ ├── rinterface.c.in │ ├── types-RC.yaml │ └── types-RR.yaml ├── sync-yaml.R ├── update-examples.R └── weights.R ├── vendor-one.sh ├── vendor.sh └── vignettes ├── .gitignore ├── articles ├── current-deprecations.Rmd ├── deprecated-dot-case.Rmd └── installation-troubleshooting.Rmd ├── igraph.Rmd └── igraph_ES.rmd /.gitattributes: -------------------------------------------------------------------------------- 1 | # Handle line endings automatically for files detected as text 2 | # and leave all files detected as binary untouched. 3 | * text=auto 4 | 5 | # Force the following filetypes to have unix eols, so Windows does not break them 6 | configure.ac text eol=lf 7 | -------------------------------------------------------------------------------- /.github/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | /pkg.lock 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: igraph 2 | open_collective: igraph 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | contact_links: 2 | - name: Installation problems? 3 | url: https://igraph.discourse.group/ 4 | about: Check the instructions carefully at https://r.igraph.org/ before asking 5 | - name: igraph support 6 | url: https://igraph.discourse.group/ 7 | about: Ask and answer questions about igraph 8 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | - [ ] By submitting this pull request, I assign the copyright of my contribution to _The igraph development team_. 6 | -------------------------------------------------------------------------------- /.github/workflows/custom/after-install/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Custom steps to run after R packages are installed' 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: Use GLPK on macOS 7 | if: runner.os == 'macOS' 8 | run: | 9 | echo -e 'CPPFLAGS = -I/opt/homebrew/include\nLDFLAGS = -L/opt/homebrew/lib' | tee ~/.R/Makevars 10 | shell: bash 11 | -------------------------------------------------------------------------------- /.github/workflows/custom/before-install/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Custom steps to run before R packages are installed' 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: Define R CMD check error condition 7 | run: | 8 | echo '_R_CHECK_PKG_SIZES_=FALSE' | tee -a $GITHUB_ENV 9 | shell: bash 10 | 11 | - name: Install GLPK on macOS 12 | if: runner.os == 'macOS' 13 | run: | 14 | brew install glpk 15 | shell: bash 16 | -------------------------------------------------------------------------------- /.github/workflows/dep-suggests-matrix/action.yml: -------------------------------------------------------------------------------- 1 | name: "Actions to compute a matrix with all suggested packages" 2 | outputs: 3 | matrix: 4 | description: "Generated matrix" 5 | value: ${{ steps.set-matrix.outputs.matrix }} 6 | 7 | runs: 8 | using: "composite" 9 | steps: 10 | - id: set-matrix 11 | run: | 12 | Rscript ./.github/workflows/dep-suggests-matrix/action.R 13 | shell: bash 14 | -------------------------------------------------------------------------------- /.github/workflows/get-extra/action.yml: -------------------------------------------------------------------------------- 1 | name: "Action to determine extra packages to be installed" 2 | outputs: 3 | packages: 4 | description: "List of extra packages" 5 | value: ${{ steps.get-extra.outputs.packages }} 6 | 7 | runs: 8 | using: "composite" 9 | steps: 10 | - name: Get extra packages 11 | id: get-extra 12 | run: | 13 | set -x 14 | packages=$( ( grep Config/gha/extra-packages DESCRIPTION || true ) | cut -d " " -f 2) 15 | echo packages=$packages >> $GITHUB_OUTPUT 16 | shell: bash 17 | -------------------------------------------------------------------------------- /.github/workflows/git-identity/action.yml: -------------------------------------------------------------------------------- 1 | name: "Actions to set up a Git identity" 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: Configure Git identity 7 | run: | 8 | env | sort 9 | git config --local user.name "$GITHUB_ACTOR" 10 | git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com" 11 | shell: bash 12 | -------------------------------------------------------------------------------- /.github/workflows/lock.yaml: -------------------------------------------------------------------------------- 1 | name: "Lock threads" 2 | permissions: 3 | issues: write 4 | pull-requests: write 5 | discussions: write 6 | on: 7 | workflow_dispatch: 8 | schedule: 9 | - cron: "37 2 * * *" 10 | 11 | jobs: 12 | lock: 13 | runs-on: ubuntu-24.04 14 | steps: 15 | - uses: krlmlr/lock-threads@patch-1 16 | with: 17 | github-token: ${{ github.token }} 18 | issue-inactive-days: "365" 19 | issue-lock-reason: "" 20 | issue-comment: > 21 | This old thread has been automatically locked. If you think you have 22 | found something related to this, please open a new issue and link to this 23 | old issue if necessary. 24 | -------------------------------------------------------------------------------- /.github/workflows/matrix-check/action.yml: -------------------------------------------------------------------------------- 1 | name: "Actions to check a matrix with all R and OS versions, computed with the versions-matrix action" 2 | inputs: 3 | matrix: 4 | description: "Generated matrix" 5 | required: true 6 | 7 | runs: 8 | using: "composite" 9 | steps: 10 | - name: Install json2yaml 11 | run: | 12 | sudo npm install -g json2yaml 13 | shell: bash 14 | 15 | - run: | 16 | matrix='${{ inputs.matrix }}' 17 | if [ -n "${matrix}" ]; then 18 | echo $matrix | jq . 19 | echo $matrix | json2yaml 20 | else 21 | echo "No matrix found" 22 | fi 23 | shell: bash 24 | -------------------------------------------------------------------------------- /.github/workflows/pkgdown-build/action.yml: -------------------------------------------------------------------------------- 1 | name: "Action to build a pkgdown website" 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: Build site 7 | run: | 8 | pkgdown::build_site() 9 | shell: Rscript {0} 10 | -------------------------------------------------------------------------------- /.github/workflows/pkgdown-deploy/action.yml: -------------------------------------------------------------------------------- 1 | name: "Action to deploy a pkgdown website" 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: Deploy site 7 | uses: nick-fields/retry@v3 8 | with: 9 | timeout_minutes: 15 10 | max_attempts: 10 11 | command: | 12 | R -q -e 'pkgdown::deploy_to_branch(new_process = FALSE)' 13 | -------------------------------------------------------------------------------- /.github/workflows/rate-limit/action.yml: -------------------------------------------------------------------------------- 1 | name: "Check GitHub rate limits" 2 | inputs: 3 | token: # id of input 4 | description: GitHub token, pass secrets.GITHUB_TOKEN 5 | required: true 6 | 7 | runs: 8 | using: "composite" 9 | steps: 10 | - name: Check rate limits 11 | run: | 12 | curl -s --header "authorization: Bearer ${{ inputs.token }}" https://api.github.com/rate_limit 13 | shell: bash 14 | -------------------------------------------------------------------------------- /.github/workflows/roxygenize/action.yml: -------------------------------------------------------------------------------- 1 | name: "Action to create documentation with roxygen2" 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: Roxygenize 7 | run: | 8 | try(roxygen2::roxygenize()) 9 | shell: Rscript {0} 10 | -------------------------------------------------------------------------------- /.github/workflows/versions-matrix/action.yml: -------------------------------------------------------------------------------- 1 | name: "Actions to compute a matrix with all R and OS versions" 2 | 3 | outputs: 4 | matrix: 5 | description: "Generated matrix" 6 | value: ${{ steps.set-matrix.outputs.matrix }} 7 | 8 | runs: 9 | using: "composite" 10 | steps: 11 | - name: Install json2yaml 12 | run: | 13 | sudo npm install -g json2yaml 14 | shell: bash 15 | 16 | - id: set-matrix 17 | run: | 18 | Rscript ./.github/workflows/versions-matrix/action.R 19 | shell: bash 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /tags 2 | /R/printr.R 3 | /autom4te.cache/ 4 | /config.log 5 | /config.status 6 | /igraph_*.tar.gz 7 | /igraph_*.tgz 8 | /object_files 9 | /version_number 10 | igraph.Rcheck/ 11 | .venv/ 12 | .vscode/ 13 | .Rproj.user 14 | /configure~ 15 | /src/build/ 16 | /src/install/ 17 | inst/doc 18 | cran 19 | /CRAN-SUBMISSION 20 | /docs 21 | /compile_commands.json 22 | /.cache 23 | /rchk 24 | /src/*.d 25 | /src/symbols.rds 26 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/.gitmodules -------------------------------------------------------------------------------- /R/as_phylo.R: -------------------------------------------------------------------------------- 1 | #' @rdname as_phylo 2 | #' @title as_phylo 3 | #' @description `r lifecycle::badge("deprecated")` 4 | #' 5 | #' `as_phylo` methods were renamed `as.phylo` 6 | #' for more consistency with other R methods. 7 | #' 8 | #' @export 9 | #' @param x object to be coerced 10 | #' @inheritParams ape::as.phylo 11 | #' @keywords internal 12 | as_phylo <- function(x, ...) { 13 | lifecycle::deprecate_soft( 14 | "1.5.0", 15 | "ape::as.phylo()" 16 | ) 17 | check_installed("ape", "for using `as.phylo()`") 18 | UseMethod("as.phylo") 19 | } 20 | -------------------------------------------------------------------------------- /R/cpp11.R: -------------------------------------------------------------------------------- 1 | # Generated by cpp11: do not edit by hand 2 | 3 | igraph_hcass2 <- function(n, ia, ib) { 4 | .Call(`_igraph_igraph_hcass2`, n, ia, ib) 5 | } 6 | 7 | getsphere <- function(spos, sradius, scolor, lightpos, lightcolor, swidth, sheight) { 8 | .Call(`_igraph_getsphere`, spos, sradius, scolor, lightpos, lightcolor, swidth, sheight) 9 | } 10 | -------------------------------------------------------------------------------- /R/cran.R: -------------------------------------------------------------------------------- 1 | cran_install <- function() { 2 | unlink("cran", recursive = TRUE) 3 | dir.create("cran") 4 | pak::pak("igraph", lib = "cran", dependencies = FALSE) 5 | } 6 | -------------------------------------------------------------------------------- /R/idx.R: -------------------------------------------------------------------------------- 1 | # Indexes into unclass(g) 2 | igraph_t_idx_n <- 1L 3 | igraph_t_idx_directed <- 2L 4 | igraph_t_idx_from <- 3L 5 | igraph_t_idx_to <- 4L 6 | igraph_t_idx_oi <- 5L 7 | igraph_t_idx_ii <- 6L 8 | igraph_t_idx_os <- 7L 9 | igraph_t_idx_is <- 8L 10 | igraph_t_idx_attr <- 9L 11 | igraph_t_idx_env <- 10L 12 | igraph_t_idx_max <- 11L 13 | 14 | # Indexes into unclass(g)[[igraph_t_idx_attr]] 15 | igraph_attr_idx_unknown <- 1L # integer of length 3, for what purpose? 16 | igraph_attr_idx_graph <- 2L 17 | igraph_attr_idx_vertex <- 3L 18 | igraph_attr_idx_edge <- 4L 19 | -------------------------------------------------------------------------------- /R/old-0_1_1.R: -------------------------------------------------------------------------------- 1 | oldsample_0_1_1 <- function() { 2 | list( 3 | 3, 4 | TRUE, 5 | rep(c(0, 1, 2), each = 2L), 6 | c(1, 2, 2, 0, 0, 1), 7 | c(1, 0, 3, 2, 5, 4), 8 | c(4, 3, 5, 0, 2, 1), 9 | seq(0, 6, by = 2), 10 | seq(0, 6, by = 2), 11 | list(1, character(0), numeric(0)), 12 | list(3, character(0), numeric(0)), 13 | list(6, character(0), numeric(0)) 14 | ) %>% 15 | structure(class = "igraph") 16 | } 17 | -------------------------------------------------------------------------------- /R/old-0_2.R: -------------------------------------------------------------------------------- 1 | oldsample_0_2 <- function() { 2 | list( 3 | 3, 4 | TRUE, 5 | c(0, 1, 2), 6 | c(1, 2, 0), 7 | c(0, 1, 2), 8 | c(2, 0, 1), 9 | seq(0, 3, by = 1), 10 | seq(0, 3, by = 1), 11 | list( 12 | c(1, 0), 13 | list(), 14 | list(bar = c("A", "B", "C")), 15 | list(foo = c("a", "b", "c")) 16 | ) 17 | ) %>% 18 | structure(class = "igraph") 19 | } 20 | -------------------------------------------------------------------------------- /R/old-0_5.R: -------------------------------------------------------------------------------- 1 | oldsample_0_5 <- function() { 2 | list( 3 | 3, 4 | TRUE, 5 | c(0, 1, 2), 6 | c(1, 2, 0), 7 | c(0, 1, 2), 8 | c(2, 0, 1), 9 | seq(0, 3, by = 1), 10 | seq(0, 3, by = 1), 11 | list( 12 | c(1, 0), 13 | list() %>% 14 | structure(names = character(0)), 15 | list(bar = c("A", "B", "C")), 16 | list(foo = c("a", "b", "c")) 17 | ) 18 | ) %>% 19 | structure(class = "igraph") 20 | } 21 | -------------------------------------------------------------------------------- /R/old-0_6.R: -------------------------------------------------------------------------------- 1 | oldsample_0_6 <- function() { 2 | list( 3 | 3, 4 | TRUE, 5 | c(0, 1, 2), 6 | c(1, 2, 0), 7 | c(0, 1, 2), 8 | c(2, 0, 1), 9 | seq(0, 3, by = 1), 10 | seq(0, 3, by = 1), 11 | list( 12 | c(1, 0, 1), 13 | list(name = "Ring graph", mutual = FALSE, circular = TRUE), 14 | list(bar = c("A", "B", "C")), 15 | list(foo = c("a", "b", "c")) 16 | ) 17 | ) %>% 18 | structure(class = "igraph") 19 | } 20 | -------------------------------------------------------------------------------- /R/old-1_0_0.R: -------------------------------------------------------------------------------- 1 | oldsample_1_0_0 <- function() { 2 | ..env.1.. <- new.env(parent = baseenv()) 3 | ..env.1..$me <- list( 4 | 3, 5 | TRUE, 6 | c(0, 1, 2), 7 | c(1, 2, 0), 8 | c(0, 1, 2), 9 | c(2, 0, 1), 10 | seq(0, 3, by = 1), 11 | seq(0, 3, by = 1), 12 | list( 13 | c(1, 0, 1), 14 | list(name = "Ring graph", mutual = FALSE, circular = TRUE), 15 | list(bar = c("A", "B", "C")), 16 | list(foo = c("a", "b", "c")) 17 | ), 18 | ..env.1.. 19 | ) %>% 20 | structure(class = "igraph") 21 | ..env.1..$.__igraph_version__. <- "0.8.0" 22 | ..env.1..$myid <- "0fb28c05-9cc1-4a24-ba62-f5c319a3051b" 23 | ..env.1..$me 24 | } 25 | -------------------------------------------------------------------------------- /R/old-1_5_0.R: -------------------------------------------------------------------------------- 1 | oldsample_1_5_0 <- function() { 2 | ..env.1.. <- new.env(parent = baseenv()) 3 | ..env.1..$me <- list( 4 | 3, 5 | TRUE, 6 | c(0, 1, 2), 7 | c(1, 2, 0), 8 | NULL, 9 | NULL, 10 | NULL, 11 | NULL, 12 | list( 13 | c(1, 0, 1), 14 | list(name = "Ring graph", mutual = FALSE, circular = TRUE), 15 | list(bar = c("A", "B", "C")), 16 | list(foo = c("a", "b", "c")) 17 | ), 18 | ..env.1.. 19 | ) %>% 20 | structure(class = "igraph") 21 | 22 | # This will be reconstructed on demand. 23 | # ..env.1..$igraph <- constructive::.xptr("0x0") 24 | 25 | ..env.1..$.__igraph_version__. <- ver_1_5_0 26 | ..env.1..$myid <- "0fb28c05-9cc1-4a24-ba62-f5c319a3051b" 27 | ..env.1..$me 28 | } 29 | -------------------------------------------------------------------------------- /R/revdep.R: -------------------------------------------------------------------------------- 1 | pkg_review <- function(pkg, pak = TRUE) { 2 | base_path <- "revdep/review" 3 | fs::dir_create(base_path) 4 | 5 | pkg_path <- fs::path(base_path, pkg) 6 | 7 | if (fs::dir_exists(pkg_path)) { 8 | system(paste0("git -C ", pkg_path, " fetch")) 9 | system(paste0("git -C ", pkg_path, " rebase")) 10 | } else { 11 | system(paste0("git -C ", base_path, " clone git@github.com:cran/", pkg)) 12 | } 13 | 14 | withr::local_dir(pkg_path) 15 | system("rh") 16 | 17 | if (pak) { 18 | pak::pak(pkg, dependencies = TRUE, upgrade = TRUE, ask = FALSE) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /R/tkigraph.R: -------------------------------------------------------------------------------- 1 | #' @name tkigraph 2 | #' @title tkigraph 3 | #' @description Find tkigraph at . 4 | #' @keywords internal 5 | NULL 6 | -------------------------------------------------------------------------------- /R/uuid.R: -------------------------------------------------------------------------------- 1 | generate_uuid <- function(use_time = NA) { 2 | .Call(UUID_gen, as.logical(use_time)) 3 | } 4 | 5 | 6 | get_graph_id <- function(graph) { 7 | if (!warn_version(graph)) { 8 | .Call(R_igraph_get_graph_id, graph) 9 | } else { 10 | NA_character_ 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /R/zzz.R: -------------------------------------------------------------------------------- 1 | .onLoad <- function(...) { 2 | rlang::run_on_load() 3 | } 4 | -------------------------------------------------------------------------------- /cleanup: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # Object files cause problems on Github Actions where they get included 4 | # in the source package that is re-generated from the original source, so 5 | # we remove them here in the cleanup step 6 | find src -name *.o | xargs rm 7 | -------------------------------------------------------------------------------- /cleanup.win: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # Object files cause problems on Github Actions where they get included 4 | # in the source package that is re-generated from the original source, so 5 | # we remove them here in the cleanup step 6 | find src -name *.o | xargs rm 7 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | # See https://docs.codecov.io/docs/codecov-yaml for documentation 2 | 3 | codecov: 4 | require_ci_to_pass: yes 5 | 6 | comment: false 7 | 8 | coverage: 9 | precision: 2 10 | round: down 11 | range: "50...100" 12 | status: 13 | project: 14 | default: 15 | threshold: 0.1% 16 | patch: off 17 | -------------------------------------------------------------------------------- /configure.win: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/configure.win -------------------------------------------------------------------------------- /cran-comments.md: -------------------------------------------------------------------------------- 1 | igraph 2.1.3 2 | 3 | ## Cran Repository Policy 4 | 5 | - [x] Reviewed CRP last edited 2024-08-27. 6 | -------------------------------------------------------------------------------- /cran-comments.template.md: -------------------------------------------------------------------------------- 1 | ## Test environments 2 | 3 | * local R installation, R 4.1.1 4 | * ubuntu 20.04 (on Github Actions), R 3.4.4, R 3.5.3, R 4.0.5, R 4.1.1 and R-devel 5 | * windows-latest (on Github Actions), R 4.1.1 6 | * macOS-latest (on Github Actions), R 4.1.1 7 | 8 | ## R CMD check results 9 | 10 | X errors | Y warnings | Z notes 11 | 12 | * Add comments to CRAN maintainers here. 13 | 14 | ## revdepcheck results 15 | 16 | * Paste the output of revdepcheck from revdep/ here 17 | * Extend the output with explanations about each failure that we believe should 18 | be ignored because they are not our fault 19 | -------------------------------------------------------------------------------- /demo/00Index: -------------------------------------------------------------------------------- 1 | crashR A crash-course into R 2 | centrality Classic and other vertex centrality indices 3 | community Community structure detection 4 | smallworld Small-world networks 5 | cohesive Cohesive blocking, the Moody & White method 6 | hrg Hierarchical random graphs 7 | -------------------------------------------------------------------------------- /igraph.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | ProjectId: ffa46ea4-a86f-4aac-9f09-64b2da845d3c 3 | 4 | RestoreWorkspace: No 5 | SaveWorkspace: No 6 | AlwaysSaveHistory: Default 7 | 8 | EnableCodeIndexing: Yes 9 | UseSpacesForTab: Yes 10 | NumSpacesForTab: 2 11 | Encoding: UTF-8 12 | 13 | RnwWeave: Sweave 14 | LaTeX: pdfLaTeX 15 | 16 | AutoAppendNewline: Yes 17 | StripTrailingWhitespace: Yes 18 | LineEndingConversion: Posix 19 | 20 | BuildType: Package 21 | PackageUseDevtools: Yes 22 | PackageInstallArgs: --no-multiarch --with-keep.source 23 | PackageRoxygenize: rd,collate,namespace,igraph.r2cdocs::cdocs_roclet,devtag::dev_roclet 24 | -------------------------------------------------------------------------------- /inst/benchmarks/correlated.R: -------------------------------------------------------------------------------- 1 | 2 | time_group("correlated E-R graphs, v1") 3 | 4 | time_that("sample_correlated_gnp is fast", replications=10, 5 | init={ library(igraph) }, 6 | { sample_correlated_gnp_pair(100, corr=.8, p=5/100) }) 7 | 8 | 9 | -------------------------------------------------------------------------------- /inst/benchmarks/time_call.R: -------------------------------------------------------------------------------- 1 | 2 | time_group(".Call from R") 3 | 4 | time_that("Redefining .Call does not have much overhead #1", replications=10, 5 | init = { library(igraph) ; g <- graph.ring(100) }, 6 | { for (i in 1:20000) { 7 | .Call(R_igraph_vcount, g) 8 | } }) 9 | 10 | time_that("Redefining .Call does not have much overhead #1", replications=10, 11 | init = { library(igraph) ; g <- graph.ring(100) }, 12 | { for (i in 1:20000) { 13 | igraph:::.Call(R_igraph_vcount, g) 14 | } }) 15 | -------------------------------------------------------------------------------- /inst/benchmarks/time_dirSelect.R: -------------------------------------------------------------------------------- 1 | 2 | time_group("dimensionality selection") 3 | 4 | time_that("dimensionaility selection is fast", replications=10, 5 | init = { library(igraph) }, 6 | reinit = { sv <- c(rnorm(2000), rnorm(2000)/5) }, 7 | { dim_select(sv) }) 8 | -------------------------------------------------------------------------------- /inst/benchmarks/time_fr_layout.R: -------------------------------------------------------------------------------- 1 | 2 | time_group("Fruchterman-Reingold layout") 3 | 4 | time_that("FR layout is fast, connected", replications=10, 5 | init = { library(igraph); set.seed(42) }, 6 | reinit = { g <- sample_pa(400) }, 7 | { layout_with_fr(g, niter=500) }) 8 | 9 | time_that("FR layout is fast, unconnected", replications=10, 10 | init = { library(igraph); set.seed(42) }, 11 | reinit = { g <- sample_gnm(400, 400) }, 12 | { layout_with_fr(g, niter=500) }) 13 | -------------------------------------------------------------------------------- /inst/benchmarks/time_kk_layout.R: -------------------------------------------------------------------------------- 1 | 2 | time_group("Kamada-Kawai layout") 3 | 4 | time_that("KK layout is fast, connected", replications=10, 5 | init = { library(igraph); set.seed(42) }, 6 | reinit = { g <- sample_pa(400) }, 7 | { layout_with_kk(g, maxiter=500) }) 8 | 9 | time_that("KK layout is fast, unconnected", replications=10, 10 | init = { library(igraph); set.seed(42) }, 11 | reinit = { g <- sample_gnm(400, 400) }, 12 | { layout_with_kk(g, maxiter=500) }) 13 | 14 | time_that("KK layout is fast for large graphs", replications=10, 15 | init = { library(igraph); set.seed(42) }, 16 | reinit = { g <- sample_pa(3000) }, 17 | { layout_with_kk(g, maxiter=500) }) 18 | -------------------------------------------------------------------------------- /inst/benchmarks/time_sgm.R: -------------------------------------------------------------------------------- 1 | 2 | time_group("Seeded graph matching") 3 | 4 | time_that("SGM is fast(er)", replications=10, 5 | init = { library(igraph); set.seed(42); vc <- 200; nos=10 }, 6 | reinit = { g1 <- erdos.renyi.game(vc, .01); 7 | perm <- c(1:nos, sample(vc-nos)+nos) 8 | g2 <- sample_correlated_gnp(g1, corr=.7, p=g1$p, permutation=perm) 9 | }, 10 | { match_vertices(g1[], g2[], m=nos, start=matrix(1/(vc-nos), vc-nos, vc-nos), 11 | iteration = 20) }) 12 | -------------------------------------------------------------------------------- /inst/benchmarks/time_sir.R: -------------------------------------------------------------------------------- 1 | 2 | time_group("SIR epidemics models on networks") 3 | 4 | time_that("SIR is fast", replications=10, 5 | init = { library(igraph); set.seed(42) }, 6 | reinit = { g <- sample_gnm(40, 40) }, 7 | { sir(g, beta=5, gamma=1, no.sim=100) }) 8 | -------------------------------------------------------------------------------- /man/are.connected.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/structure.info.R 3 | \name{are.connected} 4 | \alias{are.connected} 5 | \title{Are two vertices adjacent?} 6 | \usage{ 7 | are.connected(graph, v1, v2) 8 | } 9 | \arguments{ 10 | \item{graph}{The graph.} 11 | 12 | \item{v1}{The first vertex, tail in directed graphs.} 13 | 14 | \item{v2}{The second vertex, head in directed graphs.} 15 | } 16 | \description{ 17 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 18 | 19 | \code{are.connected()} was renamed to \code{\link[=are_adjacent]{are_adjacent()}} to create a more 20 | consistent API. 21 | } 22 | \keyword{internal} 23 | -------------------------------------------------------------------------------- /man/articulation.points.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/components.R 3 | \name{articulation.points} 4 | \alias{articulation.points} 5 | \title{Articulation points and bridges of a graph} 6 | \usage{ 7 | articulation.points(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph. It is treated as an undirected graph, even if 11 | it is directed.} 12 | } 13 | \description{ 14 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 15 | 16 | \code{articulation.points()} was renamed to \code{\link[=articulation_points]{articulation_points()}} to create a more 17 | consistent API. 18 | } 19 | \keyword{internal} 20 | -------------------------------------------------------------------------------- /man/as_phylo.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/as_phylo.R 3 | \name{as_phylo} 4 | \alias{as_phylo} 5 | \title{as_phylo} 6 | \usage{ 7 | as_phylo(x, ...) 8 | } 9 | \arguments{ 10 | \item{x}{object to be coerced} 11 | 12 | \item{...}{further arguments to be passed to or from other methods.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{as_phylo} methods were renamed \code{as.phylo} 18 | for more consistency with other R methods. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/biconnected.components.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/components.R 3 | \name{biconnected.components} 4 | \alias{biconnected.components} 5 | \title{Biconnected components} 6 | \usage{ 7 | biconnected.components(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph. It is treated as an undirected graph, even if 11 | it is directed.} 12 | } 13 | \description{ 14 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 15 | 16 | \code{biconnected.components()} was renamed to \code{\link[=biconnected_components]{biconnected_components()}} to create a more 17 | consistent API. 18 | } 19 | \keyword{internal} 20 | -------------------------------------------------------------------------------- /man/bipartite.mapping.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/bipartite.R 3 | \name{bipartite.mapping} 4 | \alias{bipartite.mapping} 5 | \title{Decide whether a graph is bipartite} 6 | \usage{ 7 | bipartite.mapping(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{bipartite.mapping()} was renamed to \code{\link[=bipartite_mapping]{bipartite_mapping()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/clique.number.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/cliques.R 3 | \name{clique.number} 4 | \alias{clique.number} 5 | \title{Functions to find cliques, i.e. complete subgraphs in a graph} 6 | \usage{ 7 | clique.number(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{clique.number()} was renamed to \code{\link[=clique_num]{clique_num()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/code.length.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/community.R 3 | \name{code.length} 4 | \alias{code.length} 5 | \title{Functions to deal with the result of network community detection} 6 | \usage{ 7 | code.length(communities) 8 | } 9 | \description{ 10 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 11 | 12 | \code{code.length()} was renamed to \code{\link[=code_len]{code_len()}} to create a more 13 | consistent API. 14 | } 15 | \keyword{internal} 16 | -------------------------------------------------------------------------------- /man/convex.hull.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/other.R 3 | \name{convex.hull} 4 | \alias{convex.hull} 5 | \title{Convex hull of a set of vertices} 6 | \usage{ 7 | convex.hull(data) 8 | } 9 | \arguments{ 10 | \item{data}{The data points, a numeric matrix with two columns.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{convex.hull()} was renamed to \code{\link[=convex_hull]{convex_hull()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/delete.vertices.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/interface.R 3 | \name{delete.vertices} 4 | \alias{delete.vertices} 5 | \title{Delete vertices from a graph} 6 | \usage{ 7 | delete.vertices(graph, v) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | 12 | \item{v}{The vertices to remove, a vertex sequence.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{delete.vertices()} was renamed to \code{\link[=delete_vertices]{delete_vertices()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/dot-apply_modifiers.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/make.R 3 | \name{.apply_modifiers} 4 | \alias{.apply_modifiers} 5 | \title{Applies a set of constructor modifiers to an already constructed graph.} 6 | \usage{ 7 | .apply_modifiers(graph, mods) 8 | } 9 | \arguments{ 10 | \item{graph}{The graph to apply the modifiers to} 11 | 12 | \item{mods}{The modifiers to apply} 13 | } 14 | \value{ 15 | The modified graph 16 | } 17 | \description{ 18 | This is a helper function for the common parts of \code{make_()} and 19 | \code{sample_()}. 20 | } 21 | \keyword{internal} 22 | -------------------------------------------------------------------------------- /man/dot-igraph.progress.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/console.R 3 | \name{.igraph.progress} 4 | \alias{.igraph.progress} 5 | \title{igraph progress} 6 | \usage{ 7 | .igraph.progress(percent, message, clean = FALSE) 8 | } 9 | \arguments{ 10 | \item{percent, message, clean}{Used internally by \code{.igraph.progress()} and \code{.igraph.status()}} 11 | } 12 | \description{ 13 | igraph progress 14 | } 15 | \keyword{internal} 16 | -------------------------------------------------------------------------------- /man/dot-igraph.status.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/console.R 3 | \name{.igraph.status} 4 | \alias{.igraph.status} 5 | \title{igraph status} 6 | \usage{ 7 | .igraph.status(message) 8 | } 9 | \description{ 10 | igraph status 11 | } 12 | \keyword{internal} 13 | -------------------------------------------------------------------------------- /man/dyad.census.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/motifs.R 3 | \name{dyad.census} 4 | \alias{dyad.census} 5 | \title{Dyad census of a graph} 6 | \usage{ 7 | dyad.census(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph. A warning is given if it is not directed.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{dyad.census()} was renamed to \code{\link[=dyad_census]{dyad_census()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/figures/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/man/figures/logo.png -------------------------------------------------------------------------------- /man/get.edge.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/basic.R 3 | \name{get.edge} 4 | \alias{get.edge} 5 | \title{Incident vertices of some graph edges} 6 | \usage{ 7 | get.edge(graph, id) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | Use \code{\link[=ends]{ends()}}. 16 | } 17 | \keyword{internal} 18 | -------------------------------------------------------------------------------- /man/get.graph.attribute.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{get.graph.attribute} 4 | \alias{get.graph.attribute} 5 | \title{Graph attributes of a graph} 6 | \usage{ 7 | get.graph.attribute(graph, name) 8 | } 9 | \arguments{ 10 | \item{graph}{Input graph.} 11 | 12 | \item{name}{The name of attribute to query. If missing, then all 13 | attributes are returned in a list.} 14 | } 15 | \description{ 16 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 17 | 18 | \code{get.graph.attribute()} was renamed to \code{\link[=graph_attr]{graph_attr()}} to create a more 19 | consistent API. 20 | } 21 | \keyword{internal} 22 | -------------------------------------------------------------------------------- /man/graph.atlas.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/make.R 3 | \name{graph.atlas} 4 | \alias{graph.atlas} 5 | \title{Create a graph from the Graph Atlas} 6 | \usage{ 7 | graph.atlas(n) 8 | } 9 | \arguments{ 10 | \item{n}{The id of the graph to create.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{graph.atlas()} was renamed to \code{\link[=graph_from_atlas]{graph_from_atlas()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/graph.cohesion.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/cohesive.blocks.R 3 | \name{graph.cohesion} 4 | \alias{graph.cohesion} 5 | \title{Vertex connectivity} 6 | \usage{ 7 | graph.cohesion(x, ...) 8 | } 9 | \arguments{ 10 | \item{x}{x} 11 | 12 | \item{...}{passed to \code{cohesion()}} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{graph.cohesion()} was renamed to \code{\link[=cohesion]{cohesion()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/graph.complementer.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/operators.R 3 | \name{graph.complementer} 4 | \alias{graph.complementer} 5 | \title{Complementer of a graph} 6 | \usage{ 7 | graph.complementer(graph, loops = FALSE) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph, can be directed or undirected.} 11 | 12 | \item{loops}{Logical constant, whether to generate loop edges.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{graph.complementer()} was renamed to \code{\link[=complementer]{complementer()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/graph.de.bruijn.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/make.R 3 | \name{graph.de.bruijn} 4 | \alias{graph.de.bruijn} 5 | \title{De Bruijn graphs} 6 | \usage{ 7 | graph.de.bruijn(m, n) 8 | } 9 | \arguments{ 10 | \item{m}{Integer scalar, the size of the alphabet. See details below.} 11 | 12 | \item{n}{Integer scalar, the length of the labels. See details below.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{graph.de.bruijn()} was renamed to \code{\link[=make_de_bruijn_graph]{make_de_bruijn_graph()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/graph.difference.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/operators.R 3 | \name{graph.difference} 4 | \alias{graph.difference} 5 | \title{Difference of two sets} 6 | \usage{ 7 | graph.difference(...) 8 | } 9 | \arguments{ 10 | \item{...}{Arguments, their number and interpretation depends on 11 | the function that implements \code{difference()}.} 12 | } 13 | \description{ 14 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 15 | 16 | \code{graph.difference()} was renamed to \code{\link[=difference]{difference()}} to create a more 17 | consistent API. 18 | } 19 | \keyword{internal} 20 | -------------------------------------------------------------------------------- /man/graph.disjoint.union.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/operators.R 3 | \name{graph.disjoint.union} 4 | \alias{graph.disjoint.union} 5 | \title{Disjoint union of graphs} 6 | \usage{ 7 | graph.disjoint.union(...) 8 | } 9 | \arguments{ 10 | \item{...}{Graph objects or lists of graph objects.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{graph.disjoint.union()} was renamed to \code{\link[=disjoint_union]{disjoint_union()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/graph.edgelist.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/conversion.R 3 | \name{graph.edgelist} 4 | \alias{graph.edgelist} 5 | \title{Create a graph from an edge list matrix} 6 | \usage{ 7 | graph.edgelist(el, directed = TRUE) 8 | } 9 | \arguments{ 10 | \item{el}{The edge list, a two column matrix, character or numeric.} 11 | 12 | \item{directed}{Whether to create a directed graph.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{graph.edgelist()} was renamed to \code{\link[=graph_from_edgelist]{graph_from_edgelist()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/graph.empty.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/make.R 3 | \name{graph.empty} 4 | \alias{graph.empty} 5 | \title{A graph with no edges} 6 | \usage{ 7 | graph.empty(n = 0, directed = TRUE) 8 | } 9 | \arguments{ 10 | \item{n}{Number of vertices.} 11 | 12 | \item{directed}{Whether to create a directed graph.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{graph.empty()} was renamed to \code{\link[=make_empty_graph]{make_empty_graph()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/graph.full.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/make.R 3 | \name{graph.full} 4 | \alias{graph.full} 5 | \title{Create a full graph} 6 | \usage{ 7 | graph.full(n, directed = FALSE, loops = FALSE) 8 | } 9 | \arguments{ 10 | \item{n}{Number of vertices.} 11 | 12 | \item{directed}{Whether to create a directed graph.} 13 | 14 | \item{loops}{Whether to add self-loops to the graph.} 15 | } 16 | \description{ 17 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 18 | 19 | \code{graph.full()} was renamed to \code{\link[=make_full_graph]{make_full_graph()}} to create a more 20 | consistent API. 21 | } 22 | \keyword{internal} 23 | -------------------------------------------------------------------------------- /man/graph.full.citation.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/make.R 3 | \name{graph.full.citation} 4 | \alias{graph.full.citation} 5 | \title{Create a complete (full) citation graph} 6 | \usage{ 7 | graph.full.citation(n, directed = TRUE) 8 | } 9 | \arguments{ 10 | \item{n}{The number of vertices.} 11 | 12 | \item{directed}{Whether to create a directed graph.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{graph.full.citation()} was renamed to \code{\link[=make_full_citation_graph]{make_full_citation_graph()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/graph.intersection.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/operators.R 3 | \name{graph.intersection} 4 | \alias{graph.intersection} 5 | \title{Intersection of two or more sets} 6 | \usage{ 7 | graph.intersection(...) 8 | } 9 | \arguments{ 10 | \item{...}{Arguments, their number and interpretation depends on 11 | the function that implements \code{intersection()}.} 12 | } 13 | \description{ 14 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 15 | 16 | \code{graph.intersection()} was renamed to \code{\link[=intersection]{intersection()}} to create a more 17 | consistent API. 18 | } 19 | \keyword{internal} 20 | -------------------------------------------------------------------------------- /man/graph.kautz.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/make.R 3 | \name{graph.kautz} 4 | \alias{graph.kautz} 5 | \title{Kautz graphs} 6 | \usage{ 7 | graph.kautz(m, n) 8 | } 9 | \arguments{ 10 | \item{m}{Integer scalar, the size of the alphabet. See details below.} 11 | 12 | \item{n}{Integer scalar, the length of the labels. See details below.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{graph.kautz()} was renamed to \code{\link[=make_kautz_graph]{make_kautz_graph()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/graph_.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/make.R 3 | \name{graph_} 4 | \alias{graph_} 5 | \title{Convert object to a graph} 6 | \usage{ 7 | graph_(...) 8 | } 9 | \arguments{ 10 | \item{...}{Parameters, see details below.} 11 | } 12 | \description{ 13 | This is a generic function to convert R objects to igraph graphs. 14 | } 15 | \details{ 16 | TODO 17 | } 18 | \examples{ 19 | ## These are equivalent 20 | graph_(cbind(1:5, 2:6), from_edgelist(directed = FALSE)) 21 | graph_(cbind(1:5, 2:6), from_edgelist(), directed = FALSE) 22 | } 23 | -------------------------------------------------------------------------------- /man/has.multiple.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/structural-properties.R 3 | \name{has.multiple} 4 | \alias{has.multiple} 5 | \title{Find the multiple or loop edges in a graph} 6 | \usage{ 7 | has.multiple(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{has.multiple()} was renamed to \code{\link[=any_multiple]{any_multiple()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/hrg.create.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/hrg.R 3 | \name{hrg.create} 4 | \alias{hrg.create} 5 | \title{Create a hierarchical random graph from an igraph graph} 6 | \usage{ 7 | hrg.create(graph, prob) 8 | } 9 | \arguments{ 10 | \item{graph}{The igraph graph to create the HRG from.} 11 | 12 | \item{prob}{A vector of probabilities, one for each vertex, in the order of 13 | vertex ids.} 14 | } 15 | \description{ 16 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 17 | 18 | \code{hrg.create()} was renamed to \code{\link[=hrg]{hrg()}} to create a more 19 | consistent API. 20 | } 21 | \keyword{internal} 22 | -------------------------------------------------------------------------------- /man/hrg.dendrogram.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/hrg.R 3 | \name{hrg.dendrogram} 4 | \alias{hrg.dendrogram} 5 | \title{Create an igraph graph from a hierarchical random graph model} 6 | \usage{ 7 | hrg.dendrogram(hrg) 8 | } 9 | \arguments{ 10 | \item{hrg}{A hierarchical random graph model.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{hrg.dendrogram()} was renamed to \code{\link[=hrg_tree]{hrg_tree()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/hrg.game.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/hrg.R 3 | \name{hrg.game} 4 | \alias{hrg.game} 5 | \title{Sample from a hierarchical random graph model} 6 | \usage{ 7 | hrg.game(hrg) 8 | } 9 | \arguments{ 10 | \item{hrg}{A hierarchical random graph model.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{hrg.game()} was renamed to \code{\link[=sample_hrg]{sample_hrg()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/igraph.console.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/console.R 3 | \name{igraph.console} 4 | \alias{igraph.console} 5 | \title{The igraph console} 6 | \usage{ 7 | igraph.console() 8 | } 9 | \description{ 10 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 11 | 12 | \code{igraph.console()} was renamed to \code{\link[=console]{console()}} to create a more 13 | consistent API. 14 | } 15 | \keyword{internal} 16 | -------------------------------------------------------------------------------- /man/igraph.shape.noclip.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/plot.shapes.R 3 | \name{igraph.shape.noclip} 4 | \alias{igraph.shape.noclip} 5 | \title{Various vertex shapes when plotting igraph graphs} 6 | \usage{ 7 | igraph.shape.noclip(coords, el, params, end = c("both", "from", "to")) 8 | } 9 | \description{ 10 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 11 | 12 | \code{igraph.shape.noclip()} was renamed to \code{\link[=shape_noclip]{shape_noclip()}} to create a more 13 | consistent API. 14 | } 15 | \keyword{internal} 16 | -------------------------------------------------------------------------------- /man/igraph.shape.noplot.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/plot.shapes.R 3 | \name{igraph.shape.noplot} 4 | \alias{igraph.shape.noplot} 5 | \title{Various vertex shapes when plotting igraph graphs} 6 | \usage{ 7 | igraph.shape.noplot(coords, v = NULL, params) 8 | } 9 | \description{ 10 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 11 | 12 | \code{igraph.shape.noplot()} was renamed to \code{\link[=shape_noplot]{shape_noplot()}} to create a more 13 | consistent API. 14 | } 15 | \keyword{internal} 16 | -------------------------------------------------------------------------------- /man/igraph.to.graphNEL.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/conversion.R 3 | \name{igraph.to.graphNEL} 4 | \alias{igraph.to.graphNEL} 5 | \title{Convert igraph graphs to graphNEL objects from the graph package} 6 | \usage{ 7 | igraph.to.graphNEL(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{An igraph graph object.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{igraph.to.graphNEL()} was renamed to \code{\link[=as_graphnel]{as_graphnel()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/igraph.version.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/versions.R 3 | \name{igraph.version} 4 | \alias{igraph.version} 5 | \title{Query igraph's version string} 6 | \usage{ 7 | igraph.version() 8 | } 9 | \description{ 10 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 11 | 12 | \code{igraph.version()} was renamed to \code{\link[=igraph_version]{igraph_version()}} to create a more 13 | consistent API. 14 | } 15 | \keyword{internal} 16 | -------------------------------------------------------------------------------- /man/igraph_version.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/versions.R 3 | \name{igraph_version} 4 | \alias{igraph_version} 5 | \title{Query igraph's version string} 6 | \usage{ 7 | igraph_version(software = c("R", "C")) 8 | } 9 | \description{ 10 | Returns the R package version, 11 | prints the R package version and C library version. 12 | } 13 | \details{ 14 | #' @return A character scalar, the igraph version string. 15 | } 16 | \examples{ 17 | igraph_version() 18 | 19 | } 20 | \author{ 21 | Gabor Csardi \email{csardi.gabor@gmail.com} 22 | } 23 | \keyword{graphs} 24 | \keyword{internal} 25 | -------------------------------------------------------------------------------- /man/igraphdemo.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/demo.R 3 | \name{igraphdemo} 4 | \alias{igraphdemo} 5 | \title{Run igraph demos, step by step} 6 | \usage{ 7 | igraphdemo(which) 8 | } 9 | \arguments{ 10 | \item{which}{If not given, then the names of the available demos are listed. 11 | Otherwise it should be either a filename or the name of an igraph demo.} 12 | } 13 | \description{ 14 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 15 | 16 | \code{igraphdemo()} was renamed to \code{\link[=igraph_demo]{igraph_demo()}} to create a more 17 | consistent API. 18 | } 19 | \keyword{internal} 20 | -------------------------------------------------------------------------------- /man/indent_print.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/printr.R 3 | \name{indent_print} 4 | \alias{indent_print} 5 | \title{Indent a printout} 6 | \usage{ 7 | indent_print(..., .indent = " ", .printer = print) 8 | } 9 | \arguments{ 10 | \item{...}{Passed to the printing function.} 11 | 12 | \item{.indent}{Character scalar, indent the printout with this.} 13 | 14 | \item{.printer}{The printing function, defaults to \link{print}.} 15 | } 16 | \value{ 17 | The first element in \code{...}, invisibly. 18 | } 19 | \description{ 20 | Indent a printout 21 | } 22 | -------------------------------------------------------------------------------- /man/independence.number.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/cliques.R 3 | \name{independence.number} 4 | \alias{independence.number} 5 | \title{Independent vertex sets} 6 | \usage{ 7 | independence.number(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{independence.number()} was renamed to \code{\link[=ivs_size]{ivs_size()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/inside-square-error.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/iterators.R 3 | \name{.nei} 4 | \alias{.nei} 5 | \alias{.innei} 6 | \alias{.outnei} 7 | \alias{.inc} 8 | \alias{.from} 9 | \alias{.to} 10 | \title{Helpers within vertex/index sequences} 11 | \usage{ 12 | .nei(...) 13 | 14 | .innei(...) 15 | 16 | .outnei(...) 17 | 18 | .inc(...) 19 | 20 | .from(...) 21 | 22 | .to(...) 23 | } 24 | \arguments{ 25 | \item{...}{Not used, here for compatibility.} 26 | } 27 | \value{ 28 | An error 29 | } 30 | \description{ 31 | Functions to be used only with \verb{[.igraph.es} and \verb{[.igraph.vs} 32 | } 33 | \details{ 34 | See \code{\link[igraph]{[.igraph.vs}} and \code{\link[igraph]{[.igraph.es}}. 35 | } 36 | \keyword{internal} 37 | -------------------------------------------------------------------------------- /man/is.bipartite.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{is.bipartite} 4 | \alias{is.bipartite} 5 | \title{Checks whether the graph has a vertex attribute called \code{type}} 6 | \usage{ 7 | is.bipartite(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{is.bipartite()} was renamed to \code{\link[=is_bipartite]{is_bipartite()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/is.dag.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/paths.R 3 | \name{is.dag} 4 | \alias{is.dag} 5 | \title{Directed acyclic graphs} 6 | \usage{ 7 | is.dag(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph. It may be undirected, in which case 11 | \code{FALSE} is reported.} 12 | } 13 | \description{ 14 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 15 | 16 | \code{is.dag()} was renamed to \code{\link[=is_dag]{is_dag()}} to create a more 17 | consistent API. 18 | } 19 | \keyword{internal} 20 | -------------------------------------------------------------------------------- /man/is.directed.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/interface.R 3 | \name{is.directed} 4 | \alias{is.directed} 5 | \title{Check whether a graph is directed} 6 | \usage{ 7 | is.directed(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{is.directed()} was renamed to \code{\link[=is_directed]{is_directed()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/is.hierarchical.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/community.R 3 | \name{is.hierarchical} 4 | \alias{is.hierarchical} 5 | \title{Functions to deal with the result of network community detection} 6 | \usage{ 7 | is.hierarchical(communities) 8 | } 9 | \description{ 10 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 11 | 12 | \code{is.hierarchical()} was renamed to \code{\link[=is_hierarchical]{is_hierarchical()}} to create a more 13 | consistent API. 14 | } 15 | \keyword{internal} 16 | -------------------------------------------------------------------------------- /man/is.igraph.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/basic.R 3 | \name{is.igraph} 4 | \alias{is.igraph} 5 | \title{Is this object an igraph graph?} 6 | \usage{ 7 | is.igraph(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{An R object.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{is.igraph()} was renamed to \code{\link[=is_igraph]{is_igraph()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/is.loop.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/structural-properties.R 3 | \name{is.loop} 4 | \alias{is.loop} 5 | \title{Find the multiple or loop edges in a graph} 6 | \usage{ 7 | is.loop(graph, eids = E(graph)) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | 12 | \item{eids}{The edges to which the query is restricted. By default this is 13 | all edges in the graph.} 14 | } 15 | \description{ 16 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 17 | 18 | \code{is.loop()} was renamed to \code{\link[=which_loop]{which_loop()}} to create a more 19 | consistent API. 20 | } 21 | \keyword{internal} 22 | -------------------------------------------------------------------------------- /man/is.multiple.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/structural-properties.R 3 | \name{is.multiple} 4 | \alias{is.multiple} 5 | \title{Find the multiple or loop edges in a graph} 6 | \usage{ 7 | is.multiple(graph, eids = E(graph)) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | 12 | \item{eids}{The edges to which the query is restricted. By default this is 13 | all edges in the graph.} 14 | } 15 | \description{ 16 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 17 | 18 | \code{is.multiple()} was renamed to \code{\link[=which_multiple]{which_multiple()}} to create a more 19 | consistent API. 20 | } 21 | \keyword{internal} 22 | -------------------------------------------------------------------------------- /man/is.named.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{is.named} 4 | \alias{is.named} 5 | \title{Named graphs} 6 | \usage{ 7 | is.named(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{is.named()} was renamed to \code{\link[=is_named]{is_named()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/is.separator.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/flow.R 3 | \name{is.separator} 4 | \alias{is.separator} 5 | \title{Vertex separators} 6 | \usage{ 7 | is.separator(graph, candidate) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph. It may be directed, but edge directions are 11 | ignored.} 12 | 13 | \item{candidate}{A numeric vector giving the vertex ids of the candidate 14 | separator.} 15 | } 16 | \description{ 17 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 18 | 19 | \code{is.separator()} was renamed to \code{\link[=is_separator]{is_separator()}} to create a more 20 | consistent API. 21 | } 22 | \keyword{internal} 23 | -------------------------------------------------------------------------------- /man/is.simple.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/simple.R 3 | \name{is.simple} 4 | \alias{is.simple} 5 | \title{Simple graphs} 6 | \usage{ 7 | is.simple(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The graph to work on.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{is.simple()} was renamed to \code{\link[=is_simple]{is_simple()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/is.weighted.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{is.weighted} 4 | \alias{is.weighted} 5 | \title{Weighted graphs} 6 | \usage{ 7 | is.weighted(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{is.weighted()} was renamed to \code{\link[=is_weighted]{is_weighted()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/is_bipartite.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{is_bipartite} 4 | \alias{is_bipartite} 5 | \title{Checks whether the graph has a vertex attribute called \code{type}.} 6 | \usage{ 7 | is_bipartite(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph} 11 | } 12 | \description{ 13 | It does not check whether the graph is bipartite in the 14 | mathematical sense. Use \code{\link[=bipartite_mapping]{bipartite_mapping()}} for that. 15 | } 16 | \seealso{ 17 | Bipartite graphs 18 | \code{\link{bipartite_mapping}()}, 19 | \code{\link{bipartite_projection}()}, 20 | \code{\link{make_bipartite_graph}()} 21 | } 22 | \concept{bipartite} 23 | -------------------------------------------------------------------------------- /man/is_igraph.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/basic.R 3 | \name{is_igraph} 4 | \alias{is_igraph} 5 | \title{Is this object an igraph graph?} 6 | \usage{ 7 | is_igraph(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{An R object.} 11 | } 12 | \value{ 13 | A logical constant, \code{TRUE} if argument \code{graph} is a graph 14 | object. 15 | } 16 | \description{ 17 | Is this object an igraph graph? 18 | } 19 | \examples{ 20 | 21 | g <- make_ring(10) 22 | is_igraph(g) 23 | is_igraph(numeric(10)) 24 | } 25 | \author{ 26 | Gabor Csardi \email{csardi.gabor@gmail.com} 27 | } 28 | \keyword{graphs} 29 | -------------------------------------------------------------------------------- /man/is_printer_callback.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/printr.R 3 | \name{is_printer_callback} 4 | \alias{is_printer_callback} 5 | \title{Is this a printer callback?} 6 | \usage{ 7 | is_printer_callback(x) 8 | } 9 | \arguments{ 10 | \item{x}{An R object.} 11 | } 12 | \description{ 13 | Is this a printer callback? 14 | } 15 | \seealso{ 16 | Other printer callbacks: 17 | \code{\link{printer_callback}()} 18 | } 19 | \concept{printer callbacks} 20 | -------------------------------------------------------------------------------- /man/largest.cliques.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/cliques.R 3 | \name{largest.cliques} 4 | \alias{largest.cliques} 5 | \title{Functions to find cliques, i.e. complete subgraphs in a graph} 6 | \usage{ 7 | largest.cliques(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{largest.cliques()} was renamed to \code{\link[=largest_cliques]{largest_cliques()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/largest.independent.vertex.sets.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/cliques.R 3 | \name{largest.independent.vertex.sets} 4 | \alias{largest.independent.vertex.sets} 5 | \title{Independent vertex sets} 6 | \usage{ 7 | largest.independent.vertex.sets(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{largest.independent.vertex.sets()} was renamed to \code{\link[=largest_ivs]{largest_ivs()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/layout.circle.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/layout.R 3 | \name{layout.circle} 4 | \alias{layout.circle} 5 | \title{Graph layout with vertices on a circle} 6 | \usage{ 7 | layout.circle(..., params = list()) 8 | } 9 | \arguments{ 10 | \item{...}{Passed to the new layout functions.} 11 | 12 | \item{params}{Passed to the new layout functions as arguments.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{layout.circle()} was renamed to \code{\link[=layout_in_circle]{layout_in_circle()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/layout.kamada.kawai.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/layout.R 3 | \name{layout.kamada.kawai} 4 | \alias{layout.kamada.kawai} 5 | \title{The Kamada-Kawai layout algorithm} 6 | \usage{ 7 | layout.kamada.kawai(..., params = list()) 8 | } 9 | \arguments{ 10 | \item{...}{Passed to the new layout functions.} 11 | 12 | \item{params}{Passed to the new layout functions as arguments.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{layout.kamada.kawai()} was renamed to \code{\link[=layout_with_kk]{layout_with_kk()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/layout.lgl.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/layout.R 3 | \name{layout.lgl} 4 | \alias{layout.lgl} 5 | \title{Large Graph Layout} 6 | \usage{ 7 | layout.lgl(..., params = list()) 8 | } 9 | \arguments{ 10 | \item{...}{Passed to the new layout functions.} 11 | 12 | \item{params}{Passed to the new layout functions as arguments.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{layout.lgl()} was renamed to \code{\link[=layout_with_lgl]{layout_with_lgl()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/layout.random.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/layout.R 3 | \name{layout.random} 4 | \alias{layout.random} 5 | \title{Randomly place vertices on a plane or in 3d space} 6 | \usage{ 7 | layout.random(..., params = list()) 8 | } 9 | \arguments{ 10 | \item{...}{Passed to the new layout functions.} 11 | 12 | \item{params}{Passed to the new layout functions as arguments.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{layout.random()} was renamed to \code{\link[=layout_randomly]{layout_randomly()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/layout.sphere.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/layout.R 3 | \name{layout.sphere} 4 | \alias{layout.sphere} 5 | \title{Graph layout with vertices on the surface of a sphere} 6 | \usage{ 7 | layout.sphere(..., params = list()) 8 | } 9 | \arguments{ 10 | \item{...}{Passed to the new layout functions.} 11 | 12 | \item{params}{Passed to the new layout functions as arguments.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{layout.sphere()} was renamed to \code{\link[=layout_on_sphere]{layout_on_sphere()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/layout.spring.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/layout.R 3 | \name{layout.spring} 4 | \alias{layout.spring} 5 | \title{Spring layout, this was removed from igraph} 6 | \usage{ 7 | layout.spring(graph, ...) 8 | } 9 | \arguments{ 10 | \item{graph}{Input graph.} 11 | 12 | \item{...}{Extra arguments are ignored.} 13 | } 14 | \value{ 15 | Layout coordinates, a two column matrix. 16 | } 17 | \description{ 18 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 19 | 20 | Now it calls the Fruchterman-Reingold layout \code{\link[=layout_with_fr]{layout_with_fr()}}. 21 | } 22 | \keyword{internal} 23 | -------------------------------------------------------------------------------- /man/layout.svd.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/layout.R 3 | \name{layout.svd} 4 | \alias{layout.svd} 5 | \title{SVD layout, this was removed from igraph} 6 | \usage{ 7 | layout.svd(graph, ...) 8 | } 9 | \arguments{ 10 | \item{graph}{Input graph.} 11 | 12 | \item{...}{Extra arguments are ignored.} 13 | } 14 | \value{ 15 | Layout coordinates, a two column matrix. 16 | } 17 | \description{ 18 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 19 | 20 | Now it calls the Fruchterman-Reingold layout \code{\link[=layout_with_fr]{layout_with_fr()}}. 21 | } 22 | \keyword{internal} 23 | -------------------------------------------------------------------------------- /man/line.graph.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/make.R 3 | \name{line.graph} 4 | \alias{line.graph} 5 | \title{Line graph of a graph} 6 | \usage{ 7 | line.graph(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph, it can be directed or undirected.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{line.graph()} was renamed to \code{\link[=make_line_graph]{make_line_graph()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/list.edge.attributes.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{list.edge.attributes} 4 | \alias{list.edge.attributes} 5 | \title{List names of edge attributes} 6 | \usage{ 7 | list.edge.attributes(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{list.edge.attributes()} was renamed to \code{\link[=edge_attr_names]{edge_attr_names()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/list.graph.attributes.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{list.graph.attributes} 4 | \alias{list.graph.attributes} 5 | \title{List names of graph attributes} 6 | \usage{ 7 | list.graph.attributes(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{list.graph.attributes()} was renamed to \code{\link[=graph_attr_names]{graph_attr_names()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/list.vertex.attributes.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{list.vertex.attributes} 4 | \alias{list.vertex.attributes} 5 | \title{List names of vertex attributes} 6 | \usage{ 7 | list.vertex.attributes(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{list.vertex.attributes()} was renamed to \code{\link[=vertex_attr_names]{vertex_attr_names()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/maxcohesion.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/cohesive.blocks.R 3 | \name{maxcohesion} 4 | \alias{maxcohesion} 5 | \title{Calculate Cohesive Blocks} 6 | \usage{ 7 | maxcohesion(blocks) 8 | } 9 | \description{ 10 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 11 | 12 | \code{maxcohesion()} was renamed to \code{\link[=max_cohesion]{max_cohesion()}} to create a more 13 | consistent API. 14 | } 15 | \keyword{internal} 16 | -------------------------------------------------------------------------------- /man/maximal.independent.vertex.sets.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/cliques.R 3 | \name{maximal.independent.vertex.sets} 4 | \alias{maximal.independent.vertex.sets} 5 | \title{Independent vertex sets} 6 | \usage{ 7 | maximal.independent.vertex.sets(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{maximal.independent.vertex.sets()} was renamed to \code{\link[=max_ivs]{max_ivs()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/maximal_ivs.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/cliques.R 3 | \name{maximal_ivs} 4 | \alias{maximal_ivs} 5 | \title{Maximal independent vertex sets in the graph} 6 | \usage{ 7 | maximal_ivs(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{maximal_ivs()} was renamed to \code{\link[=max_ivs]{max_ivs()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/minimal.st.separators.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/flow.R 3 | \name{minimal.st.separators} 4 | \alias{minimal.st.separators} 5 | \title{Minimum size vertex separators} 6 | \usage{ 7 | minimal.st.separators(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph. It may be directed, but edge directions are 11 | ignored.} 12 | } 13 | \description{ 14 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 15 | 16 | \code{minimal.st.separators()} was renamed to \code{\link[=min_st_separators]{min_st_separators()}} to create a more 17 | consistent API. 18 | } 19 | \keyword{internal} 20 | -------------------------------------------------------------------------------- /man/minimum.size.separators.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/flow.R 3 | \name{minimum.size.separators} 4 | \alias{minimum.size.separators} 5 | \title{Minimum size vertex separators} 6 | \usage{ 7 | minimum.size.separators(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph. It may be directed, but edge directions are 11 | ignored.} 12 | } 13 | \description{ 14 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 15 | 16 | \code{minimum.size.separators()} was renamed to \code{\link[=min_separators]{min_separators()}} to create a more 17 | consistent API. 18 | } 19 | \keyword{internal} 20 | -------------------------------------------------------------------------------- /man/pipe.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/igraph-package.R 3 | \name{\%>\%} 4 | \alias{\%>\%} 5 | \title{Magrittr's pipes} 6 | \arguments{ 7 | \item{lhs}{Left hand side of the pipe.} 8 | 9 | \item{rhs}{Right hand side of the pipe.} 10 | } 11 | \value{ 12 | Result of applying the right hand side to the 13 | result of the left hand side. 14 | } 15 | \description{ 16 | igraph re-exports the \verb{\%>\%} operator of magrittr, because 17 | we find it very useful. Please see the documentation in the 18 | \code{magrittr} package. 19 | } 20 | \examples{ 21 | make_ring(10) \%>\% 22 | add_edges(c(1, 6)) \%>\% 23 | plot() 24 | } 25 | -------------------------------------------------------------------------------- /man/r_pal.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/palette.R 3 | \name{r_pal} 4 | \alias{r_pal} 5 | \title{The default R palette} 6 | \usage{ 7 | r_pal(n) 8 | } 9 | \arguments{ 10 | \item{n}{The number of colors to use, the maximum is eight.} 11 | } 12 | \value{ 13 | A character vector of color names. 14 | } 15 | \description{ 16 | This is the default R palette, to be able to reproduce the 17 | colors of older igraph versions. Its colors are appropriate 18 | for categories, but they are not very attractive. 19 | } 20 | \seealso{ 21 | Other palettes: 22 | \code{\link{categorical_pal}()}, 23 | \code{\link{diverging_pal}()}, 24 | \code{\link{sequential_pal}()} 25 | } 26 | \concept{palettes} 27 | -------------------------------------------------------------------------------- /man/remove.edge.attribute.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{remove.edge.attribute} 4 | \alias{remove.edge.attribute} 5 | \title{Delete an edge attribute} 6 | \usage{ 7 | remove.edge.attribute(graph, name) 8 | } 9 | \arguments{ 10 | \item{graph}{The graph} 11 | 12 | \item{name}{The name of the edge attribute to delete.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{remove.edge.attribute()} was renamed to \code{\link[=delete_edge_attr]{delete_edge_attr()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/remove.graph.attribute.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{remove.graph.attribute} 4 | \alias{remove.graph.attribute} 5 | \title{Delete a graph attribute} 6 | \usage{ 7 | remove.graph.attribute(graph, name) 8 | } 9 | \arguments{ 10 | \item{graph}{The graph.} 11 | 12 | \item{name}{Name of the attribute to delete.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{remove.graph.attribute()} was renamed to \code{\link[=delete_graph_attr]{delete_graph_attr()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/remove.vertex.attribute.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{remove.vertex.attribute} 4 | \alias{remove.vertex.attribute} 5 | \title{Delete a vertex attribute} 6 | \usage{ 7 | remove.vertex.attribute(graph, name) 8 | } 9 | \arguments{ 10 | \item{graph}{The graph} 11 | 12 | \item{name}{The name of the vertex attribute to delete.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{remove.vertex.attribute()} was renamed to \code{\link[=delete_vertex_attr]{delete_vertex_attr()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/roxygen/meta.R: -------------------------------------------------------------------------------- 1 | list( 2 | rd_family_title = list( 3 | adjacency = "Adjacency matrices", 4 | attributes = "Vertex, edge and graph attributes", 5 | bipartite = "Bipartite graphs", 6 | centrality = "Centrality measures", 7 | coloring = "Graph coloring", 8 | community = "Community detection", 9 | components = "Connected components", 10 | processes = "Processes on graphs", 11 | cycles = "Graph cycles", 12 | foreign = "Foreign format readers", 13 | games = "Random graph models (games)", 14 | scg = "Spectral Coarse Graining", 15 | sgm = "Graph matching", 16 | `constructor modifiers` = "Constructor modifiers (and related functions)" 17 | ) 18 | ) 19 | -------------------------------------------------------------------------------- /man/running.mean.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/other.R 3 | \name{running.mean} 4 | \alias{running.mean} 5 | \title{Running mean of a time series} 6 | \usage{ 7 | running.mean(v, binwidth) 8 | } 9 | \arguments{ 10 | \item{v}{The numeric vector.} 11 | 12 | \item{binwidth}{Numeric constant, the size of the bin, should be meaningful, 13 | i.e. smaller than the length of \code{v}.} 14 | } 15 | \description{ 16 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 17 | 18 | \code{running.mean()} was renamed to \code{\link[=running_mean]{running_mean()}} to create a more 19 | consistent API. 20 | } 21 | \keyword{internal} 22 | -------------------------------------------------------------------------------- /man/set.graph.attribute.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/attributes.R 3 | \name{set.graph.attribute} 4 | \alias{set.graph.attribute} 5 | \title{Set a graph attribute} 6 | \usage{ 7 | set.graph.attribute(graph, name, value) 8 | } 9 | \arguments{ 10 | \item{graph}{The graph.} 11 | 12 | \item{name}{The name of the attribute to set.} 13 | 14 | \item{value}{New value of the attribute.} 15 | } 16 | \description{ 17 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 18 | 19 | \code{set.graph.attribute()} was renamed to \code{\link[=set_graph_attr]{set_graph_attr()}} to create a more 20 | consistent API. 21 | } 22 | \keyword{internal} 23 | -------------------------------------------------------------------------------- /man/showtrace.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/community.R 3 | \name{showtrace} 4 | \alias{showtrace} 5 | \title{Functions to deal with the result of network community detection} 6 | \usage{ 7 | showtrace(communities) 8 | } 9 | \description{ 10 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 11 | 12 | \code{showtrace()} was renamed to \code{\link[=show_trace]{show_trace()}} to create a more 13 | consistent API. 14 | } 15 | \keyword{internal} 16 | -------------------------------------------------------------------------------- /man/stCuts.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/flow.R 3 | \name{stCuts} 4 | \alias{stCuts} 5 | \title{List all (s,t)-cuts of a graph} 6 | \usage{ 7 | stCuts(graph, source, target) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph. It must be directed.} 11 | 12 | \item{source}{The source vertex.} 13 | 14 | \item{target}{The target vertex.} 15 | } 16 | \description{ 17 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 18 | 19 | \code{stCuts()} was renamed to \code{\link[=st_cuts]{st_cuts()}} to create a more 20 | consistent API. 21 | } 22 | \keyword{internal} 23 | -------------------------------------------------------------------------------- /man/tkigraph.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/tkigraph.R 3 | \name{tkigraph} 4 | \alias{tkigraph} 5 | \title{tkigraph} 6 | \description{ 7 | Find tkigraph at \url{https://github.com/igraph/tkigraph}. 8 | } 9 | \keyword{internal} 10 | -------------------------------------------------------------------------------- /man/tkplot.canvas.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/tkplot.R 3 | \name{tkplot.canvas} 4 | \alias{tkplot.canvas} 5 | \title{Interactive plotting of graphs} 6 | \usage{ 7 | tkplot.canvas(tkp.id) 8 | } 9 | \arguments{ 10 | \item{tkp.id}{The id of the tkplot window to close/reshape/etc.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{tkplot.canvas()} was renamed to \code{\link[=tk_canvas]{tk_canvas()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/tkplot.center.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/tkplot.R 3 | \name{tkplot.center} 4 | \alias{tkplot.center} 5 | \title{Interactive plotting of graphs} 6 | \usage{ 7 | tkplot.center(tkp.id) 8 | } 9 | \arguments{ 10 | \item{tkp.id}{The id of the tkplot window to close/reshape/etc.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{tkplot.center()} was renamed to \code{\link[=tk_center]{tk_center()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/tkplot.close.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/tkplot.R 3 | \name{tkplot.close} 4 | \alias{tkplot.close} 5 | \title{Interactive plotting of graphs} 6 | \usage{ 7 | tkplot.close(tkp.id, window.close = TRUE) 8 | } 9 | \arguments{ 10 | \item{tkp.id}{The id of the tkplot window to close/reshape/etc.} 11 | 12 | \item{window.close}{Leave this on the default value.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{tkplot.close()} was renamed to \code{\link[=tk_close]{tk_close()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/tkplot.export.postscript.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/tkplot.R 3 | \name{tkplot.export.postscript} 4 | \alias{tkplot.export.postscript} 5 | \title{Interactive plotting of graphs} 6 | \usage{ 7 | tkplot.export.postscript(tkp.id) 8 | } 9 | \arguments{ 10 | \item{tkp.id}{The id of the tkplot window to close/reshape/etc.} 11 | } 12 | \description{ 13 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 14 | 15 | \code{tkplot.export.postscript()} was renamed to \code{\link[=tk_postscript]{tk_postscript()}} to create a more 16 | consistent API. 17 | } 18 | \keyword{internal} 19 | -------------------------------------------------------------------------------- /man/tkplot.getcoords.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/tkplot.R 3 | \name{tkplot.getcoords} 4 | \alias{tkplot.getcoords} 5 | \title{Interactive plotting of graphs} 6 | \usage{ 7 | tkplot.getcoords(tkp.id, norm = FALSE) 8 | } 9 | \arguments{ 10 | \item{tkp.id}{The id of the tkplot window to close/reshape/etc.} 11 | 12 | \item{norm}{Logical, should we norm the coordinates.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{tkplot.getcoords()} was renamed to \code{\link[=tk_coords]{tk_coords()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/tkplot.off.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/tkplot.R 3 | \name{tkplot.off} 4 | \alias{tkplot.off} 5 | \title{Interactive plotting of graphs} 6 | \usage{ 7 | tkplot.off() 8 | } 9 | \description{ 10 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 11 | 12 | \code{tkplot.off()} was renamed to \code{\link[=tk_off]{tk_off()}} to create a more 13 | consistent API. 14 | } 15 | \keyword{internal} 16 | -------------------------------------------------------------------------------- /man/triad.census.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/motifs.R 3 | \name{triad.census} 4 | \alias{triad.census} 5 | \title{Triad census, subgraphs with three vertices} 6 | \usage{ 7 | triad.census(graph) 8 | } 9 | \arguments{ 10 | \item{graph}{The input graph, it should be directed. An undirected graph 11 | results a warning, and undefined results.} 12 | } 13 | \description{ 14 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 15 | 16 | \code{triad.census()} was renamed to \code{\link[=triad_census]{triad_census()}} to create a more 17 | consistent API. 18 | } 19 | \keyword{internal} 20 | -------------------------------------------------------------------------------- /man/vertex.shapes.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/plot.shapes.R 3 | \name{vertex.shapes} 4 | \alias{vertex.shapes} 5 | \title{Various vertex shapes when plotting igraph graphs} 6 | \usage{ 7 | vertex.shapes(shape = NULL) 8 | } 9 | \arguments{ 10 | \item{shape}{Character scalar, name of a vertex shape. If it is 11 | \code{NULL} for \code{shapes()}, then the names of all defined 12 | vertex shapes are returned.} 13 | } 14 | \description{ 15 | \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} 16 | 17 | \code{vertex.shapes()} was renamed to \code{\link[=shapes]{shapes()}} to create a more 18 | consistent API. 19 | } 20 | \keyword{internal} 21 | -------------------------------------------------------------------------------- /man/with_igraph_opt.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/par.R 3 | \name{with_igraph_opt} 4 | \alias{with_igraph_opt} 5 | \title{Run code with a temporary igraph options setting} 6 | \usage{ 7 | with_igraph_opt(options, code) 8 | } 9 | \arguments{ 10 | \item{options}{A named list of the options to change.} 11 | 12 | \item{code}{The code to run.} 13 | } 14 | \value{ 15 | The result of the \code{code}. 16 | } 17 | \description{ 18 | Run code with a temporary igraph options setting 19 | } 20 | \examples{ 21 | with_igraph_opt( 22 | list(sparsematrices = FALSE), 23 | make_ring(10)[] 24 | ) 25 | igraph_opt("sparsematrices") 26 | } 27 | \seealso{ 28 | Other igraph options: 29 | \code{\link{igraph_options}()} 30 | } 31 | \concept{igraph options} 32 | -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/pkgdown/favicon/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/pkgdown/favicon/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/pkgdown/favicon/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/pkgdown/favicon/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/pkgdown/favicon/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/pkgdown/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /pkgdown/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/pkgdown/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /pkgdown/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/pkgdown/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /pkgdown/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/pkgdown/favicon/favicon.ico -------------------------------------------------------------------------------- /revdep/.gitignore: -------------------------------------------------------------------------------- 1 | /cloud.noindex 2 | /cloud 3 | /review/ 4 | -------------------------------------------------------------------------------- /revdep/run-all.R: -------------------------------------------------------------------------------- 1 | me <- unname(desc::desc_get("Package")) 2 | 3 | last <- dir(pattern = paste0("^", me, "_.*[.]tar[.]gz$")) 4 | stopifnot(length(last) == 1) 5 | last 6 | 7 | strong <- unlist(tools::package_dependencies(me, which = "most", reverse = TRUE), use.names = FALSE) 8 | # second <- unlist(tools::package_dependencies(strong, reverse = TRUE, recursive = TRUE), use.names = FALSE) 9 | second <- unlist(tools::package_dependencies(strong, reverse = TRUE), use.names = FALSE) 10 | bad <- c("streamDAG", "Seurat", "bsts") 11 | packages <- unique(c(strong, second)) 12 | 13 | revdepcheck::cloud_check(tarball = last, revdep_packages = packages, r_version = "4.4.0") 14 | unlink(last) 15 | revdepcheck::cloud_status() 16 | revdepcheck::cloud_report() 17 | -------------------------------------------------------------------------------- /revdep/run-broken.R: -------------------------------------------------------------------------------- 1 | me <- unname(desc::desc_get("Package")) 2 | 3 | last <- dir(pattern = paste0("^", me, "_.*[.]tar[.]gz$")) 4 | stopifnot(length(last) == 1) 5 | last 6 | 7 | problems <- gsub("^# ", "", grep("^# ", readLines("revdep/problems.md"), value = TRUE)) 8 | # broken <- revdepcheck::cloud_broken(install_failures = TRUE, timeout_failures = TRUE) 9 | failed <- revdepcheck::cloud_failed() 10 | failures <- gsub("^# ", "", grep("^# ", readLines("revdep/failures.md"), value = TRUE)) 11 | 12 | broken <- c(problems, failed, failures) 13 | 14 | print(broken) 15 | 16 | revdepcheck::cloud_check(tarball = last, revdep_packages = broken, r_version = "4.4.0") 17 | unlink(last) 18 | revdepcheck::cloud_status() 19 | revdepcheck::cloud_report() 20 | -------------------------------------------------------------------------------- /revdep/run.R: -------------------------------------------------------------------------------- 1 | me <- unname(desc::desc_get("Package")) 2 | 3 | last <- dir(pattern = paste0("^", me, "_.*[.]tar[.]gz$")) 4 | stopifnot(length(last) == 1) 5 | last 6 | 7 | revdepcheck::cloud_check(tarball = last, r_version = "4.4.0") 8 | unlink(last) 9 | revdepcheck::cloud_status() 10 | revdepcheck::cloud_report() 11 | -------------------------------------------------------------------------------- /revdep/times.R: -------------------------------------------------------------------------------- 1 | library(tidyverse) 2 | 3 | fs::dir_ls("revdep/cloud.noindex/aca814a4-3c75-4496-ac24-1761eb50ad8b", glob = "*/*/*.Rcheck/00check.log", recurse = TRUE) |> 4 | fs::file_info() |> 5 | mutate(rcheck = fs::path_file(fs::path_dir(path))) |> 6 | summarize(.by = rcheck, modification_time = max(modification_time)) |> 7 | arrange(modification_time) |> 8 | transmute( 9 | count = row_number(), 10 | rate = count / n(), 11 | duration = hms::as_hms(modification_time - min(modification_time)) 12 | ) |> 13 | ggplot(aes(x = duration, y = count)) + 14 | geom_line() 15 | -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.so 3 | /config.h 4 | /config.h.in~ 5 | /Makevars 6 | -------------------------------------------------------------------------------- /src/cpp11.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | cpp11.o: \ 3 | cpp11.cpp \ 4 | igraph_types.hpp \ 5 | -------------------------------------------------------------------------------- /src/cpprinterface.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | cpprinterface.o: \ 3 | cpprinterface.cpp \ 4 | igraph_vector.hpp \ 5 | -------------------------------------------------------------------------------- /src/deps.mk: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | include $(GLUE_C_SOURCES:.o=.dd) 3 | include $(GLUE_CPP_SOURCES:.o=.dd) 4 | 5 | # Include only local dependencies for smaller footprint 6 | # Add trailing backslash and sort 7 | %.dd: %.d 8 | sed -r 's/([^ ]) ([^ \\])/\1 \\\n \2/g' $< | sed -r '/^ ([/]|vendor|[.][.])/D;$$s/([^\\])$$/\1 \\/' | { echo "# Generated by deps.mk, do not edit by hand and do not add dependencies to system headers"; read -r header; printf '%s\n' "$$header"; LOCALE=C sort; } > $@ 9 | -------------------------------------------------------------------------------- /src/igraph-win.def: -------------------------------------------------------------------------------- 1 | LIBRARY igraph.dll 2 | EXPORTS 3 | R_init_igraph 4 | -------------------------------------------------------------------------------- /src/igraph_types.hpp: -------------------------------------------------------------------------------- 1 | #include "igraph_types.h" 2 | -------------------------------------------------------------------------------- /src/init.cpp: -------------------------------------------------------------------------------- 1 | #include "cpp11.hpp" 2 | 3 | #include "igraph.h" 4 | 5 | extern "C" void R_igraph_init_handlers(DllInfo* dll); 6 | extern "C" void R_igraph_init_vector_class(DllInfo* dll); 7 | 8 | [[cpp11::init]] 9 | void igraph_init(DllInfo* dll) 10 | { 11 | R_igraph_init_handlers(dll); 12 | R_igraph_init_vector_class(dll); 13 | } 14 | -------------------------------------------------------------------------------- /src/init.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | init.o: \ 3 | init.cpp \ 4 | -------------------------------------------------------------------------------- /src/rinterface.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | rinterface.o: \ 3 | rinterface.c \ 4 | rinterface.h \ 5 | -------------------------------------------------------------------------------- /src/rinterface_extra.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | rinterface_extra.o: \ 3 | rinterface.h \ 4 | rinterface_extra.c \ 5 | rrandom.h \ 6 | -------------------------------------------------------------------------------- /src/rrandom.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | rrandom.o: \ 3 | rrandom.c \ 4 | -------------------------------------------------------------------------------- /src/simpleraytracer.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | simpleraytracer.o: \ 3 | simpleraytracer.cpp \ 4 | -------------------------------------------------------------------------------- /src/sources-glue-c.mk: -------------------------------------------------------------------------------- 1 | GLUE_C_SOURCES=rinterface.o rinterface_extra.o rrandom.o 2 | -------------------------------------------------------------------------------- /src/sources-glue-cpp.mk: -------------------------------------------------------------------------------- 1 | GLUE_CPP_SOURCES=cpp11.o cpprinterface.o init.o simpleraytracer.o 2 | -------------------------------------------------------------------------------- /src/sources-mini-gmp.mk: -------------------------------------------------------------------------------- 1 | MINI_GMP_SOURCES=vendor/cigraph/vendor/mini-gmp/mini-gmp.o 2 | -------------------------------------------------------------------------------- /src/vendor/cigraph/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | trim_trailing_whitespace = true 8 | 9 | [*.{c,cc,cpp,h,hh,hpp,pmt}] 10 | indent_style = space 11 | indent_size = 4 12 | 13 | [Makefile] 14 | indent_style = tab 15 | -------------------------------------------------------------------------------- /src/vendor/cigraph/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .*.swp 3 | .dirstamp 4 | .vscode/ 5 | 6 | /tags 7 | /IGRAPH_VERSION 8 | /build 9 | /build-* 10 | /tools/**/*.pyc 11 | -------------------------------------------------------------------------------- /src/vendor/cigraph/.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | fail_fast: true 2 | exclude: "(^vendor/|\\.patch$)" 3 | 4 | repos: 5 | - repo: https://github.com/pre-commit/pre-commit-hooks 6 | rev: v4.6.0 7 | hooks: 8 | - id: mixed-line-ending 9 | args: ["--fix=lf"] 10 | exclude: "\\.net$" 11 | - id: end-of-file-fixer 12 | exclude: "\\.out$" 13 | - id: trailing-whitespace 14 | exclude: "\\.out$" 15 | - id: check-merge-conflict 16 | - id: fix-byte-order-marker 17 | exclude: "utf8_with_bom.net$" 18 | 19 | - repo: local 20 | hooks: 21 | - id: update-contributors-txt 22 | name: Update CONTRIBUTORS.txt 23 | language: python 24 | entry: python3 tools/update_contributors_txt.py 25 | pass_filenames: false 26 | -------------------------------------------------------------------------------- /src/vendor/cigraph/AUTHORS: -------------------------------------------------------------------------------- 1 | Gabor Csardi 2 | Tamas Nepusz 3 | Szabolcs Horvat 4 | Vincent Traag 5 | Fabio Zanini 6 | Daniel Noom 7 | -------------------------------------------------------------------------------- /src/vendor/cigraph/ChangeLog: -------------------------------------------------------------------------------- 1 | See CHANGELOG.md for a list of changes between versions. 2 | -------------------------------------------------------------------------------- /src/vendor/cigraph/INSTALL: -------------------------------------------------------------------------------- 1 | Instructions for installation are provided in Chapter 2 of the manual; see 2 | `doc/html` in the distributed tarball. 3 | 4 | An online version of the installation instructions for the most recent version 5 | can be found here: 6 | 7 | https://igraph.org/c/doc/igraph-Installation.html 8 | -------------------------------------------------------------------------------- /src/vendor/cigraph/NEWS: -------------------------------------------------------------------------------- 1 | News about each release of igraph from version 0.8 onwards can be found in 2 | CHANGELOG.md. 3 | 4 | Archived news items before version 0.7 are to be found in ONEWS -- these are 5 | most likely of historical interest only. 6 | -------------------------------------------------------------------------------- /src/vendor/cigraph/codecov.yml: -------------------------------------------------------------------------------- 1 | # See https://docs.codecov.io/docs/codecov-yaml for documentation 2 | 3 | codecov: 4 | require_ci_to_pass: true 5 | 6 | coverage: 7 | precision: 2 8 | round: down 9 | range: "50...100" 10 | status: 11 | project: 12 | default: 13 | threshold: 0.01% 14 | 15 | parsers: 16 | gcov: 17 | branch_detection: 18 | conditional: yes 19 | loop: yes 20 | method: no 21 | macro: no 22 | 23 | comment: 24 | layout: "reach,diff,flags,files,footer" 25 | behavior: default 26 | require_changes: false 27 | 28 | ignore: 29 | - "tests" 30 | - "examples" 31 | - "vendor/pcg" 32 | -------------------------------------------------------------------------------- /src/vendor/cigraph/etc/cmake/BuildType.cmake: -------------------------------------------------------------------------------- 1 | # Taken from https://blog.kitware.com/cmake-and-the-default-build-type/ 2 | 3 | # Set the default build type to "Release" 4 | set(default_build_type "Release") 5 | 6 | get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) 7 | if(NOT isMultiConfig AND NOT CMAKE_BUILD_TYPE) 8 | message(STATUS "Setting build type to '${default_build_type}' as none was specified.") 9 | set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE) 10 | # Set the possible values of build type for cmake-gui 11 | set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") 12 | endif() 13 | -------------------------------------------------------------------------------- /src/vendor/cigraph/etc/cmake/UseCCacheWhenInstalled.cmake: -------------------------------------------------------------------------------- 1 | option(USE_CCACHE "Use ccache to speed up compilation if it is installed" ON) 2 | if(USE_CCACHE) 3 | find_program(CCACHE_PROGRAM ccache) 4 | if(CCACHE_PROGRAM) 5 | set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") 6 | endif() 7 | endif() 8 | -------------------------------------------------------------------------------- /src/vendor/cigraph/etc/cmake/create_igraph_version_file.cmake: -------------------------------------------------------------------------------- 1 | # CMake script that generates the IGRAPH_VERSION file in the build folder 2 | # 3 | # Script variables that need to be set before calling it via "cmake -P": 4 | # 5 | # * IGRAPH_VERSION should be set to the exact version number 6 | # * VERSION_FILE_PATH should be set to the name of the version file 7 | 8 | FILE(WRITE "${VERSION_FILE_PATH}" "${IGRAPH_VERSION}") 9 | -------------------------------------------------------------------------------- /src/vendor/cigraph/etc/cmake/debugging.cmake: -------------------------------------------------------------------------------- 1 | set( 2 | IGRAPH_VERIFY_FINALLY_STACK 3 | "" 4 | CACHE 5 | BOOL 6 | "Verify that the 'finally' stack is cleaned up properly. Useful only in debugging; do not use in production." 7 | ) 8 | -------------------------------------------------------------------------------- /src/vendor/cigraph/etc/cmake/fuzz_helpers.cmake: -------------------------------------------------------------------------------- 1 | 2 | function(add_fuzzer NAME) 3 | set(TARGET_NAME fuzzer_${NAME}) 4 | 5 | add_executable(${TARGET_NAME} EXCLUDE_FROM_ALL ${PROJECT_SOURCE_DIR}/fuzzing/${NAME}.cpp) 6 | 7 | add_dependencies(build_fuzzers ${TARGET_NAME}) 8 | 9 | target_link_libraries(${TARGET_NAME} PRIVATE igraph) 10 | 11 | # The -fsanitize=fuzzer-no-link is already added by the top-level CMakeLists.txt 12 | # for general fuzzer instrumentation. Additionally, we need -fsanitize=fuzzer 13 | # for the fuzz targets, which do not contain a main() function, to link in the 14 | # fuzz driver. See https://llvm.org/docs/LibFuzzer.html 15 | target_link_options(${TARGET_NAME} PRIVATE -fsanitize=fuzzer) 16 | endfunction() 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/etc/cmake/helpers.cmake: -------------------------------------------------------------------------------- 1 | macro(tristate OPTION_NAME DESCRIPTION DEFAULT_VALUE) 2 | set(${OPTION_NAME} "${DEFAULT_VALUE}" CACHE STRING "${DESCRIPTION}") 3 | set_property(CACHE ${OPTION_NAME} PROPERTY STRINGS AUTO ON OFF) 4 | endmacro() 5 | 6 | include(PadString) 7 | -------------------------------------------------------------------------------- /src/vendor/cigraph/etc/cmake/safe_math_support.cmake: -------------------------------------------------------------------------------- 1 | include(CheckCXXSourceCompiles) 2 | 3 | # Check whether the compiler supports the __builtin_add_overflow() and __builtin_mul_overflow() 4 | # builtins. These are present in recent GCC-compatible compilers. 5 | cmake_push_check_state(RESET) 6 | 7 | check_cxx_source_compiles(" 8 | int main(void) { 9 | long long a=1, b=2, c; 10 | __builtin_add_overflow(a, b, &c); 11 | __builtin_mul_overflow(a, b, &c); 12 | return 0; 13 | } 14 | " 15 | HAVE_BUILTIN_OVERFLOW 16 | ) 17 | 18 | cmake_pop_check_state() 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/etc/cmake/tls.cmake: -------------------------------------------------------------------------------- 1 | tristate(IGRAPH_ENABLE_TLS "Enable thread-local storage for igraph global variables" AUTO) 2 | 3 | include(CheckTLSSupport) 4 | check_tls_support(TLS_KEYWORD) 5 | 6 | if(IGRAPH_ENABLE_TLS STREQUAL "AUTO") 7 | if(TLS_KEYWORD) 8 | set(IGRAPH_ENABLE_TLS ON) 9 | else() 10 | set(IGRAPH_ENABLE_TLS OFF) 11 | endif() 12 | endif() 13 | 14 | if(IGRAPH_ENABLE_TLS) 15 | if(NOT TLS_KEYWORD) 16 | message(FATAL_ERROR "Thread-local storage not supported on this compiler") 17 | endif() 18 | 19 | # TODO: we should probably set this only if we are building igraph with 20 | # internal-everything 21 | set(IGRAPH_THREAD_SAFE YES) 22 | else() 23 | set(TLS_KEYWORD "") 24 | set(IGRAPH_THREAD_SAFE NO) 25 | endif() 26 | -------------------------------------------------------------------------------- /src/vendor/cigraph/igraph.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ 3 | libdir=@PKGCONFIG_LIBDIR@ 4 | includedir=@PKGCONFIG_INCLUDEDIR@ 5 | 6 | Name: libigraph 7 | Description: @PROJECT_DESCRIPTION@ 8 | Version: @PROJECT_VERSION@ 9 | URL: @PROJECT_HOMEPAGE_URL@ 10 | Libs: -L${libdir} -ligraph 11 | Libs.private: @PKGCONFIG_LIBS_PRIVATE@ 12 | Requires.private: @PKGCONFIG_REQUIRES_PRIVATE@ 13 | Cflags: -I${includedir}/igraph 14 | -------------------------------------------------------------------------------- /src/vendor/cigraph/include/igraph_lsap.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef IGRAPH_LSAP_H 3 | #define IGRAPH_LSAP_H 4 | 5 | #include "igraph_decls.h" 6 | #include "igraph_error.h" 7 | #include "igraph_matrix.h" 8 | #include "igraph_vector.h" 9 | #include "igraph_types.h" 10 | 11 | __BEGIN_DECLS 12 | 13 | IGRAPH_EXPORT igraph_error_t igraph_solve_lsap(const igraph_matrix_t *c, igraph_integer_t n, 14 | igraph_vector_int_t *p); 15 | 16 | __END_DECLS 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/msvc/include/unistd.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * unistd.h replacement for MSVC 4 | * 5 | * Provide the minimum that igraph needs. 6 | * At presents this is: 7 | * - isatty() for f2c and flex-generated sources 8 | * - unlink() for examples/simple/graphml.c 9 | */ 10 | 11 | #include 12 | -------------------------------------------------------------------------------- /src/vendor/cigraph/src/centrality/prpack/prpack.h: -------------------------------------------------------------------------------- 1 | #ifndef PRPACK 2 | #define PRPACK 3 | 4 | #include "prpack_csc.h" 5 | #include "prpack_csr.h" 6 | #include "prpack_edge_list.h" 7 | #include "prpack_base_graph.h" 8 | #include "prpack_solver.h" 9 | #include "prpack_result.h" 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/vendor/cigraph/src/centrality/prpack/prpack_csc.h: -------------------------------------------------------------------------------- 1 | #ifndef PRPACK_CSC 2 | #define PRPACK_CSC 3 | 4 | #if !defined(_MSC_VER) && !defined (__MINGW32__) && !defined (__MINGW64__) 5 | # include 6 | #else 7 | # include 8 | typedef __int64 int64_t; 9 | #endif 10 | 11 | namespace prpack { 12 | 13 | class prpack_csc { 14 | public: 15 | int num_vs; 16 | int num_es; 17 | int* heads; 18 | int* tails; 19 | }; 20 | 21 | class prpack_int64_csc { 22 | public: 23 | int64_t num_vs; 24 | int64_t num_es; 25 | int64_t* heads; 26 | int64_t* tails; 27 | }; 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/vendor/cigraph/src/centrality/prpack/prpack_csr.h: -------------------------------------------------------------------------------- 1 | #ifndef PRPACK_CSR 2 | #define PRPACK_CSR 3 | 4 | namespace prpack { 5 | 6 | class prpack_csr { 7 | public: 8 | int num_vs; 9 | int num_es; 10 | int* heads; 11 | int* tails; 12 | }; 13 | 14 | } 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/src/centrality/prpack/prpack_edge_list.h: -------------------------------------------------------------------------------- 1 | #ifndef PRPACK_EDGE_LIST 2 | #define PRPACK_EDGE_LIST 3 | 4 | namespace prpack { 5 | 6 | class prpack_edge_list { 7 | public: 8 | int num_vs; 9 | int num_es; 10 | int* heads; 11 | int* tails; 12 | }; 13 | 14 | } 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/src/centrality/prpack/prpack_preprocessed_graph.h: -------------------------------------------------------------------------------- 1 | #ifndef PRPACK_PREPROCESSED_GRAPH 2 | #define PRPACK_PREPROCESSED_GRAPH 3 | 4 | namespace prpack { 5 | 6 | // TODO: this class should not be seeable by the users of the library. 7 | // Super graph class. 8 | class prpack_preprocessed_graph { 9 | public: 10 | int num_vs; 11 | int num_es; 12 | double* d; 13 | }; 14 | 15 | } 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /src/vendor/cigraph/src/centrality/prpack/prpack_result.cpp: -------------------------------------------------------------------------------- 1 | #include "prpack_result.h" 2 | #include 3 | using namespace prpack; 4 | 5 | prpack_result::prpack_result() { 6 | x = NULL; 7 | } 8 | 9 | prpack_result::~prpack_result() { 10 | delete[] x; 11 | } 12 | -------------------------------------------------------------------------------- /src/vendor/cigraph/src/centrality/prpack/prpack_result.h: -------------------------------------------------------------------------------- 1 | #ifndef PRPACK_RESULT 2 | #define PRPACK_RESULT 3 | 4 | #include 5 | #include 6 | 7 | namespace prpack { 8 | 9 | // Result class. 10 | class prpack_result { 11 | public: 12 | // instance variables 13 | int num_vs; 14 | int num_es; 15 | double* x; 16 | double read_time; 17 | double preprocess_time; 18 | double compute_time; 19 | int64_t num_es_touched; 20 | std::string method; 21 | int converged; 22 | // constructor 23 | prpack_result(); 24 | // destructor 25 | ~prpack_result(); 26 | }; 27 | 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/vendor/cigraph/src/cliques/cliquer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Declare the files needed to compile Cliquer 2 | add_library( 3 | cliquer 4 | OBJECT 5 | EXCLUDE_FROM_ALL 6 | cliquer.c 7 | cliquer_graph.c 8 | reorder.c 9 | ) 10 | 11 | target_include_directories( 12 | cliquer 13 | PRIVATE 14 | ${PROJECT_SOURCE_DIR}/include 15 | ${PROJECT_BINARY_DIR}/include 16 | ${PROJECT_BINARY_DIR}/src 17 | ) 18 | 19 | if (BUILD_SHARED_LIBS) 20 | set_property(TARGET cliquer PROPERTY POSITION_INDEPENDENT_CODE ON) 21 | endif() 22 | 23 | # Since these are included as object files, they should call the 24 | # function as is (without visibility specification) 25 | target_compile_definitions(cliquer PRIVATE IGRAPH_STATIC) 26 | 27 | use_all_warnings(cliquer) 28 | -------------------------------------------------------------------------------- /src/vendor/cigraph/src/internal/qsort_r.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is in the public domain. Originally written by Garrett 3 | * A. Wollman. 4 | * 5 | * $FreeBSD: src/lib/libc/stdlib/qsort_r.c,v 1.1 2002/09/10 02:04:49 wollman Exp $ 6 | */ 7 | #define I_AM_QSORT_R 8 | #include "qsort.c" 9 | -------------------------------------------------------------------------------- /src/vendor/cigraph/src/operators/rewire_internal.h: -------------------------------------------------------------------------------- 1 | #ifndef IGRAPH_OPERATORS_REWIRE_INTERNAL_H 2 | #define IGRAPH_OPERATORS_REWIRE_INTERNAL_H 3 | 4 | #include "igraph_decls.h" 5 | #include "igraph_interface.h" 6 | 7 | __BEGIN_DECLS 8 | 9 | IGRAPH_PRIVATE_EXPORT igraph_error_t igraph_i_rewire( 10 | igraph_t *graph, igraph_integer_t n, igraph_rewiring_t mode, 11 | igraph_bool_t use_adjlist); 12 | 13 | __END_DECLS 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(cs) 2 | add_subdirectory(f2c) 3 | add_subdirectory(glpk) 4 | add_subdirectory(lapack) 5 | add_subdirectory(mini-gmp) 6 | add_subdirectory(pcg) 7 | add_subdirectory(plfit) 8 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_cumsum.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* p [0..n] = cumulative sum of c [0..n-1], and then copy p [0..n-1] into c */ 3 | double cs_cumsum (CS_INT *p, CS_INT *c, CS_INT n) 4 | { 5 | CS_INT i, nz = 0 ; 6 | double nz2 = 0 ; 7 | if (!p || !c) return (-1) ; /* check inputs */ 8 | for (i = 0 ; i < n ; i++) 9 | { 10 | p [i] = nz ; 11 | nz += c [i] ; 12 | nz2 += c [i] ; /* also in double to avoid CS_INT overflow */ 13 | c [i] = p [i] ; /* also copy p[0..n-1] back into c[0..n-1]*/ 14 | } 15 | p [n] = nz ; 16 | return (nz2) ; /* return sum (c [0..n-1]) */ 17 | } 18 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_droptol.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | static CS_INT cs_tol (CS_INT i, CS_INT j, CS_ENTRY aij, void *tol) 3 | { 4 | return (CS_ABS (aij) > *((double *) tol)) ; 5 | } 6 | CS_INT cs_droptol (cs *A, double tol) 7 | { 8 | return (cs_fkeep (A, &cs_tol, &tol)) ; /* keep all large entries */ 9 | } 10 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_dropzeros.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | static CS_INT cs_nonzero (CS_INT i, CS_INT j, CS_ENTRY aij, void *other) 3 | { 4 | return (aij != 0) ; 5 | } 6 | CS_INT cs_dropzeros (cs *A) 7 | { 8 | return (cs_fkeep (A, &cs_nonzero, NULL)) ; /* keep all nonzero entries */ 9 | } 10 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_entry.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* add an entry to a triplet matrix; return 1 if ok, 0 otherwise */ 3 | CS_INT cs_entry (cs *T, CS_INT i, CS_INT j, CS_ENTRY x) 4 | { 5 | if (!CS_TRIPLET (T) || i < 0 || j < 0) return (0) ; /* check inputs */ 6 | if (T->nz >= T->nzmax && !cs_sprealloc (T,2*(T->nzmax))) return (0) ; 7 | if (T->x) T->x [T->nz] = x ; 8 | T->i [T->nz] = i ; 9 | T->p [T->nz++] = j ; 10 | T->m = CS_MAX (T->m, i+1) ; 11 | T->n = CS_MAX (T->n, j+1) ; 12 | return (1) ; 13 | } 14 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_gaxpy.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* y = A*x+y */ 3 | CS_INT cs_gaxpy (const cs *A, const CS_ENTRY *x, CS_ENTRY *y) 4 | { 5 | CS_INT p, j, n, *Ap, *Ai ; 6 | CS_ENTRY *Ax ; 7 | if (!CS_CSC (A) || !x || !y) return (0) ; /* check inputs */ 8 | n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; 9 | for (j = 0 ; j < n ; j++) 10 | { 11 | for (p = Ap [j] ; p < Ap [j+1] ; p++) 12 | { 13 | y [Ai [p]] += Ax [p] * x [j] ; 14 | } 15 | } 16 | return (1) ; 17 | } 18 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_happly.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* apply the ith Householder vector to x */ 3 | CS_INT cs_happly (const cs *V, CS_INT i, double beta, CS_ENTRY *x) 4 | { 5 | CS_INT p, *Vp, *Vi ; 6 | CS_ENTRY *Vx, tau = 0 ; 7 | if (!CS_CSC (V) || !x) return (0) ; /* check inputs */ 8 | Vp = V->p ; Vi = V->i ; Vx = V->x ; 9 | for (p = Vp [i] ; p < Vp [i+1] ; p++) /* tau = v'*x */ 10 | { 11 | tau += CS_CONJ (Vx [p]) * x [Vi [p]] ; 12 | } 13 | tau *= beta ; /* tau = beta*(v'*x) */ 14 | for (p = Vp [i] ; p < Vp [i+1] ; p++) /* x = x - v*tau */ 15 | { 16 | x [Vi [p]] -= Vx [p] * tau ; 17 | } 18 | return (1) ; 19 | } 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_ipvec.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* x(p) = b, for dense vectors x and b; p=NULL denotes identity */ 3 | CS_INT cs_ipvec (const CS_INT *p, const CS_ENTRY *b, CS_ENTRY *x, CS_INT n) 4 | { 5 | CS_INT k ; 6 | if (!x || !b) return (0) ; /* check inputs */ 7 | for (k = 0 ; k < n ; k++) x [p ? p [k] : k] = b [k] ; 8 | return (1) ; 9 | } 10 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_lsolve.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* solve Lx=b where x and b are dense. x=b on input, solution on output. */ 3 | CS_INT cs_lsolve (const cs *L, CS_ENTRY *x) 4 | { 5 | CS_INT p, j, n, *Lp, *Li ; 6 | CS_ENTRY *Lx ; 7 | if (!CS_CSC (L) || !x) return (0) ; /* check inputs */ 8 | n = L->n ; Lp = L->p ; Li = L->i ; Lx = L->x ; 9 | for (j = 0 ; j < n ; j++) 10 | { 11 | x [j] /= Lx [Lp [j]] ; 12 | for (p = Lp [j]+1 ; p < Lp [j+1] ; p++) 13 | { 14 | x [Li [p]] -= Lx [p] * x [j] ; 15 | } 16 | } 17 | return (1) ; 18 | } 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_ltsolve.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* solve L'x=b where x and b are dense. x=b on input, solution on output. */ 3 | CS_INT cs_ltsolve (const cs *L, CS_ENTRY *x) 4 | { 5 | CS_INT p, j, n, *Lp, *Li ; 6 | CS_ENTRY *Lx ; 7 | if (!CS_CSC (L) || !x) return (0) ; /* check inputs */ 8 | n = L->n ; Lp = L->p ; Li = L->i ; Lx = L->x ; 9 | for (j = n-1 ; j >= 0 ; j--) 10 | { 11 | for (p = Lp [j]+1 ; p < Lp [j+1] ; p++) 12 | { 13 | x [j] -= CS_CONJ (Lx [p]) * x [Li [p]] ; 14 | } 15 | x [j] /= CS_CONJ (Lx [Lp [j]]) ; 16 | } 17 | return (1) ; 18 | } 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_norm.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* 1-norm of a sparse matrix = max (sum (abs (A))), largest column sum */ 3 | double cs_norm (const cs *A) 4 | { 5 | CS_INT p, j, n, *Ap ; 6 | CS_ENTRY *Ax ; 7 | double norm = 0, s ; 8 | if (!CS_CSC (A) || !A->x) return (-1) ; /* check inputs */ 9 | n = A->n ; Ap = A->p ; Ax = A->x ; 10 | for (j = 0 ; j < n ; j++) 11 | { 12 | for (s = 0, p = Ap [j] ; p < Ap [j+1] ; p++) s += CS_ABS (Ax [p]) ; 13 | norm = CS_MAX (norm, s) ; 14 | } 15 | return (norm) ; 16 | } 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_pinv.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* pinv = p', or p = pinv' */ 3 | CS_INT *cs_pinv (CS_INT const *p, CS_INT n) 4 | { 5 | CS_INT k, *pinv ; 6 | if (!p) return (NULL) ; /* p = NULL denotes identity */ 7 | pinv = cs_malloc (n, sizeof (CS_INT)) ; /* allocate result */ 8 | if (!pinv) return (NULL) ; /* out of memory */ 9 | for (k = 0 ; k < n ; k++) pinv [p [k]] = k ;/* invert the permutation */ 10 | return (pinv) ; /* return result */ 11 | } 12 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_pvec.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* x = b(p), for dense vectors x and b; p=NULL denotes identity */ 3 | CS_INT cs_pvec (const CS_INT *p, const CS_ENTRY *b, CS_ENTRY *x, CS_INT n) 4 | { 5 | CS_INT k ; 6 | if (!x || !b) return (0) ; /* check inputs */ 7 | for (k = 0 ; k < n ; k++) x [k] = b [p ? p [k] : k] ; 8 | return (1) ; 9 | } 10 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_reach.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* xi [top...n-1] = nodes reachable from graph of G*P' via nodes in B(:,k). 3 | * xi [n...2n-1] used as workspace */ 4 | CS_INT cs_reach (cs *G, const cs *B, CS_INT k, CS_INT *xi, const CS_INT *pinv) 5 | { 6 | CS_INT p, n, top, *Bp, *Bi, *Gp ; 7 | if (!CS_CSC (G) || !CS_CSC (B) || !xi) return (-1) ; /* check inputs */ 8 | n = G->n ; Bp = B->p ; Bi = B->i ; Gp = G->p ; 9 | top = n ; 10 | for (p = Bp [k] ; p < Bp [k+1] ; p++) 11 | { 12 | if (!CS_MARKED (Gp, Bi [p])) /* start a dfs at unmarked node i */ 13 | { 14 | top = cs_dfs (Bi [p], G, top, xi, xi+n, pinv) ; 15 | } 16 | } 17 | for (p = top ; p < n ; p++) CS_MARK (Gp, xi [p]) ; /* restore G */ 18 | return (top) ; 19 | } 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_usolve.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* solve Ux=b where x and b are dense. x=b on input, solution on output. */ 3 | CS_INT cs_usolve (const cs *U, CS_ENTRY *x) 4 | { 5 | CS_INT p, j, n, *Up, *Ui ; 6 | CS_ENTRY *Ux ; 7 | if (!CS_CSC (U) || !x) return (0) ; /* check inputs */ 8 | n = U->n ; Up = U->p ; Ui = U->i ; Ux = U->x ; 9 | for (j = n-1 ; j >= 0 ; j--) 10 | { 11 | x [j] /= Ux [Up [j+1]-1] ; 12 | for (p = Up [j] ; p < Up [j+1]-1 ; p++) 13 | { 14 | x [Ui [p]] -= Ux [p] * x [j] ; 15 | } 16 | } 17 | return (1) ; 18 | } 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/cs/cs_utsolve.c: -------------------------------------------------------------------------------- 1 | #include "cs.h" 2 | /* solve U'x=b where x and b are dense. x=b on input, solution on output. */ 3 | CS_INT cs_utsolve (const cs *U, CS_ENTRY *x) 4 | { 5 | CS_INT p, j, n, *Up, *Ui ; 6 | CS_ENTRY *Ux ; 7 | if (!CS_CSC (U) || !x) return (0) ; /* check inputs */ 8 | n = U->n ; Up = U->p ; Ui = U->i ; Ux = U->x ; 9 | for (j = 0 ; j < n ; j++) 10 | { 11 | for (p = Up [j] ; p < Up [j+1]-1 ; p++) 12 | { 13 | x [j] -= CS_CONJ (Ux [p]) * x [Ui [p]] ; 14 | } 15 | x [j] /= CS_CONJ (Ux [Up [j+1]-1]) ; 16 | } 17 | return (1) ; 18 | } 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/abort_.c: -------------------------------------------------------------------------------- 1 | #include "stdio.h" 2 | #include "f2c.h" 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | #ifdef KR_headers 8 | extern VOID sig_die(); 9 | 10 | int abort_() 11 | #else 12 | extern void sig_die(const char*,int); 13 | 14 | int abort_(void) 15 | #endif 16 | { 17 | sig_die("Fortran abort routine called", 1); 18 | return 0; /* not reached */ 19 | } 20 | #ifdef __cplusplus 21 | } 22 | #endif 23 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/c_abs.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | extern double f__cabs(); 8 | 9 | double c_abs(z) f2c_complex *z; 10 | #else 11 | extern double f__cabs(double, double); 12 | 13 | double c_abs(f2c_complex *z) 14 | #endif 15 | { 16 | return( f__cabs( z->r, z->i ) ); 17 | } 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/c_cos.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | extern double sin(), cos(), sinh(), cosh(); 5 | 6 | VOID c_cos(r, z) f2c_complex *r, *z; 7 | #else 8 | #undef abs 9 | #include "math.h" 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | void c_cos(f2c_complex *r, f2c_complex *z) 15 | #endif 16 | { 17 | double zi = z->i, zr = z->r; 18 | r->r = cos(zr) * cosh(zi); 19 | r->i = - sin(zr) * sinh(zi); 20 | } 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/c_exp.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | extern double exp(), cos(), sin(); 5 | 6 | VOID c_exp(r, z) f2c_complex *r, *z; 7 | #else 8 | #undef abs 9 | #include "math.h" 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | void c_exp(f2c_complex *r, f2c_complex *z) 15 | #endif 16 | { 17 | double expx, zi = z->i; 18 | 19 | expx = exp(z->r); 20 | r->r = expx * cos(zi); 21 | r->i = expx * sin(zi); 22 | } 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/c_log.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | extern double log(), f__cabs(), atan2(); 5 | VOID c_log(r, z) f2c_complex *r, *z; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | extern double f__cabs(double, double); 13 | 14 | void c_log(f2c_complex *r, f2c_complex *z) 15 | #endif 16 | { 17 | double zi, zr; 18 | r->i = atan2(zi = z->i, zr = z->r); 19 | r->r = log( f__cabs(zr, zi) ); 20 | } 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/c_sin.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | extern double sin(), cos(), sinh(), cosh(); 5 | 6 | VOID c_sin(r, z) f2c_complex *r, *z; 7 | #else 8 | #undef abs 9 | #include "math.h" 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | void c_sin(f2c_complex *r, f2c_complex *z) 15 | #endif 16 | { 17 | double zi = z->i, zr = z->r; 18 | r->r = sin(zr) * cosh(zi); 19 | r->i = cos(zr) * sinh(zi); 20 | } 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/cabs.c: -------------------------------------------------------------------------------- 1 | #ifdef KR_headers 2 | extern double sqrt(); 3 | double f__cabs(real, imag) double real, imag; 4 | #else 5 | #undef abs 6 | #include "math.h" 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | double f__cabs(double real, double imag) 11 | #endif 12 | { 13 | double temp; 14 | 15 | if(real < 0) 16 | real = -real; 17 | if(imag < 0) 18 | imag = -imag; 19 | if(imag > real){ 20 | temp = real; 21 | real = imag; 22 | imag = temp; 23 | } 24 | if((real+imag) == real) 25 | return(real); 26 | 27 | temp = imag/real; 28 | temp = real*sqrt(1.0 + temp*temp); /*overflow!!*/ 29 | return(temp); 30 | } 31 | #ifdef __cplusplus 32 | } 33 | #endif 34 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/ctype.c: -------------------------------------------------------------------------------- 1 | #define My_ctype_DEF 2 | #include "ctype.h" 3 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_abs.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double d_abs(x) doublereal *x; 8 | #else 9 | double d_abs(doublereal *x) 10 | #endif 11 | { 12 | if(*x >= 0) 13 | return(*x); 14 | return(- *x); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_acos.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double acos(); 5 | double d_acos(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_acos(doublereal *x) 13 | #endif 14 | { 15 | return( acos(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_asin.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double asin(); 5 | double d_asin(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_asin(doublereal *x) 13 | #endif 14 | { 15 | return( asin(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_atan.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double atan(); 5 | double d_atan(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_atan(doublereal *x) 13 | #endif 14 | { 15 | return( atan(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_atn2.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double atan2(); 5 | double d_atn2(x,y) doublereal *x, *y; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_atn2(doublereal *x, doublereal *y) 13 | #endif 14 | { 15 | return( atan2(*x,*y) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_cnjg.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | VOID 7 | #ifdef KR_headers 8 | d_cnjg(r, z) doublecomplex *r, *z; 9 | #else 10 | d_cnjg(doublecomplex *r, doublecomplex *z) 11 | #endif 12 | { 13 | doublereal zi = z->i; 14 | r->r = z->r; 15 | r->i = -zi; 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_cos.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double cos(); 5 | double d_cos(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_cos(doublereal *x) 13 | #endif 14 | { 15 | return( cos(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_cosh.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double cosh(); 5 | double d_cosh(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_cosh(doublereal *x) 13 | #endif 14 | { 15 | return( cosh(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_dim.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double d_dim(a,b) doublereal *a, *b; 8 | #else 9 | double d_dim(doublereal *a, doublereal *b) 10 | #endif 11 | { 12 | return( *a > *b ? *a - *b : 0); 13 | } 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_exp.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double exp(); 5 | double d_exp(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_exp(doublereal *x) 13 | #endif 14 | { 15 | return( exp(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_imag.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double d_imag(z) doublecomplex *z; 8 | #else 9 | double d_imag(doublecomplex *z) 10 | #endif 11 | { 12 | return(z->i); 13 | } 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_int.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double floor(); 5 | double d_int(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_int(doublereal *x) 13 | #endif 14 | { 15 | return( (*x>0) ? floor(*x) : -floor(- *x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_lg10.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #define log10e 0.43429448190325182765 4 | 5 | #ifdef KR_headers 6 | double log(); 7 | double d_lg10(x) doublereal *x; 8 | #else 9 | #undef abs 10 | #include "math.h" 11 | #ifdef __cplusplus 12 | extern "C" { 13 | #endif 14 | double d_lg10(doublereal *x) 15 | #endif 16 | { 17 | return( log10e * log(*x) ); 18 | } 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_log.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double log(); 5 | double d_log(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_log(doublereal *x) 13 | #endif 14 | { 15 | return( log(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_nint.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double floor(); 5 | double d_nint(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_nint(doublereal *x) 13 | #endif 14 | { 15 | return( (*x)>=0 ? 16 | floor(*x + .5) : -floor(.5 - *x) ); 17 | } 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_prod.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double d_prod(x,y) real *x, *y; 8 | #else 9 | double d_prod(real *x, real *y) 10 | #endif 11 | { 12 | return( (*x) * (*y) ); 13 | } 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_sign.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double d_sign(a,b) doublereal *a, *b; 8 | #else 9 | double d_sign(doublereal *a, doublereal *b) 10 | #endif 11 | { 12 | double x; 13 | x = (*a >= 0 ? *a : - *a); 14 | return( *b >= 0 ? x : -x); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_sin.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double sin(); 5 | double d_sin(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_sin(doublereal *x) 13 | #endif 14 | { 15 | return( sin(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_sinh.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double sinh(); 5 | double d_sinh(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_sinh(doublereal *x) 13 | #endif 14 | { 15 | return( sinh(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_sqrt.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double sqrt(); 5 | double d_sqrt(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_sqrt(doublereal *x) 13 | #endif 14 | { 15 | return( sqrt(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_tan.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double tan(); 5 | double d_tan(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_tan(doublereal *x) 13 | #endif 14 | { 15 | return( tan(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/d_tanh.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double tanh(); 5 | double d_tanh(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double d_tanh(doublereal *x) 13 | #endif 14 | { 15 | return( tanh(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/derf_.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #undef abs 3 | #include 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | #ifdef KR_headers 10 | double derf_(x) doublereal *x; 11 | #else 12 | double derf_(doublereal *x) 13 | #endif 14 | { 15 | return( erf(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/derfc_.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #undef abs 3 | #include 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | #ifdef KR_headers 10 | double derfc_(x) doublereal *x; 11 | #else 12 | double derfc_(doublereal *x) 13 | #endif 14 | { 15 | return( erfc(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/dolio.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | #ifdef KR_headers 10 | extern int (*f__lioproc)(); 11 | 12 | integer do_lio(type,number,ptr,len) ftnint *number,*type; char *ptr; ftnlen len; 13 | #else 14 | extern int (*f__lioproc)(ftnint*, char*, ftnlen, ftnint); 15 | 16 | integer do_lio(ftnint *type, ftnint *number, char *ptr, ftnlen len) 17 | #endif 18 | { 19 | return((*f__lioproc)(number,ptr,len,*type)); 20 | } 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/dummy.c: -------------------------------------------------------------------------------- 1 | 2 | int MAIN__(void) { return 0; } 3 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/ef1asc_.c: -------------------------------------------------------------------------------- 1 | /* EFL support routine to copy string b to string a */ 2 | 3 | #include "f2c.h" 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | 9 | #define M ( (long) (sizeof(long) - 1) ) 10 | #define EVEN(x) ( ( (x)+ M) & (~M) ) 11 | 12 | #ifdef KR_headers 13 | extern VOID s_copy(); 14 | ef1asc_(a, la, b, lb) ftnint *a, *b; ftnlen *la, *lb; 15 | #else 16 | extern void s_copy(char*,char*,ftnlen,ftnlen); 17 | int ef1asc_(ftnint *a, ftnlen *la, ftnint *b, ftnlen *lb) 18 | #endif 19 | { 20 | s_copy( (char *)a, (char *)b, EVEN(*la), *lb ); 21 | return 0; /* ignored return value */ 22 | } 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/ef1cmc_.c: -------------------------------------------------------------------------------- 1 | /* EFL support routine to compare two character strings */ 2 | 3 | #include "f2c.h" 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | #ifdef KR_headers 9 | extern integer s_cmp(); 10 | integer ef1cmc_(a, la, b, lb) ftnint *a, *b; ftnlen *la, *lb; 11 | #else 12 | extern integer s_cmp(char*,char*,ftnlen,ftnlen); 13 | integer ef1cmc_(ftnint *a, ftnlen *la, ftnint *b, ftnlen *lb) 14 | #endif 15 | { 16 | return( s_cmp( (char *)a, (char *)b, *la, *lb) ); 17 | } 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/erf_.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #undef abs 3 | #include 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | #ifndef REAL 10 | #define REAL double 11 | #endif 12 | 13 | #ifdef KR_headers 14 | REAL erf_(x) real *x; 15 | #else 16 | REAL erf_(real *x) 17 | #endif 18 | { 19 | return( erf((double)*x) ); 20 | } 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/erfc_.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #undef abs 3 | #include 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | #ifndef REAL 10 | #define REAL double 11 | #endif 12 | 13 | #ifdef KR_headers 14 | REAL erfc_(x) real *x; 15 | #else 16 | REAL erfc_(real *x) 17 | #endif 18 | { 19 | return( erfc((double)*x) ); 20 | } 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/getarg_.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | /* 7 | * subroutine getarg(k, c) 8 | * returns the kth unix command argument in fortran character 9 | * variable argument c 10 | */ 11 | 12 | #ifdef KR_headers 13 | VOID getarg_(n, s, ls) ftnint *n; char *s; ftnlen ls; 14 | #define Const /*nothing*/ 15 | #else 16 | #define Const const 17 | void getarg_(ftnint *n, char *s, ftnlen ls) 18 | #endif 19 | { 20 | extern int xargc; 21 | extern char **xargv; 22 | Const char *t; 23 | int i; 24 | 25 | if(*n>=0 && *n= 0) 13 | return(*x); 14 | return(- *x); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/h_dim.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | shortint h_dim(a,b) shortint *a, *b; 8 | #else 9 | shortint h_dim(shortint *a, shortint *b) 10 | #endif 11 | { 12 | return( *a > *b ? *a - *b : 0); 13 | } 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/h_dnnt.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double floor(); 5 | shortint h_dnnt(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | shortint h_dnnt(doublereal *x) 13 | #endif 14 | { 15 | return (shortint)(*x >= 0. ? floor(*x + .5) : -floor(.5 - *x)); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/h_indx.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | shortint h_indx(a, b, la, lb) char *a, *b; ftnlen la, lb; 8 | #else 9 | shortint h_indx(char *a, char *b, ftnlen la, ftnlen lb) 10 | #endif 11 | { 12 | ftnlen i, n; 13 | char *s, *t, *bend; 14 | 15 | n = la - lb + 1; 16 | bend = b + lb; 17 | 18 | for(i = 0 ; i < n ; ++i) 19 | { 20 | s = a + i; 21 | t = b; 22 | while(t < bend) 23 | if(*s++ != *t++) 24 | goto no; 25 | return((shortint)i+1); 26 | no: ; 27 | } 28 | return(0); 29 | } 30 | #ifdef __cplusplus 31 | } 32 | #endif 33 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/h_len.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | shortint h_len(s, n) char *s; ftnlen n; 8 | #else 9 | shortint h_len(char *s, ftnlen n) 10 | #endif 11 | { 12 | return(n); 13 | } 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/h_mod.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | shortint h_mod(a,b) short *a, *b; 8 | #else 9 | shortint h_mod(short *a, short *b) 10 | #endif 11 | { 12 | return( *a % *b); 13 | } 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/h_nint.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double floor(); 5 | shortint h_nint(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | shortint h_nint(real *x) 13 | #endif 14 | { 15 | return (shortint)(*x >= 0 ? floor(*x + .5) : -floor(.5 - *x)); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/h_sign.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | shortint h_sign(a,b) shortint *a, *b; 8 | #else 9 | shortint h_sign(shortint *a, shortint *b) 10 | #endif 11 | { 12 | shortint x; 13 | x = (*a >= 0 ? *a : - *a); 14 | return( *b >= 0 ? x : -x); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/hl_ge.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | extern integer s_cmp(); 8 | shortlogical hl_ge(a,b,la,lb) char *a, *b; ftnlen la, lb; 9 | #else 10 | extern integer s_cmp(char *, char *, ftnlen, ftnlen); 11 | shortlogical hl_ge(char *a, char *b, ftnlen la, ftnlen lb) 12 | #endif 13 | { 14 | return(s_cmp(a,b,la,lb) >= 0); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/hl_gt.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | extern integer s_cmp(); 8 | shortlogical hl_gt(a,b,la,lb) char *a, *b; ftnlen la, lb; 9 | #else 10 | extern integer s_cmp(char *, char *, ftnlen, ftnlen); 11 | shortlogical hl_gt(char *a, char *b, ftnlen la, ftnlen lb) 12 | #endif 13 | { 14 | return(s_cmp(a,b,la,lb) > 0); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/hl_le.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | extern integer s_cmp(); 8 | shortlogical hl_le(a,b,la,lb) char *a, *b; ftnlen la, lb; 9 | #else 10 | extern integer s_cmp(char *, char *, ftnlen, ftnlen); 11 | shortlogical hl_le(char *a, char *b, ftnlen la, ftnlen lb) 12 | #endif 13 | { 14 | return(s_cmp(a,b,la,lb) <= 0); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/hl_lt.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | extern integer s_cmp(); 8 | shortlogical hl_lt(a,b,la,lb) char *a, *b; ftnlen la, lb; 9 | #else 10 | extern integer s_cmp(char *, char *, ftnlen, ftnlen); 11 | shortlogical hl_lt(char *a, char *b, ftnlen la, ftnlen lb) 12 | #endif 13 | { 14 | return(s_cmp(a,b,la,lb) < 0); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/i_abs.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | integer i_abs(x) integer *x; 8 | #else 9 | integer i_abs(integer *x) 10 | #endif 11 | { 12 | if(*x >= 0) 13 | return(*x); 14 | return(- *x); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/i_dim.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | integer i_dim(a,b) integer *a, *b; 8 | #else 9 | integer i_dim(integer *a, integer *b) 10 | #endif 11 | { 12 | return( *a > *b ? *a - *b : 0); 13 | } 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/i_dnnt.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double floor(); 5 | integer i_dnnt(x) doublereal *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | integer i_dnnt(doublereal *x) 13 | #endif 14 | { 15 | return (integer)(*x >= 0. ? floor(*x + .5) : -floor(.5 - *x)); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/i_indx.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | integer i_indx(a, b, la, lb) char *a, *b; ftnlen la, lb; 8 | #else 9 | integer i_indx(char *a, char *b, ftnlen la, ftnlen lb) 10 | #endif 11 | { 12 | ftnlen i, n; 13 | char *s, *t, *bend; 14 | 15 | n = la - lb + 1; 16 | bend = b + lb; 17 | 18 | for(i = 0 ; i < n ; ++i) 19 | { 20 | s = a + i; 21 | t = b; 22 | while(t < bend) 23 | if(*s++ != *t++) 24 | goto no; 25 | return(i+1); 26 | no: ; 27 | } 28 | return(0); 29 | } 30 | #ifdef __cplusplus 31 | } 32 | #endif 33 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/i_len.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | integer i_len(s, n) char *s; ftnlen n; 8 | #else 9 | integer i_len(char *s, ftnlen n) 10 | #endif 11 | { 12 | return(n); 13 | } 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/i_mod.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | integer i_mod(a,b) integer *a, *b; 8 | #else 9 | integer i_mod(integer *a, integer *b) 10 | #endif 11 | { 12 | return( *a % *b); 13 | } 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/i_nint.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double floor(); 5 | integer i_nint(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | integer i_nint(real *x) 13 | #endif 14 | { 15 | return (integer)(*x >= 0 ? floor(*x + .5) : -floor(.5 - *x)); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/i_sign.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | integer i_sign(a,b) integer *a, *b; 8 | #else 9 | integer i_sign(integer *a, integer *b) 10 | #endif 11 | { 12 | integer x; 13 | x = (*a >= 0 ? *a : - *a); 14 | return( *b >= 0 ? x : -x); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/iargc_.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | ftnint iargc_() 8 | #else 9 | ftnint iargc_(void) 10 | #endif 11 | { 12 | extern int xargc; 13 | return ( xargc - 1 ); 14 | } 15 | #ifdef __cplusplus 16 | } 17 | #endif 18 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/l_ge.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | extern integer s_cmp(); 8 | logical l_ge(a,b,la,lb) char *a, *b; ftnlen la, lb; 9 | #else 10 | extern integer s_cmp(char *, char *, ftnlen, ftnlen); 11 | logical l_ge(char *a, char *b, ftnlen la, ftnlen lb) 12 | #endif 13 | { 14 | return(s_cmp(a,b,la,lb) >= 0); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/l_gt.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | extern integer s_cmp(); 8 | logical l_gt(a,b,la,lb) char *a, *b; ftnlen la, lb; 9 | #else 10 | extern integer s_cmp(char *, char *, ftnlen, ftnlen); 11 | logical l_gt(char *a, char *b, ftnlen la, ftnlen lb) 12 | #endif 13 | { 14 | return(s_cmp(a,b,la,lb) > 0); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/l_le.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | extern integer s_cmp(); 8 | logical l_le(a,b,la,lb) char *a, *b; ftnlen la, lb; 9 | #else 10 | extern integer s_cmp(char *, char *, ftnlen, ftnlen); 11 | logical l_le(char *a, char *b, ftnlen la, ftnlen lb) 12 | #endif 13 | { 14 | return(s_cmp(a,b,la,lb) <= 0); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/l_lt.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | extern integer s_cmp(); 8 | logical l_lt(a,b,la,lb) char *a, *b; ftnlen la, lb; 9 | #else 10 | extern integer s_cmp(char *, char *, ftnlen, ftnlen); 11 | logical l_lt(char *a, char *b, ftnlen la, ftnlen lb) 12 | #endif 13 | { 14 | return(s_cmp(a,b,la,lb) < 0); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/lbitshft.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | integer 7 | #ifdef KR_headers 8 | lbit_shift(a, b) integer a; integer b; 9 | #else 10 | lbit_shift(integer a, integer b) 11 | #endif 12 | { 13 | return b >= 0 ? a << b : (integer)((uinteger)a >> -b); 14 | } 15 | #ifdef __cplusplus 16 | } 17 | #endif 18 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/pow_ci.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | VOID pow_ci(p, a, b) /* p = a**b */ 8 | f2c_complex *p, *a; integer *b; 9 | #else 10 | extern void pow_zi(doublecomplex*, doublecomplex*, integer*); 11 | void pow_ci(f2c_complex *p, f2c_complex *a, integer *b) /* p = a**b */ 12 | #endif 13 | { 14 | doublecomplex p1, a1; 15 | 16 | a1.r = a->r; 17 | a1.i = a->i; 18 | 19 | pow_zi(&p1, &a1, b); 20 | 21 | p->r = p1.r; 22 | p->i = p1.i; 23 | } 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/pow_dd.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double pow(); 5 | double pow_dd(ap, bp) doublereal *ap, *bp; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double pow_dd(doublereal *ap, doublereal *bp) 13 | #endif 14 | { 15 | return(pow(*ap, *bp) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/pow_di.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double pow_di(ap, bp) doublereal *ap; integer *bp; 8 | #else 9 | double pow_di(doublereal *ap, integer *bp) 10 | #endif 11 | { 12 | double pow, x; 13 | integer n; 14 | unsigned long u; 15 | 16 | pow = 1; 17 | x = *ap; 18 | n = *bp; 19 | 20 | if(n != 0) 21 | { 22 | if(n < 0) 23 | { 24 | n = -n; 25 | x = 1/x; 26 | } 27 | for(u = n; ; ) 28 | { 29 | if(u & 01) 30 | pow *= x; 31 | if(u >>= 1) 32 | x *= x; 33 | else 34 | break; 35 | } 36 | } 37 | return(pow); 38 | } 39 | #ifdef __cplusplus 40 | } 41 | #endif 42 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/pow_hh.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | shortint pow_hh(ap, bp) shortint *ap, *bp; 8 | #else 9 | shortint pow_hh(shortint *ap, shortint *bp) 10 | #endif 11 | { 12 | shortint pow, x, n; 13 | unsigned u; 14 | 15 | x = *ap; 16 | n = *bp; 17 | 18 | if (n <= 0) { 19 | if (n == 0 || x == 1) 20 | return 1; 21 | if (x != -1) 22 | return x == 0 ? 1/x : 0; 23 | n = -n; 24 | } 25 | u = n; 26 | for(pow = 1; ; ) 27 | { 28 | if(u & 01) 29 | pow *= x; 30 | if(u >>= 1) 31 | x *= x; 32 | else 33 | break; 34 | } 35 | return(pow); 36 | } 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/pow_ii.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | integer pow_ii(ap, bp) integer *ap, *bp; 8 | #else 9 | integer pow_ii(integer *ap, integer *bp) 10 | #endif 11 | { 12 | integer pow, x, n; 13 | unsigned long u; 14 | 15 | x = *ap; 16 | n = *bp; 17 | 18 | if (n <= 0) { 19 | if (n == 0 || x == 1) 20 | return 1; 21 | if (x != -1) 22 | return x == 0 ? 1/x : 0; 23 | n = -n; 24 | } 25 | u = n; 26 | for(pow = 1; ; ) 27 | { 28 | if(u & 01) 29 | pow *= x; 30 | if(u >>= 1) 31 | x *= x; 32 | else 33 | break; 34 | } 35 | return(pow); 36 | } 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/pow_ri.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double pow_ri(ap, bp) real *ap; integer *bp; 8 | #else 9 | double pow_ri(real *ap, integer *bp) 10 | #endif 11 | { 12 | double pow, x; 13 | integer n; 14 | unsigned long u; 15 | 16 | pow = 1; 17 | x = *ap; 18 | n = *bp; 19 | 20 | if(n != 0) 21 | { 22 | if(n < 0) 23 | { 24 | n = -n; 25 | x = 1/x; 26 | } 27 | for(u = n; ; ) 28 | { 29 | if(u & 01) 30 | pow *= x; 31 | if(u >>= 1) 32 | x *= x; 33 | else 34 | break; 35 | } 36 | } 37 | return(pow); 38 | } 39 | #ifdef __cplusplus 40 | } 41 | #endif 42 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/pow_zz.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double log(), exp(), cos(), sin(), atan2(), f__cabs(); 5 | VOID pow_zz(r,a,b) doublecomplex *r, *a, *b; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | extern double f__cabs(double,double); 13 | void pow_zz(doublecomplex *r, doublecomplex *a, doublecomplex *b) 14 | #endif 15 | { 16 | double logr, logi, x, y; 17 | 18 | logr = log( f__cabs(a->r, a->i) ); 19 | logi = atan2(a->i, a->r); 20 | 21 | x = exp( logr * b->r - logi * b->i ); 22 | y = logr * b->i + logi * b->r; 23 | 24 | r->r = x * cos(y); 25 | r->i = x * sin(y); 26 | } 27 | #ifdef __cplusplus 28 | } 29 | #endif 30 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_abs.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double r_abs(x) real *x; 8 | #else 9 | double r_abs(real *x) 10 | #endif 11 | { 12 | if(*x >= 0) 13 | return(*x); 14 | return(- *x); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_acos.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double acos(); 5 | double r_acos(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_acos(real *x) 13 | #endif 14 | { 15 | return( acos(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_asin.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double asin(); 5 | double r_asin(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_asin(real *x) 13 | #endif 14 | { 15 | return( asin(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_atan.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double atan(); 5 | double r_atan(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_atan(real *x) 13 | #endif 14 | { 15 | return( atan(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_atn2.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double atan2(); 5 | double r_atn2(x,y) real *x, *y; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_atn2(real *x, real *y) 13 | #endif 14 | { 15 | return( atan2(*x,*y) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_cnjg.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | VOID r_cnjg(r, z) f2c_complex *r, *z; 8 | #else 9 | VOID r_cnjg(f2c_complex *r, f2c_complex *z) 10 | #endif 11 | { 12 | real zi = z->i; 13 | r->r = z->r; 14 | r->i = -zi; 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_cos.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double cos(); 5 | double r_cos(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_cos(real *x) 13 | #endif 14 | { 15 | return( cos(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_cosh.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double cosh(); 5 | double r_cosh(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_cosh(real *x) 13 | #endif 14 | { 15 | return( cosh(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_dim.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double r_dim(a,b) real *a, *b; 8 | #else 9 | double r_dim(real *a, real *b) 10 | #endif 11 | { 12 | return( *a > *b ? *a - *b : 0); 13 | } 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_exp.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double exp(); 5 | double r_exp(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_exp(real *x) 13 | #endif 14 | { 15 | return( exp(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_imag.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double r_imag(z) f2c_complex *z; 8 | #else 9 | double r_imag(f2c_complex *z) 10 | #endif 11 | { 12 | return(z->i); 13 | } 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_int.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double floor(); 5 | double r_int(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_int(real *x) 13 | #endif 14 | { 15 | return( (*x>0) ? floor(*x) : -floor(- *x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_lg10.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #define log10e 0.43429448190325182765 4 | 5 | #ifdef KR_headers 6 | double log(); 7 | double r_lg10(x) real *x; 8 | #else 9 | #undef abs 10 | #include "math.h" 11 | #ifdef __cplusplus 12 | extern "C" { 13 | #endif 14 | double r_lg10(real *x) 15 | #endif 16 | { 17 | return( log10e * log(*x) ); 18 | } 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_log.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double log(); 5 | double r_log(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_log(real *x) 13 | #endif 14 | { 15 | return( log(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_nint.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double floor(); 5 | double r_nint(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_nint(real *x) 13 | #endif 14 | { 15 | return( (*x)>=0 ? 16 | floor(*x + .5) : -floor(.5 - *x) ); 17 | } 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_sign.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double r_sign(a,b) real *a, *b; 8 | #else 9 | double r_sign(real *a, real *b) 10 | #endif 11 | { 12 | double x; 13 | x = (*a >= 0 ? *a : - *a); 14 | return( *b >= 0 ? x : -x); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_sin.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double sin(); 5 | double r_sin(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_sin(real *x) 13 | #endif 14 | { 15 | return( sin(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_sinh.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double sinh(); 5 | double r_sinh(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_sinh(real *x) 13 | #endif 14 | { 15 | return( sinh(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_sqrt.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double sqrt(); 5 | double r_sqrt(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_sqrt(real *x) 13 | #endif 14 | { 15 | return( sqrt(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_tan.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double tan(); 5 | double r_tan(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_tan(real *x) 13 | #endif 14 | { 15 | return( tan(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/r_tanh.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double tanh(); 5 | double r_tanh(x) real *x; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | double r_tanh(real *x) 13 | #endif 14 | { 15 | return( tanh(*x) ); 16 | } 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/rewind.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #include "fio.h" 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | #ifdef KR_headers 7 | integer f_rew(a) alist *a; 8 | #else 9 | integer f_rew(alist *a) 10 | #endif 11 | { 12 | unit *b; 13 | if(a->aunit>=MXUNIT || a->aunit<0) 14 | err(a->aerr,101,"rewind"); 15 | b = &f__units[a->aunit]; 16 | if(b->ufd == NULL || b->uwrt == 3) 17 | return(0); 18 | if(!b->useek) 19 | err(a->aerr,106,"rewind") 20 | if(b->uwrt) { 21 | (void) t_runc(a); 22 | b->uwrt = 3; 23 | } 24 | rewind(b->ufd); 25 | b->uend=0; 26 | return(0); 27 | } 28 | #ifdef __cplusplus 29 | } 30 | #endif 31 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/signal_.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #include "signal1.h" 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | ftnint 8 | #ifdef KR_headers 9 | signal_(sigp, proc) integer *sigp; sig_pf proc; 10 | #else 11 | signal_(integer *sigp, sig_pf proc) 12 | #endif 13 | { 14 | int sig; 15 | sig = (int)*sigp; 16 | 17 | return (ftnint)signal(sig, proc); 18 | } 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/signbit.c: -------------------------------------------------------------------------------- 1 | #include "arith.h" 2 | 3 | #ifndef Long 4 | #define Long long 5 | #endif 6 | 7 | int 8 | #ifdef KR_headers 9 | signbit_f2c(x) double *x; 10 | #else 11 | signbit_f2c(double *x) 12 | #endif 13 | { 14 | #ifdef IEEE_MC68k 15 | if (*(Long*)x & 0x80000000) 16 | return 1; 17 | #else 18 | #ifdef IEEE_8087 19 | if (((Long*)x)[1] & 0x80000000) 20 | return 1; 21 | #endif /*IEEE_8087*/ 22 | #endif /*IEEE_MC68k*/ 23 | return 0; 24 | } 25 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/typesize.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | ftnlen f__typesize[] = { 0, 0, sizeof(shortint), sizeof(integer), 7 | sizeof(real), sizeof(doublereal), 8 | sizeof(f2c_complex), sizeof(doublecomplex), 9 | sizeof(logical), sizeof(char), 10 | 0, sizeof(integer1), 11 | sizeof(logical1), sizeof(shortlogical), 12 | #ifdef Allow_TYQUAD 13 | sizeof(longint), 14 | #endif 15 | 0}; 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/wsne.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #include "fio.h" 3 | #include "lio.h" 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | integer 9 | #ifdef KR_headers 10 | s_wsne(a) cilist *a; 11 | #else 12 | s_wsne(cilist *a) 13 | #endif 14 | { 15 | int n; 16 | 17 | if(n=c_le(a)) 18 | return(n); 19 | f__reading=0; 20 | f__external=1; 21 | f__formatted=1; 22 | f__putn = x_putc; 23 | L_len = LINE; 24 | f__donewrec = x_wSL; 25 | if(f__curunit->uwrt != 1 && f__nowwriting(f__curunit)) 26 | err(a->cierr, errno, "namelist output start"); 27 | x_wsne(a); 28 | return e_wsle(); 29 | } 30 | #ifdef __cplusplus 31 | } 32 | #endif 33 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/z_abs.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef KR_headers 7 | double f__cabs(); 8 | double z_abs(z) doublecomplex *z; 9 | #else 10 | double f__cabs(double, double); 11 | double z_abs(doublecomplex *z) 12 | #endif 13 | { 14 | return( f__cabs( z->r, z->i ) ); 15 | } 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/z_cos.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double sin(), cos(), sinh(), cosh(); 5 | VOID z_cos(r, z) doublecomplex *r, *z; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | void z_cos(doublecomplex *r, doublecomplex *z) 13 | #endif 14 | { 15 | double zi = z->i, zr = z->r; 16 | r->r = cos(zr) * cosh(zi); 17 | r->i = - sin(zr) * sinh(zi); 18 | } 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/z_exp.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double exp(), cos(), sin(); 5 | VOID z_exp(r, z) doublecomplex *r, *z; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | void z_exp(doublecomplex *r, doublecomplex *z) 13 | #endif 14 | { 15 | double expx, zi = z->i; 16 | 17 | expx = exp(z->r); 18 | r->r = expx * cos(zi); 19 | r->i = expx * sin(zi); 20 | } 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/z_sin.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double sin(), cos(), sinh(), cosh(); 5 | VOID z_sin(r, z) doublecomplex *r, *z; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | void z_sin(doublecomplex *r, doublecomplex *z) 13 | #endif 14 | { 15 | double zi = z->i, zr = z->r; 16 | r->r = sin(zr) * cosh(zi); 17 | r->i = cos(zr) * sinh(zi); 18 | } 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/f2c/z_sqrt.c: -------------------------------------------------------------------------------- 1 | #include "f2c.h" 2 | 3 | #ifdef KR_headers 4 | double sqrt(), f__cabs(); 5 | VOID z_sqrt(r, z) doublecomplex *r, *z; 6 | #else 7 | #undef abs 8 | #include "math.h" 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | extern double f__cabs(double, double); 13 | void z_sqrt(doublecomplex *r, doublecomplex *z) 14 | #endif 15 | { 16 | double mag, zi = z->i, zr = z->r; 17 | 18 | if( (mag = f__cabs(zr, zi)) == 0.) 19 | r->r = r->i = 0.; 20 | else if(zr > 0) 21 | { 22 | r->r = sqrt(0.5 * (mag + zr) ); 23 | r->i = zi / r->r / 2; 24 | } 25 | else 26 | { 27 | r->i = sqrt(0.5 * (mag - zr) ); 28 | if(zi < 0) 29 | r->i = - r->i; 30 | r->r = zi / r->i / 2; 31 | } 32 | } 33 | #ifdef __cplusplus 34 | } 35 | #endif 36 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/glpk/api/gridgen.c: -------------------------------------------------------------------------------- 1 | /* gridgen.c */ 2 | 3 | #include "env.h" 4 | #include "glpk.h" 5 | 6 | int glp_gridgen(glp_graph *G_, int v_rhs_, int a_cap_, int a_cost_, 7 | const int parm[1+14]) 8 | { static const char func[] = "glp_gridgen"; 9 | xassert(G_ == G_); 10 | xassert(v_rhs_ == v_rhs_); 11 | xassert(a_cap_ == a_cap_); 12 | xassert(a_cost_ == a_cost_); 13 | xassert(parm == parm); 14 | xerror("%s: sorry, this routine is temporarily disabled due to li" 15 | "censing problems\n", func); 16 | /* abort(); */ 17 | return -1; 18 | } 19 | 20 | /* eof */ 21 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/glpk/api/netgen.c: -------------------------------------------------------------------------------- 1 | /* netgen.c */ 2 | 3 | #include "env.h" 4 | #include "glpk.h" 5 | 6 | int glp_netgen(glp_graph *G_, int v_rhs_, int a_cap_, int a_cost_, 7 | const int parm[1+15]) 8 | { static const char func[] = "glp_netgen"; 9 | xassert(G_ == G_); 10 | xassert(v_rhs_ == v_rhs_); 11 | xassert(a_cap_ == a_cap_); 12 | xassert(a_cost_ == a_cost_); 13 | xassert(parm == parm); 14 | xerror("%s: sorry, this routine is temporarily disabled due to li" 15 | "censing problems\n", func); 16 | /* abort(); */ 17 | return -1; 18 | } 19 | 20 | /* eof */ 21 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/glpk/api/rmfgen.c: -------------------------------------------------------------------------------- 1 | /* rmfgen.c */ 2 | 3 | #include "env.h" 4 | #include "glpk.h" 5 | 6 | int glp_rmfgen(glp_graph *G_, int *s_, int *t_, int a_cap_, 7 | const int parm[1+5]) 8 | { static const char func[] = "glp_rmfgen"; 9 | xassert(G_ == G_); 10 | xassert(s_ == s_); 11 | xassert(t_ == t_); 12 | xassert(a_cap_ == a_cap_); 13 | xassert(parm == parm); 14 | xerror("%s: sorry, this routine is temporarily disabled due to li" 15 | "censing problems\n", func); 16 | /* abort(); */ 17 | return -1; 18 | } 19 | 20 | /* eof */ 21 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/glpk/draft/draft.h: -------------------------------------------------------------------------------- 1 | /* draft.h */ 2 | 3 | #ifndef DRAFT_H 4 | #define DRAFT_H 5 | 6 | #if 1 /* 28/III-2016 */ 7 | #define GLP_UNDOC 1 8 | #endif 9 | #include "glpk.h" 10 | 11 | #if 1 /* 28/XI-2009 */ 12 | int _glp_analyze_row(glp_prob *P, int len, const int ind[], 13 | const double val[], int type, double rhs, double eps, int *_piv, 14 | double *_x, double *_dx, double *_y, double *_dy, double *_dz); 15 | /* simulate one iteration of dual simplex method */ 16 | #endif 17 | 18 | #endif 19 | 20 | /* eof */ 21 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/glpk/glpk_tls_config.h: -------------------------------------------------------------------------------- 1 | 2 | #include "igraph_threading.h" /* IGRAPH_THREAD_SAFE */ 3 | 4 | /* This includes igraph's config.h. 5 | * The vendored GLPK must not have a config.h. */ 6 | #include "config.h" 7 | 8 | #if IGRAPH_THREAD_SAFE 9 | #define TLS IGRAPH_THREAD_LOCAL 10 | #endif 11 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/glpk/misc/relax4.c: -------------------------------------------------------------------------------- 1 | /* relax4.c */ 2 | 3 | #include "env.h" 4 | #include "relax4.h" 5 | 6 | int relax4(struct relax4_csa *csa) 7 | { static const char func[] = "relax4"; 8 | xassert(csa == csa); 9 | xerror("%s: sorry, this routine is temporarily disabled due to li" 10 | "censing problems\n", func); 11 | /* abort(); */ 12 | return -1; 13 | } 14 | 15 | void relax4_inidat(struct relax4_csa *csa) 16 | { static const char func[] = "relax4_inidat"; 17 | xassert(csa == csa); 18 | xerror("%s: sorry, this routine is temporarily disabled due to li" 19 | "censing problems\n", func); 20 | /* abort(); */ 21 | } 22 | 23 | /* eof */ 24 | -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/lapack/debug.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/src/vendor/cigraph/vendor/lapack/debug.h -------------------------------------------------------------------------------- /src/vendor/cigraph/vendor/pcg/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Declare the files needed to compile our vendored copy of the PCG random 2 | # number generator 3 | add_library( 4 | pcg 5 | OBJECT 6 | EXCLUDE_FROM_ALL 7 | pcg-advance-64.c 8 | pcg-advance-128.c 9 | pcg-output-32.c 10 | pcg-output-64.c 11 | pcg-output-128.c 12 | pcg-rngs-64.c 13 | pcg-rngs-128.c 14 | ) 15 | 16 | if (BUILD_SHARED_LIBS) 17 | set_property(TARGET pcg PROPERTY POSITION_INDEPENDENT_CODE ON) 18 | endif() 19 | 20 | use_all_warnings(pcg) 21 | 22 | -------------------------------------------------------------------------------- /src/vendor/igraph_export.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef IGRAPH_EXPORT_H 3 | #define IGRAPH_EXPORT_H 4 | 5 | #define IGRAPH_EXPORT 6 | #define IGRAPH_NO_EXPORT 7 | #define IGRAPH_DEPRECATED 8 | #define IGRAPH_DEPRECATED_EXPORT IGRAPH_EXPORT IGRAPH_DEPRECATED 9 | #define IGRAPH_DEPRECATED_NO_EXPORT IGRAPH_NO_EXPORT IGRAPH_DEPRECATED 10 | 11 | #endif /* IGRAPH_EXPORT_H */ 12 | -------------------------------------------------------------------------------- /src/vendor/simpleraytracer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SOURCES 2 | Color.cpp 3 | Light.cpp 4 | Point.cpp 5 | RIgraphRay.cpp 6 | Ray.cpp 7 | RayTracer.cpp 8 | RayVector.cpp 9 | Shape.cpp 10 | Sphere.cpp 11 | Triangle.cpp 12 | unit_limiter.cpp 13 | ) 14 | 15 | add_library(simpleraytracer ${SOURCES}) 16 | target_include_directories(simpleraytracer PRIVATE ${igraph_BINARY_DIR}/include ${rigraph_SOURCE_DIR}) 17 | 18 | install( 19 | TARGETS simpleraytracer 20 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 21 | ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 22 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 23 | ) 24 | -------------------------------------------------------------------------------- /src/vendor/simpleraytracer/Ray.cpp: -------------------------------------------------------------------------------- 1 | #include "Ray.h" 2 | 3 | namespace igraph { 4 | 5 | Ray::Ray() 6 | {} 7 | 8 | Ray::~Ray() 9 | {} 10 | 11 | Ray::Ray(const Point& rOrigin, const Vector& rDirection) 12 | { 13 | Direction(rDirection); 14 | Origin(rOrigin); 15 | 16 | } 17 | 18 | Ray::Ray(const Point& rOrigin, const Point& rEndPoint) 19 | { 20 | Direction(Vector(rOrigin,rEndPoint)); 21 | Origin(rOrigin); 22 | } 23 | 24 | const Point& Ray::Origin() const 25 | { 26 | return mOrigin; 27 | } 28 | 29 | void Ray::Origin(Point vOrigin) 30 | { 31 | mOrigin = vOrigin; 32 | } 33 | 34 | const Vector& Ray::Direction() const 35 | { 36 | return mDirection; 37 | } 38 | 39 | void Ray::Direction(Vector vDirection) 40 | { 41 | mDirection = vDirection; 42 | } 43 | 44 | } // namespace igraph 45 | -------------------------------------------------------------------------------- /src/vendor/simpleraytracer/Ray.h: -------------------------------------------------------------------------------- 1 | /** Ray.h 2 | */ 3 | 4 | #ifndef RAY_H 5 | #define RAY_H 6 | 7 | #include "RayVector.h" 8 | #include "Point.h" 9 | 10 | namespace igraph { 11 | 12 | class Ray 13 | { 14 | public: 15 | Ray(); 16 | Ray(const Point& rOrigin, const Vector& rDirection); 17 | Ray(const Point& rOrigin, const Point& rEndPoint); 18 | ~Ray(); 19 | 20 | void Origin(Point vPoint); 21 | const Point& Origin() const; 22 | 23 | const Vector& Direction() const; 24 | void Direction(Vector vDirection); 25 | 26 | private: 27 | Vector mDirection; 28 | Point mOrigin; 29 | }; 30 | 31 | } // namespace igraph 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /src/vendor/simpleraytracer/Sphere.h: -------------------------------------------------------------------------------- 1 | /** Sphere.h 2 | */ 3 | 4 | #ifndef SPHERE_H 5 | #define SPHERE_H 6 | 7 | #include "Shape.h" 8 | 9 | namespace igraph { 10 | 11 | class Sphere : public Shape 12 | { 13 | public: 14 | Sphere(); 15 | Sphere(Point vCenter, double vRadius); 16 | ~Sphere(); 17 | 18 | virtual bool Intersect(const Ray& vRay, Point& vIntersectPoint) const; 19 | virtual Vector Normal(const Point& rSurfacePoint, const Point& rOffSurface) const; 20 | 21 | double Radius() const; 22 | const Point& Center() const; 23 | 24 | private: 25 | Point mCenter; 26 | double mRadius; 27 | }; 28 | 29 | } // namespace igraph 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /src/vendor/simpleraytracer/Triangle.h: -------------------------------------------------------------------------------- 1 | /** Triangle.h 2 | */ 3 | 4 | #ifndef TRIANGLE_H 5 | #define TRIANGLE_H 6 | 7 | #include "Shape.h" 8 | 9 | namespace igraph { 10 | 11 | class Triangle : public Shape 12 | { 13 | public: 14 | Triangle(); 15 | Triangle(const Point& rPoint1, const Point& rPoint2, const Point& rPoint3); 16 | ~Triangle(); 17 | 18 | virtual bool Intersect(const Ray& vRay, Point& vIntersectPoint) const; 19 | virtual Vector Normal(const Point& rSurfacePoint, const Point& rOffSurface) const; 20 | 21 | private: 22 | Point mPoint1, mPoint2, mPoint3; 23 | }; 24 | 25 | } // namespace igraph 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /src/vendor/simpleraytracer/unit_limiter.cpp: -------------------------------------------------------------------------------- 1 | #include "unit_limiter.h" 2 | 3 | namespace igraph { 4 | 5 | double unit_limiter(double vUnitDouble) 6 | { 7 | double result = vUnitDouble; 8 | if (result < 0.0) 9 | result = 0.0; 10 | else if (result > 1.0) 11 | result = 1.0; 12 | return result; 13 | } 14 | 15 | } // namespace igraph 16 | -------------------------------------------------------------------------------- /src/vendor/simpleraytracer/unit_limiter.h: -------------------------------------------------------------------------------- 1 | #ifndef ZERO_TO_ONE_H 2 | #define ZERO_TO_ONE_H 3 | 4 | namespace igraph { 5 | 6 | double unit_limiter(double vUnitDouble); 7 | 8 | } // namespace igraph 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /src/vendor/uuid/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SOURCES 2 | R.c 3 | clear.c 4 | compare.c 5 | copy.c 6 | gen_uuid.c 7 | isnull.c 8 | pack.c 9 | parse.c 10 | unpack.c 11 | unparse.c 12 | ) 13 | 14 | add_library(uuid ${SOURCES}) 15 | target_include_directories(uuid PRIVATE ${igraph_BINARY_DIR}/include ${rigraph_SOURCE_DIR}) 16 | 17 | install( 18 | TARGETS uuid 19 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 20 | ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 21 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 22 | ) 23 | -------------------------------------------------------------------------------- /src/vendor/uuid/Makevars.in: -------------------------------------------------------------------------------- 1 | PKG_CPPFLAGS=@CPPFLAGS@ 2 | PKG_LIBS=@LIBS@ 3 | -------------------------------------------------------------------------------- /src/vendor/uuid/Makevars.win: -------------------------------------------------------------------------------- 1 | PKG_CPPFLAGS=-Iwin32 2 | -------------------------------------------------------------------------------- /src/vendor/uuid/R.c: -------------------------------------------------------------------------------- 1 | #include "uuid.h" 2 | 3 | #include 4 | #include "igraph_random.h" 5 | 6 | SEXP UUID_gen(SEXP sTime) { 7 | 8 | RNG_BEGIN(); 9 | 10 | uuid_t u; 11 | char c[40]; 12 | int use_time = asInteger(sTime); 13 | if (use_time == TRUE) 14 | uuid_generate_time(u); 15 | else if (use_time == FALSE) 16 | uuid_generate_random(u); 17 | else 18 | uuid_generate(u); 19 | uuid_unparse_lower(u, c); 20 | 21 | RNG_END(); 22 | 23 | return mkString(c); 24 | } 25 | 26 | -------------------------------------------------------------------------------- /src/vendor/uuid/config.h: -------------------------------------------------------------------------------- 1 | // https://github.com/igraph/rigraph/pull/840#issuecomment-1696078490 2 | #define HAVE_UNISTD_H 1 3 | -------------------------------------------------------------------------------- /tests/testthat.R: -------------------------------------------------------------------------------- 1 | library(testthat) 2 | library(igraph) 3 | 4 | test_check("igraph") 5 | -------------------------------------------------------------------------------- /tests/testthat/_snaps/community.md: -------------------------------------------------------------------------------- 1 | # modularity_matrix still accepts a membership argument for compatibility 2 | 3 | Code 4 | x <- modularity_matrix(karate, membership = rep(1, vcount(karate))) 5 | Condition 6 | Warning: 7 | The `membership` argument of `modularity_matrix()` is no longer used as of igraph 2.1.0. 8 | 9 | -------------------------------------------------------------------------------- /tests/testthat/_snaps/games.md: -------------------------------------------------------------------------------- 1 | # sample_degseq() works -- exponential degree error 2 | 3 | Code 4 | sample_degseq(exponential_degrees, method = "vl") 5 | Condition 6 | Error in `sample_degseq()`: 7 | ! At vendor/cigraph/src/games/degree_sequence_vl/gengraph_mr-connected.cpp: : Cannot make a connected graph from the given degree sequence. Invalid value 8 | 9 | # sample_degseq() works -- Power-law degree error 10 | 11 | Code 12 | sample_degseq(powerlaw_degrees, method = "vl") 13 | Condition 14 | Error in `sample_degseq()`: 15 | ! At vendor/cigraph/src/games/degree_sequence_vl/gengraph_mr-connected.cpp: : Cannot realize the given degree sequence as an undirected, simple graph. Invalid value 16 | 17 | -------------------------------------------------------------------------------- /tests/testthat/_snaps/layout.md: -------------------------------------------------------------------------------- 1 | # layout_with_fr() deprecated argument 2 | 3 | Code 4 | l <- layout_with_fr(g, niter = 50, start.temp = sqrt(10) / 10, coolexp = 1, 5 | maxdelta = 1, area = 1, repulserad = 1) 6 | Condition 7 | Error: 8 | ! The `coolexp` argument of `layout_with_fr()` was deprecated in igraph 0.8.0 and is now defunct. 9 | 10 | # layout_with_kk() deprecated arguments 11 | 12 | Code 13 | l <- layout_with_kk(g, maxiter = 50, coords = layout_in_circle(g), niter = 1, 14 | sigma = 1, initemp = 1, coolexp = 1) 15 | Condition 16 | Error: 17 | ! The `niter` argument of `layout_with_kk()` was deprecated in igraph 0.8.0 and is now defunct. 18 | 19 | -------------------------------------------------------------------------------- /tests/testthat/_snaps/minimum.spanning.tree.md: -------------------------------------------------------------------------------- 1 | # mst error works 2 | 3 | Code 4 | mst(g, algorithm = "undefined") 5 | Condition 6 | Error in `mst()`: 7 | ! Invalid `algorithm`. 8 | 9 | -------------------------------------------------------------------------------- /tests/testthat/_snaps/operators.md: -------------------------------------------------------------------------------- 1 | # vertices() works 2 | 3 | Can't recycle `name` (size 2) to match `foo` (size 3). 4 | 5 | -------------------------------------------------------------------------------- /tests/testthat/_snaps/par.md: -------------------------------------------------------------------------------- 1 | # print.id in snapshot 2 | 3 | Code 4 | igraph_opt("print.id") 5 | Output 6 | [1] FALSE 7 | 8 | # print.id in snapshot (2) 9 | 10 | Code 11 | igraph_opt("print.id") 12 | Output 13 | [1] FALSE 14 | 15 | -------------------------------------------------------------------------------- /tests/testthat/_snaps/paths.md: -------------------------------------------------------------------------------- 1 | # radius() works -- lifecycle 2 | 3 | Code 4 | radius(g, "out") 5 | Condition 6 | Warning: 7 | The `...` argument of `radius()` is deprecated as of igraph 2.1.0. 8 | i The argument `mode` must be named. 9 | Output 10 | [1] 0 11 | 12 | # eccentricity() works -- lifecycle 13 | 14 | Code 15 | eccentricity(g, vids = V(g), "out") 16 | Condition 17 | Warning: 18 | The `...` argument of `eccentricity()` is deprecated as of igraph 2.1.0. 19 | i The argument `mode` must be named. 20 | Output 21 | [1] 3 2 1 1 1 0 0 0 0 0 22 | 23 | -------------------------------------------------------------------------------- /tests/testthat/_snaps/trees.md: -------------------------------------------------------------------------------- 1 | # subgraph.edges deprecation 2 | 3 | Code 4 | subgraph.edges(g, edges, delete.vertices = FALSE) 5 | Condition 6 | Warning: 7 | `subgraph.edges()` was deprecated in igraph 2.1.0. 8 | i Please use `subgraph_from_edges()` instead. 9 | Output 10 | IGRAPH U--- 13 11 -- 11 | + attr: name_1 (g/c), name_2 (g/c), loops_1 (g/l), loops_2 (g/l) 12 | + edges: 13 | [1] 1-- 2 1-- 8 3-- 6 3-- 8 4-- 5 5-- 7 6-- 7 9--11 9--13 10--13 14 | [11] 12--13 15 | 16 | -------------------------------------------------------------------------------- /tests/testthat/_snaps/utils-assert-args.md: -------------------------------------------------------------------------------- 1 | # ensure_igraph() works 2 | 3 | Must provide a graph object (provided wrong object type). 4 | 5 | --- 6 | 7 | Must provide a graph object (provided wrong object type). 8 | 9 | --- 10 | 11 | Must provide a graph object (provided `NULL`). 12 | 13 | # igraph.match.arg() works 14 | 15 | Code 16 | cluster_leiden(make_graph("Zachary"), objective_function = "something") 17 | Condition 18 | Error in `cluster_leiden()`: 19 | ! `arg` must be one of "cpm" or "modularity", not "something". 20 | 21 | -------------------------------------------------------------------------------- /tests/testthat/celegansneural.gml.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/tests/testthat/celegansneural.gml.gz -------------------------------------------------------------------------------- /tests/testthat/football.gml.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/tests/testthat/football.gml.gz -------------------------------------------------------------------------------- /tests/testthat/helper-indexing.R: -------------------------------------------------------------------------------- 1 | vector_to_square_matrix <- function(...) { 2 | v <- as.numeric(as.vector(list(...))) 3 | matrix(v, nrow = sqrt(length(v))) 4 | } 5 | 6 | as_unnamed_dense_matrix <- function(x) { 7 | x <- as.matrix(x) 8 | dimnames(x) <- NULL 9 | x 10 | } 11 | 12 | make_test_named_tree <- function() { 13 | g <- make_tree(20) 14 | V(g)$name <- letters[1:vcount(g)] 15 | g 16 | } 17 | 18 | make_test_weighted_tree <- function() { 19 | g <- make_tree(20) 20 | V(g)$name <- letters[1:vcount(g)] 21 | el <- as_edgelist(g, names = FALSE) 22 | E(g)$weight <- el[, 1] * el[, 2] 23 | g 24 | } 25 | -------------------------------------------------------------------------------- /tests/testthat/helper-unvs.R: -------------------------------------------------------------------------------- 1 | unvs <- function(x) lapply(x, as.vector) 2 | -------------------------------------------------------------------------------- /tests/testthat/power.gml.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/tests/testthat/power.gml.gz -------------------------------------------------------------------------------- /tests/testthat/test-cocitation.R: -------------------------------------------------------------------------------- 1 | test_that("cocitation works", { 2 | g <- make_full_graph(10, directed = TRUE) 3 | cocite_mat <- matrix(8, 10, 10) - diag(8, 10) 4 | expect_equal(cocitation(g), cocite_mat) 5 | }) 6 | 7 | test_that("bibcoupling works", { 8 | g <- make_full_graph(10, directed = TRUE) 9 | bib_mat <- matrix(8, 10, 10) - diag(8, 10) 10 | expect_equal(bibcoupling(g), bib_mat) 11 | }) 12 | -------------------------------------------------------------------------------- /tests/testthat/test-stochastic_matrix.R: -------------------------------------------------------------------------------- 1 | test_that("stochastic_matrix works", { 2 | g <- make_star(5, "undirected") 3 | adj_mat <- as_adjacency_matrix(g) 4 | stoch_mat_manual <- adj_mat / degree(g) 5 | stoch_mat_calc <- stochastic_matrix(g) 6 | expect_equal( 7 | as_unnamed_dense_matrix(stoch_mat_manual), 8 | as_unnamed_dense_matrix(stoch_mat_calc) 9 | ) 10 | 11 | stoch_mat_calc_col <- stochastic_matrix(g, column.wise = TRUE) 12 | expect_equal( 13 | t(as_unnamed_dense_matrix(stoch_mat_manual)), 14 | as_unnamed_dense_matrix(stoch_mat_calc_col) 15 | ) 16 | }) 17 | -------------------------------------------------------------------------------- /tests/testthat/test-structure.info.R: -------------------------------------------------------------------------------- 1 | test_that("are_adjacent() works", { 2 | g <- graph_from_literal(A - B - C, B - D) 3 | expect_true(are_adjacent(g, "A", "B")) 4 | expect_true(are_adjacent(g, "B", "A")) 5 | expect_false(are_adjacent(g, "A", "D")) 6 | 7 | g2 <- make_graph(c(1, 2, 2, 3, 3, 4, 1, 1, 3, 4), directed = FALSE) 8 | expect_true(are_adjacent(g2, 1, 2)) 9 | expect_true(are_adjacent(g2, 3, 2)) 10 | expect_true(are_adjacent(g2, 3, 4)) 11 | expect_true(are_adjacent(g2, 1, 1)) 12 | expect_false(are_adjacent(g2, 4, 1)) 13 | expect_false(are_adjacent(g2, 3, 3)) 14 | 15 | g3 <- graph_from_literal(A -+ B -+ C, B -+ D) 16 | expect_false(are_adjacent(g3, "A", "C")) 17 | expect_true(are_adjacent(g3, "A", "B")) 18 | expect_false(are_adjacent(g3, "B", "A")) 19 | }) 20 | -------------------------------------------------------------------------------- /tests/testthat/test-utils-assert-args.R: -------------------------------------------------------------------------------- 1 | test_that("ensure_igraph() works", { 2 | expect_snapshot_error(ensure_igraph(1)) 3 | expect_snapshot_error(ensure_igraph(NA)) 4 | expect_snapshot_error(ensure_igraph(NULL)) 5 | expect_silent(ensure_igraph(make_empty_graph())) 6 | expect_silent(ensure_igraph(NULL, optional = TRUE)) 7 | }) 8 | 9 | test_that("igraph.match.arg() works", { 10 | expect_snapshot( 11 | cluster_leiden(make_graph("Zachary"), objective_function = "something"), 12 | error = TRUE 13 | ) 14 | }) 15 | -------------------------------------------------------------------------------- /tests/testthat/zachary.graphml.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/tests/testthat/zachary.graphml.gz -------------------------------------------------------------------------------- /tools/apply-patch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Applies a patch file, returning successfully if the patch seems to be applied 3 | # already 4 | 5 | if [ "x$1" = x ]; then 6 | echo "Usage: $0 patch-file" 7 | exit 1 8 | fi 9 | 10 | OUT=$(patch -p1 -t -N -r .reject -i $1) 11 | RETVAL=$? 12 | 13 | if [ $RETVAL = 0 ]; then 14 | # Everything went fine 15 | exit 16 | elif [ $RETVAL = 1 ]; then 17 | rm -f .reject 18 | # Maybe the patch was reversed? 19 | COUNT=`echo "$OUT" | grep -E -c "^(Reversed.*Skipping)|(Ignoring previously applied)"` 20 | if [ $COUNT -gt 0 ]; then 21 | echo "$1 seems to be applied already, skipping." 22 | exit 23 | fi 24 | fi 25 | 26 | # Some other error 27 | echo "$OUT" 28 | exit $RETVAL 29 | 30 | -------------------------------------------------------------------------------- /tools/build-requirements.txt: -------------------------------------------------------------------------------- 1 | # Make sure to use an exact version or commit hash in the line below, 2 | # _not_ the name of a branch. The hash of this file is used by the CI 3 | # environment to detect when to re-create the virtualenv so the hash 4 | # needs to change whenever a package is updated. 5 | 6 | git+https://github.com/igraph/stimulus@0.21.5#egg=stimulus 7 | -------------------------------------------------------------------------------- /tools/builddocs.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | tempdir=$(mktemp -d 2>/dev/null || mktemp -d -t 'mytmpdir') 4 | trap "rm -rf ${tempdir}" EXIT 5 | rsync -avq \ 6 | --exclude=cigraph \ 7 | --exclude=.git \ 8 | --exclude=revdep \ 9 | --exclude=.venv \ 10 | . ${tempdir}/ 11 | 12 | ( 13 | cd ${tempdir} 14 | rm -rf src 15 | Rscript -e 'devtools::document()' 16 | ) 17 | 18 | cp doc/*.Rd man/ 19 | cp ${tempdir}/NAMESPACE . 20 | cp -r ${tempdir}/man/* man/ 21 | -------------------------------------------------------------------------------- /tools/deprecate-make-template.txt: -------------------------------------------------------------------------------- 1 | #' {{new_title}} 2 | #' 3 | #' @description 4 | #' `r lifecycle::badge("deprecated")` 5 | #' 6 | #' `{{old}}()` was renamed to `{{new}}()` to create a more 7 | #' consistent API. 8 | {{inheritParamsOrNot}} 9 | #' @keywords internal 10 | #' @export 11 | {{old}} <- function({{{new_usage}}}) { # nocov start 12 | lifecycle::deprecate_soft("2.0.4", "{{old}}()", "{{new}}()") 13 | {{{inline}}} 14 | } # nocov end 15 | -------------------------------------------------------------------------------- /tools/deprecate-template.txt: -------------------------------------------------------------------------------- 1 | #' {{new_title}} 2 | #' 3 | #' @description 4 | #' `r lifecycle::badge("deprecated")` 5 | #' 6 | #' `{{old}}()` was renamed to `{{new}}()` to create a more 7 | #' consistent API. 8 | {{inheritParamsOrNot}} 9 | #' @keywords internal 10 | #' @export 11 | {{old}} <- function({{{new_usage}}}) { # nocov start 12 | lifecycle::deprecate_soft("2.0.0", "{{old}}()", "{{new}}()") 13 | {{new}}({{args}}) 14 | } # nocov end 15 | -------------------------------------------------------------------------------- /tools/extract_examples.R: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env Rscript 2 | 3 | library(tools) 4 | 5 | rdfiles <- list.files("igraph/man", pattern=".*\\.Rd$", full.names=TRUE) 6 | out <- file("igraph-Ex.R", open="w") 7 | cat("### Load the package\nlibrary(igraph)\n\n", file=out) 8 | sapply(rdfiles, Rd2ex, out=out) 9 | close(out) 10 | 11 | -------------------------------------------------------------------------------- /tools/getversion.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | script_dir=$( dirname "${BASH_SOURCE[0]}" ) 4 | cat DESCRIPTION | grep '^Version: ' | sed 's/^Version: \(.*\)$/\1/' | head -1 5 | -------------------------------------------------------------------------------- /tools/run_examples.R: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env Rscript 2 | 3 | library(igraph) 4 | library(magrittr) 5 | 6 | rd_files <- list.files("./man", pattern = "\\.Rd$", full.names = TRUE) 7 | exfile <- tempfile() 8 | 9 | for (rd_file in rd_files) { 10 | tools::Rd2ex(rd_file, out = exfile, commentDontrun = FALSE) 11 | 12 | if (!file.exists(exfile)) { 13 | next 14 | } 15 | example <- readLines(exfile) 16 | eval(parse(text = paste(example, collapse = "\n"))) 17 | } 18 | -------------------------------------------------------------------------------- /tools/stimulus/aaa-auto.R.in: -------------------------------------------------------------------------------- 1 | # Generated by make -f Makefile-cigraph, do not edit by hand 2 | # styler: off 3 | 4 | -------------------------------------------------------------------------------- /tools/stimulus/config.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igraph/rigraph/21855e4b4db505737fed5da005a37e78061c1c7b/tools/stimulus/config.h -------------------------------------------------------------------------------- /tools/stimulus/igraph_export.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef IGRAPH_EXPORT_H 3 | #define IGRAPH_EXPORT_H 4 | 5 | #define IGRAPH_EXPORT 6 | #define IGRAPH_NO_EXPORT 7 | #define IGRAPH_DEPRECATED 8 | #define IGRAPH_DEPRECATED_EXPORT IGRAPH_EXPORT IGRAPH_DEPRECATED 9 | #define IGRAPH_DEPRECATED_NO_EXPORT IGRAPH_NO_EXPORT IGRAPH_DEPRECATED 10 | 11 | #endif /* IGRAPH_EXPORT_H */ 12 | -------------------------------------------------------------------------------- /tools/weights.R: -------------------------------------------------------------------------------- 1 | library(igraph) 2 | library(tidyverse) 3 | 4 | # https://seankross.com/2021/02/25/Analyzing-R-Function-Arguments.html 5 | args_data <- tibble(Package = "package:igraph") %>% 6 | mutate(Function = list(lsf.str(Package))) %>% 7 | unnest(Function) %>% 8 | mutate(Function = as.character(Function)) %>% 9 | mutate( 10 | Arg = map( 11 | Function, 12 | compose(args, as.list, names, ~ keep(.x, nzchar), .dir = "forward") 13 | ) 14 | ) %>% 15 | unnest(Arg, keep_empty = TRUE) 16 | 17 | dplyr::filter(args_data, Arg == "weights") |> 18 | dplyr::mutate(deprecated = grepl("\\.", Function)) |> 19 | dplyr::mutate(arg_def = "") |> 20 | dplyr::mutate(notes = "") |> 21 | dplyr::arrange(deprecated) |> 22 | knitr::kable() 23 | -------------------------------------------------------------------------------- /vignettes/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | *.R 3 | --------------------------------------------------------------------------------