Commit bef9c595 authored by rusty1s's avatar rusty1s
Browse files

generic THCDegree

parent acbdd5db
void THCDegree(THCState *state, THCudaLongTensor *self, THCudaLongTensor *index) {
int nEdges = THCudaLongTensor_nElement(state, index);
THCudaLongTensor *one = THCudaLongTensor_newWithSize1d(state, nEdges);
THCudaLongTensor_fill(state, one, 1);
#define THCTensor_(NAME) TH_CONCAT_4(TH,CReal,Tensor_,NAME)
THCudaLongTensor_fill(state, self, 0);
THCudaLongTensor_scatterAdd(state, self, 0, index, one);
THCudaLongTensor_free(state, one);
}
#include "generic/THCDegree.cu"
#include "THC/THCGenerateAllTypes.h"
......@@ -16,7 +16,7 @@ void THCGreedy(THCState *state, THCudaLongTensor *cluster, THCudaLongTensor *row
THCudaLongTensor *prop = THCudaLongTensor_newClone(state, cluster);
THCudaLongTensor *deg = THCudaLongTensor_newWithSize1d(state, nNodes);
THCDegree(state, deg, row);
THCudaLongTensor_degree(state, deg, row);
THCudaLongTensor *cumDeg = THCudaLongTensor_newWithSize1d(state, nNodes);
THCudaLongTensor_cumsum(state, cumDeg, deg, 0);
......
#ifndef THC_GENERIC_FILE
#define THC_GENERIC_FILE "generic/THCDegree.cu"
#else
void THCTensor_(degree)(THCState *state, THCTensor *self, THCudaLongTensor *index) {
int nEdges = THCudaLongTensor_nElement(state, index);
THCTensor *one = THCTensor_(newWithSize1d)(state, nEdges);
THCTensor_(fill)(state, one, 1);
THCTensor_(fill)(state, self, 0);
THCTensor_(scatterAdd)(state, self, 0, index, one);
THCTensor_(free)(state, one);
}
#endif // THC_GENERIC_FILE
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment