Distances on Directed Graphs in R
at main 32 lines 957 B view raw
1#pragma once 2 3#include <vector> 4#include <unordered_set> 5#include <unordered_map> 6 7#include <Rcpp.h> 8// [[Rcpp::plugins(cpp11)]] 9// [[Rcpp::depends(RcppParallel,RcppThread)]] 10#include <RcppThread.h> 11#include <RcppParallel.h> 12 13namespace deduplicate { 14 15typedef std::pair <std::string, std::string> str_pair; 16 17struct str_pair_hash 18{ 19 std::size_t operator() (const std::pair <std::string, std::string> &pair) const { 20 return std::hash <std::string> () (pair.first) ^ std::hash <std::string> () (pair.second); 21 } 22}; 23 24typedef std::unordered_map <deduplicate::str_pair, double, deduplicate::str_pair_hash> EdgeMapType; 25 26void update_dupl_edge_map (deduplicate::EdgeMapType &edge_map, 27 const str_pair &this_pair, const double &val); 28 29} // end namespace deduplicate 30 31Rcpp::DataFrame rcpp_deduplicate (const Rcpp::DataFrame &graph, const std::string fr_col, const std::string to_col, 32 const std::string d_col, const std::string t_col);