libcvd-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] libcvd configure configure.in cvd_src/faster_co...


From: Edward Rosten
Subject: [libcvd-members] libcvd configure configure.in cvd_src/faster_co...
Date: Thu, 23 Aug 2007 01:33:35 +0000

CVSROOT:        /cvsroot/libcvd
Module name:    libcvd
Changes by:     Edward Rosten <edrosten>        07/08/23 01:33:35

Modified files:
        .              : configure configure.in 
        cvd_src        : faster_corner_12.cxx 

Log message:
        SSE fast-12 probably fixed. Can be disabled with --disable-ssefast12
        
        All SSE FAST detectors pass "make test-fast" with valgrind.
        
        All FAST detectors now use SSE by default id possible.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/configure?cvsroot=libcvd&r1=1.99&r2=1.100
http://cvs.savannah.gnu.org/viewcvs/libcvd/configure.in?cvsroot=libcvd&r1=1.100&r2=1.101
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd_src/faster_corner_12.cxx?cvsroot=libcvd&r1=1.2&r2=1.3

Patches:
Index: configure
===================================================================
RCS file: /cvsroot/libcvd/libcvd/configure,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -b -r1.99 -r1.100
--- configure   23 Aug 2007 00:19:04 -0000      1.99
+++ configure   23 Aug 2007 01:33:34 -0000      1.100
@@ -859,9 +859,9 @@
 Optional Features:
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-ssefast12      Enable currently broken SSE FAST-12 detector
   --disable-ssefast9      Disable the probably OK SSE FAST-9 detector
   --disable-ssefast10     Disable the probably OK SSE FAST-10 detector
+  --disable-ssefast12     Disable the probably OK SSE FAST-12 detector
   --enable-missingfast=7,8,...  compile without certain FAST detectors.
 
 Optional Packages:
@@ -9220,11 +9220,6 @@
 echo Checking for extra build options
 echo --------------------------------
 
-# Check whether --enable-ssefast12 or --disable-ssefast12 was given.
-if test "${enable_ssefast12+set}" = set; then
-  enableval="$enable_ssefast12"
-
-fi;
 # Check whether --enable-ssefast9 or --disable-ssefast9 was given.
 if test "${enable_ssefast9+set}" = set; then
   enableval="$enable_ssefast9"
@@ -9235,6 +9230,11 @@
   enableval="$enable_ssefast10"
 
 fi;
+# Check whether --enable-ssefast12 or --disable-ssefast12 was given.
+if test "${enable_ssefast12+set}" = set; then
+  enableval="$enable_ssefast12"
+
+fi;
 
 if test "$enable_ssefast9"  != "no"
 then
@@ -9248,23 +9248,14 @@
 
 fi
 
-if test "$enable_ssefast12" = yes
+if test "$enable_ssefast12"  != "no"
 then
-       if test "$sse2" = no
-       then
-               { echo "$as_me:$LINENO: WARNING: \"SSE2 is disabled. The FAST 
test program will be useless.\"" >&5
-echo "$as_me: WARNING: \"SSE2 is disabled. The FAST test program will be 
useless.\"" >&2;}
-       fi
-
-       echo
-       echo -------------------------------------------------------------------
-       echo Run ldd on fast_test to make sure it\'s linked to the right 
library!
-       echo -------------------------------------------------------------------
-       echo
-
        have_faster12=yes
 
+fi
 
+if test "$enable_ssefast12$enable_ssefast10$enable_ssefast9" != "nonono" && 
test
+then
        hidden_options="$hidden_options faster_test";
 fi
 

Index: configure.in
===================================================================
RCS file: /cvsroot/libcvd/libcvd/configure.in,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -b -r1.100 -r1.101
--- configure.in        23 Aug 2007 00:19:05 -0000      1.100
+++ configure.in        23 Aug 2007 01:33:35 -0000      1.101
@@ -1122,9 +1122,9 @@
 echo Checking for extra build options
 echo --------------------------------
 
-AC_ARG_ENABLE(ssefast12, [  --enable-ssefast12      Enable currently broken 
SSE FAST-12 detector])
 AC_ARG_ENABLE(ssefast9,  [  --disable-ssefast9      Disable the probably OK 
SSE FAST-9 detector])
 AC_ARG_ENABLE(ssefast10, [  --disable-ssefast10     Disable the probably OK 
SSE FAST-10 detector])
+AC_ARG_ENABLE(ssefast12, [  --disable-ssefast12     Disable the probably OK 
SSE FAST-12 detector])
 
 if test "$enable_ssefast9"  != "no"
 then
@@ -1136,21 +1136,13 @@
        AC_SUBST(have_faster10, yes)
 fi
 
-if test "$enable_ssefast12" = yes
+if test "$enable_ssefast12"  != "no"
 then
-       if test "$sse2" = no
-       then
-               AC_MSG_WARN("SSE2 is disabled. The FAST test program will be 
useless.")
-       fi
-
-       echo
-       echo -------------------------------------------------------------------
-       echo Run ldd on fast_test to make sure it\'s linked to the right 
library!
-       echo -------------------------------------------------------------------
-       echo 
-
-       AC_SUBST(have_faster12,yes)
+       AC_SUBST(have_faster12, yes)
+fi
 
+if test "$enable_ssefast12$enable_ssefast10$enable_ssefast9" != "nonono" && 
test
+then
        hidden_options="$hidden_options faster_test";
 fi
 

Index: cvd_src/faster_corner_12.cxx
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd_src/faster_corner_12.cxx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- cvd_src/faster_corner_12.cxx        23 Aug 2007 01:08:17 -0000      1.2
+++ cvd_src/faster_corner_12.cxx        23 Aug 2007 01:33:35 -0000      1.3
@@ -93,6 +93,43 @@
                    }
                }
            }
+           
+           //Do the edge of the row, using the old-fasioned 4 point test
+           for(int j=(w/16) * 16; j < w-3; j++, p++)
+           {
+               int cb = *p + barrier;
+               int c_b = *p - barrier;
+               int num_above= (p[stride] > cb) + (p[-stride] > cb);
+               int num_below= (p[stride] < c_b) + (p[-stride] < c_b);
+
+               if(!num_above && !num_below)
+                   continue;
+
+               //Look left
+               num_above+= p[-3] > cb;
+               num_below+= p[-3] < c_b;
+
+               if(num_above & 2) //num_above is 2 or 3
+               {
+                   if(!(num_above & 1)) //num_above is 2
+                       num_above += p[3] > cb; 
+                   
+
+                   //Only do a complete check if num_above is 3
+                   if((num_above&1) && is_corner_12<Greater>(p, w, barrier))
+                       passed.push_back(p);
+               }
+               else if(num_below & 2)
+               {
+                   if(!(num_below & 1))
+                       num_below += p[3] < c_b; 
+                   
+
+                   if((num_below&1) && is_corner_12<Less>(p, w, barrier))
+                       passed.push_back(p);
+               }
+           }
+
            passed.push_back(0);
        }
        corners.reserve(passed.size());




reply via email to

[Prev in Thread] Current Thread [Next in Thread]