hmod.precompute_attributes removes or does not remove singletons based off of the OS (inconsistent behaviour)
Closed this issue · 2 comments
Leo-Aus-Berlin commented
Depending on which OS is being used the following will print different results:
import hypernetx as hnx
import hypernetx.algorithms.hypergraph_modularity as hmod
formulaDict,stringTree = readFile("./CDL-FMINCE/toybox.dimacs") # code by me
H=formulaToHypergraph(formulaDict)
HDual = H.dual()
H=hmod.precompute_attributes(H)
HDual = hmod.precompute_attributes(HDual)
#this should diverge based off of OS
print(len(list(H.nodes())))
print(len(list(HDual.nodes())))
On the linux systems the results are 544 and 590, while on Windows I get 175 and 221. I suspect the singletons get removed by the attribute computation on windows, but not on the linux systems...
I was using ANTLR4 with python integration to parse a dimacs (SAT) file and interpret it as a hypergraph. The resulting graph has 544 nodes and 590 edges before the attributes are computed.
Compared Systems
Ubuntu system:
- Ubuntu 20.04.6 LTS
- wsl 2
- Python 3.8.10
- pip installation manager
Debian
- SMP Debian 5.10.127-1
- Python 3.9.2
- pip installation manager
Windows
- Windows 10 Home
- Python 3.11.3
- Anaconda virtual environment (+VSCode)
brendapraggastis commented
Thanks for the example. We are working on reproducing the error and hunting down the issue.
brendapraggastis commented
@Leo-Aus-Berlin Precompute attributes is no longer required in the modularity module.