I read the THNN recently, I am confusing about the TemporalConvolution.c (I can not understand the achievement)
My Question is:

each iteration in
for
is corresponding to many outchannels ? (nFrame
out feature dimensions). And why choose this way (I find it hard to understand it) 
The input is
LxC
instead ofCxL
? 
should we put these two line
int64_t outputFrameStride = (kW1)/dW+1; int64_t inputFrameStride = outputFrameStride*dW;
out of thefor
operation ?
for(k = 0; nOutputFrame > 0; k++)
{
int64_t outputFrameStride = (kW1)/dW+1;
int64_t inputFrameStride = outputFrameStride*dW;
int64_t nFrame = (nInputFramek*dWkW)/inputFrameStride + 1;
nOutputFrame = nFrame;
THTensor_(setStorage2d)(inputWindow, input>storage,
input>storageOffset+k*dW*input>size[1],
nFrame, inputFrameStride*input>size[1],
kW*input>size[1], 1);
THTensor_(setStorage2d)(outputWindow, output>storage,
output>storageOffset + k*output>size[1],
nFrame, outputFrameStride*output>size[1],
output>size[1], 1);
THTensor *tweight = THTensor_(new)();
THTensor_(transpose)(tweight, weight, 0, 1);
THTensor_(addmm)(outputWindow, 1, outputWindow, 1, inputWindow, tweight);
THTensor_(free)(tweight);
}
}