diff --git a/pthwithcuda/cuda/alt_cuda.cuh b/pthwithcuda/cuda/alt_cuda.cuh new file mode 100644 index 0000000000000000000000000000000000000000..8c167cd4b95ba9c28bc7ddd99e117d61417bec2a --- /dev/null +++ b/pthwithcuda/cuda/alt_cuda.cuh @@ -0,0 +1,37 @@ +#ifndef ALT_CUDA_CUH +#define ALT_CUDA_CUH + +#include <vector> +#include <queue> +#include <limits> +#include <random> +#include <algorithm> +#include "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.6/include/cuda_runtime.h" + +class ALTCUDA { +public: + // Struktur für Landmark-Distanzen + struct LandmarkDistances { + std::vector<std::vector<double>> distancesFromLandmark; + std::vector<std::vector<double>> distancesToLandmark; + }; + + ALTCUDA() {} + + // Dijkstra-Hilfsfunktion mit CUDA + std::vector<double> dijkstra_cuda(const std::vector<std::vector<double>>& graph, int src); + + // Landmark-Distanzen berechnen + LandmarkDistances computeLandmarkDistances( + const std::vector<std::vector<double>>& graph, + const std::vector<int>& landmarks); + + // ALT-Hauptalgorithmus mit CUDA + std::vector<double> run( + const std::vector<std::vector<double>>& graph, + int start, + int goal, + int numLandmarks = 5); +}; + +#endif // ALT_CUDA_CUH