#pragma once #include #include #include #include "GraphCSR.h" #include "Arrays.h" #include "Array.h" namespace DIST = Distribution; namespace Distribution { template attrType shiftByDiffInArc(const attrType& arcAttr); template attrType inverseArcByShifts(const attrType& arcAttr); template int AddArrayAccess(GraphCSR &G, Arrays &allArrays, Array *arr1, Array *arr2, std::pair arc, wType arcWeight, const attrType &arcAttr, const uint8_t linkType); template void createOptimalDistribution(GraphCSR &G, GraphCSR &reducedG, const Arrays &allArrays, const uint64_t regionNum, bool onlyGraph); }