I read the THNN recently, I am confusing about the TemporalConvolution.c 4 (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 of CxL ?


should we put these two line int64_t outputFrameStride = (kW-1)/dW+1; int64_t inputFrameStride = outputFrameStride*dW; out of the for operation ?


for(k = 0; nOutputFrame > 0; k++)  
    {
      int64_t outputFrameStride = (kW-1)/dW+1;
      int64_t inputFrameStride = outputFrameStride*dW;
      int64_t nFrame = (nInputFrame-k*dW-kW)/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);
    }
  }