         
         // Test output lens for a given mini-batch
         if (DEBUG && test_batch == batch) {
-            printf("i=%d, len=%d, out_len=%d \n", 0, wordvec.lens[0], output.lens[0]);
+            printf("i=%d, len=%ld, out_len=%ld \n", 0, wordvec.lens[0], output.lens[0]);
             for (int i=1; i < wordvec.b_size; i++) {
-                printf("i=%d, len=%d, out_len=%d \n", i, wordvec.lens[i] - wordvec.lens[i-1],  output.lens[i]-output.lens[i-1]);
+                printf("i=%d, len=%ld, out_len=%ld \n", i, wordvec.lens[i] - wordvec.lens[i-1],  output.lens[i]-output.lens[i-1]);
             }
         }
         

        
        // Test sentence lens for a given mini-batch
        if (DEBUG && (test_batch == batch)) {
            printf("i=%d, len=%d \n", 0, wordvec.lens[0]);
            for (int i=1; i < wordvec.b_size; i++) {
                printf("i=%d, len=%d \n", i, wordvec.lens[i] - wordvec.lens[i-1]);
            }
        }
        

#define MIN(a,b) ((a<b)?a:b)
#define MAX(a,b) ((a>b)?a:b)

#define DEBUG 1

typedef struct WORDVECS{
    float* w;
