Commit bef9c595 authored by rusty1s's avatar rusty1s
Browse files

generic THCDegree

parent acbdd5db
void THCDegree(THCState *state, THCudaLongTensor *self, THCudaLongTensor *index) { #define THCTensor_(NAME) TH_CONCAT_4(TH,CReal,Tensor_,NAME)
int nEdges = THCudaLongTensor_nElement(state, index);
THCudaLongTensor *one = THCudaLongTensor_newWithSize1d(state, nEdges);
THCudaLongTensor_fill(state, one, 1);
THCudaLongTensor_fill(state, self, 0); #include "generic/THCDegree.cu"
THCudaLongTensor_scatterAdd(state, self, 0, index, one); #include "THC/THCGenerateAllTypes.h"
THCudaLongTensor_free(state, one);
}
...@@ -16,7 +16,7 @@ void THCGreedy(THCState *state, THCudaLongTensor *cluster, THCudaLongTensor *row ...@@ -16,7 +16,7 @@ void THCGreedy(THCState *state, THCudaLongTensor *cluster, THCudaLongTensor *row
THCudaLongTensor *prop = THCudaLongTensor_newClone(state, cluster); THCudaLongTensor *prop = THCudaLongTensor_newClone(state, cluster);
THCudaLongTensor *deg = THCudaLongTensor_newWithSize1d(state, nNodes); THCudaLongTensor *deg = THCudaLongTensor_newWithSize1d(state, nNodes);
THCDegree(state, deg, row); THCudaLongTensor_degree(state, deg, row);
THCudaLongTensor *cumDeg = THCudaLongTensor_newWithSize1d(state, nNodes); THCudaLongTensor *cumDeg = THCudaLongTensor_newWithSize1d(state, nNodes);
THCudaLongTensor_cumsum(state, cumDeg, deg, 0); 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