#include "sources/dijkstra.h" #include #include "sources/utils/boolean.h" #include // Dijkstra from index start : return vector of distances to every other vertex // TODO: use a good priority queue, and pass NI instead of pDistsIn (+ linear preprocessing) double* dijkstra_core(double* pDistsIn, int start, int n) { // initalisations double* pDistsOut = (double*)malloc(n*sizeof(double)); bool* visited = (bool*)malloc(n*sizeof(bool)); for (int i=0; i pDistsOut[n1] + pDistsIn[ind_n12]) pDistsOut[n2] = pDistsOut[n1] + pDistsIn[ind_n12]; } } } free(visited); return pDistsOut; }