| 61 | } |
| 62 | |
| 63 | FloatFeatureVec GetNodeFloat32Feature(const NodeIdVec& node_ids, |
| 64 | const std::vector<int>& fids) { |
| 65 | FloatFeatureVec features(node_ids.size()); |
| 66 | #ifdef OPENMP |
| 67 | #pragma omp parallel for |
| 68 | #endif |
| 69 | for (int32_t i = 0 ; i < static_cast<int32_t>(node_ids.size()); ++i) { |
| 70 | auto node = EulerGraph()->GetNodeByID(node_ids[i]); |
| 71 | if (node != nullptr) { |
| 72 | node->GetFloat32Feature(fids, &features[i]); |
| 73 | } else { |
| 74 | features[i].resize(fids.size()); |
| 75 | } |
| 76 | } |
| 77 | return features; |
| 78 | } |
| 79 | |
| 80 | UInt64FeatureVec GetNodeUint64Feature(const NodeIdVec& node_ids, |
| 81 | const std::vector<int>& fids) { |
no test coverage detected