You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is due to the fact that all constants in kahypar_h.jl, including kahypar_hyperedge_weight_t, are declared as Cint or Cuint, corresponding to julia's Int32, which is not enough bits to represent these larger integers.
In kahypar_h.jl, lines 1-5:
good question @andreadegirolamo99. I am not sure whether the KaHyPar C interface assumes node and edge weights need to be int32 or not. Can the int type be 64 bit @SebastianSchlag?
Hey @andreadegirolamo99, thank for reaching out and sorry for the delayed response.
It is correct that KaHyPar uses 32bit integers by default.
However, if you build it from source, it should be relatively easy to get a version that supported 64bit edge weights. The main typedefs for node IDs, edge IDs, node weights and edge weights are located in the definitions.h file located in the kahypar-shared-resources submodule.
Those would need to be changed to int64_t along with the typedefs of the C interface in libkahypar.h.
Hi :)
I am trying to create hypergraphs with pretty huge hyperedge weights. As a consequence, when these get too large I get this error log:
This is due to the fact that all constants in kahypar_h.jl, including kahypar_hyperedge_weight_t, are declared as Cint or Cuint, corresponding to julia's Int32, which is not enough bits to represent these larger integers.
In kahypar_h.jl, lines 1-5:
For now, I have temporarily solved this issue with a try-catch-else clause:
Could this be solved by parsing a larger integer, e.g. Int64, to C?
The text was updated successfully, but these errors were encountered: