icentral-match 0.1.0

Provides constructs for graph-based computations and detailed analysis of betweenness centrality within undirected graphs.
Documentation
# icentral-match

`icentral-match` is a Rust crate that offers highly specialized functions for constructing and analyzing undirected graphs. Utilizing advanced algorithms, it centers around the concepts of graph theory and provides essential tools for calculating and validating betweenness centrality—a measure of centrality in a graph based on shortest paths.

## Overview
This crate includes the following main functionalities:

- **Graph Construction**: Convert adjacency list representations to a `SimpleUndirectedGraph` suitable for advanced computations.
- **Betweenness Centrality Calculation**: Compute "betweenness scores" for nodes within a graph using precise algorithms that leverage the construct from graph theory, aiding in network analysis and complex system evaluations.
- **Result Validation**: Confirm that computed betweenness scores are accurate within a small margin of error, perfect for diagnostic and analytical purposes.

## Key Features
- **Adaptable Graph Creation**: A function, `graph_for_dachshund`, transforms adjacency lists into undirected graphs, ready for analysis.
- **Centrality Score Calculation**: Compute node betweenness efficiently using `golden_betweenness_scores_for_paper_via_dachshund` to quantify the importance of nodes in a network.
- **Precision Validation**: Use `assert_dachshund_result_matches_betweenness_result` to ensure calculated graph metrics closely match expected theoretical results.

## Usage
This crate requires Rust 2021 edition. To use `icentral-match`, add it as a dependency in your `Cargo.toml`:

```toml
[dependencies]
icentral-match = "0.1.0"
```

Then, in your Rust code, you can make use of the provided functions to leverage graph construction and analysis capabilities:

```rust
use icentral_match::{graph_for_dachshund, golden_betweenness_scores_for_paper_via_dachshund, assert_dachshund_result_matches_betweenness_result};

let adjacency_list = vec![(0, 1), (1, 2), (2, 3)];
let graph = graph_for_dachshund(adjacency_list).unwrap();
// Further analysis and validation routines
```


## Note
This README was generated by an AI model and may not capture all intricate details of the crate. However, it should provide a comprehensive overview to understand and utilize the primary functions effectively.

This crate is in the process of being translated from c++ to rust. Currently, it still needs exhaustive testing.  It is likely there currently exist many glitches which need to be fixed before proper usage. This crate is based on the original icentral program developed by Fuad Jamor. Please see the following repository for details: https://github.com/fjamour/icentral.

For progress updates, see the workspacer rust project.