Skip to content

Refactoring#51

Draft
dufourc1 wants to merge 257 commits intomainfrom
refactoring
Draft

Refactoring#51
dufourc1 wants to merge 257 commits intomainfrom
refactoring

Conversation

@dufourc1
Copy link
Copy Markdown
Member

@dufourc1 dufourc1 commented Feb 2, 2026

Major refactoring to modernize the codebase, add support for decorated graphs (weighted, categorical edges), and improve documentation.

Core Architecture

  • New modular structure: Replaced monolithic implementations with SymArray.jl (fast symmetric arrays), GreedySuffStats.jl, and clean API layer
  • Preprocessor system: Unified edge type handling (binary, categorical, continuous) via preprocessor/
  • Pseudo sufficient statistics framework: Generic abstraction for different edge distributions in pseudo_suff_stats/
  • Removed: src/old/, deprecated src/UI.jl, legacy src/assignments/

Extensions

  • PythonOptimalTransport: srGW and fngw algorithms for partition alignment
  • BootstrapExt, LightMCExt, MakieExt: Optional functionality via weak dependencies

API Changes

# New high-level functions for different edge types
nethist_binary(A, k)      # Binary networks
nethist_categorical(A, k) # Discrete edge values
nethist_continuous(A, k)  # Real-valued edges

# Graphons.jl integration (re-exported)
# Hungarian algorithm for label alignment
# OT-based partition alignment methods

Documentation

  • Added tutorials: simple graphs, weighted networks, multiplex networks, temporal networks
  • Custom sufficient statistics example
  • Removed outdated internals/rules documentation

Infrastructure

  • Dependabot configuration
  • Benchmark PR workflow
  • CondaPkg.toml for Python dependencies

Copilot AI mentioned this pull request Feb 2, 2026
@SDS-EPFL SDS-EPFL deleted a comment from Copilot AI Feb 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant