gather_type output_vector(const graph_type::vertex_type & vertex){ assert(pcurrent && pcurrent->offset >= 0 && pcurrent->offset < vertex.data().pvec.size()); gather_type ret; assert(pcurrent->end - pcurrent->start > 0); assert(vertex.id() - pcurrent->start >= 0); ret.pvec = vec::Zero(pcurrent->end - pcurrent->start); ret.pvec[vertex.id() - pcurrent->start] = vertex.data().pvec[pcurrent->offset]; return ret; }
map_join_pair collect_map (const graph_type::vertex_type& center, graph_type::edge_type& edge, const graph_type::vertex_type& other) { map_join_pair ret; if (edge.data().role == edge_data::TRAIN) { ret.first.data[other.id()] = edge.data().obs; // save the old rating } else { // use prediction double pred = center.data().factor.dot(other.data().factor); ret.second.data[other.id()] = pred; // save the prediction } return ret; }
std::string save_vertex(const graph_type::vertex_type& v) { std::stringstream sstream; if (is_user(v)) { const std::vector<std::pair<double, graphlab::vertex_id_type> >& top_rated = v.data().top_rated; const std::vector<std::pair<double, graphlab::vertex_id_type> >& top_pred = v.data().top_pred; if (top_rated.size() < 10 || top_pred.size() == 0) { return ""; } // save top rated sstream << v.id() << " "; sstream << pair2str(top_rated[0]); for (size_t i = 1; i < top_rated.size(); ++i) { sstream << "," << (pair2str(top_rated[i])); } // save top pred sstream << " "; sstream << pair2str(top_pred[0]); for (size_t i = 1; i < top_pred.size(); ++i) { sstream << "," << (pair2str(top_pred[i])); } sstream << "\n"; return sstream.str(); } else { return ""; } }
std::string save_vertex(const graph_type::vertex_type& vtx) { std::stringstream strm; strm << vtx.id() << "\t" << vtx.data().dist << "\n"; if (vtx.data().dist == std::numeric_limits<distance_type>::max()) return ""; else return strm.str(); }
/** * \brief Get the other vertex in the edge. */ inline graph_type::vertex_type get_other_vertex(const graph_type::edge_type& edge, const graph_type::vertex_type& vertex) { return vertex.id() == edge.source().id()? edge.target() : edge.source(); }
max_deg_vertex_reducer find_max_deg_vertex(const graph_type::vertex_type vtx) { max_deg_vertex_reducer red; red.degree = vtx.num_in_edges() + vtx.num_out_edges(); red.vid = vtx.id(); return red; }
std::string save_vertex(const graph_type::vertex_type& vtx) { std::stringstream strm; strm << vtx.id() << "\t" << vtx.data().dist << "\n"; return strm.str(); }
std::string save_vertex(graph_type::vertex_type v) { std::stringstream strm; strm << v.id() << "\t" << v.data() << "\n"; return strm.str(); }
std::string save_vertex(graph_type::vertex_type v) { std::stringstream strm; strm << v.id() << "\t" << std::fixed << std::setprecision(17) << v.data() << "\n"; return strm.str(); }
void init_vertex(graph_type::vertex_type& vertex) { vertex.data().color = vertex.id(); }
bool selected_node(const graph_type::vertex_type& vertex){ if (info.is_square()) return true; else return ((vertex.id() >= (uint)info.get_start_node(!pcurrent->transpose)) && (vertex.id() < (uint)info.get_end_node(!pcurrent->transpose))); }
bool select_in_range(const graph_type::vertex_type & vertex){ return vertex.id() >= (uint)pcurrent->start && vertex.id() < (uint)pcurrent->end; }
void assign_vec(graph_type::vertex_type & vertex){ if (!info.is_square()) assert(vertex.id() - pcurrent->start >= 0 && vertex.id() - pcurrent->start < curvec.size()); vertex.data().pvec[pcurrent->offset] = curvec[vertex.id() - pcurrent->start]; }