https://github.com/llnl/graph-embed
A small library for graph embedding
https://github.com/llnl/graph-embed
cpp graph
Last synced: 15 days ago
JSON representation
A small library for graph embedding
- Host: GitHub
- URL: https://github.com/llnl/graph-embed
- Owner: LLNL
- License: lgpl-2.1
- Created: 2019-08-10T10:44:27.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-08-10T15:28:45.000Z (almost 7 years ago)
- Last Synced: 2025-04-12T05:03:25.790Z (about 1 year ago)
- Topics: cpp, graph
- Language: C++
- Homepage:
- Size: 41 KB
- Stars: 1
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Description
graph-embed is a small library for (multi-level) graph partitioning and embedding.
## Dependencies
[linalgcpp](github.com/gelever/linalgcpp)
[OpenMP](www.openmp.org/)
[Plotly](plot.ly/)
## Installation
To build the project:
- mkdir build && cd build
- cmake ../
- make -j9
## graph-embed
Graphs can be read in using linalgcpp.
Once imported, partition the graph using `partition::partition` which takes a graph and a coarsening factor. This returns a hierarchy of partitions of the given graph, which each coarsen approximately by the given coarsening factor.
These can be used to create a hierarchy of graphs.
Finally, call `partition::embed` with the hierarchy of graphs, hierarchy of partitions, and desired dimension. This returns a vector of coordinates, indexed by the vertices of the graph.
See examples/embed.cpp and examples/embedder.cpp for an example.
## Authors
graph-embed was created by Benjamin Quiring (quiring1@llnl.gov) at LLNL.
## Getting Involved
Please email quiring1@llnl.gov if you are interested in this project.
## Contributing
Feel free to open a pull request to contribute.
## License
This project is licensed under the LGPL-2.1 License. See the LICENSE file for details.
## Release
LLNL-CODE-781679