<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -50,9 +50,9 @@ char const help_message [] =
 
 /* ----------------------------------------------------------------- */
 /* long options codes */
-enum { 
+enum {
   opt_meta = 1000,
-  opt_frames, 
+  opt_frames,
   opt_descriptors,
   opt_gss,
   opt_first_octave,
@@ -106,51 +106,51 @@ save_gss (VlSiftFilt * filt, VlFileMeta * fm, const char * basename,
   if (! fm -&gt; active) {
     return VL_ERR_OK ;
   }
-  
+
   w = vl_sift_get_octave_width  (filt) ;
   h = vl_sift_get_octave_height (filt) ;
-  
+
   pim.width     = w ;
   pim.height    = h ;
   pim.max_value = 255 ;
   pim.is_raw    = 1 ;
-  
+
   buffer = malloc (sizeof(vl_uint8) * w * h) ;
   if (! buffer) {
     err = VL_ERR_ALLOC ;
     goto save_gss_quit ;
   }
-  
+
   q = vl_string_copy (tmp, sizeof(tmp), basename) ;
   if (q &gt;= sizeof(tmp)) {
     err = VL_ERR_OVERFLOW ;
     goto save_gss_quit ;
   }
-  
+
   for (s = 0 ; s &lt; S ; ++s) {
     vl_sift_pix * pt = vl_sift_get_octave (filt, s) ;
-    
+
     /* conversion */
     for (i = 0 ; i &lt; w * h ; ++i) {
       buffer [i] = (vl_uint8) pt [i] ;
     }
-    
+
     /* save */
     snprintf(tmp + q, sizeof(tmp) - q, &quot;_%02d_%03d&quot;, o, s) ;
 
     err = vl_file_meta_open (fm, tmp, &quot;wb&quot;) ;
-    if (err) goto save_gss_quit ;    
-    
+    if (err) goto save_gss_quit ;
+
     err = vl_pgm_insert (fm -&gt; file, &amp;pim, buffer) ;
     if (err) goto save_gss_quit ;
 
     if (verbose) {
       printf(&quot;sift: saved gss level to '%s'\n&quot;, fm -&gt; name) ;
     }
-    
+
     vl_file_meta_close (fm) ;
   }
-    
+
  save_gss_quit : ;
   if (buffer) free (buffer) ;
   vl_file_meta_close (fm) ;
@@ -170,15 +170,15 @@ korder (void const* a, void const* b) {
 }
 
 /* ---------------------------------------------------------------- */
-/** @brief SIFT driver entry point 
+/** @brief SIFT driver entry point
  **/
 int
 main(int argc, char **argv)
-{  
-  /* algorithm parameters */ 
-  double   edge_thresh  = -1 ;  
-  double   peak_thresh  = -1 ;  
-  double   magnif       = -1 ;  
+{
+  /* algorithm parameters */
+  double   edge_thresh  = -1 ;
+  double   peak_thresh  = -1 ;
+  double   magnif       = -1 ;
   int      O = -1, S = 3, omin = -1 ;
 
   vl_bool  err    = VL_ERR_OK ;
@@ -195,13 +195,13 @@ main(int argc, char **argv)
   VlFileMeta met  = {0, &quot;%.meta&quot;,  VL_PROT_ASCII, &quot;&quot;, 0} ;
   VlFileMeta gss  = {0, &quot;%.pgm&quot;,   VL_PROT_ASCII, &quot;&quot;, 0} ;
   VlFileMeta ifr  = {0, &quot;%.frame&quot;, VL_PROT_ASCII, &quot;&quot;, 0} ;
-  
+
 #define ERR(msg, arg) {                                         \
     err = VL_ERR_BAD_ARG ;                                      \
     snprintf(err_msg, sizeof(err_msg), msg, arg) ;              \
     break ;                                                     \
   }
-  
+
   /* -----------------------------------------------------------------
    *                                                     Parse options
    * -------------------------------------------------------------- */
@@ -222,13 +222,13 @@ main(int argc, char **argv)
       /* unkown option ............................................ */
       ERR(&quot;Invalid option '%s'.&quot;, argv [optind - 1]) ;
       break ;
-      
+
     case ':' :
       /* missing argument ......................................... */
-      ERR(&quot;Missing mandatory argument for option '%s'.&quot;, 
+      ERR(&quot;Missing mandatory argument for option '%s'.&quot;,
           argv [optind - 1]) ;
       break ;
-   
+
     case 'h' :
       /* --help ................................................... */
       printf (help_message, argv [0]) ;
@@ -238,7 +238,7 @@ main(int argc, char **argv)
       printf (&quot;Meta         filespec: `%s'\n&quot;, met.pattern) ;
       printf (&quot;GSS          filespec: '%s'\n&quot;, gss.pattern) ;
       printf (&quot;Read frames  filespec: '%s'\n&quot;, ifr.pattern) ;
-      printf (&quot;Version: driver %s; libvl %s\n&quot;, 
+      printf (&quot;Version: driver %s; libvl %s\n&quot;,
               VL_XSTRINGIFY(VL_SIFT_DRIVER_VERSION),
               vl_get_version_string()) ;
       exit (0) ;
@@ -252,7 +252,7 @@ main(int argc, char **argv)
     case 'o' :
       /* --output  ................................................ */
       err = vl_file_meta_parse (&amp;out, optarg) ;
-      if (err) 
+      if (err)
         ERR(&quot;The arguments of '%s' is invalid.&quot;, argv [optind - 1]) ;
       force_output = 1 ;
       break ;
@@ -260,41 +260,41 @@ main(int argc, char **argv)
     case opt_frames :
       /* --frames  ................................................ */
       err = vl_file_meta_parse (&amp;frm, optarg) ;
-      if (err) 
+      if (err)
         ERR(&quot;The arguments of '%s' is invalid.&quot;, argv [optind - 1]) ;
       break ;
 
     case opt_descriptors :
       /* --descriptor ............................................. */
       err = vl_file_meta_parse (&amp;dsc, optarg) ;
-      if (err) 
+      if (err)
         ERR(&quot;The arguments of '%s' is invalid.&quot;, argv [optind - 1]) ;
       break;
-      
+
     case opt_meta :
       /* --meta ................................................... */
-      err = vl_file_meta_parse (&amp;met, optarg) ;      
-      if (err) 
+      err = vl_file_meta_parse (&amp;met, optarg) ;
+      if (err)
         ERR(&quot;The arguments of '%s' is invalid.&quot;, argv [optind - 1]) ;
-      
+
       if (met.protocol != VL_PROT_ASCII)
         ERR(&quot;meta file supports only ASCII protocol&quot;, argv[optind - 1]) ;
       break ;
 
     case opt_read_frames :
       /* --read_frames ............................................ */
-      err = vl_file_meta_parse (&amp;ifr, optarg) ;      
-      if (err) 
-        ERR(&quot;The arguments of '%s' is invalid.&quot;, argv [optind - 1]) ;      
+      err = vl_file_meta_parse (&amp;ifr, optarg) ;
+      if (err)
+        ERR(&quot;The arguments of '%s' is invalid.&quot;, argv [optind - 1]) ;
       break ;
 
     case opt_gss :
       /* --gss .................................................... */
       err = vl_file_meta_parse (&amp;gss, optarg) ;
-      if (err) 
+      if (err)
         ERR(&quot;The arguments of '%s' is invalid.&quot;, argv [optind - 1]) ;
       break ;
-    
+
 
 
     case 'O' :
@@ -304,7 +304,7 @@ main(int argc, char **argv)
         ERR(&quot;The argument of '%s' must be a non-negative integer.&quot;,
             argv [optind - 1]) ;
       break ;
-      
+
     case 'S' :
       /* --levels ............................................... */
       n = sscanf (optarg, &quot;%d&quot;, &amp;S) ;
@@ -316,11 +316,11 @@ main(int argc, char **argv)
     case opt_first_octave :
       /* --first-octave ......................................... */
       n = sscanf (optarg, &quot;%d&quot;, &amp;omin) ;
-      if (n == 0 || omin &lt; 0)
-        ERR(&quot;The argument of '%s' must be a non-negative integer.&quot;,
+      if (n == 0)
+        ERR(&quot;The argument of '%s' must be an integer.&quot;,
             argv [optind - 1]) ;
       break ;
-      
+
 
 
     case opt_edge_thresh :
@@ -343,7 +343,7 @@ main(int argc, char **argv)
       /* --magnif  .............................................. */
       n = sscanf (optarg, &quot;%lf&quot;, &amp;magnif) ;
       if (n == 0 || magnif &lt; 1)
-        ERR(&quot;The argument of '%s' must ve a non-negative float.&quot;,
+        ERR(&quot;The argument of '%s' must be a non-negative float.&quot;,
             argv [optind - 1]) ;
       break ;
 
@@ -352,19 +352,19 @@ main(int argc, char **argv)
       /* --orientations ......................................... */
       force_orientations = 1 ;
       break ;
-      
+
     case 0 :
     default :
       /* should not get here ...................................... */
       assert (0) ;
       break ;
     }
-  }  
-  
+  }
+
   /* check for parsing errors */
   if (err) {
-    fprintf(stderr, &quot;%s: error: %s (%d)\n&quot;, 
-            argv [0], 
+    fprintf(stderr, &quot;%s: error: %s (%d)\n&quot;,
+            argv [0],
             err_msg, err) ;
     exit (1) ;
   }
@@ -372,8 +372,8 @@ main(int argc, char **argv)
   /* parse other arguments (filenames) */
   argc -= optind ;
   argv += optind ;
-  
-  /* 
+
+  /*
      if --output is not specified, specifying --frames or --descriptors
      prevent the aggregate outout file to be produced.
   */
@@ -387,22 +387,22 @@ main(int argc, char **argv)
     printf(&quot;%3s &quot;,  (fm).active ? &quot;yes&quot; : &quot;no&quot;) ;                       \
     printf(&quot;%-6s &quot;, vl_string_protocol_name ((fm).protocol)) ;          \
     printf(&quot;%-10s\n&quot;, (fm).pattern) ;
-    
+
     PRNFO(&quot;write aggregate . &quot;, out) ;
     PRNFO(&quot;write frames .... &quot;, frm) ;
     PRNFO(&quot;write descriptors &quot;, dsc) ;
     PRNFO(&quot;write meta ...... &quot;, met) ;
     PRNFO(&quot;write GSS ....... &quot;, gss) ;
     PRNFO(&quot;read  frames .... &quot;, ifr) ;
-    
+
     if (force_orientations)
       printf(&quot;sift: will compute orientations\n&quot;) ;
   }
-  
+
   /* ------------------------------------------------------------------
    *                                         Process one image per time
    * --------------------------------------------------------------- */
-    
+
   while (argc--) {
 
     char             basename [1024] ;
@@ -419,27 +419,27 @@ main(int argc, char **argv)
 
     double           *ikeys = 0 ;
     int              nikeys = 0, ikeys_size = 0 ;
-    
+
     /* ...............................................................
      *                                                 Determine files
      * ............................................................ */
-    
+
     /* get basenmae from filename */
     q = vl_string_basename (basename, sizeof(basename), name, 1) ;
-    
+
     err = (q &gt;= sizeof(basename)) ;
 
     if (err) {
-      snprintf(err_msg, sizeof(err_msg), 
+      snprintf(err_msg, sizeof(err_msg),
                &quot;Basename of '%s' is too long&quot;, name);
       err = VL_ERR_OVERFLOW ;
       goto done ;
     }
-    
+
     if (verbose) {
       printf (&quot;sift: &lt;== '%s'\n&quot;, name) ;
     }
-    
+
     if (verbose &gt; 1) {
       printf (&quot;sift: basename is '%s'\n&quot;, basename) ;
     }
@@ -448,11 +448,11 @@ main(int argc, char **argv)
     in = fopen (name, &quot;rb&quot;) ;
     if (!in) {
       err = VL_ERR_IO ;
-      snprintf(err_msg, sizeof(err_msg), 
+      snprintf(err_msg, sizeof(err_msg),
                &quot;Could not open '%s' for reading.&quot;, name) ;
       goto done ;
     }
-    
+
     /* ...............................................................
      *                                                       Read data
      * ............................................................ */
@@ -463,37 +463,37 @@ main(int argc, char **argv)
     if (err) {
       switch (vl_err_no) {
       case  VL_ERR_PGM_IO :
-        snprintf(err_msg, sizeof(err_msg),  
+        snprintf(err_msg, sizeof(err_msg),
                  &quot;Cannot read from '%s'.&quot;, name) ;
         err = VL_ERR_IO ;
         break ;
 
       case VL_ERR_PGM_INV_HEAD :
-        snprintf(err_msg, sizeof(err_msg),  
+        snprintf(err_msg, sizeof(err_msg),
                  &quot;'%s' contains a malformed PGM header.&quot;, name) ;
         err = VL_ERR_IO ;
         goto done ;
       }
     }
-    
+
     if (verbose)
       printf (&quot;sift: image is %d by %d pixels\n&quot;,
               pim. width,
               pim. height) ;
-    
+
     /* allocate buffer */
-    data  = malloc(vl_pgm_get_npixels (&amp;pim) * 
+    data  = malloc(vl_pgm_get_npixels (&amp;pim) *
                    vl_pgm_get_bpp       (&amp;pim) * sizeof (vl_uint8)   ) ;
-    fdata = malloc(vl_pgm_get_npixels (&amp;pim) * 
+    fdata = malloc(vl_pgm_get_npixels (&amp;pim) *
                    vl_pgm_get_bpp       (&amp;pim) * sizeof (vl_sift_pix)) ;
-    
+
     if (!data || !fdata) {
       err = VL_ERR_ALLOC ;
-      snprintf(err_msg, sizeof(err_msg), 
+      snprintf(err_msg, sizeof(err_msg),
                &quot;Could not allocate enough memory.&quot;) ;
       goto done ;
-    } 
-    
+    }
+
     /* read PGM body */
     err  = vl_pgm_extract_data (in, &amp;pim, data) ;
 
@@ -506,7 +506,7 @@ main(int argc, char **argv)
     /* convert data type */
     for (q = 0 ; q &lt; pim.width * pim.height ; ++q)
       fdata [q] = data [q] ;
-    
+
     /* ...............................................................
      *                                     Optionally source keypoints
      * ............................................................ */
@@ -521,11 +521,11 @@ main(int argc, char **argv)
                &quot;Could not open '%s' for &quot; #op, name) ;          \
       goto done ;                                               \
     }
-    
+
     if (ifr.active) {
-      
+
       /* open file */
-      err = vl_file_meta_open (&amp;ifr, basename, &quot;rb&quot;) ; 
+      err = vl_file_meta_open (&amp;ifr, basename, &quot;rb&quot;) ;
       WERR(ifr.name, reading) ;
 
 #define QERR                                                            \
@@ -535,20 +535,20 @@ main(int argc, char **argv)
         err = VL_ERR_IO ;                                               \
         goto done ;                                                     \
       }
-      
+
       while (1) {
         double x, y, s, th ;
 
         /* read next guy */
         err = vl_file_meta_get_double (&amp;ifr, &amp;x) ;
         if   (err == VL_ERR_EOF) break;
-        else QERR ;        
+        else QERR ;
         err = vl_file_meta_get_double (&amp;ifr, &amp;y ) ; QERR ;
         err = vl_file_meta_get_double (&amp;ifr, &amp;s ) ; QERR ;
         err = vl_file_meta_get_double (&amp;ifr, &amp;th) ;
         if   (err == VL_ERR_EOF) break;
         else QERR ;
-        
+
         /* make enough space */
         if (ikeys_size &lt; nikeys + 1) {
           ikeys_size += 10000 ;
@@ -566,7 +566,7 @@ main(int argc, char **argv)
 
       /* now order by scale */
       qsort (ikeys, nikeys, 4 * sizeof(double), korder) ;
-      
+
       if (verbose) {
         printf (&quot;sift: read %d keypoints from '%s'\n&quot;, nikeys, ifr.name) ;
       }
@@ -578,19 +578,19 @@ main(int argc, char **argv)
     /* ...............................................................
      *                                               Open output files
      * ............................................................ */
-    
+
     err = vl_file_meta_open (&amp;out, basename, &quot;wb&quot;) ; WERR(out.name, writing) ;
     err = vl_file_meta_open (&amp;dsc, basename, &quot;wb&quot;) ; WERR(dsc.name, writing) ;
-    err = vl_file_meta_open (&amp;frm, basename, &quot;wb&quot;) ; WERR(frm.name, writing) ;   
+    err = vl_file_meta_open (&amp;frm, basename, &quot;wb&quot;) ; WERR(frm.name, writing) ;
     err = vl_file_meta_open (&amp;met, basename, &quot;wb&quot;) ; WERR(met.name, writing) ;
 
     if (verbose &gt; 1) {
-      if (out.active) printf(&quot;sift: writing all ....... to . '%s'\n&quot;, out.name); 
-      if (frm.active) printf(&quot;sift: writing frames .... to . '%s'\n&quot;, frm.name); 
-      if (dsc.active) printf(&quot;sift: writing descriptors to . '%s'\n&quot;, dsc.name); 
+      if (out.active) printf(&quot;sift: writing all ....... to . '%s'\n&quot;, out.name);
+      if (frm.active) printf(&quot;sift: writing frames .... to . '%s'\n&quot;, frm.name);
+      if (dsc.active) printf(&quot;sift: writing descriptors to . '%s'\n&quot;, dsc.name);
       if (met.active) printf(&quot;sift: writign meta ...... to . '%s'\n&quot;, met.name);
     }
-    
+
     /* ...............................................................
      *                                                     Make filter
      * ............................................................ */
@@ -602,19 +602,19 @@ main(int argc, char **argv)
     if (magnif      &gt;= 0) vl_sift_set_magnif      (filt, magnif) ;
 
     if (!filt) {
-      snprintf (err_msg, sizeof(err_msg), 
+      snprintf (err_msg, sizeof(err_msg),
                 &quot;Could not create SIFT filter.&quot;) ;
       err = VL_ERR_ALLOC ;
       goto done ;
     }
 
-    if (verbose &gt; 1) {    
+    if (verbose &gt; 1) {
       printf (&quot;sift: filter settings:\n&quot;) ;
-      printf (&quot;sift:   octaves      (O)     = %d\n&quot;, 
+      printf (&quot;sift:   octaves      (O)     = %d\n&quot;,
               vl_sift_get_noctaves     (filt)) ;
       printf (&quot;sift:   levels       (S)     = %d\n&quot;,
               vl_sift_get_nlevels      (filt)) ;
-      printf (&quot;sift:   first octave (o_min) = %d\n&quot;, 
+      printf (&quot;sift:   first octave (o_min) = %d\n&quot;,
               vl_sift_get_octave_first (filt)) ;
       printf (&quot;sift:   edge thresh           = %g\n&quot;,
               vl_sift_get_edge_thresh  (filt)) ;
@@ -625,7 +625,7 @@ main(int argc, char **argv)
       printf (&quot;sift: will source frames? %s\n&quot;,
               ikeys ? &quot;yes&quot; : &quot;no&quot;) ;
       printf (&quot;sift: will force orientations? %s\n&quot;,
-              force_orientations ? &quot;yes&quot; : &quot;no&quot;) ;      
+              force_orientations ? &quot;yes&quot; : &quot;no&quot;) ;
     }
 
     /* ...............................................................
@@ -636,7 +636,7 @@ main(int argc, char **argv)
     while (1) {
       VlSiftKeypoint const *keys ;
       int                   nkeys ;
-      
+
       /* calculate the GSS for the next octave .................... */
       if (first) {
         first = 0 ;
@@ -644,7 +644,7 @@ main(int argc, char **argv)
       } else {
         err = vl_sift_process_next_octave  (filt) ;
       }
-      
+
       if (err) {
         err = VL_ERR_OK ;
         break ;
@@ -668,11 +668,11 @@ main(int argc, char **argv)
       /* run detector ............................................. */
       if (ikeys == 0) {
         vl_sift_detect (filt) ;
-        
+
         keys  = vl_sift_get_keypoints     (filt) ;
         nkeys = vl_sift_get_nkeypoints (filt) ;
         i     = 0 ;
-        
+
         if (verbose &gt; 1) {
           printf (&quot;sift: detected %d (unoriented) keypoints\n&quot;, nkeys) ;
         }
@@ -689,28 +689,28 @@ main(int argc, char **argv)
 
         /* obtain keypoint orientations ........................... */
         if (ikeys) {
-          vl_sift_keypoint_init (filt, &amp;ik, 
+          vl_sift_keypoint_init (filt, &amp;ik,
                                  ikeys [4 * i + 0],
                                  ikeys [4 * i + 1],
                                  ikeys [4 * i + 2]) ;
-          
+
           if (ik.o != vl_sift_get_octave_index (filt)) {
             break ;
           }
-            
+
           k          = &amp;ik ;
-          
+
           /* optionally compute orientations too */
           if (force_orientations) {
-            nangles = vl_sift_calc_keypoint_orientations 
-              (filt, angles, k) ;            
+            nangles = vl_sift_calc_keypoint_orientations
+              (filt, angles, k) ;
           } else {
             angles [0] = ikeys [4 * i + 3] ;
             nangles    = 1 ;
           }
         } else {
           k = keys + i ;
-          nangles = vl_sift_calc_keypoint_orientations 
+          nangles = vl_sift_calc_keypoint_orientations
             (filt, angles, k) ;
         }
 
@@ -720,7 +720,7 @@ main(int argc, char **argv)
 
           /* compute descriptor (if necessary) */
           if (out.active || dsc.active) {
-            vl_sift_calc_keypoint_descriptor 
+            vl_sift_calc_keypoint_descriptor
               (filt, descr, k, angles [q]) ;
           }
 
@@ -735,7 +735,7 @@ main(int argc, char **argv)
             }
             if (out.protocol == VL_PROT_ASCII) fprintf(out.file, &quot;\n&quot;) ;
           }
-          
+
           if (frm.active) {
             vl_file_meta_put_double (&amp;frm, k -&gt; x     ) ;
             vl_file_meta_put_double (&amp;frm, k -&gt; y     ) ;
@@ -760,7 +760,7 @@ main(int argc, char **argv)
     /* ...............................................................
      *                                                       Finish up
      * ............................................................ */
-    
+
     if (met.active) {
       fprintf(met.file, &quot;&lt;sift\n&quot;) ;
       fprintf(met.file, &quot;  input       = '%s'\n&quot;, name) ;
@@ -772,7 +772,7 @@ main(int argc, char **argv)
       }
       fprintf(met.file, &quot;&gt;\n&quot;) ;
     }
-    
+
   done :
     /* release input keys buffer */
     if (ikeys) {
@@ -792,26 +792,26 @@ main(int argc, char **argv)
       free (fdata) ;
       fdata = 0 ;
     }
-    
+
     /* release image data */
     if (data) {
       free (data) ;
       data = 0 ;
     }
-    
+
     /* close files */
     if (in) {
       fclose (in) ;
       in = 0 ;
     }
-    
+
     vl_file_meta_close (&amp;out) ;
     vl_file_meta_close (&amp;frm) ;
     vl_file_meta_close (&amp;dsc) ;
     vl_file_meta_close (&amp;met) ;
     vl_file_meta_close (&amp;gss) ;
     vl_file_meta_close (&amp;ifr) ;
-    
+
     /* if bad print error message */
     if (err) {
       fprintf
@@ -822,7 +822,7 @@ main(int argc, char **argv)
       exit_code = 1 ;
     }
   }
-  
+
   /* quit */
   return exit_code ;
 }</diff>
      <filename>src/sift.c</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,7 @@ vl_demo_print('sift_basic_0') ;
 % --------------------------------------------------------------------
 I = single(rgb2gray(I)) ;
 
-clf ; imagesc(I) 
+clf ; imagesc(I)
 axis equal ; axis off ; axis tight ;
 vl_demo_print('sift_basic_1') ;
 
@@ -29,7 +29,7 @@ vl_demo_print('sift_basic_1') ;
 [f,d] = vl_sift(I) ;
 
 hold on ;
-perm = randperm(size(f,2)) ; 
+perm = randperm(size(f,2)) ;
 sel  = perm(1:50) ;
 h1   = vl_plotframe(f(:,sel)) ; set(h1,'color','k','linewidth',3) ;
 h2   = vl_plotframe(f(:,sel)) ; set(h2,'color','y','linewidth',2) ;
@@ -50,7 +50,7 @@ vl_demo_print('sift_basic_3') ;
 % --------------------------------------------------------------------
 %                                                      Custom keypoint
 % --------------------------------------------------------------------
-clf ; imagesc(I(1:200,1:200,:)) 
+clf ; imagesc(I(1:200,1:200,:))
 axis equal ; axis off ; axis tight ;
 hold on;
 </diff>
      <filename>toolbox/demo/vl_demo_sift_basic.m</filename>
    </modified>
    <modified>
      <diff>@@ -20,7 +20,7 @@ I = single(I) ;
 % --------------------------------------------------------------------
 
 [err,msg] = vl_demo_cmd('sift',['&quot;' p_img '&quot; --output=ascii://&quot;' p_txt ...
-                   '&quot; --peak-thresh=3.4 --edge-thresh=10']) ;
+                   '&quot; --peak-thresh=3.4 --edge-thresh=10 --first-octave=-1']) ;
 if (err), error(msg) ; end
 
 data      = load(p_txt,'-ASCII') ;</diff>
      <filename>toolbox/demo/vl_demo_sift_cmd.m</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>4287d27895aa4634afa511bf7f2e8fc66b7d1e37</id>
    </parent>
  </parents>
  <author>
    <name>Andrea Vedaldi</name>
    <email>vedaldi@gmail.com</email>
  </author>
  <url>http://github.com/vlfeat/vlfeat/commit/c94b0c6cdff5a0b7dba109dc36be73e2c7528feb</url>
  <id>c94b0c6cdff5a0b7dba109dc36be73e2c7528feb</id>
  <committed-date>2009-08-27T15:35:31-07:00</committed-date>
  <authored-date>2009-08-27T15:35:31-07:00</authored-date>
  <message>src/sift: fixes a bug preventing sift from accepting a negative value for the --first-octave option</message>
  <tree>d5af26bcbb264552f6e9a774ff8cbbed65672abb</tree>
  <committer>
    <name>Andrea Vedaldi</name>
    <email>vedaldi@gmail.com</email>
  </committer>
</commit>
