# [−][src]Crate xbar

Rust implementation of the algorithm described in the conference paper
*"A locality preserving one-sided binary tree - crossbar switch wiring
design algorithm"* published
in [2015 49th Annual Conference on Information Sciences and Systems (CISS)]
(https://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=7075844).

"One-sided crossbar switchesallow for a simple implementation of complete`K_n`

graphs. However, designing these circuits is a cumbersome process and can be automated.We present an algorithm that allows designing automatic one-sided binary tree - crossbar switches whichdo not exceed, and achieves`floor(n/2)`

columns`K_n`

graph without connecting any wires between any three adjacent blocks, thus preserving locality in connections."

# Example usage:

use xbar::Crossbar as X; pub fn main() { let n = 5; println!("Crossbar for {} terminals has {} rows, \ formed into {} blocks; and {} columns", n, X::rows(n), X::blocks(n), X::columns(n)); println!("Connections of the crossbar:"); for con in X::new(n) { println!("{:#?}", con); } }

produces the output:

```
Crossbar for 5 terminals has 20 rows, formed into 4 blocks; and 2 columns
Connections of the crossbar:
Connection {
start: Position {
block_idx: 0,
row_idx: 0,
abs_idx: 0
},
end: Position {
block_idx: 0,
row_idx: 1,
abs_idx: 1
},
col_idx: 0
}
...
```

# Reference

Sahin, Devrim. "A locality preserving one-sided binary tree - crossbar switch
wiring design algorithm." *Information Sciences and Systems (CISS), 2015 49th
Annual Conference on*. IEEE, 2015.

## Bibtex

```
@inproceedings{dsahin2015crossbar,
title={A locality preserving one-sided binary tree - crossbar switch wiring design algorithm},
author={{\c{S}}ahin, Devrim},
booktitle={Information Sciences and Systems (CISS), 2015 49th Annual Conference on},
pages={1--4},
year={2015},
organization={IEEE}
}
```

## Structs

Connection | A |

Crossbar | Core struct of the crate. |

Position | A |