toon-members
[Top][All Lists]
Advanced

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

[Toon-members] tag libtool src/fourpointpose.cpp


From: Dr. JJN
Subject: [Toon-members] tag libtool src/fourpointpose.cpp
Date: Mon, 04 Sep 2006 15:50:04 +0000

CVSROOT:        /sources/toon
Module name:    tag
Changes by:     Dr. JJN <jjneubert>     06/09/04 15:50:04

Modified files:
        .              : libtool 
        src            : fourpointpose.cpp 

Log message:
        fixed floating point error in fourPointPose

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/tag/libtool?cvsroot=toon&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/tag/src/fourpointpose.cpp?cvsroot=toon&r1=1.4&r2=1.5

Patches:
Index: libtool
===================================================================
RCS file: /sources/toon/tag/libtool,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- libtool     19 Jul 2006 08:53:56 -0000      1.5
+++ libtool     4 Sep 2006 15:50:04 -0000       1.6
@@ -44,7 +44,7 @@
 
 # ### BEGIN LIBTOOL CONFIG
 
-# Libtool was configured on host tove:
+# Libtool was configured on host bosch:
 
 # Shell to use when invoking shell scripts.
 SHELL="/bin/sh"
@@ -322,7 +322,7 @@
 link_all_deplibs=unknown
 
 # Compile-time system search path for libraries
-sys_lib_search_path_spec=" /usr/lib/gcc-lib/i586-suse-linux/3.3.5/ 
/usr/lib/gcc/i586-suse-linux/3.3.5/ 
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/lib/i586-suse-linux/3.3.5/
 /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/lib/ 
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../i586-suse-linux/3.3.5/ 
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../ /lib/i586-suse-linux/3.3.5/ 
/lib/ /usr/lib/i586-suse-linux/3.3.5/ /usr/lib/"
+sys_lib_search_path_spec=" /usr/lib/gcc/i586-suse-linux/4.0.2/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../../i586-suse-linux/lib/i586-suse-linux/4.0.2/
 /usr/lib/gcc/i586-suse-linux/4.0.2/../../../../i586-suse-linux/lib/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../i586-suse-linux/4.0.2/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../ /lib/i586-suse-linux/4.0.2/ /lib/ 
/usr/lib/i586-suse-linux/4.0.2/ /usr/lib/"
 
 # Run-time system search path for libraries
 sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib/Xaw95 
/usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/i486-linux/lib 
/usr/i486-linux-libc5/lib /usr/i486-linux-libc6/lib /usr/i486-linuxaout/lib 
/usr/i386-suse-linux/lib /usr/local/lib /usr/openwin/lib /opt/kde/lib 
/opt/kde2/lib /opt/kde3/lib /opt/gnome/lib /opt/gnome2/lib 
/usr/i486-linux-libc5/lib "
@@ -6809,7 +6809,7 @@
 # End:
 # ### BEGIN LIBTOOL TAG CONFIG: CXX
 
-# Libtool was configured on host tove:
+# Libtool was configured on host bosch:
 
 # Shell to use when invoking shell scripts.
 SHELL="/bin/sh"
@@ -6988,11 +6988,11 @@
 
 # Dependencies to place before the objects being linked to create a
 # shared library.
-predep_objects="/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../crti.o 
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/crtbeginS.o"
+predep_objects="/usr/lib/gcc/i586-suse-linux/4.0.2/../../../crti.o 
/usr/lib/gcc/i586-suse-linux/4.0.2/crtbeginS.o"
 
 # Dependencies to place after the objects being linked to create a
 # shared library.
-postdep_objects="/usr/lib/gcc-lib/i586-suse-linux/3.3.5/crtendS.o 
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../crtn.o"
+postdep_objects="/usr/lib/gcc/i586-suse-linux/4.0.2/crtendS.o 
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../crtn.o"
 
 # Dependencies to place before the objects being linked to create a
 # shared library.
@@ -7004,7 +7004,7 @@
 
 # The library search path used internally by the compiler when linking
 # a shared library.
-compiler_lib_search_path="-L/usr/lib/gcc-lib/i586-suse-linux/3.3.5 
-L/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/lib 
-L/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../.."
+compiler_lib_search_path="-L/usr/lib/gcc/i586-suse-linux/4.0.2 
-L/usr/lib/gcc/i586-suse-linux/4.0.2 
-L/usr/lib/gcc/i586-suse-linux/4.0.2/../../../../i586-suse-linux/lib 
-L/usr/lib/gcc/i586-suse-linux/4.0.2/../../.."
 
 # Method to check whether dependent libraries are shared objects.
 deplibs_check_method="pass_all"
@@ -7084,7 +7084,7 @@
 link_all_deplibs=unknown
 
 # Compile-time system search path for libraries
-sys_lib_search_path_spec=" /usr/lib/gcc-lib/i586-suse-linux/3.3.5/ 
/usr/lib/gcc/i586-suse-linux/3.3.5/ 
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/lib/i586-suse-linux/3.3.5/
 /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/lib/ 
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../i586-suse-linux/3.3.5/ 
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../ /lib/i586-suse-linux/3.3.5/ 
/lib/ /usr/lib/i586-suse-linux/3.3.5/ /usr/lib/"
+sys_lib_search_path_spec=" /usr/lib/gcc/i586-suse-linux/4.0.2/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../../i586-suse-linux/lib/i586-suse-linux/4.0.2/
 /usr/lib/gcc/i586-suse-linux/4.0.2/../../../../i586-suse-linux/lib/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../i586-suse-linux/4.0.2/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../ /lib/i586-suse-linux/4.0.2/ /lib/ 
/usr/lib/i586-suse-linux/4.0.2/ /usr/lib/"
 
 # Run-time system search path for libraries
 sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib/Xaw95 
/usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/i486-linux/lib 
/usr/i486-linux-libc5/lib /usr/i486-linux-libc6/lib /usr/i486-linuxaout/lib 
/usr/i386-suse-linux/lib /usr/local/lib /usr/openwin/lib /opt/kde/lib 
/opt/kde2/lib /opt/kde3/lib /opt/gnome/lib /opt/gnome2/lib 
/usr/i486-linux-libc5/lib "
@@ -7111,7 +7111,7 @@
 
 # ### BEGIN LIBTOOL TAG CONFIG: F77
 
-# Libtool was configured on host tove:
+# Libtool was configured on host bosch:
 
 # Shell to use when invoking shell scripts.
 SHELL="/bin/sh"
@@ -7152,7 +7152,7 @@
 LTCC="gcc"
 
 # A language-specific compiler.
-CC="g77"
+CC="gfortran"
 
 # Is the compiler the GNU C compiler?
 with_gcc=yes
@@ -7389,7 +7389,7 @@
 link_all_deplibs=unknown
 
 # Compile-time system search path for libraries
-sys_lib_search_path_spec=" /usr/lib/gcc-lib/i586-suse-linux/3.3.5/ 
/usr/lib/gcc/i586-suse-linux/3.3.5/ 
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/lib/i586-suse-linux/3.3.5/
 /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/lib/ 
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../i586-suse-linux/3.3.5/ 
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../ /lib/i586-suse-linux/3.3.5/ 
/lib/ /usr/lib/i586-suse-linux/3.3.5/ /usr/lib/"
+sys_lib_search_path_spec=" /usr/lib/gcc/i586-suse-linux/4.0.2/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../../i586-suse-linux/lib/i586-suse-linux/4.0.2/
 /usr/lib/gcc/i586-suse-linux/4.0.2/../../../../i586-suse-linux/lib/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../i586-suse-linux/4.0.2/ 
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../ /lib/i586-suse-linux/4.0.2/ /lib/ 
/usr/lib/i586-suse-linux/4.0.2/ /usr/lib/"
 
 # Run-time system search path for libraries
 sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib/Xaw95 
/usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/i486-linux/lib 
/usr/i486-linux-libc5/lib /usr/i486-linux-libc6/lib /usr/i486-linuxaout/lib 
/usr/i386-suse-linux/lib /usr/local/lib /usr/openwin/lib /opt/kde/lib 
/opt/kde2/lib /opt/kde3/lib /opt/gnome/lib /opt/gnome2/lib 
/usr/i486-linux-libc5/lib "

Index: src/fourpointpose.cpp
===================================================================
RCS file: /sources/toon/tag/src/fourpointpose.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- src/fourpointpose.cpp       26 Jul 2006 17:08:07 -0000      1.4
+++ src/fourpointpose.cpp       4 Sep 2006 15:50:04 -0000       1.5
@@ -77,6 +77,8 @@
 }
 
 // contains the main computational part common to both of the high level 
functions
+template<class T>
+inline T ABS(T x){return (x>0?x:-x);}
 static bool fourPointSolver ( const std::vector<TooN::Vector<3> > & points, 
std::vector<TooN::Vector<3> > & myPixels, TooN::Vector<6> & distances, 
std::vector<TooN::Vector<2> > & length, const double angularError){
     TooN::Matrix<5> A;
     TooN::Vector<5> v4, v5;
@@ -140,10 +142,25 @@
 
     bool valid = true;
     double x = sqrt( xx );
+       double x_inv = 1.0/x;
     length[0] = (TooN::make_Vector, x, -x); // possible distances to point 0
-    valid &= quadraticRoots( -x*angles[0], xx - distances[0], length[1], 
std::acos(angles[0]/2), asin(sqrt(distances[0])/x), angularError );
-    valid &= quadraticRoots( -x*angles[1], xx - distances[1], length[2], 
std::acos(angles[1]/2), asin(sqrt(distances[1])/x), angularError );
-    valid &= quadraticRoots( -x*angles[2], xx - distances[2], length[3], 
std::acos(angles[2]/2), asin(sqrt(distances[2])/x), angularError );
+    //std::cout << (angles[0]/2) << "   " << (sqrt(distances[0])/x) << 
std::endl;
+       if(  distances[0] > xx )
+       valid &= quadraticRoots( -x*angles[0], xx - distances[0], length[1], 0, 
0, angularError );
+    else
+       valid &= quadraticRoots( -x*angles[0], xx - distances[0], length[1], 
std::acos(0.5*angles[0]), asin(sqrt(distances[0])*x_inv), angularError );
+
+       
+       if(  distances[1] > xx )
+       valid &= quadraticRoots( -x*angles[1], xx - distances[1], length[2], 0, 
0, angularError );
+    else
+       valid &= quadraticRoots( -x*angles[1], xx - distances[1], length[2], 
std::acos(0.5*angles[1]), asin(sqrt(distances[1])*x_inv), angularError );
+
+       if(  distances[2] > xx )
+       valid &= quadraticRoots( -x*angles[2], xx - distances[2], length[3], 0, 
0, angularError );
+    else
+       valid &= quadraticRoots( -x*angles[2], xx - distances[2], length[3], 
std::acos(0.5*angles[2]), asin(sqrt(distances[2])*x_inv), angularError );
+
     return valid;
 }
 




reply via email to

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