#ifndef THC_GENERIC_FILE #define THC_GENERIC_FILE "generic/THCTensorMathPairwise.cu" #else THC_API void THCTensor_(add)(THCState *state, THCTensor *self_, THCTensor *src_, real value) { THAssert(THCTensor_(checkGPU)(state, 2, self_, src_)); if (self_ == src_) { if (!THC_pointwiseApply1(state, self_, TensorAddConstantOp(value))) { THArgCheck(false, 2, CUTORCH_DIM_WARNING); } } else { THCTensor_(resizeAs)(state, self_, src_); if (!THC_pointwiseApply2(state, self_, src_, TensorAddConstantOp(value))) { THArgCheck(false, 2, CUTORCH_DIM_WARNING); } } THCudaCheck(cudaGetLastError()); } THC_API void THCTensor_(sub)(THCState *state, THCTensor *self_, THCTensor *src_, real value) { THAssert(THCTensor_(checkGPU)(state, 2, self_, src_)); if (self_ == src_) { if (!THC_pointwiseApply1(state, self_, TensorSubConstantOp(value))) { THArgCheck(false, 2, CUTORCH_DIM_WARNING); } } else { THCTensor_(resizeAs)(state, self_, src_); if (!THC_pointwiseApply2(state, self_, src_, TensorSubConstantOp(value))) { THArgCheck(false, 2, CUTORCH_DIM_WARNING); } } THCudaCheck(cudaGetLastError()); } THC_API void THCTensor_(mul)(THCState *state, THCTensor *self_, THCTensor *src_, real value) { THAssert(THCTensor_(checkGPU)(state, 2, self_, src_)); if (self_ == src_) { if (!THC_pointwiseApply1(state, self_, TensorMulConstantOp(value))) { THArgCheck(false, 2, CUTORCH_DIM_WARNING); } } else { THCTensor_(resizeAs)(state, self_, src_); if (!THC_pointwiseApply2(state, self_, src_, TensorMulConstantOp(value))) { THArgCheck(false, 2, CUTORCH_DIM_WARNING); } } THCudaCheck(cudaGetLastError()); } THC_API void THCTensor_(div)(THCState* state, THCTensor *self_, THCTensor *src_, real value) { THAssert(THCTensor_(checkGPU)(state, 2, self_, src_)); THArgCheck(value != ScalarConvert::to(0), 3, "divide by zero"); if (self_ == src_) { if (!THC_pointwiseApply1(state, self_, TensorDivConstantOp(value))) { THArgCheck(false, 2, CUTORCH_DIM_WARNING); } } else { THCTensor_(resizeAs)(state, self_, src_); if (!THC_pointwiseApply2(state, self_, src_, TensorDivConstantOp(value))) { THArgCheck(false, 2, CUTORCH_DIM_WARNING); } } THCudaCheck(cudaGetLastError()); } #endif