Metadata-Version: 2.4
Name: dress-graph
Version: 0.7.0
Summary: DRESS: A deterministic, parameter-free framework for canonical graph fingerprinting via continuous structural edge refinement.
Author: Eduar Castrillo Velilla
Maintainer: Eduar Castrillo Velilla
License-Expression: MIT
Project-URL: Homepage, https://github.com/velicast/dress-graph
Project-URL: Documentation, https://velicast.github.io/dress-graph/
Project-URL: Repository, https://github.com/velicast/dress-graph
Keywords: graph,similarity,community-detection,isomorphism,link-prediction,network-analysis
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: native
Requires-Dist: pybind11>=2.6; extra == "native"
Requires-Dist: numpy; extra == "native"
Provides-Extra: networkx
Requires-Dist: networkx; extra == "networkx"
Provides-Extra: cuda
Requires-Dist: nvidia-cuda-runtime-cu12; extra == "cuda"
Dynamic: license-file

# dress-graph (Python)

**A Continuous Framework for Structural Graph Refinement**

DRESS is a deterministic, parameter-free framework that iteratively refines the structural similarity of edges in a graph to produce a canonical fingerprint: a real-valued edge vector, obtained by converging a non-linear dynamical system to its unique fixed point. The fingerprint is self-contained, isomorphism-invariant by construction, guaranteed bitwise-equal across any vertex labeling, numerically stable (no overflow, no error amplification, no undefined behavior), fast and embarrassingly parallel to compute: DRESS total runtime is O(I * m * d_max) for I iterations to convergence, and convergence is guaranteed by Birkhoff contraction.

## Install

```bash
pip install dress-graph
```

## Quick start

```python
from dress import dress_fit

result = dress_fit(
    n_vertices=4,
    sources=[0, 1, 2, 0],
    targets=[1, 2, 3, 3],
)
print(result.edge_dress)  # DRESS value for each edge
```

For the full API and documentation, see the [main repository](https://github.com/velicast/dress-graph).
