diff --git a/Announce.txt b/Announce.txt
index 7433d4a153f123764b0dff2291943bbbbc093cbf..9154b41f857c065e0b94615794bd322a3a4167f4 100644
--- a/Announce.txt
+++ b/Announce.txt
@@ -2,6 +2,7 @@
  Qhull 2003.1 2003/12/30
 
         http://www.qhull.org
+        git@gitorious.org:qhull/qhull.git
         http://savannah.nongnu.org/projects/qhull/
         http://www6.uniovi.es/ftp/pub/mirrors/geom.umn.edu/software/ghindex.html
         http://www.geomview.org
@@ -20,6 +21,7 @@ You can view the results in 2-d, 3-d and 4-d with Geomview.
 
 To download Qhull:
         http://www.qhull.org/download
+        git@gitorious.org:qhull/qhull.git
         http://savannah.nongnu.org/files/?group=qhull
 
 Download qhull-96.ps for:
@@ -28,7 +30,7 @@ Download qhull-96.ps for:
         Quickhull Algorithm for Convex Hulls," ACM Trans. on
         Mathematical Software, 22(4):469-483, Dec. 1996.
         http://www.acm.org/pubs/citations/journals/toms/1996-22-4/p469-barber/
-        http://citeseer.nj.nec.com/83502.html
+        http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.6345
 
 Abstract:
 
diff --git a/README.txt b/README.txt
index a7aba9b1591c271516f250cc5c14d74d6d612f87..daccfaeeb6132828769190265d1bed43834b23e4 100644
--- a/README.txt
+++ b/README.txt
@@ -6,10 +6,12 @@ Convex hull, Delaunay triangulation, Voronoi diagrams, Halfspace intersection
  
       Documentation:
         html/index.htm
+        http://www.qhull.org/html
 
       Available from:
         <http://www.qhull.org>
-	<http://savannah.nongnu.org/projects/qhull>
+         git@gitorious.org:qhull/qhull.git
+        <http://savannah.nongnu.org/projects/qhull>
  
      Version 1 (simplicial only):
         <http://www.qhull.org/download/qhull-1.0.tar.gz>
@@ -17,7 +19,7 @@ Convex hull, Delaunay triangulation, Voronoi diagrams, Halfspace intersection
        
       News and a paper:
         <http://www.qhull.org/news>
-        <http://citeseer.nj.nec.com/83502.html>
+        <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.6345>
 
 Purpose
 
@@ -133,7 +135,7 @@ Compiling the source distribution
   - if the code compiles, the qhull test case will automatically execute
   - if an error occurs, there's an incompatibility between machines
       - For gcc-2.95.1, you need to set flag -fno-strict-aliasing.
-	    It is set by default for other versions of gcc [Karas, Krishnaswami]
+            It is set by default for other versions of gcc [Karas, Krishnaswami]
       - If you can, try a different compiler 
       - You can turn off the Qhull memory manager with qh_NOmem in mem.h
       - You can turn off compiler optimization (-O2 in Makefile)
@@ -152,45 +154,45 @@ Compiling on Windows 95, 98, NT, 2000, XP
 
   Visual C++ quickstart for qhull.exe only:
     - create a "Win32 console application" called "qhull"
-	- add the following files:
-	    geom.c geom2.c global.c io.c mem.c merge.c poly.c poly2.c qhulllib.c
-		qset.c stat.c unix.c user.c
+        - add the following files:
+            geom.c geom2.c global.c io.c mem.c merge.c poly.c poly2.c qhulllib.c
+                qset.c stat.c unix.c user.c
     - create a "Win32 console application" called "rbox" 
-	- add rbox.c
+        - add rbox.c
 
   Visual C++ quickstart for qhull library, qhull.exe, qconvex.exe, etc.
     - To simplify setting up lots of projects, 
-	- create a temporary "Win32 console application" called "source"
-	- add all .c files from .../src/...
-	- In Tools::Options::Tab
-	  Set tab size to 8 and indent size to 2
+        - create a temporary "Win32 console application" called "source"
+        - add all .c files from .../src/...
+        - In Tools::Options::Tab
+          Set tab size to 8 and indent size to 2
 
     - create a "Win32 console application" called "rbox"
-	- move rbox.c from "qhull source"
-	- for Project:Settings..., Link
-	  you only need the default libraries
-	- build the project
+        - move rbox.c from "qhull source"
+        - for Project:Settings..., Link
+          you only need the default libraries
+        - build the project
 
     - create a "Win32 static library" called "library"
-	- move these files from "qhull source"
-	    geom.c geom2.c global.c io.c mem.c merge.c poly.c poly2.c qhulllib.c
-		qset.c stat.c user.c
-	- set the library file (use the same for debug and release)
-	- build the project
+        - move these files from "qhull source"
+            geom.c geom2.c global.c io.c mem.c merge.c poly.c poly2.c qhulllib.c
+                qset.c stat.c user.c
+        - set the library file (use the same for debug and release)
+        - build the project
 
     - create a "Win32 console application" called "qhull"
-	- Move unix.c from "qhull source"
-	- Add the library file created by "library"
-	- Qhull does not use other libraries
+        - Move unix.c from "qhull source"
+        - Add the library file created by "library"
+        - Qhull does not use other libraries
 
     - create a "Win32 console application" called "qconvex"
-	- Move qconvex.c from "qhull source"
-	- Copy the library file from "qhull"
+        - Move qconvex.c from "qhull source"
+        - Copy the library file from "qhull"
 
     - do the same for qdelaun.c, qhalf, qvoronoi.c, user_eg.c, user_eg2.c
-	- delete "qhull sources" since it is no longer needed
-	- use Project:Settings to make any changes
-	- use batch build to rebuild everything
+        - delete "qhull sources" since it is no longer needed
+        - use Project:Settings to make any changes
+        - use batch build to rebuild everything
   
   Qhull compiles with Borland C++ 5.0 bcc32.  A Makefile is included.
   Execute 'make -f Mborland'.  If you use the Borland IDE, set the ANSI
@@ -237,10 +239,10 @@ Distributed files
   README.txt           // instructions for installing Qhull 
   REGISTER.txt         // Qhull registration 
   COPYING.txt          // copyright notice 
-  QHULL-GO.pif	       // Windows icon for qhull-go.bat
+  QHULL-GO.pif         // Windows icon for qhull-go.bat
   Announce.txt         // announcement 
   Changes.txt          // change history for Qhull and rbox 
-  File_id.diz	       // package descriptor
+  File_id.diz          // package descriptor
   index.htm            // Home page 
   html/qh-faq.htm      // Frequently asked questions
   html/qh-get.htm      // Download page
@@ -299,7 +301,7 @@ src/
      qhull_a.h         // include file for *.c 
      geom.c            // geometric routines 
      geom2.c
-     geom.h	
+     geom.h     
      global.c          // global variables 
      io.c              // input-output routines 
      io.h
@@ -318,10 +320,7 @@ src/
 Authors:
 
   C. Bradford Barber                    Hannu Huhdanpaa
-  bradb@qhull.org                       hannu@qhull.org
-  
-                    The Geometry Center
-                    University of Minnesota
+  bradb@shore.net                       hannu@qhull.org
   
   Qhull 1.0 and 2.0 were developed under NSF grants NSF/DMS-8920161 
   and NSF-CCR-91-15793 750-7504 at the Geometry Center and Harvard 
diff --git a/cpp/Coordinates.cpp b/cpp/Coordinates.cpp
index 38a9f58131506fa67a462594952d9ee4f8710bee..1f38a2cb4a269e90a2669d39bce37b880ed20f7f 100644
--- a/cpp/Coordinates.cpp
+++ b/cpp/Coordinates.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/Coordinates.cpp#15 $$Change: 1114 $
-** $DateTime: 2009/12/12 13:49:07 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/Coordinates.cpp#17 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -177,7 +177,7 @@ operator<<(ostream &os, const Coordinates &cs)
 {
     Coordinates::const_iterator c= cs.begin();
     for(int i=cs.count(); i--; ){
-        os<< *c++ << " ";
+        os << *c++ << " ";
     }
     return os;
 }//operator<<
diff --git a/cpp/Coordinates.h b/cpp/Coordinates.h
index 51d90cfbeed9b0e0873cce5611a51d0e9f55f1d5..f5bd644d51d6f0285aaeb279bd01055267ce8bca 100644
--- a/cpp/Coordinates.h
+++ b/cpp/Coordinates.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (Coordinates) 2009-2009 Coordinates. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/Coordinates.h#27 $$Change: 1116 $
-** $DateTime: 2009/12/13 22:31:48 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/Coordinates.h#29 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -234,8 +234,6 @@ public:
 
 };//Coordinates
 
-//FIXUP IO for Coordinates
-
 //class CoordinatesIterator
 //QHULL_DECLARE_SEQUENTIAL_ITERATOR(Coordinates, coordT)
 
diff --git a/cpp/PointCoordinates.cpp b/cpp/PointCoordinates.cpp
index 61280a81e12f26a7a9988c9d9b6d24777b2dfbbc..c8c1cd84d075a852b3cdcb71e3135e724c8aa1ef 100644
--- a/cpp/PointCoordinates.cpp
+++ b/cpp/PointCoordinates.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/PointCoordinates.cpp#19 $$Change: 1118 $
-** $DateTime: 2009/12/20 16:19:59 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/PointCoordinates.cpp#21 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -145,9 +145,7 @@ append(int count, const coordT *c)
         throw QhullError(10065, "Qhull error: can not append a subset of PointCoordinates to itself.  The coordinates for point %d may move.", indexOf(c, QhullError::NOthrow));
     }
     reserveCoordinates(count);
-    for(int i=count; i--; ){ // FIXUP copy(c, c+count, point_coordinates.end());
-        point_coordinates.push_back(*c++);
-    }
+    std::copy(c, c+count, std::back_inserter(point_coordinates));
     makeValid();
 }//append coordT
 
@@ -238,7 +236,7 @@ PointCoordinates PointCoordinates::
 operator+(const PointCoordinates &other) const
 {
     PointCoordinates pc= *this;
-    pc<< other;
+    pc << other;
     return pc;
 }//operator+
 
@@ -272,7 +270,6 @@ using std::ostream;
 using orgQhull::Coordinates;
 using orgQhull::PointCoordinates;
 
-// FIXUP Almost the same as operator<< for RboxPoints 
 ostream&
 operator<<(ostream &os, const PointCoordinates &p)
 { 
@@ -281,17 +278,17 @@ operator<<(ostream &os, const PointCoordinates &p)
     int dimension= p.dimension();
     string comment= p.comment();
     if(comment.empty()){
-        os<< dimension << endl;
+        os << dimension << endl;
     }else{
-        os<< dimension << " " << comment << endl;
+        os << dimension << " " << comment << endl;
     }
-    os<< count << endl;
+    os << count << endl;
     Coordinates::ConstIterator c= p.beginCoordinates();
     for(int i=0; i<count; i++){
         for(int j=0; j<dimension; j++){
-            os<< *c++ << " ";
+            os << *c++ << " ";
         }
-        os<< endl;
+        os << endl;
     }
     return os;
 }//operator<<
diff --git a/cpp/PointCoordinates.h b/cpp/PointCoordinates.h
index cb7eb30090f5444e340cdf9476e12f924efd2978..bc6e56c008232ea1e30d1783e2eadc9d8a6e1d65 100644
--- a/cpp/PointCoordinates.h
+++ b/cpp/PointCoordinates.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/PointCoordinates.h#11 $$Change: 1117 $
-** $DateTime: 2009/12/14 20:55:32 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/PointCoordinates.h#13 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -87,8 +87,8 @@ public:
 #//Read-only
     PointCoordinates    operator+(const PointCoordinates &other) const;
 
-    //FIXUP: Add other modify operators from Coordinates.h, including QhullPoint::operator=()
 #//Modify
+    //FIXUP 2009: Add clear() and other modify operators from Coordinates.h.  Include QhullPoint::operator=()
     void                append(int count, const coordT *c);  //! Dimension previously defined
     void                append(const coordT &c) { append(1, &c); } //! Dimension previously defined
     void                append(const QhullPoint &p);
@@ -138,7 +138,7 @@ class PointCoordinatesIterator
     return false;  }
 };//CoordinatesIterator
 
-// FIXUP:  Add MutablePointCoordinatesIterator after adding Modify operators
+// FIXUP 2009:  Add MutablePointCoordinatesIterator after adding modify operators
 \
 }//namespace orgQhull
 
diff --git a/cpp/Qhull.cpp b/cpp/Qhull.cpp
index 2c950fd717e6395a2419e89adda8a21f3696f7c9..ec6d8ebab1449de681997030ec1dac39c33e3c64 100644
--- a/cpp/Qhull.cpp
+++ b/cpp/Qhull.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/Qhull.cpp#38 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/Qhull.cpp#40 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -134,8 +134,8 @@ Qhull::
             qhull_run_id= UsingLibQhull::NOqhRunId;
             // Except for cerr, does not throw errors
             if(hasQhullMessage()){
-                cerr<< "\nQhull output at end\n";
-                cerr<<qhullMessage();  //FIXUP: where should error and log messages go on ~Qhull?  
+                cerr<< "\nQhull output at end\n"; //FIXUP 2009: where should error and log messages go on ~Qhull?  
+                cerr<<qhullMessage();  
                 clearQhullMessage();
             }
         }
@@ -172,7 +172,7 @@ bool Qhull::
 hasQhullMessage() const 
 {
     return (!qhull_message.empty() || qhull_status!=qh_ERRnone);
-    //FIXUP -- inconsistent usage with Rbox.  hasRboxMessage just tests rbox_status.  No appendRboxMessage()
+    //FIXUP 2009 -- inconsistent usage with Rbox.  hasRboxMessage just tests rbox_status.  No appendRboxMessage()
 }
 
 //! qhullMessage does not throw errors (~Qhull)
@@ -208,6 +208,14 @@ setOutputStream(ostream *os)
 
 #//GetSet
 
+void Qhull::
+checkIfQhullInitialized()
+{
+    if(!initialized()){ // qh_initqhull_buffers() not called
+        throw QhullError(10023, "Qhull error: checkIfQhullInitialized failed.  Call runQhull() first.");
+    }
+}//checkIfQhullInitialized
+
 //! Setup global state (qh_qh, qh_qhstat, qhmem.tempstack)
 int Qhull::
 runId()
@@ -223,8 +231,8 @@ runId()
 
 double Qhull::
 area(){
+    checkIfQhullInitialized();
     UsingLibQhull q(this);
-    qhull_qh->checkIfQhullRan();
     if(!qh hasAreaVolume){
         int exitCode = setjmp(qh errexit);
         if(!exitCode){ // no object creation -- destructors skipped on longjmp()
@@ -237,8 +245,8 @@ area(){
 
 double Qhull::
 volume(){
+    checkIfQhullInitialized();
     UsingLibQhull q(this);
-    qhull_qh->checkIfQhullRan();
     if(!qh hasAreaVolume){
         int exitCode = setjmp(qh errexit);
         if(!exitCode){ // no object creation -- destructors skipped on longjmp()
@@ -258,8 +266,14 @@ facetList() const{
 QhullPoints Qhull::
 points() const 
 { 
-    return QhullPoints(dimension(), qhull_qh->num_points*dimension(), qhull_qh->first_point); 
-}
+    return QhullPoints(hullDimension(), qhull_qh->num_points*hullDimension(), qhull_qh->first_point); 
+}//points
+
+QhullPointSet Qhull::
+otherPoints() const 
+{ 
+    return QhullPointSet(hullDimension(), qhull_qh->other_points); 
+}//otherPoints
 
 QhullVertexList Qhull::
 vertexList() const{
@@ -271,8 +285,8 @@ vertexList() const{
 void Qhull::
 outputQhull()
 {
+    checkIfQhullInitialized();
     UsingLibQhull q(this);
-    qhull_qh->checkIfQhullRan();
     int exitCode = setjmp(qh errexit);
     if(!exitCode){ // no object creation -- destructors skipped on longjmp()
         qh_produce_output2(); 
@@ -283,8 +297,8 @@ outputQhull()
 void Qhull::
 outputQhull(const char *outputflags)
 {
+    checkIfQhullInitialized();
     UsingLibQhull q(this);
-    qhull_qh->checkIfQhullRan();
     string cmd(" "); // qh_checkflags skips first word
     cmd += outputflags;
     char *command= const_cast<char*>(cmd.c_str());
@@ -353,7 +367,6 @@ runQhull(const char *rboxCommand, int pointDimension, int pointCount, const real
 	}
 	qh_init_B(newPoints, pointCount, newDimension, newIsMalloc);
         qhull_dimension= (qh DELAUNAY ? qh hull_dim - 1 : qh hull_dim);
-        //FIXUP -- copy rbox_command here.  SetCommandMessage is wrong
 	qh_qhull();
 	qh_check_output();
         qh_prepare_output();
@@ -361,7 +374,7 @@ runQhull(const char *rboxCommand, int pointDimension, int pointCount, const real
 	    qh_check_points();
 	}
     }
-    for(int k= qhull_dimension; k--; ){
+    for(int k= qhull_dimension; k--; ){  // Do not move up (may throw)
         origin_point << 0.0;
     }
     maybeThrowQhullMessage(exitCode);
@@ -404,7 +417,7 @@ maybeThrowQhullMessage(int exitCode)
     if(qhull_status!=qh_ERRnone){
         QhullError e(qhull_status, qhull_message);
         clearQhullMessage();
-        throw e; // FIXUP copy constructor is expensive if logging
+        throw e; // FIXUP 2009: copy constructor is expensive if logging
     }
 }//maybeThrowQhullMessage
 
@@ -467,7 +480,7 @@ void qh_fprintf(FILE *fp, int msgcode, const char *fmt, ... ) {
         va_end(args);
         return;
     }
-    // FIXUP  how do users trap messages and handle input?  A callback?
+    // FIXUP 2009: how do users trap messages and handle input?  A callback?
     char newMessage[MSG_MAXLEN];
     vsnprintf(newMessage, sizeof(newMessage), fmt, args);
     out->appendQhullMessage(newMessage);
diff --git a/cpp/Qhull.h b/cpp/Qhull.h
index a1cd4d7a91fabbaec93f6942907b481197a23a58..03a14c93b53d3d1f80c8ede53c41eb58fe170aca 100644
--- a/cpp/Qhull.h
+++ b/cpp/Qhull.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/Qhull.h#32 $$Change: 1102 $
-** $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/Qhull.h#34 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -46,7 +46,7 @@ private:
     Coordinates         origin_point;   //! origin for qhull_dimension.  Set by runQhull()
     int		        qhull_status;   //! qh_ERRnone if valid
     int                 qhull_dimension; //! Dimension of result (qh.hull_dim or one less for Delaunay/Voronoi)   
-    bool                run_called;     //! True after runQhull.  Error if call again.
+    bool                run_called;     //! True at start of runQhull.  Errors if call again.
     bool                qh_active;      //! True if qh_qh is qhull_qh
     std::string	        qhull_message;  
     std::ostream       *error_stream;   //! overrides errorMessage, use appendQhullMessage()
@@ -59,7 +59,7 @@ private:
 public:
     Coordinates         feasiblePoint;  //! feasible point for half-space intersection
     bool                useOutputStream; //! Set if using outputStream
-    // FIXUP feasiblePoint useOutputStream as field or getter?
+    // FIXUP 2009 feasiblePoint useOutputStream as field or getter?
 
 #//constructor, assignment, destructor, invariant
                         Qhull();      //! Qhull::runQhull() must be called next 
@@ -73,10 +73,9 @@ private:
  
 public:
 #//virtual methods
-    //FIXUP -- qh_memfree, etc. as virtual?
+    //FIXUP 2009 -- qh_memfree, etc. as virtual?
 
 #//Messaging
-    // FIXUP rename as errorMessage?
     void                appendQhullMessage(const std::string &s);
     void                clearQhullMessage();
     std::string         qhullMessage() const;
@@ -86,10 +85,12 @@ public:
     void                setOutputStream(std::ostream *os);
 
 #//GetSet
-    bool                defined() const { return qhull_dimension>0; }
-    int                 dimension() const { return qhull_dimension; } //FIXUP use dimension() instead?
+    void                checkIfQhullInitialized();
+    bool                initialized() const { return qhull_dimension>0; }
+    int                 dimension() const { return qhull_dimension; } 
+    int                 hullDimension() const { return qhullQh()->hull_dim; } 
                         // non-const due to QhullPoint
-    QhullPoint          origin() { QHULL_ASSERT(run_called && origin_point.size()>0); return QhullPoint(dimension(), origin_point.data()); }
+    QhullPoint          origin() { QHULL_ASSERT(initialized()); return QhullPoint(dimension(), origin_point.data()); }
     QhullQh            *qhullQh() const { return qhull_qh; };
     int                 runId(); // Modifies my_qhull
 
@@ -112,8 +113,8 @@ public:
     QhullFacet          firstFacet() const { return beginFacet(); } 
     QhullVertex         firstVertex() const { return beginVertex(); } 
     QhullPoints         points() const;
-    QhullPointSet       otherPoints() const { return QhullPointSet(dimension(), qhull_qh->other_points); }
-    //FIXUP -- replace pointCoordinateBegin with points()?
+    QhullPointSet       otherPoints() const;
+                        //! Same as points().coordinates()
     coordT             *pointCoordinateBegin() const { return qhull_qh->first_point; }
     coordT             *pointCoordinateEnd() const { return qhull_qh->first_point + qhull_qh->num_points*qhull_qh->hull_dim; }
     QhullVertexList     vertexList() const;
diff --git a/cpp/QhullError.cpp b/cpp/QhullError.cpp
index 2a8404ec820cb33cafb02fcb81110d14aa44c0bf..7f66e36aaa60a5bfd3b9d0e824801eb4af431366 100644
--- a/cpp/QhullError.cpp
+++ b/cpp/QhullError.cpp
@@ -1,6 +1,6 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2008 C. Bradford Barber. All rights reserved.
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullError.h b/cpp/QhullError.h
index 6fa4e632e8726f0c67a22778f6c71a22a40ca32a..7e6c071ae6213346b80e84159c215bbd2bb2d833 100644
--- a/cpp/QhullError.h
+++ b/cpp/QhullError.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullError.h#30 $$Change: 1102 $
-** $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullError.h#32 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -50,20 +50,12 @@ public:
 #ifndef QHULL_1
     #define QHULL_ASSERT assert
 
-    //! See Qt's qglobal.h
-    #if defined(Q_CC_INTEL) && !defined(Q_OS_WIN) // FIXUP
-    template <typename T>
-    inline void qUnused(T &x) { (void)x; }
-    #  define QHULL_UNUSED(x) qUnused(x);
-    #else
-    #  define QHULL_UNUSED(x) (void)x;
-    #endif
 #endif
 
 }//namespace orgQhull
 
 #//Global functions
 
-inline std::ostream &operator<<(std::ostream &os, const orgQhull::QhullError &e) { return os<< e.what(); }
+inline std::ostream &operator<<(std::ostream &os, const orgQhull::QhullError &e) { return os << e.what(); }
 
 #endif // QHULLERROR_H
diff --git a/cpp/QhullEvent.cpp b/cpp/QhullEvent.cpp
index 850eabd44872a8ebf9d55caafa05b6bc9997abe3..1de32fe57b33188a4396afc7008c284ac44bf88f 100644
--- a/cpp/QhullEvent.cpp
+++ b/cpp/QhullEvent.cpp
@@ -1,6 +1,6 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2008 C. Bradford Barber. All rights reserved.
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullEvent.h b/cpp/QhullEvent.h
index fc9ff12236ae0ad89a32da53560ea392379d4897..01e44be1b360bf866981bb6ebadb42bfbb4c57e6 100644
--- a/cpp/QhullEvent.h
+++ b/cpp/QhullEvent.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullEvent.h#7 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullEvent.h#8 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullFacet.cpp b/cpp/QhullFacet.cpp
index e9f3ec0d2f70b83e5a43be3b6f92b016255c028b..6cead8a97ad47d1ecb24ac241aebdf7855247ce9 100644
--- a/cpp/QhullFacet.cpp
+++ b/cpp/QhullFacet.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullFacet.cpp#30 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullFacet.cpp#32 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -124,7 +124,7 @@ tricoplanarOwner() const
         }
         return qh_facet->f.triowner;
     }
-    return 0; // FIXUP NULL facet or empty facet
+    return 0; // FIXUP 2009 Should false be the NULL facet or empty facet
 }//tricoplanarOwner
 
 QhullPoint QhullFacet::
@@ -208,24 +208,24 @@ using orgQhull::QhullVertexSet;
 using orgQhull::UsingLibQhull;
 
 ostream &
-operator<<(ostream &os, const QhullFacet::PrintFacet &pr) // FIXUP make const (center)
+operator<<(ostream &os, const QhullFacet::PrintFacet &pr) 
 {
     QhullFacet f= *pr.facet;
     if(f.getFacetT()==0){ // Special values from set iterator
-        os<< " NULLfacet" << endl;
+        os << " NULLfacet" << endl;
         return os;
     }
     if(f.getFacetT()==qh_MERGEridge){
-        os<< " MERGEridge" << endl;
+        os << " MERGEridge" << endl;
         return os;
     }
     if(f.getFacetT()==qh_DUPLICATEridge){
-        os<< " DUPLICATEridge" << endl;
+        os << " DUPLICATEridge" << endl;
         return os;
     }
-    os<< f.printHeader(pr.run_id);
+    os << f.printHeader(pr.run_id);
     if(!f.ridges().isEmpty()){
-        os<< f.printRidges(pr.run_id);
+        os << f.printRidges(pr.run_id);
     }
     return os;
 }//operator<< PrintFacet
@@ -241,7 +241,7 @@ operator<<(ostream &os, const QhullFacet::PrintCenter &pr)
         return os;
     }
     if (pr.message){
-        os<< pr.message;
+        os << pr.message;
     }
     int numCoords;
     if(qh CENTERtype==qh_ASvoronoi){
@@ -251,11 +251,11 @@ operator<<(ostream &os, const QhullFacet::PrintCenter &pr)
                 f->center= qh_facetcenter(f->vertices);
             }
             for(int k=0; k<numCoords; k++){
-                os<< f->center[k] << " "; // FIXUP qh_REAL_1
+                os << f->center[k] << " "; // FIXUP 2009 qh_REAL_1
             }
         }else{
             for(int k=0; k<numCoords; k++){
-                os<< qh_INFINITE << " "; // FIXUP qh_REAL_1
+                os << qh_INFINITE << " "; // FIXUP 2009 qh_REAL_1
             }
         }
     }else{ // qh CENTERtype==qh_AScentrum
@@ -267,13 +267,13 @@ operator<<(ostream &os, const QhullFacet::PrintCenter &pr)
             f->center= qh_getcentrum(f);
         }
         for(int k=0; k<numCoords; k++){
-            os<< f->center[k] << " "; // FIXUP qh_REAL_1
+            os << f->center[k] << " "; // FIXUP 2009 qh_REAL_1
         }
     }
     if(pr.print_format==qh_PRINTgeom && numCoords==2){
-        os<< " 0";
+        os << " 0";
     }
-    os<< endl;
+    os << endl;
     return os;
 }//operator<< PrintCenter
 
@@ -281,70 +281,70 @@ operator<<(ostream &os, const QhullFacet::PrintCenter &pr)
 ostream &
 operator<<(ostream &os, const QhullFacet::PrintFlags &p)
 {
-    const facetT *f= p.facet->getFacetT(); // FIXUP use QhullFacet for <<
+    const facetT *f= p.facet->getFacetT(); 
     if(p.message){
-        os<< p.message;
+        os << p.message;
     }
 
-    os<< (f->toporient ? " top" : " bottom");
+    os << (f->toporient ? " top" : " bottom");
     if(f->simplicial){
-        os<< " simplicial";
+        os << " simplicial";
     }
     if(f->tricoplanar){
-        os<< " tricoplanar";
+        os << " tricoplanar";
     }
     if(f->upperdelaunay){
-        os<< " upperDelaunay";
+        os << " upperDelaunay";
     }
     if(f->visible){
-        os<< " visible";
+        os << " visible";
     }
     if(f->newfacet){
-        os<< " new";
+        os << " new";
     }
     if(f->tested){
-        os<< " tested";
+        os << " tested";
     }
     if(!f->good){
-        os<< " notG";
+        os << " notG";
     }
     if(f->seen){
-        os<< " seen";
+        os << " seen";
     }
     if(f->coplanar){
-        os<< " coplanar";
+        os << " coplanar";
     }
     if(f->mergehorizon){
-        os<< " mergehorizon";
+        os << " mergehorizon";
     }
     if(f->keepcentrum){
-        os<< " keepcentrum";
+        os << " keepcentrum";
     }
     if(f->dupridge){
-        os<< " dupridge";
+        os << " dupridge";
     }
     if(f->mergeridge && !f->mergeridge2){
-        os<< " mergeridge1";
+        os << " mergeridge1";
     }
     if(f->mergeridge2){
-        os<< " mergeridge2";
+        os << " mergeridge2";
     }
     if(f->newmerge){
-        os<< " newmerge";
+        os << " newmerge";
     }
     if(f->flipped){
-        os<< " flipped";
+        os << " flipped";
     }
     if(f->notfurthest){
-        os<< " notfurthest";
+        os << " notfurthest";
     }
     if(f->degenerate){
-        os<< " degenerate";
+        os << " degenerate";
     }
     if(f->redundant){
-        os<< " redundant";
+        os << " redundant";
     }
-    os<< endl;
+    os << endl;
     return os;
 }//operator<< PrintFlags
 
@@ -354,81 +354,81 @@ operator<<(ostream &os, const QhullFacet::PrintHeader &pr)
 {
     QhullFacet facet= *pr.facet;
     facetT *f= facet.getFacetT();
-    os<< "- f" << facet.id() << endl;
-    os<< facet.printFlags("    - flags:");
+    os << "- f" << facet.id() << endl;
+    os << facet.printFlags("    - flags:");
     if(f->isarea){
-        os<< "    - area: " << f->f.area << endl; //FIXUP 2.2g
+        os << "    - area: " << f->f.area << endl; //FIXUP 2009 2.2g
     }else if(qh NEWfacets && f->visible && f->f.replace){
-        os<< "    - replacement: f" << f->f.replace->id << endl;
+        os << "    - replacement: f" << f->f.replace->id << endl;
     }else if(f->newfacet){
         if(f->f.samecycle && f->f.samecycle != f){
-            os<< "    - shares same visible/horizon as f" << f->f.samecycle->id << endl;
+            os << "    - shares same visible/horizon as f" << f->f.samecycle->id << endl;
         }
     }else if(f->tricoplanar /* !isarea */){
         if(f->f.triowner){
-            os<< "    - owner of normal & centrum is facet f" << f->f.triowner->id << endl;
+            os << "    - owner of normal & centrum is facet f" << f->f.triowner->id << endl;
         }
     }else if(f->f.newcycle){
-        os<< "    - was horizon to f" << f->f.newcycle->id << endl;
+        os << "    - was horizon to f" << f->f.newcycle->id << endl;
     }
     if(f->nummerge){
-        os<< "    - merges: " << f->nummerge << endl;
+        os << "    - merges: " << f->nummerge << endl;
     }
-    os<< facet.hyperplane().print("    - normal: ", "\n    - offset: "); // FIXUP %10.7g
+    os << facet.hyperplane().print("    - normal: ", "\n    - offset: "); // FIXUP 2009 %10.7g
     if(qh CENTERtype==qh_ASvoronoi || f->center){
-        os<< facet.printCenter(pr.run_id, qh_PRINTfacets, "    - center: ");
+        os << facet.printCenter(pr.run_id, qh_PRINTfacets, "    - center: ");
     }
 #if qh_MAXoutside
     if(f->maxoutside > qh DISTround){
-        os<< "    - maxoutside: " << f->maxoutside << endl; //FIXUP %10.7g
+        os << "    - maxoutside: " << f->maxoutside << endl; //FIXUP 2009 %10.7g
     }
 #endif
     QhullPointSet ps= facet.outsidePoints();
     if(!ps.isEmpty()){
         QhullPoint furthest= ps.last();
         if (ps.size() < 6) {
-            os<< "    - outside set(furthest p" << furthest.id(pr.run_id) << "):" << endl;
+            os << "    - outside set(furthest p" << furthest.id(pr.run_id) << "):" << endl;
             for(QhullPointSet::iterator i=ps.begin(); i!=ps.end(); ++i){
                 QhullPoint p= *i;
-                os<< p.print(pr.run_id, "     ");
+                os << p.print(pr.run_id, "     ");
             }
         }else if(ps.size()<21){
-            os<< ps.print(pr.run_id, "    - outside set:");
+            os << ps.print(pr.run_id, "    - outside set:");
         }else{
-            os<< "    - outside set:  " << ps.size() << " points.";
-            os<< furthest.print(pr.run_id, "  Furthest");
+            os << "    - outside set:  " << ps.size() << " points.";
+            os << furthest.print(pr.run_id, "  Furthest");
         }
 #if !qh_COMPUTEfurthest
-        os<< "    - furthest distance= " << f->furthestdist << endl; //FIXUP %2.2g
+        os << "    - furthest distance= " << f->furthestdist << endl; //FIXUP 2009 %2.2g
 #endif
     }
     QhullPointSet cs= facet.coplanarPoints();
     if(!cs.isEmpty()){
         QhullPoint furthest= cs.last();
         if (cs.size() < 6) {
-            os<< "    - coplanar set(furthest p" << furthest.id(pr.run_id) << "):" << endl;
+            os << "    - coplanar set(furthest p" << furthest.id(pr.run_id) << "):" << endl;
             for(QhullPointSet::iterator i=cs.begin(); i!=cs.end(); ++i){
                 QhullPoint p= *i;
-                os<< p.print(pr.run_id, "     ");
+                os << p.print(pr.run_id, "     ");
             }
         }else if(cs.size()<21){
-            os<< cs.print(pr.run_id, "    - coplanar set:");
+            os << cs.print(pr.run_id, "    - coplanar set:");
         }else{
-            os<< "    - coplanar set:  " << cs.size() << " points.";
-            os<< furthest.print(pr.run_id, "  Furthest");
+            os << "    - coplanar set:  " << cs.size() << " points.";
+            os << furthest.print(pr.run_id, "  Furthest");
         }
         zinc_(Zdistio);
         double d= facet.distance(furthest);
-        os<< "      furthest distance= " << d << endl; //FIXUP %2.2g
+        os << "      furthest distance= " << d << endl; //FIXUP %2.2g
     }
     QhullVertexSet vs= facet.vertices();
     if(!vs.isEmpty()){
-        os<< vs.print(pr.run_id, "    - vertices:");
+        os << vs.print(pr.run_id, "    - vertices:");
     }
     QhullFacetSet fs= facet.neighborFacets();
     fs.selectAll();
     if(!fs.isEmpty()){
-        os<< fs.printIdentifiers("    - neighboring facets:");
+        os << fs.printIdentifiers("    - neighboring facets:");
     }
     return os;
 }//operator<< PrintHeader
@@ -446,17 +446,17 @@ operator<<(ostream &os, const QhullFacet::PrintRidges &pr)
         UsingLibQhull q(pr.run_id);
         // No calls to libqhull
         if(f->visible && qh NEWfacets){
-            os<< "    - ridges(ids may be garbage):";
+            os << "    - ridges(ids may be garbage):";
             for(QhullRidgeSet::iterator i=rs.begin(); i!=rs.end(); ++i){
                 QhullRidge r= *i;
-                os<< " r" << r.id();
+                os << " r" << r.id();
             }
-            os<< endl;
+            os << endl;
         }else{
-            os<< "    - ridges:" << endl;
+            os << "    - ridges:" << endl;
         }
     }else{
-        os<< "    - ridges:" << endl;
+        os << "    - ridges:" << endl;
     }
 
     // Keep track of printed ridges
@@ -468,7 +468,7 @@ operator<<(ostream &os, const QhullFacet::PrintRidges &pr)
     if(facet.dimension()==3){
         for(QhullRidge r= rs.first(); !r.getRidgeT()->seen; r= r.nextRidge3d(facet)){
             r.getRidgeT()->seen= true;
-            os<< r.print(pr.run_id);
+            os << r.print(pr.run_id);
             ++ridgeCount;
         }
     }else {
@@ -480,24 +480,24 @@ operator<<(ostream &os, const QhullFacet::PrintRidges &pr)
                 QhullRidge r= *j;
                 if(r.otherFacet(neighbor)==facet){
                     r.getRidgeT()->seen= true;
-                    os<< r.print(pr.run_id);
+                    os << r.print(pr.run_id);
                     ridgeCount++;
                 }
             }
         }
     }
     if(ridgeCount!=rs.count()){
-        os<< "     - all ridges:";
+        os << "     - all ridges:";
         for(QhullRidgeSet::iterator i=rs.begin(); i!=rs.end(); ++i){
             QhullRidge r= *i;
-            os<< " r" << r.id();
+            os << " r" << r.id();
         }
-        os<< endl;
+        os << endl;
     }
     for(QhullRidgeSet::iterator i=rs.begin(); i!=rs.end(); ++i){
         QhullRidge r= *i;
         if(!r.getRidgeT()->seen){
-            os<< r.print(pr.run_id);
+            os << r.print(pr.run_id);
         }
     }
     return os;
@@ -507,6 +507,6 @@ operator<<(ostream &os, const QhullFacet::PrintRidges &pr)
 ostream &
 operator<<(ostream &os, QhullFacet &f)
 {
-    os<< f.print(UsingLibQhull::NOqhRunId);
+    os << f.print(UsingLibQhull::NOqhRunId);
     return os;
 }//<< QhullFacet
diff --git a/cpp/QhullFacet.h b/cpp/QhullFacet.h
index 6928d61535f8403e9138764ab11384cc87c0dbb4..96f7f147e32c7d62e2c8c3a9628f327ea8a1ddb4 100644
--- a/cpp/QhullFacet.h
+++ b/cpp/QhullFacet.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullFacet.h#32 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullFacet.h#34 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -40,7 +40,7 @@ class QhullFacet {
 
 private:
 #//Fields -- no additions (QhullFacetSet of facetT*)
-    facetT             *qh_facet;  //! May be 0 (!isDefined) for corner cases (e.g., *facetSet.end()==0)
+    facetT             *qh_facet;  //! May be 0 (!isDefined) for corner cases (e.g., *facetSet.end()==0) and tricoplanarOwner()
 
 #//Class objects
     static facetT       s_empty_facet; // needed for shallow copy
@@ -146,6 +146,6 @@ std::ostream &operator<<(std::ostream &os, const orgQhull::QhullFacet::PrintFlag
 std::ostream &operator<<(std::ostream &os, const orgQhull::QhullFacet::PrintHeader &pr);
 std::ostream &operator<<(std::ostream &os, const orgQhull::QhullFacet::PrintRidges &pr);
 std::ostream &operator<<(std::ostream &os, const orgQhull::QhullFacet::PrintFacet &pr);
-std::ostream &operator<<(std::ostream &os, orgQhull::QhullFacet &f); //FIXUP.  No conversion! { os<< f.print(orgQhull::UsingLibQhull::NOqhRunId); return os; } // FIXUP non-const due to center.  Make it mutable?
+std::ostream &operator<<(std::ostream &os, orgQhull::QhullFacet &f); //FIXUP.  No conversion! { os << f.print(orgQhull::UsingLibQhull::NOqhRunId); return os; } // FIXUP non-const due to center.  Make it mutable?
 
 #endif // QHULLFACET_H
diff --git a/cpp/QhullFacetList.cpp b/cpp/QhullFacetList.cpp
index 12f23d0eeb10b73560ff1248823a308a3b5b2e96..e9d7aa136d4d93cd2173169fc8ff7d01c63b946b 100644
--- a/cpp/QhullFacetList.cpp
+++ b/cpp/QhullFacetList.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullFacetList.cpp#19 $$Change: 1102 $
-** $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullFacetList.cpp#21 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -88,9 +88,9 @@ ostream &
 operator<<(ostream &os, const QhullFacetList::PrintFacetList &pr)
 {
     QhullFacetList fs= *pr.facet_list;
-    os<< "Vertices for " << fs.count() << " facets" << endl;
-    os<< fs.printVertices(pr.run_id);
-    os<< fs.printFacets(pr.run_id);
+    os << "Vertices for " << fs.count() << " facets" << endl;
+    os << fs.printVertices(pr.run_id);
+    os << fs.printFacets(pr.run_id);
     return os;
 }//operator<<
 
@@ -101,7 +101,7 @@ operator<<(ostream &os, const QhullFacetList::PrintFacets &pr)
     for(QhullFacetList::const_iterator i= pr.facet_list->begin(); i != pr.facet_list->end(); ++i){
         QhullFacet f= *i;
         if(pr.facet_list->isSelectAll() || f.isGood()){
-            os<< f.print(pr.run_id);
+            os << f.print(pr.run_id);
         }
     }
     return os;
@@ -115,7 +115,7 @@ operator<<(ostream &os, const QhullFacetList::PrintVertices &pr)
     QhullVertexSet vs(pr.run_id, pr.facet_list->first().getFacetT(), NULL, pr.facet_list->isSelectAll());
     for(QhullVertexSet::iterator i=vs.begin(); i!=vs.end(); ++i){
         QhullVertex v= *i;
-        os<< v.print(pr.run_id);
+        os << v.print(pr.run_id);
     }
     return os;
 }//printVertices
diff --git a/cpp/QhullFacetList.h b/cpp/QhullFacetList.h
index 54fa54d0a460af6d9a825cc004ffd529ab1fbd5b..b7a898f60845526a31ba4997ddd579ca6711c014 100644
--- a/cpp/QhullFacetList.h
+++ b/cpp/QhullFacetList.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullFacetList.h#18 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullFacetList.h#20 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -101,6 +101,6 @@ std::ostream &operator<<(std::ostream &os, const orgQhull::QhullFacetList::Print
 // FIXUP -- why did <<facetList work and the others did not?
 // print() not available since printVertices() requires qhRunId.
 // [9/09] added const
-inline std::ostream &operator<<(std::ostream &os, const orgQhull::QhullFacetList &fs) { os<< fs.printFacets(orgQhull::UsingLibQhull::NOqhRunId); return os; } 
+inline std::ostream &operator<<(std::ostream &os, const orgQhull::QhullFacetList &fs) { os << fs.printFacets(orgQhull::UsingLibQhull::NOqhRunId); return os; } 
 
 #endif // QHULLFACETLIST_H
diff --git a/cpp/QhullFacetSet.cpp b/cpp/QhullFacetSet.cpp
index 9db1bbb692c18f885a48ace06c1bf0e2322be3e4..c9903e373b6aa1604021202b94a8be510a201506 100644
--- a/cpp/QhullFacetSet.cpp
+++ b/cpp/QhullFacetSet.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullFacetSet.cpp#16 $$Change: 1102 $
-** $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullFacetSet.cpp#18 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -86,7 +86,7 @@ using orgQhull::UsingLibQhull;
 ostream &
 operator<<(ostream &os, const QhullFacetSet &fs)
 {
-    os<< fs.print(UsingLibQhull::NOqhRunId, "");
+    os << fs.print(UsingLibQhull::NOqhRunId, "");
     return os;
 }//<<QhullFacetSet
 
@@ -98,7 +98,7 @@ operator<<(ostream &os, const QhullFacetSet::PrintFacetSet &pr)
     for(QhullFacetSet::iterator i=fs.begin(); i != fs.end(); ++i){
         QhullFacet f= *i;
         if(fs.isSelectAll() || f.isGood()){
-            os<< f.print(pr.run_id);
+            os << f.print(pr.run_id);
         }
     }
     return os;
@@ -108,18 +108,18 @@ operator<<(ostream &os, const QhullFacetSet::PrintFacetSet &pr)
 ostream &
 operator<<(ostream &os, const QhullFacetSet::PrintIdentifiers &p)
 {
-    os<< p.message;
+    os << p.message;
     for(QhullFacetSet::const_iterator i=p.facet_set->begin(); i!=p.facet_set->end(); ++i){
         const QhullFacet f= *i;
         if(f.getFacetT()==qh_MERGEridge){
-            os<< " MERGE";
+            os << " MERGE";
         }else if(f.getFacetT()==qh_DUPLICATEridge){
-            os<< " DUP";
+            os << " DUP";
         }else if(p.facet_set->isSelectAll() || f.isGood()){
-            os<< " f" << f.id();
+            os << " f" << f.id();
         }
     }
-    os<< endl;
+    os << endl;
     return os;
 }//<<QhullFacetSet::PrintIdentifiers
 
diff --git a/cpp/QhullFacetSet.h b/cpp/QhullFacetSet.h
index 31a62daa4d73d0a4bb55381feb094c8c620664e9..a847aee8cb05f2b7466b23c6b8fc6ba7c76399e2 100644
--- a/cpp/QhullFacetSet.h
+++ b/cpp/QhullFacetSet.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullFacetSet.h#16 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullFacetSet.h#18 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -87,7 +87,7 @@ public:
 
 #//== Global namespace =========================================
 
-std::ostream &operator<<(std::ostream &os, const orgQhull::QhullFacetSet &fs); // FIXUP no 'const ...PrintFacetSet as below! { os<< fs.print(orgQhull::UsingLibQhull::NOqhRunId, ""); }
+std::ostream &operator<<(std::ostream &os, const orgQhull::QhullFacetSet &fs); // FIXUP no 'const ...PrintFacetSet as below! { os << fs.print(orgQhull::UsingLibQhull::NOqhRunId, ""); }
 std::ostream &operator<<(std::ostream &os, const orgQhull::QhullFacetSet::PrintFacetSet &pr);
 std::ostream &operator<<(std::ostream &os, const orgQhull::QhullFacetSet::PrintIdentifiers &p);
 
diff --git a/cpp/QhullHyperplane.cpp b/cpp/QhullHyperplane.cpp
index 86dc78f3197b84ceb43cf0cc2366e6552394337b..25a91ebe00d8638243502e4aa6553a9e7c391b19 100644
--- a/cpp/QhullHyperplane.cpp
+++ b/cpp/QhullHyperplane.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullHyperplane.cpp#6 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullHyperplane.cpp#8 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -116,7 +116,7 @@ using orgQhull::UsingLibQhull;
 ostream &
 operator<<(ostream &os, const QhullHyperplane &p)
 {
-    os<< p.print();
+    os << p.print();
     return os;
 }
 
@@ -125,15 +125,15 @@ operator<<(ostream &os, const QhullHyperplane::PrintHyperplane &pr)
 {
     QhullHyperplane p= *pr.hyperplane;
     if(pr.hyperplane_message){
-        os<< pr.hyperplane_message;
+        os << pr.hyperplane_message;
     }
     const realT *c= p.coordinates();
     for(int k=p.dimension(); k--; ){
         realT r= *c++;
         if(pr.hyperplane_message){
-            os<< " " << r; // FIXUP %8.4g
+            os << " " << r; // FIXUP %8.4g
         }else{
-            os<< " " << r; // FIXUP qh_REAL_1
+            os << " " << r; // FIXUP qh_REAL_1
         }
     }
     if(pr.hyperplane_offset_message){
@@ -141,7 +141,7 @@ operator<<(ostream &os, const QhullHyperplane::PrintHyperplane &pr)
     }else{
         os << " " << p.offset();
     }
-    os<< std::endl;
+    os << std::endl;
     return os;
 }//PrintHyperplane
 
diff --git a/cpp/QhullHyperplane.h b/cpp/QhullHyperplane.h
index dd13c70c60bb7536a71634e52182caa45011c2c8..9d5fd6654432f6d3a8f22e251b35f0227b2f553e 100644
--- a/cpp/QhullHyperplane.h
+++ b/cpp/QhullHyperplane.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullHyperplane.h#7 $$Change: 1112 $
-** $DateTime: 2009/12/11 19:53:07 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullHyperplane.h#8 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullIterator.h b/cpp/QhullIterator.h
index 06a7f5012905d52ce6b3e870beb02493f79224c5..634be5dec7dea7e7e134e0e9424448b3777bcb67 100644
--- a/cpp/QhullIterator.h
+++ b/cpp/QhullIterator.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullIterator.h#17 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullIterator.h#18 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullLinkedList.h b/cpp/QhullLinkedList.h
index 9f44a741ec2588435ad154446e02efa7fc0e517f..1354e5f54256dcdc4a178172a435a8e0992b5757 100644
--- a/cpp/QhullLinkedList.h
+++ b/cpp/QhullLinkedList.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullLinkedList.h#27 $$Change: 1114 $
-** $DateTime: 2009/12/12 13:49:07 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullLinkedList.h#29 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -367,7 +367,7 @@ operator<<(std::ostream &os, const orgQhull::QhullLinkedList<T> &qs)
 {
     typename orgQhull::QhullLinkedList<T>::const_iterator i;
     for(i= qs.begin(); i != qs.end(); ++i){
-        os<< *i;
+        os << *i;
     }
     return os;
 }//operator<<
diff --git a/cpp/QhullLog.cpp b/cpp/QhullLog.cpp
index c747d687cbe5b7c4d1dce7b13f0b0bf66e425901..6fe762edd6dba5d3954162164ef47cc017b7ee5f 100644
--- a/cpp/QhullLog.cpp
+++ b/cpp/QhullLog.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullLog.cpp#7 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullLog.cpp#8 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullLog.h b/cpp/QhullLog.h
index 50e1ca0becfce231e4db27d5acc466379d832716..bb3c1478013bb45cd40ef42bac2e124cde859ccf 100644
--- a/cpp/QhullLog.h
+++ b/cpp/QhullLog.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullLog.h#9 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullLog.h#10 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullPoint.cpp b/cpp/QhullPoint.cpp
index 9aa38750f0dd6213f7f70b26e23e172b9f7134fb..ff3669a94a0cceae9afd6f6cf51012bef3ff07f3 100644
--- a/cpp/QhullPoint.cpp
+++ b/cpp/QhullPoint.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullPoint.cpp#23 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullPoint.cpp#25 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -61,7 +61,7 @@ operator==(const QhullPoint &other) const
         dist2 += diff*diff;
     }
     double epsilon= UsingLibQhull::globalDistanceEpsilon();
-    // std::cout<< "FIXUP dist2 " << dist2 << " epsilon^2 " << epsilon*epsilon << std::endl;
+    // std::cout << "FIXUP dist2 " << dist2 << " epsilon^2 " << epsilon*epsilon << std::endl;
     return (dist2<=(epsilon*epsilon));
 }//operator==
 
@@ -125,7 +125,7 @@ using orgQhull::UsingLibQhull;
 ostream &
 operator<<(ostream &os, const QhullPoint &p)
 {
-    os<< p.printWithIdentifier(UsingLibQhull::NOqhRunId, "");
+    os << p.printWithIdentifier(UsingLibQhull::NOqhRunId, "");
     return os;
 }
 
@@ -137,22 +137,22 @@ operator<<(ostream &os, const QhullPoint::PrintPoint &pr)
     int i= p.id(pr.run_id);
     if(pr.point_message){
         if(*pr.point_message){
-            os<< pr.point_message << " ";
+            os << pr.point_message << " ";
         }
         if(pr.with_identifier && (i!=-1)){
-            os<< "p" << i << ": ";
+            os << "p" << i << ": ";
         }
     }
     const realT *c= p.coordinates();
     for(int k=p.dimension(); k--; ){
         realT r= *c++;
         if(pr.point_message){
-            os<< " " << r; // FIXUP %8.4g
+            os << " " << r; // FIXUP %8.4g
         }else{
-            os<< " " << r; // FIXUP qh_REAL_1
+            os << " " << r; // FIXUP qh_REAL_1
         }
     }
-    os<< std::endl;
+    os << std::endl;
     return os;
 }//printPoint
 
diff --git a/cpp/QhullPoint.h b/cpp/QhullPoint.h
index ebb185c81779de5b777a49f45c0ea363a917a795..ba0b6a5950ced47d5603983c99b9e1163738c08c 100644
--- a/cpp/QhullPoint.h
+++ b/cpp/QhullPoint.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullPoint.h#27 $$Change: 1112 $
-** $DateTime: 2009/12/11 19:53:07 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullPoint.h#29 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -128,7 +128,7 @@ QHULL_DECLARE_SEQUENTIAL_ITERATOR(QhullPoint, coordT)
 #//Global functions
 
 std::ostream &operator<<(std::ostream &os, const orgQhull::QhullPoint::PrintPoint &pr);
-std::ostream &operator<<(std::ostream &os, const orgQhull::QhullPoint &p); // FIXUP OK in c program but not inline { os<< p.print(orgQhull::UsingLibQhull::NOqhRunId, ""); return os; }
+std::ostream &operator<<(std::ostream &os, const orgQhull::QhullPoint &p); // FIXUP OK in c program but not inline { os << p.print(orgQhull::UsingLibQhull::NOqhRunId, ""); return os; }
 
 #endif // QHPOINT_H
 
diff --git a/cpp/QhullPointSet.cpp b/cpp/QhullPointSet.cpp
index 5e04e423bf7ea3077f55810b709561dbf2235172..996810bb13fa80004a78e77350d24da6c0247d2d 100644
--- a/cpp/QhullPointSet.cpp
+++ b/cpp/QhullPointSet.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 c-> Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullPointSet.cpp#5 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullPointSet.cpp#7 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -160,7 +160,7 @@ using orgQhull::UsingLibQhull;
 ostream & 
 operator<<(ostream &os, const QhullPointSet &ps)
 {
-    os<< ps.print(UsingLibQhull::NOqhRunId); 
+    os << ps.print(UsingLibQhull::NOqhRunId); 
     return os; 
 }//<<QhullPointSet
 
@@ -169,17 +169,17 @@ operator<<(ostream &os, const QhullPointSet::PrintIdentifiers &pr)
 {
     const QhullPointSet s= *pr.point_set;
     if (pr.message) {
-        os<< pr.message;
+        os << pr.message;
     }
     for(QhullPointSet::const_iterator i=s.begin(); i != s.end(); ++i){
         if(i!=s.begin()){
-            os<< " ";
+            os << " ";
         }
         const QhullPoint point= *i;
         int id= point.id(pr.run_id);
-        os<< "p" << id;
+        os << "p" << id;
     }
-    os<< endl;
+    os << endl;
     return os;
 }//PrintIdentifiers
 
@@ -188,11 +188,11 @@ operator<<(ostream &os, const QhullPointSet::PrintPointSet &pr)
 {
     const QhullPointSet s= *pr.point_set;
     if (pr.message) {
-        os<< pr.message;
+        os << pr.message;
     }
     for(QhullPointSet::const_iterator i=s.begin(); i != s.end(); ++i){
         const QhullPoint point= *i;
-        os<< point.print(pr.run_id);
+        os << point.print(pr.run_id);
     }
     return os;
 }//printPointSet
diff --git a/cpp/QhullPointSet.h b/cpp/QhullPointSet.h
index 750b5cea141ea2914ecb34489fea07371225a03a..bd515aa072fbfda236acec90634bd2abc6a70339 100644
--- a/cpp/QhullPointSet.h
+++ b/cpp/QhullPointSet.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullPointSet.h#14 $$Change: 1114 $
-** $DateTime: 2009/12/12 13:49:07 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullPointSet.h#15 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullPoints.cpp b/cpp/QhullPoints.cpp
index 2b134c848bb762e5a36dba94bbeb84e7bd6dd1cc..fa983dc55e7df02720800b2ce5c41fc07d1a4330 100644
--- a/cpp/QhullPoints.cpp
+++ b/cpp/QhullPoints.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullPoints.cpp#15 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullPoints.cpp#17 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -197,7 +197,7 @@ operator<<(ostream &os, const QhullPoints &p)
 {
     QhullPointsIterator i(p);
     while(i.hasNext()){
-        os<< i.next();
+        os << i.next();
     }
     return os;
 }//operator<<QhullPoints
@@ -205,14 +205,14 @@ operator<<(ostream &os, const QhullPoints &p)
 ostream &
 operator<<(ostream &os, const QhullPoints::PrintPoints &pr)
 {
-    os<< pr.point_message;
+    os << pr.point_message;
     QhullPoints ps= *pr.points;
     for(QhullPoints::iterator i=ps.begin(); i != ps.end(); ++i){
         QhullPoint p= *i;
         if(pr.with_identifier){
-            os<< p.printWithIdentifier(pr.run_id, "");
+            os << p.printWithIdentifier(pr.run_id, "");
         }else{
-            os<< p.print(pr.run_id, "");
+            os << p.print(pr.run_id, "");
         }
     }
     return os;
diff --git a/cpp/QhullPoints.h b/cpp/QhullPoints.h
index 46082ce4e284878e844f29e60e2eb378c8d420b1..f1e2bd3edbc329786b03b20886d6d54feb03c60b 100644
--- a/cpp/QhullPoints.h
+++ b/cpp/QhullPoints.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullPoints.h#24 $$Change: 1116 $
-** $DateTime: 2009/12/13 22:31:48 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullPoints.h#25 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullQh.cpp b/cpp/QhullQh.cpp
index 83114116ce20869617d3d6e8eaa5413017acd37d..9e652d9dd6fe3384b5b234bbe15efc48ff44e9ed 100644
--- a/cpp/QhullQh.cpp
+++ b/cpp/QhullQh.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullQh.cpp#22 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullQh.cpp#24 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -100,53 +100,5 @@ QhullQh::
 
 #//Parallel Access
 
-void QhullQh::
-errorAnotherUser()
-{
-#if qh_QHpointer
-        if(qh_qh==0){
-	    throw QhullError(10019, "Qhull error: qhull was freed by another caller.  It did not call stopQhullAccess().");
-        }
-        if(qh_qh!=0 && qh_qh!=static_cast<qhT*>(this)){
-            throw QhullError(10020, "Qhull error: qhull is already in use by another instance (run %d qh_qh %x)", qh run_id, 0, 0, qh_qh); 
-        }
-#endif
-}//errorAnotherUser
-
-void QhullQh::
-checkIfQhullRan() // FIXUP -- use successful runQhull instead of TEMPsize?  Many calls OK even if runQhull error'd
-{
-    if(qh TEMPsize==0){ // qh_initqhull_buffers() not called
-        throw QhullError(10023, "Qhull error: checkIfQhullRan failed.  Call runQhull() first.");
-    }
-}//checkIfQhullRan
-
-void QhullQh::
-startQhullAccess()
-{
-#   if qh_QHpointer
-        if(qh_qh){
-            errorAnotherUser();
-        }else{
-            qh_qh= this;
-        }
-#   else
-        errorAnotherUser();
-#   endif
-}//startQhullAccess
-
-void QhullQh::
-stopQhullAccess()
-{
-#   if qh_QHpointer
-        if(qh_qh){
-            errorAnotherUser();
-            qh_qh= 0;
-        }
-#   else
-        errorAnotherUser();
-#   endif
-}//stopQhullAccess
-
 }//namespace orgQhull
 
diff --git a/cpp/QhullQh.h b/cpp/QhullQh.h
index e74f3280e2ba013e17633020d3d3ea3dcd8cdc64..d85f1d0630763f607b0d490edea8c506f23124ca 100644
--- a/cpp/QhullQh.h
+++ b/cpp/QhullQh.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullQh.h#16 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullQh.h#18 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -44,12 +44,6 @@ private:
                         QhullQh(const QhullQh &);
     QhullQh            &operator=(const QhullQh &);
 
-public:
-#//Access
-    void checkIfQhullRan();
-    void errorAnotherUser();
-    void startQhullAccess();
-    void stopQhullAccess();
 };//class QhullQh
 
 }//namespace orgQhull
diff --git a/cpp/QhullRidge.cpp b/cpp/QhullRidge.cpp
index b25ebfc7be5a9455f0281afc76ae21a024fdd9f8..34864be0468b23b074c38fd134bdf3972729ff64 100644
--- a/cpp/QhullRidge.cpp
+++ b/cpp/QhullRidge.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullRidge.cpp#12 $$Change: 1102 $
-** $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullRidge.cpp#14 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -57,7 +57,7 @@ using orgQhull::UsingLibQhull;
 ostream &
 operator<<(ostream &os, const QhullRidge &r)
 {      
-    os<< r.print(UsingLibQhull::NOqhRunId); 
+    os << r.print(UsingLibQhull::NOqhRunId); 
     return os; 
 }//<< QhullRidge
 
@@ -67,18 +67,18 @@ ostream &
 operator<<(ostream &os, const QhullRidge::PrintRidge &pr)
 { 
     QhullRidge r= *pr.ridge;
-    os<< "     - r" << r.id();
+    os << "     - r" << r.id();
     if(r.getRidgeT()->tested){
-        os<< " tested";
+        os << " tested";
     }
     if(r.getRidgeT()->nonconvex){
-        os<< " nonconvex";
+        os << " nonconvex";
     }
-    os<< endl;
-    os<< r.vertices().print(pr.run_id, "           vertices:");
+    os << endl;
+    os << r.vertices().print(pr.run_id, "           vertices:");
     //FIXUP -- what if top or bottom are NULL?
     if(r.getRidgeT()->top && r.getRidgeT()->bottom){
-        os<< "           between f" << r.topFacet().id() << " and f" << r.bottomFacet().id() << endl;
+        os << "           between f" << r.topFacet().id() << " and f" << r.bottomFacet().id() << endl;
     }
     return os;
 }//<< PrintRidge
diff --git a/cpp/QhullRidge.h b/cpp/QhullRidge.h
index cc228d899db24f1c57a565c6c193f926c6d7621c..ba198a09bd52bd495f406ac3caa405c44c96ea05 100644
--- a/cpp/QhullRidge.h
+++ b/cpp/QhullRidge.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullRidge.h#19 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullRidge.h#21 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -102,7 +102,7 @@ public:
 
 }//namespace orgQhull
 
-std::ostream &operator<<(std::ostream &os, const orgQhull::QhullRidge &r); //FIXUP no conversion.  OK in .cpp  { os<< r.print(orgQhull::UsingLibQhull::NOqhRunId); return os; }
+std::ostream &operator<<(std::ostream &os, const orgQhull::QhullRidge &r); //FIXUP no conversion.  OK in .cpp  { os << r.print(orgQhull::UsingLibQhull::NOqhRunId); return os; }
 std::ostream &operator<<(std::ostream &os, const orgQhull::QhullRidge::PrintRidge &pr);
 
 #endif // QHULLRIDGE_H
diff --git a/cpp/QhullSet.cpp b/cpp/QhullSet.cpp
index 7ea431b6779c323564f1d2afd39e78c846358cc4..f43e3ddd5baa6148e1e67229ec9c2a08ae4f1f8d 100644
--- a/cpp/QhullSet.cpp
+++ b/cpp/QhullSet.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullSet.cpp#15 $$Change: 1027 $
-** $DateTime: 2009/07/03 21:11:23 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullSet.cpp#16 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullSet.h b/cpp/QhullSet.h
index ee769cdd8c2006ac11ffed9bebf691441db5983a..c2e3ef88dcf481ab7735ee7a283f6ec1d13bacd3 100644
--- a/cpp/QhullSet.h
+++ b/cpp/QhullSet.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullSet.h#32 $$Change: 1114 $
-** $DateTime: 2009/12/12 13:49:07 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullSet.h#34 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -351,7 +351,7 @@ operator<<(std::ostream &os, const orgQhull::QhullSet<T> &qs)
     const T *i= qs.begin();
     const T *e= qs.end();
     while(i!=e){
-        os<< *i;
+        os << *i;
         ++i;
     }
     return os;
diff --git a/cpp/QhullSets.h b/cpp/QhullSets.h
index dce0253a4d22e7c1521483a3e3932622c05eca58..439f867b561a1894925d6a4ee3614c7f25a832e5 100644
--- a/cpp/QhullSets.h
+++ b/cpp/QhullSets.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullSets.h#4 $$Change: 1048 $
-** $DateTime: 2009/09/24 21:34:06 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullSets.h#5 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullStat.cpp b/cpp/QhullStat.cpp
index 952cc26db522c60737df658ec726aa67c70f6f0b..32e269f8d0445c0cd7a94543519b19ee2073e7a2 100644
--- a/cpp/QhullStat.cpp
+++ b/cpp/QhullStat.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullStat.cpp#6 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullStat.cpp#7 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullStat.h b/cpp/QhullStat.h
index 7a638d1c5f160aca599675ae857e87d5a15ef2b4..abce85aed0b7a8115ca2322257370ddc23fd557d 100644
--- a/cpp/QhullStat.h
+++ b/cpp/QhullStat.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullStat.h#8 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullStat.h#9 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/QhullVertex.cpp b/cpp/QhullVertex.cpp
index 8329f6d1177e41208e7f9390dd43a60e5a3b6fca..c8849bd0986650becbae4762c7e042b6274215cb 100644
--- a/cpp/QhullVertex.cpp
+++ b/cpp/QhullVertex.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullVertex.cpp#19 $$Change: 1102 $
-** $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullVertex.cpp#21 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -57,30 +57,30 @@ operator<<(ostream &os, const QhullVertex::PrintVertex &pr)
 { 
     QhullVertex v= *pr.vertex;
     QhullPoint p= v.point();
-    os<< "- p" << p.id(pr.run_id) << " (v" << v.id() << "): ";
+    os << "- p" << p.id(pr.run_id) << " (v" << v.id() << "): ";
     const realT *c= p.coordinates();
     for(int k= p.dimension(); k--; ){
-        os<< " " << *c++; // FIXUP %5.2g 
+        os << " " << *c++; // FIXUP %5.2g 
     }
     if(v.getVertexT()->deleted){
-        os<< " deleted";
+        os << " deleted";
     }
     if(v.getVertexT()->delridge){
-        os<< " ridgedeleted";
+        os << " ridgedeleted";
     }
-    os<< endl;
+    os << endl;
     QhullFacetSetIterator i= v.neighborFacets();
     if(i.hasNext()){
-        os<< " neighborFacets:";
+        os << " neighborFacets:";
         int count= 0;
         while(i.hasNext()){
             if(++count % 100 == 0){
-                os<< endl << "     ";
+                os << endl << "     ";
             }
             QhullFacet f= i.next();
-            os<< " f" << f.id();
+            os << " f" << f.id();
         }
-        os<< endl;
+        os << endl;
     }
     return os;
 }//<< PrintVertex
diff --git a/cpp/QhullVertex.h b/cpp/QhullVertex.h
index c743e7c12f0c5fbe31b9763cda403cfdb98ac3e5..a4b3a5fb5a3a7d06e62a6e542f400f2f5abd22e4 100644
--- a/cpp/QhullVertex.h
+++ b/cpp/QhullVertex.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullVertex.h#22 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullVertex.h#24 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -95,6 +95,6 @@ public:
 #//GLobal
 
 std::ostream &operator<<(std::ostream &os, const orgQhull::QhullVertex::PrintVertex &pr);
-inline std::ostream &operator<<(std::ostream &os, const orgQhull::QhullVertex &v) { os<< v.print(orgQhull::UsingLibQhull::NOqhRunId); return os; }
+inline std::ostream &operator<<(std::ostream &os, const orgQhull::QhullVertex &v) { os << v.print(orgQhull::UsingLibQhull::NOqhRunId); return os; }
 
 #endif // QHULLVERTEX_H
diff --git a/cpp/QhullVertexSet.cpp b/cpp/QhullVertexSet.cpp
index b079bdbfbec37457bf06191709f635b4e8034d8a..6ef3efbf1a6a91679a167d9c62b627d888f58e3d 100644
--- a/cpp/QhullVertexSet.cpp
+++ b/cpp/QhullVertexSet.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullVertexSet.cpp#5 $$Change: 1102 $
-** $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullVertexSet.cpp#7 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -83,9 +83,9 @@ operator<<(ostream &os, const QhullVertexSet::PrintIdentifiers &pr)
     }
     for(QhullVertexSet::const_iterator i=pr.Vertex_set->begin(); i!=pr.Vertex_set->end(); ++i){
         const QhullVertex v= *i;
-        os<< " v" << v.id();
+        os << " v" << v.id();
     }
-    os<< endl;
+    os << endl;
     return os;
 }//<<QhullVertexSet::PrintIdentifiers
 
@@ -94,15 +94,15 @@ operator<<(ostream &os, const QhullVertexSet::PrintIdentifiers &pr)
 ostream &
 operator<<(ostream &os, const QhullVertexSet::PrintVertexSet &pr){
 
-    os<< pr.message;
+    os << pr.message;
     const QhullVertexSet *vs= pr.Vertex_set;
     QhullVertexSetIterator i= *vs;
     while(i.hasNext()){
         const QhullVertex v= i.next();
         const QhullPoint p= v.point();
-        os<< " p" << p.id(pr.run_id) << "(v" << v.id() << ")";
+        os << " p" << p.id(pr.run_id) << "(v" << v.id() << ")";
     }
-    os<< endl;
+    os << endl;
 
     return os;
 }//<< PrintVertexSet
diff --git a/cpp/QhullVertexSet.h b/cpp/QhullVertexSet.h
index 82761cc0fa4766340a37ed166e3bdb803abca2ab..016cd0938211bf026b4b2e22d6f90d6af09c6109 100644
--- a/cpp/QhullVertexSet.h
+++ b/cpp/QhullVertexSet.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/QhullVertexSet.h#5 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/QhullVertexSet.h#7 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -74,6 +74,6 @@ public:
 
 std::ostream &operator<<(std::ostream &os, const orgQhull::QhullVertexSet::PrintVertexSet &pr);
 std::ostream &operator<<(std::ostream &os, const orgQhull::QhullVertexSet::PrintIdentifiers &p);
-inline std::ostream &operator<<(std::ostream &os, const orgQhull::QhullVertexSet &vs) { os<< vs.print(orgQhull::UsingLibQhull::NOqhRunId, ""); return os; }
+inline std::ostream &operator<<(std::ostream &os, const orgQhull::QhullVertexSet &vs) { os << vs.print(orgQhull::UsingLibQhull::NOqhRunId, ""); return os; }
 
 #endif // QHULLVERTEXSET_H
diff --git a/cpp/RboxPoints.cpp b/cpp/RboxPoints.cpp
index 4c9c3400dca7d2c28fc3424767c4321cbce86e6b..653a28d070575f9bf3d3ff49cc70a802cd5ecabe 100644
--- a/cpp/RboxPoints.cpp
+++ b/cpp/RboxPoints.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/RboxPoints.cpp#29 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/RboxPoints.cpp#31 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -196,22 +196,22 @@ void qh_fprintf_rbox(FILE*, int msgcode, const char *fmt, ... ) {
 	}
 	break;
     case 9407:
-        *out<< va_arg(args, int);
+        *out << va_arg(args, int);
         // fall through
     case 9405:
-        *out<< va_arg(args, int);
+        *out << va_arg(args, int);
         // fall through
     case 9403:
-        *out<< va_arg(args, int);
+        *out << va_arg(args, int);
         break;
     case 9408:
-	*out<< va_arg(args, double);
+	*out << va_arg(args, double);
 	// fall through
     case 9406:
-        *out<< va_arg(args, double);
+        *out << va_arg(args, double);
 	// fall through
     case 9404:
-        *out<< va_arg(args, double);
+        *out << va_arg(args, double);
 	break;
     }
     va_end(args);
diff --git a/cpp/RboxPoints.h b/cpp/RboxPoints.h
index 3678685a5a7a0cd94b2aa3bade75e4e70650ed05..065d2b57c38c0b9daeef82725b43323d7ce68a94 100644
--- a/cpp/RboxPoints.h
+++ b/cpp/RboxPoints.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/RboxPoints.h#25 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/RboxPoints.h#26 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/UsingLibQhull.cpp b/cpp/UsingLibQhull.cpp
index b318207ebf7922fc468b96ee5a941c1d2fb7f3af..146b19136c1ba757badae2ca3062f8af72511421 100644
--- a/cpp/UsingLibQhull.cpp
+++ b/cpp/UsingLibQhull.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/UsingLibQhull.cpp#1 $$Change: 1107 $
-** $DateTime: 2009/12/07 21:05:37 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/UsingLibQhull.cpp#3 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -202,7 +202,7 @@ checkQhullMemoryEmpty()
 double UsingLibQhull::
 currentAngleEpsilon() 
 { 
-    if(s_qhull_output && s_qhull_output->defined()){
+    if(s_qhull_output && s_qhull_output->initialized()){
         return s_qhull_output->qhullQh()->ANGLEround*FACTORepsilon;
     }else if(s_has_angle_epsilon){
         return s_angle_epsilon;
@@ -213,7 +213,7 @@ currentAngleEpsilon()
 double UsingLibQhull::
 currentDistanceEpsilon() 
 { 
-    if(s_qhull_output && s_qhull_output->defined()){
+    if(s_qhull_output && s_qhull_output->initialized()){
         return s_qhull_output->qhullQh()->DISTround*FACTORepsilon;
     }else if(s_has_distance_epsilon){
         return s_distance_epsilon;
@@ -224,7 +224,7 @@ currentDistanceEpsilon()
 const coordT *UsingLibQhull::
 currentPoints(int *dimension, const coordT **pointsEnd)
 {
-    if(s_qhull_output && s_qhull_output->defined()){
+    if(s_qhull_output && s_qhull_output->initialized()){
         *dimension= qh hull_dim;
         *pointsEnd= qh first_point+qh num_points*qh hull_dim;
         return qh first_point;
@@ -234,7 +234,7 @@ currentPoints(int *dimension, const coordT **pointsEnd)
         return s_points_begin; 
     }
     throw QhullError(10059, "Qhull error: missing definition for currentPoints().  Need currentQhull() or setGlobalDistanceEpsilon()");
-}//globalPoints
+}//currentPoints
 
 Qhull &UsingLibQhull::
 currentQhull()
@@ -245,10 +245,11 @@ currentQhull()
     return *s_qhull_output;
 }//currentQhull
 
+// for QhullVertex::dimension() when >= 16
 int UsingLibQhull::
 currentVertexDimension() 
 { 
-    if(s_qhull_output && s_qhull_output->defined()){
+    if(s_qhull_output && s_qhull_output->initialized()){
         return s_qhull_output->dimension();
     }else if(s_has_vertex_dimension){
         return s_vertex_dimension;
@@ -271,19 +272,19 @@ globalPoints(int *dimension, const coordT **pointsEnd)
 bool UsingLibQhull::
 hasPoints() 
 { 
-    return s_has_points || (s_qhull_output && s_qhull_output->defined());
+    return s_has_points || (s_qhull_output && s_qhull_output->initialized());
 }
 
 bool UsingLibQhull::
 hasVertexDimension() 
 { 
-    return s_has_vertex_dimension || (s_qhull_output && s_qhull_output->defined());
+    return s_has_vertex_dimension || (s_qhull_output && s_qhull_output->initialized());
 }
 
 void UsingLibQhull::
 setGlobals() 
 { 
-    if(s_qhull_output && s_qhull_output->defined()){
+    if(s_qhull_output && s_qhull_output->initialized()){
         QhullQh *qqh= s_qhull_output->qhullQh();
         s_angle_epsilon= qqh->ANGLEround*FACTORepsilon;
         s_distance_epsilon= qqh->DISTround*FACTORepsilon;
@@ -321,7 +322,6 @@ maybeThrowQhullMessage(int exitCode) const
     }
 }//maybeThrowQhullMessage
 
-
 void UsingLibQhull::
 maybeThrowQhullMessage(int exitCode, int noThrow) const
 {
@@ -332,7 +332,6 @@ maybeThrowQhullMessage(int exitCode, int noThrow) const
     }
 }//maybeThrowQhullMessage
 
-
 #//Helpers
 
 //! Return QhullError for maybeThrowFromDestructor()
diff --git a/cpp/UsingLibQhull.h b/cpp/UsingLibQhull.h
index c4c6469a079721acf900d18fe80d211d2be76072..d03e31dfc19b291c6b4fe1b3261086b3aa0e555f 100644
--- a/cpp/UsingLibQhull.h
+++ b/cpp/UsingLibQhull.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/UsingLibQhull.h#2 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/UsingLibQhull.h#4 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -101,6 +101,7 @@ public:
                        ~UsingLibQhull();
 
 #//Methods
+#//Access
     bool                defined() const { return my_qhull!=0; }
     void                maybeThrowQhullMessage(int exitCode) const;
     void                maybeThrowQhullMessage(int exitCode, int noThrow) const;
diff --git a/cpp/functionObjects.h b/cpp/functionObjects.h
index e979b74a18bf6913cdd9dfe31fd7df0101b2ce63..01b71d2fe0cc49d846a31458173b7365854ab204 100644
--- a/cpp/functionObjects.h
+++ b/cpp/functionObjects.h
@@ -1,15 +1,16 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/functionObjects.h#4 $$Change: 1114 $
-** $DateTime: 2009/12/12 13:49:07 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/functionObjects.h#6 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
 #ifndef QHFUNCTIONOBJECTS_H
 #define QHFUNCTIONOBJECTS_H
 
-#include <stdlib.h> // abs()
+#include <stdlib.h> 
+#include <math.h> // abs()
 
 namespace orgQhull {
 #//Type
diff --git a/cpp/qhulltest/Coordinates_test.cpp b/cpp/qhulltest/Coordinates_test.cpp
index 7ec085ad4dc197cfec894b5c6e7f26b5fab2e399..6795b83f26ab9b5089f14c8f32517b87cbabc47b 100644
--- a/cpp/qhulltest/Coordinates_test.cpp
+++ b/cpp/qhulltest/Coordinates_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/Coordinates_test.cpp#13 $$Change: 1116 $
-** $DateTime: 2009/12/13 22:31:48 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/Coordinates_test.cpp#15 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -523,8 +523,8 @@ t_io()
     Coordinates c;
     c << 1.0 << 2.0 << 3.0;
     ostringstream os;
-    os<< "Coordinates 1-2-3\n"<< c;
-    cout<< os.str();
+    os << "Coordinates 1-2-3\n" << c;
+    cout << os.str();
     QString s= QString::fromStdString(os.str());
     QCOMPARE(s.count("2"), 2);
 }//t_io
diff --git a/cpp/qhulltest/PointCoordinates_test.cpp b/cpp/qhulltest/PointCoordinates_test.cpp
index 482b5a8ec79e4664404b4a3a3dd0ec216a4dcb0f..303d68a212983b599fdd3e289a016477074d4b26 100644
--- a/cpp/qhulltest/PointCoordinates_test.cpp
+++ b/cpp/qhulltest/PointCoordinates_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/PointCoordinates_test.cpp#11 $$Change: 1118 $
-** $DateTime: 2009/12/20 16:19:59 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/PointCoordinates_test.cpp#13 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -169,7 +169,7 @@ t_getset()
         QFAIL("setDimension(2) did not fail for 3-d.");
     }catch (const std::exception &e) {
         const char *s= e.what();
-        cout<< "INFO   : Caught " << s; 
+        cout << "INFO   : Caught " << s; 
     }
 }//t_getset
 
@@ -383,10 +383,10 @@ t_io()
     PointCoordinates c;
     c << 1.0 << 2.0 << 3.0 << 1.0 << 2.0 << 3.0;
     ostringstream os;
-    os<< "PointCoordinates 0-d\n"<< c;
+    os << "PointCoordinates 0-d\n" << c;
     c.setDimension(2);
-    os<< "PointCoordinates 1-3-2\n"<< c;
-    cout<< os.str();
+    os << "PointCoordinates 1-3-2\n" << c;
+    cout << os.str();
     QString s= QString::fromStdString(os.str());
     QCOMPARE(s.count("0"), 3);
     QCOMPARE(s.count("2"), 4);
diff --git a/cpp/qhulltest/Point_test.cpp b/cpp/qhulltest/Point_test.cpp
index 648afbd7192fe7fd624c776fd1d985d4efa82593..15554e49bab69f1e8d4c04b2608c469db0ed8446 100644
--- a/cpp/qhulltest/Point_test.cpp
+++ b/cpp/qhulltest/Point_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (p) 2009-2009 p. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/Point_test.cpp#10 $$Change: 1057 $
-** $DateTime: 2009/10/22 20:38:42 $$Author: bbarber $
+** Copyright (p) 2009-2010 p. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/Point_test.cpp#11 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/qhulltest/QhullFacetList_test.cpp b/cpp/qhulltest/QhullFacetList_test.cpp
index 3c4ded544300a53accc13d545b15346a96e9e81e..00759ccff33815a791c0eab060daf3c457aa6f32 100644
--- a/cpp/qhulltest/QhullFacetList_test.cpp
+++ b/cpp/qhulltest/QhullFacetList_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullFacetList_test.cpp#12 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullFacetList_test.cpp#14 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -160,7 +160,7 @@ t_io()
         ostringstream os;
         os << fs.print(q.runId()); // Runs all print options
         os << "\nFacets only\n" << fs; // printVertices() requires a runId
-        cout<< os.str();
+        cout << os.str();
         QString facets= QString::fromStdString(os.str());
         QCOMPARE(facets.count("(v"), 7+12*3*2);
         QCOMPARE(facets.count(QRegExp("f\\d")), 3*7 + 13*3*2);
diff --git a/cpp/qhulltest/QhullFacetSet_test.cpp b/cpp/qhulltest/QhullFacetSet_test.cpp
index c0e35bf1bd813203c68fde591aadee98b8faeafc..0d3d1d92aa8ace091b741cac1e544458404ba644 100644
--- a/cpp/qhulltest/QhullFacetSet_test.cpp
+++ b/cpp/qhulltest/QhullFacetSet_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullFacetSet_test.cpp#9 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullFacetSet_test.cpp#11 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -142,7 +142,7 @@ t_io()
         ostringstream os;
         os << fs.print(q.runId(), "Neighbors of first facet with point 0");
         os << fs.printIdentifiers("\nFacet identifiers: ");
-        cout<< os.str();
+        cout << os.str();
         QString facets= QString::fromStdString(os.str());
         QCOMPARE(facets.count(QRegExp(" f[0-9]")), 2+13*2);
     }
diff --git a/cpp/qhulltest/QhullFacet_test.cpp b/cpp/qhulltest/QhullFacet_test.cpp
index 54243912227b6f5b5bdbd9f2b9047845c22cac04..9eb9bc4f411713bdcedc8c228340c108f8ccdbbd 100644
--- a/cpp/qhulltest/QhullFacet_test.cpp
+++ b/cpp/qhulltest/QhullFacet_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullFacet_test.cpp#27 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullFacet_test.cpp#30 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -90,7 +90,7 @@ t_getSet()
         QhullFacetListIterator i(q.facetList());
         while(i.hasNext()){
             const QhullFacet f= i.next();
-            cout<< f.id() << endl;
+            cout << f.id() << endl;
             QCOMPARE(f.dimension(),3);
             QVERIFY(f.id()>0 && f.id()<=39); 
             QVERIFY(f.isDefined());
@@ -120,7 +120,7 @@ t_getSet()
         int tricoplanarCount2= 0;
         foreach (QhullFacet f, q.facetList()){  // Qt only
             QhullHyperplane h= f.hyperplane();
-            cout<< "Hyperplane: " << h << endl; 
+            cout << "Hyperplane: " << h << endl; 
             QCOMPARE(h.count(), 3);
             QCOMPARE(h.offset(), -0.5);
             double n= h.norm();
@@ -128,12 +128,12 @@ t_getSet()
             QhullHyperplane hi= f.innerplane(q.runId());
             QCOMPARE(hi.count(), 3);
             double innerOffset= hi.offset()+0.5;
-            cout<< "InnerPlane: " << hi << "innerOffset+0.5 " << innerOffset << endl;
+            cout << "InnerPlane: " << hi << "innerOffset+0.5 " << innerOffset << endl;
             QVERIFY(innerOffset >= 0.0);
             QhullHyperplane ho= f.outerplane(q.runId());
             QCOMPARE(ho.count(), 3);
             double outerOffset= ho.offset()+0.5;
-            cout<< "OuterPlane: " << ho << "outerOffset+0.5 " << outerOffset << endl;
+            cout << "OuterPlane: " << ho << "outerOffset+0.5 " << outerOffset << endl;
             QVERIFY(outerOffset <= 0.0);
             QVERIFY(outerOffset-innerOffset < 1e-7);
             for(int i= 0; i<3; i++){
@@ -141,7 +141,7 @@ t_getSet()
                 QVERIFY(ho[i]==h[i]);
             }
             QhullPoint center= f.getCenter(q.runId());
-            cout<< "Center: " << center << endl;
+            cout << "Center: " << center << endl;
             double d= f.distance(center);
             QVERIFY(d < innerOffset-outerOffset);
             QhullPoint center2= f.getCenter(q.runId(), qh_PRINTcentrums);
@@ -162,6 +162,7 @@ t_getSet()
         }
         Qhull q3(rcube,"v Qz QR0");  // Voronoi diagram of a cube (one vertex)
         
+        UsingLibQhull::setGlobalDistanceEpsilon(1e-12); // Voronoi vertices are not necessarily within distance episilon
         foreach(QhullFacet f, q3.facetList()){ //Qt only
             if(f.isGood()){
                 QhullPoint p= f.voronoiVertex(q3.runId());
@@ -231,13 +232,13 @@ t_io()
     {
         Qhull q(rcube, "");
         QhullFacet f= q.beginFacet();
-        cout<< f;
+        cout << f;
         ostringstream os;
         os << f.printHeader(q.runId());
         os << f.printFlags("    - flags:");
         os << f.printCenter(q.runId(), qh_PRINTfacets, "    - center:");
         os << f.printRidges(q.runId());
-        cout<< os.str();
+        cout << os.str();
         ostringstream os2;
         os2 << f.print(q.runId());  // invokes print*()
         QString facetString2= QString::fromStdString(os2.str());
diff --git a/cpp/qhulltest/QhullHyperplane_test.cpp b/cpp/qhulltest/QhullHyperplane_test.cpp
index d1ee25c80a9e32517dbe1f723ca6422635f5f948..cbb3194dbbf379c712daa9d6e5bbc595fcbdf784 100644
--- a/cpp/qhulltest/QhullHyperplane_test.cpp
+++ b/cpp/qhulltest/QhullHyperplane_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2009-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullHyperplane_test.cpp#7 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullHyperplane_test.cpp#9 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -115,7 +115,7 @@ t_readonly()
             QhullFacet f= i.next();
             QhullHyperplane h= f.hyperplane();
             int id= f.id();
-            cout<< "h" << id << endl;
+            cout << "h" << id << endl;
             QVERIFY(h.isDefined());
             QCOMPARE(h.dimension(),3);
             const coordT *c= h.coordinates();
@@ -399,7 +399,7 @@ t_io()
         os << "Hyperplane w/ runId:\n";
         os << h.print();
         os << h.print(" and a message ", " offset ");
-        cout<< os.str();
+        cout << os.str();
         QString s= QString::fromStdString(os.str());
         QCOMPARE(s.count("1"), 3);
         // QCOMPARE(s.count(QRegExp("f\\d")), 3*7 + 13*3*2);
diff --git a/cpp/qhulltest/QhullLinkedList_test.cpp b/cpp/qhulltest/QhullLinkedList_test.cpp
index 1688fee2756d26adf759713adefb23aa3a49e57a..3c7d41b32a2dcf871610ba0b8c273d559e4b12ce 100644
--- a/cpp/qhulltest/QhullLinkedList_test.cpp
+++ b/cpp/qhulltest/QhullLinkedList_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (f) 2009-2009 f. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullLinkedList_test.cpp#11 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (f) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullLinkedList_test.cpp#13 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -321,9 +321,9 @@ t_io()
     RboxPoints rcube("c");
     Qhull q(rcube,"QR0");  // rotated unit cube
     QhullVertexList vs(q.endVertex(), q.endVertex());
-    std::cout<< "INFO:     empty QhullVertextList" << vs << std::endl;
+    std::cout << "INFO:     empty QhullVertextList" << vs << std::endl;
     QhullVertexList vs2= q.vertexList();
-    std::cout<< "INFO:   " << vs2 << std::endl;
+    std::cout << "INFO:   " << vs2 << std::endl;
 }//t_io
 
 }//namespace orgQhull
diff --git a/cpp/qhulltest/QhullPointSet_test.cpp b/cpp/qhulltest/QhullPointSet_test.cpp
index d6880792b6468e6e0b1ae9c1f508c5dfc5b671fe..e47c0a90bab9f7b743c2e4ff9289622a971b61de 100644
--- a/cpp/qhulltest/QhullPointSet_test.cpp
+++ b/cpp/qhulltest/QhullPointSet_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (p) 2009-2009 p. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullPointSet_test.cpp#5 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (p) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullPointSet_test.cpp#7 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -356,10 +356,10 @@ t_io()
     QhullFacet f= q.firstFacet();
     QhullPointSet ps= f.coplanarPoints();
     QVERIFY(ps.count()>=3);  // Sometimes no coplanar points
-    os<< "QhullPointSet from coplanarPoints\n" << ps << endl;
-    os<< "\nRunId\n" << ps.print(q.runId());
-    os<< ps.print(q.runId(), "\nRunId w/ message\n");
-    cout<< os.str();
+    os << "QhullPointSet from coplanarPoints\n" << ps << endl;
+    os << "\nRunId\n" << ps.print(q.runId());
+    os << ps.print(q.runId(), "\nRunId w/ message\n");
+    cout << os.str();
     QString s= QString::fromStdString(os.str());
     QCOMPARE(s.count("p"), 3*ps.count()+1);
     // QCOMPARE(s.count(QRegExp("f\\d")), 3*7 + 13*3*2);
diff --git a/cpp/qhulltest/QhullPoint_test.cpp b/cpp/qhulltest/QhullPoint_test.cpp
index a824d6a1fade159b79ae57326fe285625f9f6ae7..42bf7fa6a311399096090619cd71e7890d142b0e 100644
--- a/cpp/qhulltest/QhullPoint_test.cpp
+++ b/cpp/qhulltest/QhullPoint_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullPoint_test.cpp#11 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullPoint_test.cpp#13 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -115,7 +115,7 @@ t_readonly()
         while(i.hasNext()){
             QhullPoint p= i.next().point();
             int id= p.id(q.runId());
-            cout<< "p" << id << endl;
+            cout << "p" << id << endl;
             QVERIFY(p.isDefined());
             QCOMPARE(p.dimension(),3);
             QCOMPARE(id, p.id());
@@ -385,7 +385,7 @@ t_io()
         os << "Point w/ runId:\n";
         os << p.print(q.runId()) << p.print(q.runId(), " and a message ");
         os << p.printWithIdentifier(q.runId(), " Point with id and a message ");
-        cout<< os.str();
+        cout << os.str();
         QString s= QString::fromStdString(os.str());
         QCOMPARE(s.count("p"), 3);
         // QCOMPARE(s.count(QRegExp("f\\d")), 3*7 + 13*3*2);
diff --git a/cpp/qhulltest/QhullPoints_test.cpp b/cpp/qhulltest/QhullPoints_test.cpp
index f502b0a4488f470b6ce57f51664fdc92abfbb13f..38352033bf65da7e2e254fef0deb969e676669a7 100644
--- a/cpp/qhulltest/QhullPoints_test.cpp
+++ b/cpp/qhulltest/QhullPoints_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (p) 2009-2009 p. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullPoints_test.cpp#14 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (p) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullPoints_test.cpp#16 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -459,18 +459,18 @@ t_io()
 { 
     QhullPoints ps;
     ostringstream os;
-    os<< "Empty QhullPoints\n" << ps << endl;
+    os << "Empty QhullPoints\n" << ps << endl;
     coordT c[]= {0.0, 1.0, 2.0, 3.0, 4.0, 5.0};
     QhullPoints ps2(3, 6, c); // 3-dimensional explicit
-    os<< "QhullPoints from c[]\n" << ps2 << endl;
+    os << "QhullPoints from c[]\n" << ps2 << endl;
     RboxPoints rcube("c");
     Qhull q(rcube,"Qt QR0");  // triangulation of rotated unit cube
     QhullPoints ps3= q.points();
-    os<< "QhullPoints\n" << ps3;
-    os<< "RunId\n" << ps3.print(q.runId());
-    os<< ps3.print(q.runId(), "RunId w/ message\n");
-    os<< ps3.printWithIdentifier(q.runId(), "RunId w/ identifiers\n");
-    cout<< os.str();
+    os << "QhullPoints\n" << ps3;
+    os << "RunId\n" << ps3.print(q.runId());
+    os << ps3.print(q.runId(), "RunId w/ message\n");
+    os << ps3.printWithIdentifier(q.runId(), "RunId w/ identifiers\n");
+    cout << os.str();
     QString s= QString::fromStdString(os.str());
     QCOMPARE(s.count("p"), 3*8+3);
     // QCOMPARE(s.count(QRegExp("f\\d")), 3*7 + 13*3*2);
diff --git a/cpp/qhulltest/QhullRidge_test.cpp b/cpp/qhulltest/QhullRidge_test.cpp
index 177cd9389857b89adf59f688d52d18b5b47d27ea..3f89d10708d420a601462f3c9bb743b95a219964 100644
--- a/cpp/qhulltest/QhullRidge_test.cpp
+++ b/cpp/qhulltest/QhullRidge_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullRidge_test.cpp#8 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullRidge_test.cpp#10 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -90,7 +90,7 @@ t_getSet()
         QhullRidgeSetIterator i(rs);
         while(i.hasNext()){
             const QhullRidge r= i.next();
-            cout<< r.id() << endl;
+            cout << r.id() << endl;
             QVERIFY(r.bottomFacet()!=r.topFacet());
             QCOMPARE(r.dimension(), 2); // Ridge one-dimension less than facet
             QVERIFY(r.id()>=0 && r.id()<9*27); 
@@ -149,9 +149,9 @@ t_io()
         QhullRidgeSet rs= f.ridges();
         QhullRidge r= rs.first();
         ostringstream os;
-        os<< "Ridges Without runId\n"<< rs<< "Ridge\n"<< r;
-        os<< "Ridge with runId\n"<< r.print(q.runId());
-        cout<< os.str();
+        os << "Ridges Without runId\n" << rs << "Ridge\n" << r;
+        os << "Ridge with runId\n" << r.print(q.runId());
+        cout << os.str();
         QString s= QString::fromStdString(os.str());
         QCOMPARE(s.count(" r"), 6+2);
     }
diff --git a/cpp/qhulltest/QhullSet_test.cpp b/cpp/qhulltest/QhullSet_test.cpp
index 31ee3447155cf48518c978506b72be58562594b0..a281058b9ae63a1b371308365a880739587d9da1 100644
--- a/cpp/qhulltest/QhullSet_test.cpp
+++ b/cpp/qhulltest/QhullSet_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (f) 2009-2009 f. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullSet_test.cpp#16 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (f) 2009-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullSet_test.cpp#18 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -389,10 +389,10 @@ t_io()
     QhullFacet f = q.beginFacet();
     QhullFacetSet fs = f.neighborFacets();
     fs.defineAs(q.qhullQh()->other_points);
-    cout<< "INFO:     empty set" << fs << std::endl;
+    cout << "INFO:     empty set" << fs << std::endl;
     QhullFacet f2 = q.beginFacet();
     QhullFacetSet fs2 = f2.neighborFacets();
-    cout<< "INFO:   " << fs2 << std::endl;
+    cout << "INFO:   " << fs2 << std::endl;
     //FIXUP do not use QhullFacetSet to test set
 }//t_io
 
diff --git a/cpp/qhulltest/QhullVertexSet_test.cpp b/cpp/qhulltest/QhullVertexSet_test.cpp
index a8314265d1cb6bc0d41678315cbebe18a5230c7c..06a18c838f2122504326f5e249dd52aa6f767bdb 100644
--- a/cpp/qhulltest/QhullVertexSet_test.cpp
+++ b/cpp/qhulltest/QhullVertexSet_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullVertexSet_test.cpp#1 $$Change: 1048 $
-** $DateTime: 2009/09/24 21:34:06 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullVertexSet_test.cpp#2 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/qhulltest/QhullVertex_test.cpp b/cpp/qhulltest/QhullVertex_test.cpp
index cbc697be3f41d996901ab951a61571b9d0be9f42..4f296df04deb9d67a766c89d035f4553a939dc92 100644
--- a/cpp/qhulltest/QhullVertex_test.cpp
+++ b/cpp/qhulltest/QhullVertex_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullVertex_test.cpp#8 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/QhullVertex_test.cpp#10 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 //pre-compiled headers
@@ -90,7 +90,7 @@ t_getSet()
         QhullVertexListIterator i(vs);
         while(i.hasNext()){
             const QhullVertex v= i.next();
-            cout<< v.id() << endl;
+            cout << v.id() << endl;
             QCOMPARE(v.dimension(),3);
             QVERIFY(v.id()>=0 && v.id()<9); 
             QVERIFY(v.isDefined());
@@ -110,7 +110,7 @@ t_getSet()
         foreach (QhullVertex v, q.vertexList()){  // Qt only
             QhullPoint p= v.point();
             int i= p.id(q.runId());
-            cout<< "Point " << i << ":\n" << p.print(q.runId()) << endl;
+            cout << "Point " << i << ":\n" << p.print(q.runId()) << endl;
             QVERIFY(i>=0 && i<8);
         }
     }
@@ -140,14 +140,14 @@ t_io()
         Qhull q(rcube, "");
         QhullVertex v= q.beginVertex();
         ostringstream os;
-        os<< "Vertex and vertices w/o runId:\n";
-        os<< v;
+        os << "Vertex and vertices w/o runId:\n";
+        os << v;
         QhullVertexSet vs= q.firstFacet().vertices();
-        os<< vs;
+        os << vs;
         os << "Vertex and vertices w/ runId:\n";
         os << v.print(q.runId());
         os << vs.print(q.runId(), "vertices:");
-        cout<< os.str();
+        cout << os.str();
         QString s= QString::fromStdString(os.str());
         QCOMPARE(s.count("(v"), 10);
     }
diff --git a/cpp/qhulltest/Qhull_test.cpp b/cpp/qhulltest/Qhull_test.cpp
index 2300b7186933a814dccd54f00b6695c81b273776..9132a185a3cd2135494c60315b9ba852541e6eff 100644
--- a/cpp/qhulltest/Qhull_test.cpp
+++ b/cpp/qhulltest/Qhull_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/Qhull_test.cpp#33 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/Qhull_test.cpp#35 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -68,7 +68,7 @@ t_construct()
             QCOMPARE(q.area(),0.0);
             QFAIL("area() did not fail.");
         }catch (const std::exception &e) {
-            cout<< "INFO   : Caught " << e.what(); 
+            cout << "INFO   : Caught " << e.what(); 
         }
     }
     {
@@ -112,10 +112,10 @@ t_attribute()
         q.setOutputStream(&cout);
         q.runQhull("normals of square", 3, 4, normals, "H"); // halfspace intersect
         QCOMPARE(q.facetList().count(), 4); // Vertices of square
-        cout<< "Expecting summary of halfspace intersect\n";
+        cout << "Expecting summary of halfspace intersect\n";
         q.outputQhull();
         q.useOutputStream= false;
-        cout<< "Expecting no output from qh_fprintf() in Qhull.cpp\n";
+        cout << "Expecting no output from qh_fprintf() in Qhull.cpp\n";
         q.outputQhull();
     }
 }//t_attribute
@@ -135,7 +135,7 @@ t_message()
             QFAIL("runQhull Fd did not fail.");
         }catch (const std::exception &e) {
             const char *s= e.what();
-            cout<< "INFO   : Caught " << s; 
+            cout << "INFO   : Caught " << s; 
             QCOMPARE(QString::fromStdString(s).left(6), QString("QH6029"));
             // Cleared when copied to QhullError
             QVERIFY(!q.hasQhullMessage()); 
@@ -154,7 +154,7 @@ t_message()
         QCOMPARE(QString::fromStdString(q.qhullMessage()), QString(""));
     }
     {
-        cout<< "INFO   : Error stream without output stream\n"; 
+        cout << "INFO   : Error stream without output stream\n"; 
         Qhull q;
         q.setErrorStream(&cout);
         q.setOutputStream(0);
@@ -162,7 +162,7 @@ t_message()
             q.runQhull(rcube, "Fd");
             QFAIL("runQhull Fd did not fail.");
         }catch (const QhullError &e) {
-            cout<< "INFO   : Caught " << e; 
+            cout << "INFO   : Caught " << e; 
             QCOMPARE(e.errorCode(), 6029);
         }
         //FIXUP Qhullmessage cleared when QhullError thrown.  Switched to e
@@ -172,7 +172,7 @@ t_message()
         QVERIFY(!q.hasQhullMessage());
     }
     {
-        cout<< "INFO   : Error output sent to output stream without error stream\n"; 
+        cout << "INFO   : Error output sent to output stream without error stream\n"; 
         Qhull q;
         q.setErrorStream(0);
         q.setOutputStream(&cout);
@@ -181,7 +181,7 @@ t_message()
             QFAIL("runQhull TZ did not fail.");
         }catch (const std::exception &e) {
             const char *s= e.what();
-            cout<< "INFO   : Caught " << s; 
+            cout << "INFO   : Caught " << s; 
             QCOMPARE(QString::fromAscii(s).left(6), QString("QH6023"));
         }
         //FIXUP Qhullmessage cleared when QhullError thrown.  Switched to e
@@ -192,7 +192,7 @@ t_message()
         QVERIFY(!q.hasQhullMessage());
     }
     {
-        cout<< "INFO   : No error stream or output stream\n"; 
+        cout << "INFO   : No error stream or output stream\n"; 
         Qhull q;
         q.setErrorStream(0);
         q.setOutputStream(0);
@@ -201,7 +201,7 @@ t_message()
             QFAIL("outputQhull did not fail.");
         }catch (const std::exception &e) {
             const char *s= e.what();
-            cout<< "INFO   : Caught " << s; 
+            cout << "INFO   : Caught " << s; 
             QCOMPARE(QString::fromAscii(s).left(6), QString("QH6029"));
         }
         //FIXUP Qhullmessage cleared when QhullError thrown.  Switched to e
@@ -219,9 +219,9 @@ t_getSet()
     RboxPoints rcube("c");
     {
         Qhull q;
-        QVERIFY(!q.defined());
+        QVERIFY(!q.initialized());
         q.runQhull(rcube, "s");
-        QVERIFY(q.defined());
+        QVERIFY(q.initialized());
         QCOMPARE(q.dimension(), 3);
         QhullPoint p= q.origin();
         QCOMPARE(p.dimension(), 3);
@@ -319,9 +319,9 @@ t_modify()
     RboxPoints diamond("d");
     Qhull q(diamond, "o");
     q.setOutputStream(&cout);
-    cout<< "Expecting vertexList and facetList of a 3-d diamond.\n";
+    cout << "Expecting vertexList and facetList of a 3-d diamond.\n";
     q.outputQhull();
-    cout<< "Expecting normals of a 3-d diamond.\n";
+    cout << "Expecting normals of a 3-d diamond.\n";
     q.outputQhull("n");
     // runQhull tested in t_attribute(), t_message(), etc.
 }//t_modify
@@ -329,14 +329,14 @@ t_modify()
 }//orgQhull
 
 // Redefine Qhull's usermem.c
-void qh_exit(int errstatus) {
-    cout<< "FAIL!  : Qhull called qh_exit().  Qhull's error handling not available.\n.. See the corresponding Qhull:qhull_message or setErrorStream().\n";
-    exit(errstatus);
+void qh_exit(int exitcode) {
+    cout << "FAIL!  : Qhull called qh_exit().  Qhull's error handling not available.\n.. See the corresponding Qhull:qhull_message or setErrorStream().\n";
+    exit(exitcode);
 }
 void qh_free(void *mem) {
     free(mem);
 }
-void *qh_malloc(unsigned int size) {
+void *qh_malloc(size_t size) {
     return malloc(size);
 }
 
diff --git a/cpp/qhulltest/RboxPoints_test.cpp b/cpp/qhulltest/RboxPoints_test.cpp
index 63f73a8098511904005b1838c8d0203a31e837eb..6dc0a126cbb03698c4655589d5c70b888cf8127e 100644
--- a/cpp/qhulltest/RboxPoints_test.cpp
+++ b/cpp/qhulltest/RboxPoints_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2006-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/RboxPoints_test.cpp#16 $$Change: 1114 $
-** $DateTime: 2009/12/12 13:49:07 $$Author: bbarber $
+** Copyright (C) 2006-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/RboxPoints_test.cpp#18 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 //pre-compiled headers
@@ -74,7 +74,7 @@ t_error()
         QFAIL("'D0 c' did not fail.");
     }catch (const std::exception &e) {
         const char *s= e.what();
-        cout<< "INFO   : Caught " << s; 
+        cout << "INFO   : Caught " << s; 
         QCOMPARE(QString(s).left(6), QString("QH6189"));
         QVERIFY(rp.hasRboxMessage()); 
         QCOMPARE(QString::fromStdString(rp.rboxMessage()).left(8), QString("rbox err"));
@@ -88,7 +88,7 @@ t_error()
         QFAIL("setDimension(-1) did not fail.");
     }catch (const RoadError &e) {
         const char *s= e.what();
-        cout<< "INFO   : Caught " << s; 
+        cout << "INFO   : Caught " << s; 
         QCOMPARE(QString(s).left(7), QString("QH10062"));
         QCOMPARE(e.errorCode(), 10062);
         QCOMPARE(QString::fromStdString(e.what()), QString(s));
@@ -120,7 +120,7 @@ t_getSet()
         rp.setDimension(102);
         QFAIL("setDimension(102) did not fail.");
     }catch (const std::exception &e) {
-        cout<< "INFO   : Caught " << e.what(); 
+        cout << "INFO   : Caught " << e.what(); 
     }
     QCOMPARE(rp.newCount(), 0);
     rp.appendPoints("D2 P1 P2");
@@ -180,7 +180,7 @@ t_change()
         rp.appendPoints(s2);
         QFAIL("incomplete appendPoints() did not fail.");
     }catch (const std::exception &e) {
-        cout<< "INFO   : Caught " << e.what(); 
+        cout << "INFO   : Caught " << e.what(); 
     }
     RboxPoints rp2;
     rp2.append(rp);
diff --git a/cpp/qhulltest/UsingLibQhull_test.cpp b/cpp/qhulltest/UsingLibQhull_test.cpp
index 53855f7da24718b82ea269e6cc195f65d1542158..67a72b04f2b6d13deebc2020f67b940bf5a61aea 100644
--- a/cpp/qhulltest/UsingLibQhull_test.cpp
+++ b/cpp/qhulltest/UsingLibQhull_test.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/UsingLibQhull_test.cpp#2 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/UsingLibQhull_test.cpp#4 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -98,10 +98,10 @@ t_classMembers()
     QCOMPARE(UsingLibQhull::globalDistanceEpsilon()+1.0, 1.0);
     UsingLibQhull::unsetGlobals();
     try{
-        cout<< UsingLibQhull::globalVertexDimension();
+        cout << UsingLibQhull::globalVertexDimension();
         QFAIL("Did not throw error for undefined dimension.");
     }catch(const std::exception &e){
-        cout<< "INFO     Caught error -- " << e.what() << endl;
+        cout << "INFO     Caught error -- " << e.what() << endl;
     }
 }//t_classMembers
 
@@ -151,7 +151,7 @@ t_globalPoints()
         pointsBegin3= UsingLibQhull::globalPoints(&dimension3, &pointsEnd3);
         QFAIL("Did not throw error for undefined global points.");
     }catch(const std::exception &e){
-        cout<< "INFO     Caught error -- " << e.what() << endl;
+        cout << "INFO     Caught error -- " << e.what() << endl;
     }
 }//t_globalPoints
 
@@ -167,7 +167,7 @@ t_UsingLibQhull()
             UsingLibQhull uq2(&q2);
             QFAIL("UsingLibQhull did not fail.");
         }catch (const std::exception &e) {
-            cout<< "INFO   : Caught " << e.what();
+            cout << "INFO   : Caught " << e.what();
         }
     }
     Qhull q3;
@@ -185,14 +185,14 @@ t_methods()
         u.maybeThrowQhullMessage(1);
         QFAIL("maybeThrowQhullMessage(1) did not fail.");
     }catch (const std::exception &e) {
-        cout<< "INFO   : Caught " << e.what();
+        cout << "INFO   : Caught " << e.what();
     }
     // Can not check checkRunId() in maybeThrowQhullMessage().  Requires another thread.
     u.maybeThrowQhullMessage(2, UsingLibQhull::NOthrow);
     try{
         throw QhullError(10054, "Report previous NOthrow error");
     }catch (const std::exception &e) {
-        cout<< "INFO   : " << e.what();
+        cout << "INFO   : " << e.what();
     }
 }//t_methods
 
diff --git a/cpp/qhulltest/qhulltest.cpp b/cpp/qhulltest/qhulltest.cpp
index 43dcea7916e7170d3dcaf7b1889ddeb9b4e18209..485d3b03234550b9010679972e57d9207e0b9271 100644
--- a/cpp/qhulltest/qhulltest.cpp
+++ b/cpp/qhulltest/qhulltest.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/qhulltest/qhulltest.cpp#50 $$Change: 1118 $
-** $DateTime: 2009/12/20 16:19:59 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/qhulltest/qhulltest.cpp#52 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -57,15 +57,15 @@ int main(int argc, char *argv[])
     try{
         status= RoadTest::runTests(args);
     }catch(const std::exception &e){
-        cout<< "FAIL!  : runTests() did not catch error\n";
-        cout<< e.what() << endl;
+        cout << "FAIL!  : runTests() did not catch error\n";
+        cout << e.what() << endl;
         if(!RoadError::emptyGlobalLog()){
-            cout<< RoadError::stringGlobalLog() << endl;
+            cout << RoadError::stringGlobalLog() << endl;
             RoadError::clearGlobalLog();
         }
     }
     if(!RoadError::emptyGlobalLog()){
-        cout<< RoadError::stringGlobalLog() << endl;
+        cout << RoadError::stringGlobalLog() << endl;
         RoadError::clearGlobalLog();
     }
     return status;
diff --git a/cpp/road/RoadError.cpp b/cpp/road/RoadError.cpp
index 3cbb0f55ed78b44869c5db94f27bf3c5fbb1efdc..6126a5a3d71736246fbb1e8702e6022e8abcee34 100644
--- a/cpp/road/RoadError.cpp
+++ b/cpp/road/RoadError.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/road/RoadError.cpp#13 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/road/RoadError.cpp#14 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/road/RoadError.h b/cpp/road/RoadError.h
index c45c5b50bc19a24a5eb17d66397ca15abbb69285..3f2123fb382a1ae72d040c6417b558ffe32853d2 100644
--- a/cpp/road/RoadError.h
+++ b/cpp/road/RoadError.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/road/RoadError.h#16 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/road/RoadError.h#18 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -81,6 +81,6 @@ public:
 
 #//Global functions
 
-inline std::ostream    &operator<<(std::ostream &os, const orgQhull::RoadError &e) { return os<< e.what(); }
+inline std::ostream    &operator<<(std::ostream &os, const orgQhull::RoadError &e) { return os << e.what(); }
 
 #endif // ROADERROR_H
diff --git a/cpp/road/RoadLogEvent.cpp b/cpp/road/RoadLogEvent.cpp
index 31b56d86ef36008e12b32dc788f6462091e3821a..790872f47489f29ed0282c3072f95512c18f6f9c 100644
--- a/cpp/road/RoadLogEvent.cpp
+++ b/cpp/road/RoadLogEvent.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/road/RoadLogEvent.cpp#9 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/road/RoadLogEvent.cpp#11 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -30,9 +30,9 @@ toString(const char *tag, int code) const
 {
     ostringstream os;
     if(tag && code){
-        os<< tag << code;
+        os << tag << code;
         if(format_string){
-            os<< " ";
+            os << " ";
         }
     }
     if(!format_string){
@@ -44,58 +44,58 @@ toString(const char *tag, int code) const
     char extraCode= '\0';
     while(*s){
         if(*s!='%'){
-            os<< *s++;
+            os << *s++;
         }else{
             char c= *++s;
             s++;
             switch(c){
             case 'd':
                 if(++dCount>2){
-                    os<< " ERROR_three_%d_in_format ";
+                    os << " ERROR_three_%d_in_format ";
                 }else if(dCount==2){
-                    os<< int_2;
+                    os << int_2;
                 }else{
-                    os<< int_1;
+                    os << int_1;
                 }
                 break;
             case 'e':
                 if(firstExtraCode(os, c, &extraCode)){
-                    os<< double_1;
+                    os << double_1;
                 }
                 break;
             case 'f':
                 if(++fCount>1){
-                    os<< " ERROR_two_%f_in_format ";
+                    os << " ERROR_two_%f_in_format ";
                 }else{
-                    os<< float_1;
+                    os << float_1;
                 }
                 break;
             case 'i':
                 if(firstExtraCode(os, c, &extraCode)){
-                    os<< int64_1;
+                    os << int64_1;
                 }
                 break;
             case 's':
                 if(firstExtraCode(os, c, &extraCode)){
-                    os<< cstr_1;
+                    os << cstr_1;
                 }
                 break;
             case 'x':
                 if(firstExtraCode(os, c, &extraCode)){
-                    os<< void_1;
+                    os << void_1;
                 }
                 break;
             case '%':
-                os<< c;
+                os << c;
                 break;
             default:
-                os<< " ERROR_%" << c << "_not_defined_in_format";
+                os << " ERROR_%" << c << "_not_defined_in_format";
                 break;
             } 
         }
     }
     if(s[-1]!='\n'){
-        os<< endl;
+        os << endl;
     }
     return os.str(); 
 }//toString
@@ -106,7 +106,7 @@ toString(const char *tag, int code) const
 bool RoadLogEvent::
 firstExtraCode(std::ostream &os, char c, char *extraCode){
     if(*extraCode){
-        os<< " ERROR_%" << *extraCode << "_and_%" << c << "_in_format ";
+        os << " ERROR_%" << *extraCode << "_and_%" << c << "_in_format ";
         return false;
     }
     *extraCode= c;
diff --git a/cpp/road/RoadLogEvent.h b/cpp/road/RoadLogEvent.h
index 44f05104de62c6339fa1962431c01ae0e0cc87e6..b31b61da1827fa72892bf9e399dbaaf240981907 100644
--- a/cpp/road/RoadLogEvent.h
+++ b/cpp/road/RoadLogEvent.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/road/RoadLogEvent.h#9 $$Change: 1094 $
-** $DateTime: 2009/11/24 20:04:16 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/road/RoadLogEvent.h#10 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/road/RoadTest.cpp b/cpp/road/RoadTest.cpp
index 2f7fd93c3f10cd6c5631b7dc5abb7115c065753f..05e129b287e62ff2d4f2dd56cc674123c86d1133 100644
--- a/cpp/road/RoadTest.cpp
+++ b/cpp/road/RoadTest.cpp
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/road/RoadTest.cpp#9 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/road/RoadTest.cpp#11 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
@@ -63,18 +63,18 @@ runTests(QStringList arguments)
         try{
             result += QTest::qExec(testcase, arguments); 
         }catch(const std::exception &e){
-            cout<< "FAIL!  : Threw error ";
-            cout<< e.what() << endl;
+            cout << "FAIL!  : Threw error ";
+            cout << e.what() << endl;
     s_test_count++;
             testcase->recordFailedTest();     
             // Qt 4.5.2 OK.  In Qt 4.3.3, qtestcase did not clear currentTestObject
         }
     }
     if(s_test_fail){
-        cout<< "Failed " << s_test_fail << " of " << s_test_count << " tests.\n";
-        cout<< s_failed_tests.join("\n").toLocal8Bit().constData() << std::endl;
+        cout << "Failed " << s_test_fail << " of " << s_test_count << " tests.\n";
+        cout << s_failed_tests.join("\n").toLocal8Bit().constData() << std::endl;
     }else{
-        cout<< "Passed " << s_test_count << " tests.\n";
+        cout << "Passed " << s_test_count << " tests.\n";
     }
     return result;
 }//runTests
diff --git a/cpp/road/RoadTest.h b/cpp/road/RoadTest.h
index 4a3e5f73ec2adcb33e9e7246c1353a88bc3b8d87..e99aeffa6d5af61d50d1f35569aa989a3807e4a5 100644
--- a/cpp/road/RoadTest.h
+++ b/cpp/road/RoadTest.h
@@ -1,8 +1,8 @@
 /****************************************************************************
 **
-** Copyright (C) 2008-2009 C. Bradford Barber. All rights reserved.
-** $Id: //product/qhull/main/rel/cpp/road/RoadTest.h#12 $$Change: 1111 $
-** $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+** Copyright (C) 2008-2010 C. Bradford Barber. All rights reserved.
+** $Id: //product/qhull/main/rel/cpp/road/RoadTest.h#13 $$Change: 1137 $
+** $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 **
 ****************************************************************************/
 
diff --git a/cpp/user_eg3.cpp b/cpp/user_eg3.cpp
index 9957a022e72a6e5052d4267935280ba45e1840d6..88111effe476e9faf67398850509b9961df43ef8 100644
--- a/cpp/user_eg3.cpp
+++ b/cpp/user_eg3.cpp
@@ -51,7 +51,7 @@ For example\n\
 int main(int argc, char **argv) {
       
     if(argc==1){
-	cout<< prompt;
+	cout << prompt;
 	return 1;
     }
     try{
@@ -70,7 +70,7 @@ int user_eg3(int argc, char **argv)
         Qhull qhull;
         qhull.runQhull(rbox, "");
         QhullFacetList facets= qhull.facetList();
-        cout<< facets;
+        cout << facets;
         return 0;
     }
     RboxPoints rbox;
@@ -125,7 +125,7 @@ int user_eg3(int argc, char **argv)
         }
     }//foreach argv
     if(readingRbox){
-        cout<< rbox;
+        cout << rbox;
         return 0;
     }
     if(readingQhull==1){ // e.g., rbox 10 qhull
@@ -143,7 +143,7 @@ int user_eg3(int argc, char **argv)
         return 0;
     }
     QhullFacetList facets= qhull.facetList();
-    cout<< "\nFacets created by Qhull::runQhull()\n" << facets;
+    cout << "\nFacets created by Qhull::runQhull()\n" << facets;
     return 0;
 }//user_eg3
 
diff --git a/html/index.htm b/html/index.htm
index 75026cf8980fa89189c022b8f2712254e1b6fa2a..4c83335afe4c61027d29b5ee837334169411c2c2 100644
--- a/html/index.htm
+++ b/html/index.htm
@@ -635,14 +635,9 @@ href="http://www.qhull.org/news">qhull-news.html</a>.</p>
 <h2><a href="#TOC">»</a><a name="authors">Authors</a></h2>
 <blockquote>
 
-<pre>  C. Bradford Barber                    Hannu Huhdanpaa
-  bradb@qhull.org                    hannu@qhull.org
-
-                    c/o The Geometry Center
-                    University of Minnesota
-                    400 Lind Hall
-                    207 Church Street S.E.
-                    Minneapolis, MN 55455
+<pre>
+   C. Bradford Barber                    Hannu Huhdanpaa
+   bradb@shore.net                       hannu@qhull.org
 </pre>
 
 </blockquote>
@@ -683,10 +678,10 @@ Computing Surveys</i>, 1991, 23:345-405. </p>
 
 <p><a name="bar-dob96">Barber</a>, C. B., D.P. Dobkin, and H.T.
 Huhdanpaa, &quot;The Quickhull Algorithm for Convex Hulls,&quot; <i>ACM
-Transactions on Mathematical Software</i>, 22(4):469-483, www.qhull.org
+Transactions on Mathematical Software</i>, 22(4):469-483, Dec 1996, www.qhull.org
 [<a
 href="http://www.acm.org/pubs/citations/journals/toms/1996-22-4/p469-barber/">http://www.acm.org</a>;
-<a href="http://citeseer.nj.nec.com/83502.html">http://citeseer.nj.nec.com</a>].
+<a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.6345">http://citeseerx.ist.psu.edu</a>].
 </p>
 
 <p><a name="cla-sho89">Clarkson</a>, K.L. and P.W. Shor,
diff --git a/html/qconvex.htm b/html/qconvex.htm
index 764d0cdd2bd17749824361dd854aff0fbcc871ab..3b27f0fc8e0bb0812807b69c0f2de8a3df0ae6e6 100644
--- a/html/qconvex.htm
+++ b/html/qconvex.htm
@@ -130,7 +130,7 @@ in 5-d and higher.  It disables the following Qhull
 <a href=qh-quick.htm#options>options</a>: <i>d v H Qbb Qf Qg Qm 
 Qr Qu Qv Qx Qz TR E V Fp Gt Q0,etc</i>.
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qdelau_f.htm b/html/qdelau_f.htm
index 06dde1e3f148ca887d0e5618d6cfadf6f57c8bc8..1cce267faef20d7ced9165f535fc52c88301fde3 100644
--- a/html/qdelau_f.htm
+++ b/html/qdelau_f.htm
@@ -114,7 +114,7 @@ in 4-d and higher.  It disables the following Qhull
 Qm Qr QR Qv Qx TR E V FC Fi Fo Fp FV Q0,etc</i>.
 
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qdelaun.htm b/html/qdelaun.htm
index 2772f8575bac124fe2718f8070bbd7d8c2226ea3..302344afe38bd395adf7c28cff57b2e3c9dc900a 100644
--- a/html/qdelaun.htm
+++ b/html/qdelaun.htm
@@ -117,7 +117,7 @@ in 4-d and higher.  It disables the following Qhull
 Qm Qr QR Qv Qx TR E V FC Fi Fo Fp Ft FV Q0,etc</i>.
 
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qh-code.htm b/html/qh-code.htm
index 02330f8c563cf8aff5e14d4df76a52ef599c83af..ab06522f7b487e793e6459840897e50eaae961b4 100644
--- a/html/qh-code.htm
+++ b/html/qh-code.htm
@@ -37,7 +37,7 @@ height="100"></a> Qhull code</h1>
 
 <p>This section discusses the code for Qhull. </p>
 
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
@@ -444,7 +444,7 @@ Boost Graph Library [aka GGCL] provides C++ classes for graph data structures
 and algorithms [Dr. Dobb's 9/00 p. 29-38; OOPSLA '99 p. 399-414].  It is modelled after the
 Standard Template Library.  It would provide a good interface to Qhull.
 If you are interested in adapting BGL to Qhull, please contact
-<a href="mailto:bradb@qhull.org">bradb@qhull.org</a>.
+<a href="mailto:bradb@shore.net">bradb@shore.net</a>.
 
 <p>See <a href="../src/index.htm">Qhull functions, macros, and data
 structures</a> for internal documentation of Qhull. The
diff --git a/html/qh-eg.htm b/html/qh-eg.htm
index 168221b243d553df6770314fa5fc472cc5066e0a..9e37a095e51bef10eab4daaa7b04552d0dc7e18f 100644
--- a/html/qh-eg.htm
+++ b/html/qh-eg.htm
@@ -48,7 +48,7 @@ test examples, and <tt>eg/q_test</tt> exercises the code. If you
 find yourself viewing the inside of a 3-d example, use Geomview's
 normalization option on the 'obscure' menu.</p>
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qh-faq.htm b/html/qh-faq.htm
index 2800611c04b5640504c680b5ad8c4408abd8ee08..d5e535c5a1fd9a022776c8c1b4a1fbe5f86ccb55 100644
--- a/html/qh-faq.htm
+++ b/html/qh-faq.htm
@@ -73,7 +73,7 @@ using joggled input ('<A href="qh-optq.htm#QJn">QJ</A>').
 2003/12/30 <!--
 --> </i></p>
 
-<p><b>Copyright &copy; 1998-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1998-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qh-impre.htm b/html/qh-impre.htm
index 4bfa8afe651eba60d704e71f1cf6d920886fd644..39c5b00005672fb460abe695343400fac1643f10 100644
--- a/html/qh-impre.htm
+++ b/html/qh-impre.htm
@@ -46,7 +46,7 @@ convex. It verifies that all points are on or below all facets. </p>
 <p>Qhull automatically tests for convexity if it detects
 precision errors while constructing the hull. </p>
 
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qh-optc.htm b/html/qh-optc.htm
index 7a9ef1530516e08074cfbd175ceb99441e62d373..a5fb10e0fec4977a95c712609d752a68b96bce21 100644
--- a/html/qh-optc.htm
+++ b/html/qh-optc.htm
@@ -29,7 +29,7 @@ height="100"></a> Qhull precision options</h1>
 This section lists the precision options for Qhull. These options are
 indicated by an upper-case letter followed by a number.
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qh-optf.htm b/html/qh-optf.htm
index 22f45fcfe633c27be94f330022eedb1ebdf11946..bfe2ac89fae6baaf709f2fb48673091caf020c1d 100644
--- a/html/qh-optf.htm
+++ b/html/qh-optf.htm
@@ -30,7 +30,7 @@ are indicated by 'F' followed by a letter. See <A
 and <A href="qh-optg.htm#geomview">Geomview</a> for other output
 options. </p>
 
-<p><b>Copyright © 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qh-optg.htm b/html/qh-optg.htm
index 680489bfedcb4078c8b416aa426870dcf84a8dd3..c6b9852c5dd275c8bbef85846344370d616d7836 100644
--- a/html/qh-optg.htm
+++ b/html/qh-optg.htm
@@ -33,7 +33,7 @@ indicated by 'G' followed by a letter.  See
 and <a href="qh-optf.htm#format">Format</a> for other output options.
 
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qh-opto.htm b/html/qh-opto.htm
index 309d1a9e2b0ea8347a9c77cf9773f1a77f75b86a..8a396f149aa5bccd603a4255ca324c4c11d8e76e 100644
--- a/html/qh-opto.htm
+++ b/html/qh-opto.htm
@@ -33,7 +33,7 @@ href="qh-optp.htm#print">Print</a>, and <a
 href="qh-optg.htm#geomview">Geomview</a> for other output
 options. </p>
 
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qh-optp.htm b/html/qh-optp.htm
index 8f5891fcee895610f3e5a925db1e2ce6ca686e68..17b584cfb19fce432e215e29af9662539c5331b7 100644
--- a/html/qh-optp.htm
+++ b/html/qh-optp.htm
@@ -32,7 +32,7 @@ indicated by 'P' followed by a letter.  See
 and <a href="qh-optf.htm#format">Format</a> for other output options.
 
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qh-optq.htm b/html/qh-optq.htm
index 3d02d6d5461a4d5680502a88339fc5ca9675aa13..9903d9cd399c52f4e70e1fb090bdf223e916e633 100644
--- a/html/qh-optq.htm
+++ b/html/qh-optq.htm
@@ -29,7 +29,7 @@ height="100"></a> Qhull control options (Q)</h1>
 <p>This section lists the control options for Qhull. These
 options are indicated by 'Q' followed by a letter. </p>
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qh-optt.htm b/html/qh-optt.htm
index 7efc74961af70656fef6c74edbe01eae2362ebfb..8f09661a2a7665e9bf8c80fb19d01e2cdfc26d82 100644
--- a/html/qh-optt.htm
+++ b/html/qh-optt.htm
@@ -29,7 +29,7 @@ height="100"></a> Qhull trace options (T)</h1>
 This section lists the trace options for Qhull. These options are
 indicated by 'T' followed by a letter.
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qh-quick.htm b/html/qh-quick.htm
index 2ddbfde6772efeb95befe4af5036a8be050b09f4..b74338b28c09c4d65b6b7aecd50712535f0e8ca9 100644
--- a/html/qh-quick.htm
+++ b/html/qh-quick.htm
@@ -38,7 +38,7 @@ height="100"></a> Qhull quick reference</h1>
 
 This section lists all programs and options in Qhull.
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <p>
 <a name="programs">&nbsp;</a>
diff --git a/html/qhalf.htm b/html/qhalf.htm
index d0036b7e8ec8977df09c3e61a5fe4b9fc6686ecf..723b7739a318a5e880837c953c873932e7a962e8 100644
--- a/html/qhalf.htm
+++ b/html/qhalf.htm
@@ -103,7 +103,7 @@ in 5-d and higher.  It disables the following Qhull
 Qr QR Qv Qx Qz TR E V Fa FA FC FD FS Ft FV Gt Q0,etc</i>.
 
 
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 <hr>
 
 <h3><a href="#TOP">»</a><a name="synopsis">qhalf synopsis</a></h3>
diff --git a/html/qhull-cpp.xml b/html/qhull-cpp.xml
index 0cd5cae07236e376dcb87d62dcd17b12eabb47da..2d77d1fdb973eac15b4e0b6c3b05dba1c5ab23d0 100644
--- a/html/qhull-cpp.xml
+++ b/html/qhull-cpp.xml
@@ -6,11 +6,11 @@
    xmlns:rf="http://schemas.roadintranet.org/road-faq-1"
  title=" C++ interface to Qhull"
  file="qhull-cpp.xml"
- fileid="$Id: //product/qhull/main/rel/html/qhull-cpp.xml#21 $$Change: 1083 $"
- fileChange="$DateTime: 2009/11/18 22:43:17 $$Author: bbarber $">
+ fileid="$Id: //product/qhull/main/rel/html/qhull-cpp.xml#22 $$Change: 1137 $"
+ fileChange="$DateTime: 2010/01/02 21:58:11 $$Author: bbarber $">
     <div><h4>Qhull C++  -- C++ interface to Qhull</h4></div>
     <rf:copyright>
-        <a href="../cpp/COPYING.txt">Copyright</a> (c) 2009-2009, C. Bradford Barber
+        <a href="../cpp/COPYING.txt">Copyright</a> (c) 2009-2010, C. Bradford Barber
     </rf:copyright>
    <rf:section id="cpp-cpp-links" title="Useful Links for Qhull C++">
        <div>
diff --git a/html/qhull.htm b/html/qhull.htm
index b25a5693bbac107ab5a268295bbf9773d1f41da1..6d934f68f03067feb5801f6cda44877d1d1c0d82 100644
--- a/html/qhull.htm
+++ b/html/qhull.htm
@@ -116,7 +116,7 @@ hull contains non-simplicial facets (e.g., a hypercube). See
 are there extra points in a 4-d or higher convex hull?</a><br>
 </p>
 
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/html/qhull.man b/html/qhull.man
index 5b0f72323da033990c4ef964be3802c85a1a98b1..ea845e4d7d1f7b2b4aeb4ca3aac73f9f77e88dd7 100644
--- a/html/qhull.man
+++ b/html/qhull.man
@@ -1,17 +1,17 @@
-./"  This is the Unix manual page for qhull, written in nroff, the standard
-./"  manual formatter for Unix systems.  To format it, type
-./"
-./"  nroff -man qhull.man
-./"
-./"  This will print a formatted copy to standard output.  If you want
-./"  to ensure that the output is plain ASCII, free of any control
-./"  characters that nroff uses for underlining etc, pipe the output
-./"  through "col -b":
-./"
-./"  nroff -man qhull.man | col -b
-./"
-./"  Warning: a leading quote "'" or dot "." will not format correctly
-./"
+.\"  This is the Unix manual page for qhull, written in nroff, the standard
+.\"  manual formatter for Unix systems.  To format it, type
+.\"
+.\"  nroff -man qhull.man
+.\"
+.\"  This will print a formatted copy to standard output.  If you want
+.\"  to ensure that the output is plain ASCII, free of any control
+.\"  characters that nroff uses for underlining etc, pipe the output
+.\"  through "col -b":
+.\"
+.\"  nroff -man qhull.man | col -b
+.\"
+.\"  Warning: a leading quote "'" or dot "." will not format correctly
+.\"
 .TH qhull 1 "2003/12/30" "Geometry Center"
 .SH NAME
 qhull \- convex hull, Delaunay triangulation, Voronoi diagram, 
@@ -90,16 +90,16 @@ any mismatches with Qhull's html manual (index.htm).
 .PP
 .SH INTRODUCTION
 Qhull is a general dimension code for computing convex hulls, Delaunay
-triangulations, Voronoi diagram, furthest-site Voronoi diagram, 
-furthest-site Delaunay triangulations, and 
+triangulations, Voronoi diagram, furthest\[hy]site Voronoi diagram, 
+furthest\[hy]site Delaunay triangulations, and 
 halfspace intersections about a point.  It implements the Quickhull algorithm for 
-computing the convex hull.  Qhull handles round-off errors from floating 
+computing the convex hull.  Qhull handles round\[hy]off errors from floating 
 point arithmetic.  It can approximate a convex hull.
 
 The program includes options for hull volume, facet area, partial hulls,
 input transformations, randomization, tracing, multiple output formats, and
 execution statistics.  The program can be called from within your application.
-You can view the results in 2-d, 3-d and 4-d with Geomview.
+You can view the results in 2\[hy]d, 3\[hy]d and 4\[hy]d with Geomview.
 .PP
 .SH DESCRIPTION
 .PP
@@ -107,7 +107,7 @@ The format of input is the following: first line contains the dimension,
 second line contains the number of input points, and point coordinates follow.
 The dimension and number of points can be reversed.
 Comments and line breaks are ignored.  A comment starts with a
-non-numeric character and continues to the end of line.  The first comment 
+non\[hy]numeric character and continues to the end of line.  The first comment 
 is reported in summaries and statistics.
 Error reporting is
 better if there is one point per line.
@@ -116,7 +116,7 @@ The default printout option is a short summary. There are many
 other output formats.
 .PP
 Qhull implements the Quickhull algorithm for convex hull. This algorithm combines
-the 2-d Quickhull algorithm with the n-d beneath-beyond algorithm
+the 2\[hy]d Quickhull algorithm with the n\[hy]d beneath\[hy]beyond algorithm
 [c.f., Preparata & Shamos '85].
 It is similar to the randomized algorithms of Clarkson and 
 others [Clarkson et al. '93].  The main 
@@ -125,12 +125,12 @@ space requirements, and automatic handling of precision problems.
 .PP
 The data structure produced by Qhull consists of vertices, ridges, and facets.
 A vertex is a point of the input set.  A ridge is a set of d vertices
-and two neighboring facets.  For example in 3-d, a ridge is an edge of the
+and two neighboring facets.  For example in 3\[hy]d, a ridge is an edge of the
 polyhedron.  A facet is a set of ridges, a set of neighboring facets, a set
 of incident vertices, and a hyperplane equation.  For simplicial facets, the 
 ridges are defined by the vertices and neighboring facets.  When Qhull 
-merges two facets, it produces a non-simplicial
-facet.  A non-simplicial facet has more than d neighbors and may share more than 
+merges two facets, it produces a non\[hy]simplicial
+facet.  A non\[hy]simplicial facet has more than d neighbors and may share more than 
 one ridge with a neighbor.
 .PP
 .SH IMPRECISION 
@@ -139,12 +139,12 @@ Since Qhull uses floating point arithmetic, roundoff error may occur for each
 calculation.  This causes  problems
 for most geometric algorithms.
 .PP
-Qhull automatically sets option 'C-0' in 2-d, 3-d, and 4-d, or 
-option 'Qx' in 5-d and higher.  These options handle precision problems 
+Qhull automatically sets option 'C\-0' in 2\[hy]d, 3\[hy]d, and 4\[hy]d, or 
+option 'Qx' in 5\[hy]d and higher.  These options handle precision problems 
 by merging facets.  Alternatively, use option 'QJ' to joggle the
 input.
 .PP
-With 'C-0', Qhull merges non-convex
+With 'C\-0', Qhull merges non\[hy]convex
 facets while constructing the hull. The remaining facets are
 clearly convex. With 'Qx', Qhull merges 
 coplanar horizon facets, flipped facets, concave facets and
@@ -159,7 +159,7 @@ merging will not occur.
 .PP
 To get a list of the most important options, execute 'qhull' by itself.
 To get a complete list of options, 
-execute 'qhull -'.  
+execute 'qhull \-'.  
 To get a complete, concise list of options, execute 'qhull .'.
 
 Options can be in any order.
@@ -179,7 +179,7 @@ d
 Compute the Delaunay triangulation by lifting the input points to a 
 paraboloid.  The 'o' option prints the input points and facets.  
 The 'QJ' option guarantees triangular output.  The 'Ft' 
-option prints a triangulation.  It adds points (the centrums) to non-simplicial
+option prints a triangulation.  It adds points (the centrums) to non\[hy]simplicial
 facets.  
 .TP
 v
@@ -191,7 +191,7 @@ site ID order.
 The 'Fv' option prints each ridge of the Voronoi diagram.
 The first or zero'th vertex
 indicates the infinity vertex.  Its coordinates are 
-qh_INFINITE (-10.101).  It indicates unbounded Voronoi
+qh_INFINITE (\-10.101).  It indicates unbounded Voronoi
 regions or degenerate Delaunay triangles.
 .TP
 Hn,n,...
@@ -212,21 +212,21 @@ the second number is "1", and the coordinates complete a line.  The 'FV'
 option produces a feasible point for a convex hull.
 .TP
 d Qu
-Compute the furthest-site Delaunay triangulation from the upper
+Compute the furthest\[hy]site Delaunay triangulation from the upper
 convex hull.  The 'o' option prints the input points and facets.  
-The 'QJ' option guarantees triangular otuput.  You can also use
-'Ft' to triangulate via the centrums of non-simplicial
+The 'QJ' option guarantees triangular otuput.  You can also use 'Ft'
+to triangulate via the centrums of non\[hy]simplicial
 facets.  
 .TP
 v Qu
-Compute the furthest-site Voronoi diagram.
+Compute the furthest\[hy]site Voronoi diagram.
 The 'p' option prints the Voronoi vertices.  
 The 'o' option prints the Voronoi vertices and the
 vertices in each Voronoi region.
 The 'Fv' option prints each ridge of the Voronoi diagram.
 The first or zero'th vertex
 indicates the infinity vertex at infinity.  Its coordinates are 
-qh_INFINITE (-10.101).  It indicates unbounded Voronoi regions
+qh_INFINITE (\-10.101).  It indicates unbounded Voronoi regions
 and degenerate Delaunay triangles.
 .PP
 .TP
@@ -249,23 +249,23 @@ i
 Output the incident vertices for each facet.  
 Qhull prints the number of facets followed by the
 vertices of each facet.  One facet is printed per line.  The numbers 
-are the 0-relative indices of the corresponding input points.
+are the 0\[hy]relative indices of the corresponding input points.
 The facets
 are oriented.  
 
-In 4-d and higher, 
-Qhull triangulates non-simplicial facets.  Each apex (the first vertex) is
+In 4d and higher, 
+Qhull triangulates non\[hy]simplicial facets.  Each apex (the first vertex) is
 a created point that corresponds to the facet's centrum.  Its index is greater
 than the indices of the input points.  Each base
 corresponds to a simplicial ridge between two facets.
 To print the vertices without triangulation, use option 'Fv'.
 .TP
 m
-Output the hull in Mathematica format.  Qhull writes a Mathematica file for 2-d and 3-d
-convex hulls and for 2-d Delaunay triangulations.   Qhull produces a list of objects
+Output the hull in Mathematica format.  Qhull writes a Mathematica file for 2\[hy]d and 3\[hy]d
+convex hulls and for 2\[hy]d Delaunay triangulations.   Qhull produces a list of objects
 that you can assign to a variable in Mathematica, for example:
-"list= << <outputfilename> ". If the object is 2-d, it can be
-visualized by "Show[Graphics[list]] ". For 3-d objects the command is
+"list= << <outputfilename> ". If the object is 2\[hy]d, it can be
+visualized by "Show[Graphics[list]] ". For 3\[hy]d objects the command is
 "Show[Graphics3D[list]]".
 .TP
 n
@@ -281,10 +281,10 @@ of facets, and number of ridges.  Then it prints the coordinates of
 the input points and the vertices for each facet.  Each facet is on
 a separate line.  The first number is the number of vertices.  The
 remainder are the indices of the corresponding points.  The vertices are
-oriented in 2-d, 3-d, and in simplicial facets.
+oriented in 2\[hy]d, 3\[hy]d, and in simplicial facets.
 
-For 2-d Voronoi diagrams,
-the vertices are sorted by adjacency, but not oriented.  In 3-d and higher,
+For 2\[hy]d Voronoi diagrams,
+the vertices are sorted by adjacency, but not oriented.  In 3\[hy]d and higher,
 the Voronoi vertices are sorted by index.  
 See the 'v' option for more information.
 .TP
@@ -306,7 +306,7 @@ number of good facets (if 'Pg'), and statistics.
 The last two statistics (if needed) measure the maximum distance 
 from a point or vertex to a
 facet.  The number in parenthesis (e.g., 2.1x) is the ratio between the 
-maximum distance and the worst-case distance due to merging
+maximum distance and the worst\[hy]case distance due to merging
 two simplicial facets.
 .PP
 .TP
@@ -317,45 +317,45 @@ Maximum angle given as a cosine.  If the angle between a pair of facet
 normals
 is greater than n, Qhull merges one of the facets into a neighbor.
 If 'n' is negative, Qhull tests angles after adding
-each point to the hull (pre-merging).  
+each point to the hull (pre\[hy]merging).  
 If 'n' is positive, Qhull tests angles after
-constructing the hull (post-merging).  
-Both pre- and post-merging can be defined.
+constructing the hull (post\[hy]merging).  
+Both pre\[hy] and post\[hy]merging can be defined.
 
-Option 'C0' or 'C-0' is set if the corresponding 'Cn' or 'C-n'
+Option 'C0' or 'C\-0' is set if the corresponding 'Cn' or 'C\-n'
 is not set.  If 'Qx'
-is set, then 'A-n' and 'C-n' are checked after the hull is constructed
+is set, then 'A\-n' and 'C\-n' are checked after the hull is constructed
 and before 'An' and 'Cn' are checked.
 .TP
 Cn
 Centrum radius.
 If a centrum is less than n below a neighboring facet, Qhull merges one
 of the facets.
-If 'n' is negative or '-0', Qhull tests and merges facets after adding
-each point to the hull.  This is called "pre-merging".  If 'n' is positive,
-Qhull tests for convexity after constructing the hull ("post-merging").
-Both pre- and post-merging can be defined.
+If 'n' is negative or '\-0', Qhull tests and merges facets after adding
+each point to the hull.  This is called "pre\[hy]merging".  If 'n' is positive,
+Qhull tests for convexity after constructing the hull ("post\[hy]merging").
+Both pre\[hy] and post\[hy]merging can be defined.
 
-For 5-d and higher, 'Qx' should be used
-instead of 'C-n'.  Otherwise, most or all facets may be merged
+For 5\[hy]d and higher, 'Qx' should be used
+instead of 'C\-n'.  Otherwise, most or all facets may be merged
 together.
 .TP
 En
 Maximum roundoff error for distance computations.
 .TP
 Rn
-Randomly perturb distance computations up to +/- n * max_coord.
+Randomly perturb distance computations up to +/\- n * max_coord.
 This option perturbs every distance, hyperplane, and angle computation.
-To use time as the random number seed, use option 'QR-1'.
+To use time as the random number seed, use option 'QR\-1'.
 .TP
 Vn
 Minimum distance for a facet to be visible.
 A facet is visible if the distance from the point to the
 facet is greater than 'Vn'.  
 
-Without merging, the default value for 'Vn' is the round-off error ('En'). 
-With merging, the default value is the pre-merge centrum ('C-n') in 2-d or
-3--d, or three times that in other dimensions.  If the outside width
+Without merging, the default value for 'Vn' is the round\[hy]off error ('En'). 
+With merging, the default value is the pre\[hy]merge centrum ('C\-n') in 2\[hy]d or
+3\[hy]d, or three times that in other dimensions.  If the outside width
 is specified ('Wn'), the maximum, default value for 'Vn' is 'Wn'.
 .TP
 Un
@@ -366,9 +366,9 @@ Wn
 Minimum outside width of the hull.  Points are added to the convex hull
 only if they are clearly outside of a facet.  A point is outside of a 
 facet if its distance to the facet is greater than 'Wn'.  The normal
-value for 'Wn' is 'En'.  If the user specifies pre-merging and
+value for 'Wn' is 'En'.  If the user specifies pre\[hy]merging and
 does not set 'Wn', than 'Wn' is set
-to the premerge 'Cn' and maxcoord*(1-An).
+to the premerge 'Cn' and maxcoord*(1\-An).
 .PP
 .TP
 Additional input/output formats
@@ -380,14 +380,14 @@ For Voronoi diagrams, the area is the area of the dual facet.
 Use 'PAn' for printing the n largest facets, and option 'PFn' for
 printing facets larger than 'n'.
 
-The area for non-simplicial facets is the sum of the
+The area for non\[hy]simplicial facets is the sum of the
 areas for each ridge to the centrum.   Vertices far below
 the facet's hyperplane are ignored.  
 The reported area may be significantly less than the actual area.
 .TP
 FA
 Compute the total area and volume for option 's'.  It is an approximation
-for non-simplicial facets (see 'Fa').
+for non\[hy]simplicial facets (see 'Fa').
 .TP
 Fc
 Print coplanar points for each facet.  The output starts with the
@@ -435,8 +435,8 @@ of ridges.  Then each hyperplane is printed, one per line.  A line starts
 with the number of indices and floats.  The first pair lists 
 adjacent input
 sites, the next d floats are the normalized coefficients for the hyperplane,
-and the last float is the offset.  The hyperplane is oriented toward 
-'QVn' (if defined), or the first input site of the pair.  Use 'Tv' to
+and the last float is the offset.  The hyperplane is oriented toward 'QVn'
+(if defined), or the first input site of the pair.  Use 'Tv' to
 verify that the hyperplanes are perpendicular bisectors.  Use 'Fo' for 
 unbounded regions, and 'Fv' for the corresponding Voronoi vertices.
 .TP
@@ -449,8 +449,8 @@ a facet.  See 'PMn' for printing the facets with the most merges.
 .TP
 FM
 Output the hull in Maple format.  Qhull writes a Maple
-file for 2-d and 3-d
-convex hulls and for 2-d Delaunay triangulations.   Qhull produces a '.mpl'
+file for 2\[hy]d and 3\[hy]d
+convex hulls and for 2\[hy]d Delaunay triangulations.   Qhull produces a '.mpl'
 file for displaying with display3d().
 .TP
 Fn
@@ -486,8 +486,8 @@ of ridges.  Then each hyperplane is printed, one per line.  A line starts
 with the number of indices and floats.  The first pair lists 
 adjacent input
 sites, the next d floats are the normalized coefficients for the hyperplane,
-and the last float is the offset.  The hyperplane is oriented toward 
-'QVn' (if defined), or the first input site of the pair.  Use 'Tv' to
+and the last float is the offset.  The hyperplane is oriented toward 'QVn'
+(if defined), or the first input site of the pair.  Use 'Tv' to
 verify that the hyperplanes are perpendicular bisectors.  Use 'Fi' for 
 bounded regions, and 'Fv' for the corresponding Voronoi vertices.
 .TP
@@ -498,7 +498,7 @@ are printed to stdout.
 Fp
 Print points for halfspace intersections (option 'Hn,n,...').  Each
 intersection corresponds to a facet of the dual polytope.
-The "infinity" point [-10.101,-10.101,...]
+The "infinity" point [\-10.101,\-10.101,...]
 indicates an unbounded intersection.
 .TP
 FP
@@ -530,15 +530,14 @@ versions of Qhull may produce additional integers or reals.
 The total volume measures the volume
 of the intersection of the halfspaces defined by each facet.   
 Both area and volume are
-approximations for non-simplicial facets.  See option 'Fa'.
+approximations for non\[hy]simplicial facets.  See option 'Fa'.
 .TP
 Ft
-Print a triangulation with added points for non-simplicial
+Print a triangulation with added points for non\[hy]simplicial
 facets.  The first line is the dimension and the second line is the
 number of points and the number of facets.  The points follow, one
-per line, then the facets follow as a list of point indices.  With option
-'Qz', the
-points include the point-at-infinity.
+per line, then the facets follow as a list of point indices.  With option 'Qz', the
+points include the point\[hy]at\[hy]infinity.
 .TP
 Fv
 Print vertices for each facet.  The first line is the number
@@ -551,7 +550,7 @@ Print all ridges of a Voronoi diagram.  The first line is the number
 of ridges.  Then each ridge is printed, one per line.  A line starts
 with the number of indices.  The first pair lists adjacent input
 sites, the remaining indices list Voronoi vertices.  Vertex '0' indicates
-the vertex-at-infinity (i.e., an unbounded ray).  In 3-d, the vertices
+the vertex\[hy]at\[hy]infinity (i.e., an unbounded ray).  In 3\[hy]d, the vertices
 are listed in order.  See 'Fi' and 'Fo' for separating hyperplanes.
 .TP
 FV
@@ -561,8 +560,8 @@ for halfspace intersection.
 Fx
 List extreme points (vertices) of the convex hull.  The first line
 is the number of points.  The other lines give the indices of the
-corresponding points.  The first point is '0'.  In 2-d, the points
-occur in counter-clockwise order; otherwise they occur in input order.
+corresponding points.  The first point is '0'.  In 2\[hy]d, the points
+occur in counter\[hy]clockwise order; otherwise they occur in input order.
 For Delaunay triangulations, 'Fx' lists the extreme points of the
 input sites.  The points are unordered.
 .PP
@@ -571,12 +570,12 @@ Geomview options
 .TP
 G
 Produce a file for viewing with Geomview.  Without other options,
-Qhull displays edges in 2-d, outer planes in 3-d, and ridges in 4-d.
+Qhull displays edges in 2\[hy]d, outer planes in 3\[hy]d, and ridges in 4\[hy]d.
 A ridge can be 
-explicit or implicit.  An explicit ridge is a dim-1 dimensional simplex
+explicit or implicit.  An explicit ridge is a dim\-1 dimensional simplex
 between two facets.  
-In 4-d, the explicit ridges are triangles.
-When displaying a ridge in 4-d, Qhull projects the ridge's vertices to
+In 4\[hy]d, the explicit ridges are triangles.
+When displaying a ridge in 4\[hy]d, Qhull projects the ridge's vertices to
 one of its facets' hyperplanes.
 Use 'Gh' to
 project ridges to the intersection of both hyperplanes.
@@ -585,24 +584,24 @@ Ga
 Display all input points as dots.
 .TP
 Gc
-Display the centrum for each facet in 3-d.  The centrum is defined by a
+Display the centrum for each facet in 3\[hy]d.  The centrum is defined by a
 green radius sitting on a blue plane.  The plane corresponds to the
 facet's hyperplane.  
-The radius is defined by 'C-n' or 'Cn'.
+The radius is defined by 'C\-n' or 'Cn'.
 .TP
 GDn
-Drop dimension n in 3-d or 4-d.  The result is a 2-d or 3-d object.  
+Drop dimension n in 3\[hy]d or 4\[hy]d.  The result is a 2\[hy]d or 3\[hy]d object.  
 .TP
 Gh
-Display hyperplane intersections in 3-d and 4-d.   In 3-d, the
+Display hyperplane intersections in 3\[hy]d and 4\[hy]d.   In 3\[hy]d, the
 intersection is a black line.  It lies on two neighboring hyperplanes
-(c.f., the blue squares associated with centrums ('Gc')).  In 4-d,
+(c.f., the blue squares associated with centrums ('Gc')).  In 4\[hy]d,
 the ridges are projected to the intersection of both hyperplanes.
 .TP
 Gi
-Display inner planes in 2-d and 3-d.  The inner plane of a facet
+Display inner planes in 2\[hy]d and 3\[hy]d.  The inner plane of a facet
 is below all of its vertices.  It is parallel to the facet's hyperplane.
-The inner plane's color is the opposite (1-r,1-g,1-b) of the outer
+The inner plane's color is the opposite (1\-r,1\-g,1\-b) of the outer
 plane.  Its edges are determined by the vertices.
 .TP
 Gn
@@ -613,7 +612,7 @@ not display the inner plane if the
 the difference between inner and outer is too small.
 .TP
 Go
-Display outer planes in 2-d and 3-d.  The outer plane of a facet
+Display outer planes in 2\[hy]d and 3\[hy]d.  The outer plane of a facet
 is above all input points.  It is parallel to the facet's hyperplane.
 Its color is determined by the facet's normal, and its 
 edges are determined by the vertices.
@@ -622,15 +621,15 @@ Gp
 Display coplanar points and vertices as radii.  A radius defines a ball
 which corresponds to the imprecision of the point.  The imprecision is 
 the maximum of the roundoff error, the centrum radius, and maxcoord *
-(1-An).  It is at least 1/20'th of the maximum coordinate, 
-and ignores post-merging if pre-merging is done.
+(1\-An).  It is at least 1/20'th of the maximum coordinate, 
+and ignores post\[hy]merging if pre\[hy]merging is done.
 .TP
 Gr
-Display ridges in 3-d.  A ridge connects the two vertices that are shared
-by neighboring facets.  Ridges are always displayed in 4-d.
+Display ridges in 3\[hy]d.  A ridge connects the two vertices that are shared
+by neighboring facets.  Ridges are always displayed in 4\[hy]d.
 .TP
 Gt
-A 3-d Delaunay triangulation looks like a convex hull with interior
+A 3\[hy]d Delaunay triangulation looks like a convex hull with interior
 facets.  Option 'Gt' removes the outside ridges to reveal the outermost
 facets.  It automatically sets options 'Gr' and 'GDn'.
 .TP
@@ -689,12 +688,12 @@ Qhull control options
 .TP
 Qbk:0Bk:0
 Drop dimension k from the input points.  This allows the user to 
-take convex hulls of sub-dimensional objects.  It happens before
+take convex hulls of sub\[hy]dimensional objects.  It happens before
 the Delaunay and Voronoi transformation.
 .TP
 QbB
 Scale the input points to fit the unit cube.  After scaling, the lower
-bound will be -0.5 and the upper bound +0.5 in all dimensions.
+bound will be \-0.5 and the upper bound +0.5 in all dimensions.
 For Delaunay and
 Voronoi diagrams, scaling happens after projection to the paraboloid.
 Under precise
@@ -710,7 +709,7 @@ arithmetic, scaling does not change the topology of the convex hull.
 .TP
 Qbk:n
 Scale the k'th coordinate of the input points.  After scaling, the lower
-bound of the input points will be n.  'Qbk' scales to -0.5.  
+bound of the input points will be n.  'Qbk' scales to \-0.5.  
 .TP
 QBk:n
 Scale the k'th coordinate of the input points.  After scaling, the upper
@@ -741,7 +740,7 @@ Keep interior points with the nearest facet.
 Output formats 'p', 'f', 'Gp', 'FN', 'FP', and 'Fc' will print the points.
 .TP
 QJn
-Joggle each input coordinate by adding a random number in [-n,n].  If a
+Joggle each input coordinate by adding a random number in [\-n,n].  If a
 precision error occurs, then qhull increases n and tries again.  It does
 not increase n beyond a certain value, and it stops after a certain number
 of attempts [see user.h].  Option 'QJ'
@@ -760,7 +759,7 @@ is not reported since the randomization is inefficient.
 .TP
 QRn
 Randomly rotate the input points.  If n=0, use time as the random number seed.
-If n>0, use n as the random number seed.  If n=-1, don't rotate but use
+If n>0, use n as the random number seed.  If n=\-1, don't rotate but use
 time as the random number seed.  For Delaunay triangulations ('d' and 'v'),
 rotate about the last axis.
 .TP
@@ -768,12 +767,12 @@ Qs
 Search all points for the initial simplex.
 .TP
 Qt
-Triangulated output.  Triangulate all non-simplicial facets.  See also 'QJ'.
+Triangulated output.  Triangulate all non\[hy]simplicial facets.  See also 'QJ'.
 .TP
 Qv
-Test vertex neighbors for convexity after post-merging.
+Test vertex neighbors for convexity after post\[hy]merging.
 To use the 'Qv' option, you also need to set a merge option
-(e.g., 'Qx' or 'C-0').
+(e.g., 'Qx' or 'C\-0').
 .TP
 QVn
 A good facet (see 'Qg' and 'Pg') includes point n.  If n<0, then a good facet does not
@@ -783,13 +782,13 @@ is the first point added to the hull.  Option 'QVn' may not be used with merging
 Qx
 Perform exact merges while building the hull.  The "exact" merges
 are merging a point into a coplanar facet (defined by 'Vn', 'Un',
-and 'C-n'), merging concave facets, merging duplicate ridges, and
-merging flipped facets.  Coplanar merges and angle coplanar merges ('A-n')
+and 'C\-n'), merging concave facets, merging duplicate ridges, and
+merging flipped facets.  Coplanar merges and angle coplanar merges ('A\-n')
 are not performed.  Concavity testing is delayed until a merge occurs.
 
 After
-the hull is built, all coplanar merges are performed (defined by 'C-n'
-and 'A-n'), then post-merges are performed 
+the hull is built, all coplanar merges are performed (defined by 'C\-n'
+and 'A\-n'), then post\[hy]merges are performed 
 (defined by 'Cn' and 'An').
 .TP
 Qz
@@ -801,8 +800,8 @@ of cospherical points.
 Qhull experiments and speedups
 .TP
 Q0
-Turn off pre-merging as a default option.  
-With 'Q0'/'Qx' and without explicit pre-merge options, Qhull 
+Turn off pre\[hy]merging as a default option.  
+With 'Q0'/'Qx' and without explicit pre\[hy]merge options, Qhull 
 ignores precision issues while constructing the convex hull.  This
 may lead to precision errors.  If so, a descriptive warning is
 generated.  
@@ -826,14 +825,14 @@ With 'Q5', Qhull does not correct outer planes at the end.  The
 maximum outer plane is used instead.
 .TP
 Q6
-With 'Q6', Qhull does not pre-merge concave or coplanar facets.
+With 'Q6', Qhull does not pre\[hy]merge concave or coplanar facets.
 .TP
 Q7
-With 'Q7', Qhull processes facets in depth-first order instead of
-breadth-first order.
+With 'Q7', Qhull processes facets in depth\[hy]first order instead of
+breadth\[hy]first order.
 .TP
 Q8
-With 'Q8' and merging, Qhull does not retain near-interior points for adjusting
+With 'Q8' and merging, Qhull does not retain near\[hy]interior points for adjusting
 outer planes.  'Qc' will probably retain
 all points that adjust outer planes.
 .TP
@@ -850,7 +849,7 @@ With 'Q11', Qhull copies normals and recompute centrums for tricoplanar facets.
 Trace options
 .TP
 Tn
-Trace at level n.  Qhull includes full execution tracing.  'T-1'
+Trace at level n.  Qhull includes full execution tracing.  'T\-1'
 traces events.  'T1' traces
 the overall execution of the program.  'T2' and 'T3' trace overall
 execution and geometric and topological events.  'T4' traces the
@@ -868,7 +867,7 @@ See also 'TVn'.
 .TP
 TFn
 Report progress whenever more than n facets are created
-During post-merging, 'TFn' 
+During post\[hy]merging, 'TFn' 
 reports progress after more than n/2 merges.
 .TP
 TI file
@@ -900,8 +899,8 @@ Option 'Tv' does not check point inclusion if forcing output with 'Po',
 or if 'Q5' is set.
 
 For point inclusion testing, Qhull verifies that all points are below
-all outer planes (facet->maxoutside).  Point inclusion is exhaustive
-if merging or if the facet-point product is small enough;
+all outer planes (facet\->maxoutside).  Point inclusion is exhaustive
+if merging or if the facet\[hy]point product is small enough;
 otherwise Qhull verifies each point with a directed
 search (qh_findbest).  
 
@@ -945,9 +944,9 @@ incorporating Qhull into your own program.
 
 When you do report an error, please attach a data set to the
 end of your message.  This allows us to see the error for ourselves.
-Qhull is maintained part-time.
+Qhull is maintained part\[hy]time.
 .PP
-.SH E-MAIL
+.SH E\[hy]MAIL
 Please send correspondence to qhull@qhull.org and report bugs to
 qhull_bug@qhull.org.  Let us know how you use Qhull.  If you
 mention it in a paper, please send the reference and an abstract.
@@ -957,37 +956,31 @@ and news (any bugs that get fixed, etc.), let us know and we will add you to
 our mailing list.  If you would like to communicate with other
 Qhull users, we will add you to the qhull_users alias.  
 For Internet news about geometric algorithms and convex hulls, look at
-comp.graphics.algorithms and sci.math.num-analysis
+comp.graphics.algorithms and sci.math.num\-analysis
 
 .SH SEE ALSO
 rbox(1)
 
 Barber, C. B., D.P. Dobkin, and H.T. Huhdanpaa,
 "The Quickhull Algorithm for Convex Hulls," ACM
-Trans. on Mathematical Software, 22(4):469-483, Dec. 1996.
+Trans. on Mathematical Software, 22(4):469\[en]483, Dec. 1996.
 http://portal.acm.org/citation.cfm?doid=235815.235821
 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.6345
 
 Clarkson, K.L., K. Mehlhorn, and R. Seidel, "Four results on randomized 
 incremental construction," Computational Geometry: Theory and Applications,
-vol. 3, p. 185-211, 1993.
+vol. 3, p. 185\[en]211, 1993.
 
 Preparata, F. and M. Shamos, Computational
-Geometry, Springer-Verlag, New York, 1985.
+Geometry, Springer\[hy]Verlag, New York, 1985.
 
 .PP
 .SH AUTHORS
 .nf
   C. Bradford Barber                    Hannu Huhdanpaa
-  bradb@qhull.org                    hannu@qhull.org
+  bradb@shore.net                       hannu@qhull.org
   
-                    c/o The Geometry Center
-                    University of Minnesota
-                    400 Lind Hall
-                    207 Church Street S.E.
-                    Minneapolis, MN 55455
-
-.fi
+ .fi
 
 .SH ACKNOWLEDGEMENTS
 
@@ -995,12 +988,12 @@ A special thanks to Albert Marden, Victor Milenkovic, the Geometry Center,
 Harvard University, and Endocardial Solutions, Inc. for supporting this work.
 
 Qhull 1.0 and 2.0 were developed under National Science Foundation 
-grants NSF/DMS-8920161 and NSF-CCR-91-15793 750-7504.  David Dobkin 
+grants NSF/DMS\[hy]8920161 and NSF\[hy]CCR\[hy]91\[hy]15793 750\[hy]7504.  David Dobkin 
 guided the original work at Princeton University.  
 If you find it useful, please let us know.
 
-The Geometry Center is supported by grant DMS-8920161 from the National 
-Science Foundation, by grant DOE/DE-FG02-92ER25137 from the Department 
+The Geometry Center is supported by grant DMS\[hy]8920161 from the National 
+Science Foundation, by grant DOE/DE\[hy]FG02\[hy]92ER25137 from the Department 
 of Energy, by the University of Minnesota, and by Minnesota Technology, Inc.
 
 Qhull is available from http://www.qhull.org
diff --git a/html/qhull.txt b/html/qhull.txt
index 4ad3299cfafa3ec7bc247ff3827ee64e340fdc3b..b40d7e069dec5d6fc7836b796ab00aeda468adc3 100644
--- a/html/qhull.txt
+++ b/html/qhull.txt
@@ -1,163 +1,163 @@
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
 NAME
-       qhull  -	convex hull, Delaunay triangulation, Voronoi dia-
+       qhull  - convex hull, Delaunay triangulation, Voronoi dia-
        gram, halfspace intersection about a point, hull volume, facet area
 
 SYNOPSIS
        qhull- compute convex hulls and related structures
-	   input (stdin): dimension, #points, point coordinates
-	   first comment (non-numeric) is listed in the	summary
-	   halfspace: use dim plus one with offsets after coefficients
+           input (stdin): dimension, #points, point coordinates
+           first comment (non-numeric) is listed in the summary
+           halfspace: use dim plus one with offsets after coefficients
 
        options (qh-quick.htm):
-	   d	  - Delaunay triangulation by lifting points to	a paraboloid
-	   v	  - Voronoi diagram via	the Delaunay triangulation
-	   H1,1	  - Halfspace intersection about [1,1,0,...]
-	   d Qu	  - Furthest-site Delaunay triangulation (upper	convex hull)
-	   v Qu	  - Furthest-site Voronoi diagram
-	   QJ	  - Joggle the input to	avoid precision	problems
-	   .	  - concise list of all	options
-	   -	  - one-line description of all	options
+           d      - Delaunay triangulation by lifting points to a paraboloid
+           v      - Voronoi diagram via the Delaunay triangulation
+           H1,1   - Halfspace intersection about [1,1,0,...]
+           d Qu   - Furthest-site Delaunay triangulation (upper convex hull)
+           v Qu   - Furthest-site Voronoi diagram
+           QJ     - Joggle the input to avoid precision problems
+           .      - concise list of all options
+           -      - one-line description of all options
 
        Output options (subset):
-	   FA	  - compute total area and volume
-	   Fx	  - extreme points (convex hull	vertices)
-	   G	  - Geomview output (2-d, 3-d and 4-d)
-	   Fp	  - halfspace intersection coordinates
-	   m	  - Mathematica	output (2-d and	3-d)
-	   n	  - normals with offsets
-	   o	  - OFF	file format (if	Voronoi, outputs regions)
-	   TO file- output results to file, may	be enclosed in single quotes
-	   f	  - print all fields of	all facets
-	   s	  - summary of results (default)
-	   Tv	  - verify result: structure, convexity, and point inclusion
-	   p	  - vertex coordinates
-	   i	  - vertices incident to each facet
+           FA     - compute total area and volume
+           Fx     - extreme points (convex hull vertices)
+           G      - Geomview output (2-d, 3-d and 4-d)
+           Fp     - halfspace intersection coordinates
+           m      - Mathematica output (2-d and 3-d)
+           n      - normals with offsets
+           o      - OFF file format (if Voronoi, outputs regions)
+           TO file- output results to file, may be enclosed in single quotes
+           f      - print all fields of all facets
+           s      - summary of results (default)
+           Tv     - verify result: structure, convexity, and point inclusion
+           p      - vertex coordinates
+           i      - vertices incident to each facet
 
        example:
-	   rbox	1000 s | qhull Tv s FA
+           rbox 1000 s | qhull Tv s FA
 
-	- html manual:	  index.htm
-	- installation:	  README.txt
-	- see also:	  COPYING.txt, REGISTER.txt, Changes.txt
-	- WWW:	<http://www.qhull.org>
+        - html manual:    index.htm
+        - installation:   README.txt
+        - see also:       COPYING.txt, REGISTER.txt, Changes.txt
+        - WWW:  <http://www.qhull.org>
         - CVS:  <http://savannah.nongnu.org/projects/qhull/>
         - mirror: <http://www6.uniovi.es/ftp/pub/mirrors/geom.umn.edu/software/ghindex.html>
-	- news:	<http://www.qhull.org/news>
-	- Geomview:  <http://www.geomview.org>
-	- news group:	  <news:comp.graphics.algorithms>
-	- FAQ:	     <http://exaflop.org/docs/cgafaq/cga6.html>
-	- email:	  qhull@qhull.org
-	- bug reports:	  qhull_bug@qhull.org
+        - news: <http://www.qhull.org/news>
+        - Geomview:  <http://www.geomview.org>
+        - news group:     <news:comp.graphics.algorithms>
+        - FAQ:       <http://exaflop.org/docs/cgafaq/cga6.html>
+        - email:          qhull@qhull.org
+        - bug reports:    qhull_bug@qhull.org
 
 
 
 
-Geometry Center		     2003/12/30			1
+Geometry Center              2003/12/30                 1
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
        The sections are:
-	- INTRODUCTION
-	- DESCRIPTION, a description of	Qhull
-	- IMPRECISION, how Qhull handles imprecision
-	- OPTIONS
-	-    Input and output options
-	-    Additional	input/output formats
-	-    Precision options
-	-    Geomview options
-	-    Print options
-	-    Qhull options
-	-    Trace options
-	- BUGS
-	- E-MAIL
-	- SEE ALSO
-	- AUTHORS
-	- ACKNOWLEGEMENTS
-
-       This man	page briefly describes all Qhull options.  Please
-       report  any  mismatches	with  Qhull's  html  manual  (qh-
+        - INTRODUCTION
+        - DESCRIPTION, a description of Qhull
+        - IMPRECISION, how Qhull handles imprecision
+        - OPTIONS
+        -    Input and output options
+        -    Additional input/output formats
+        -    Precision options
+        -    Geomview options
+        -    Print options
+        -    Qhull options
+        -    Trace options
+        - BUGS
+        - E-MAIL
+        - SEE ALSO
+        - AUTHORS
+        - ACKNOWLEGEMENTS
+
+       This man page briefly describes all Qhull options.  Please
+       report  any  mismatches  with  Qhull's  html  manual  (qh-
        man.htm).
 
 
 
 INTRODUCTION
-       Qhull  is  a  general  dimension	code for computing convex
-       hulls, Delaunay triangulations, Voronoi diagram,	furthest-
-       site  Voronoi  diagram,	furthest-site Delaunay triangula-
+       Qhull  is  a  general  dimension code for computing convex
+       hulls, Delaunay triangulations, Voronoi diagram, furthest-
+       site  Voronoi  diagram,  furthest-site Delaunay triangula-
        tions, and halfspace  intersections  about  a  point.   It
        implements  the Quickhull algorithm for computing the con-
-       vex hull.  Qhull	handles	round-off  errors  from	 floating
+       vex hull.  Qhull handles round-off  errors  from  floating
        point arithmetic.  It can approximate a convex hull.
 
        The  program includes options for hull volume, facet area,
        partial hulls, input transformations, randomization, trac-
-       ing,  multiple  output  formats,	and execution statistics.
+       ing,  multiple  output  formats, and execution statistics.
        The program can be called from  within  your  application.
-       You  can	 view  the  results  in	 2-d,  3-d  and	 4-d with
+       You  can  view  the  results  in  2-d,  3-d  and  4-d with
        Geomview.
 
 
 DESCRIPTION
-       The format of input is the following: first line	 contains
-       the  dimension,	second	line contains the number of input
+       The format of input is the following: first line  contains
+       the  dimension,  second  line contains the number of input
        points, and point coordinates follow.  The  dimension  and
-       number  of  points  can	be  reversed.	Comments and line
+       number  of  points  can  be  reversed.   Comments and line
        breaks are ignored.  A comment starts with  a  non-numeric
-       character  and  continues  to  the end of line.	The first
-       comment is reported in summaries	 and  statistics.   Error
+       character  and  continues  to  the end of line.  The first
+       comment is reported in summaries  and  statistics.   Error
        reporting is better if there is one point per line.
 
-       The  default printout option is a short summary.	There are
+       The  default printout option is a short summary. There are
        many other output formats.
 
 
 
 
-Geometry Center		     2003/12/30			2
+Geometry Center              2003/12/30                 2
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-       Qhull implements	the Quickhull algorithm	for convex  hull.
-       This  algorithm	combines the 2-d Quickhull algorithm with
-       the n-d beneath-beyond algorithm	[c.f., Preparata & Shamos
-       '85].   It  is  similar	to  the	 randomized algorithms of
-       Clarkson	and others  [Clarkson  et  al.	'93].	The  main
-       advantages  of Quickhull	are output sensitive performance,
+       Qhull implements the Quickhull algorithm for convex  hull.
+       This  algorithm  combines the 2-d Quickhull algorithm with
+       the n-d beneath-beyond algorithm [c.f., Preparata & Shamos
+       '85].   It  is  similar  to  the  randomized algorithms of
+       Clarkson and others  [Clarkson  et  al.  '93].   The  main
+       advantages  of Quickhull are output sensitive performance,
        reduced space requirements, and automatic handling of pre-
        cision problems.
 
-       The data	structure produced by Qhull consists of	vertices,
-       ridges, and facets.  A vertex is	a point	of the input set.
-       A ridge is a set	of d vertices and two neighboring facets.
+       The data structure produced by Qhull consists of vertices,
+       ridges, and facets.  A vertex is a point of the input set.
+       A ridge is a set of d vertices and two neighboring facets.
        For example in 3-d, a ridge is an edge of the  polyhedron.
-       A facet is a set	of ridges, a set of neighboring	facets,	a
+       A facet is a set of ridges, a set of neighboring facets, a
        set of incident vertices, and a hyperplane equation.   For
        simplicial  facets, the ridges are defined by the vertices
-       and neighboring facets.	When Qhull merges two facets,  it
-       produces	 a  non-simplicial facet.  A non-simplicial facet
-       has more	than d neighbors and  may  share  more	than  one
+       and neighboring facets.  When Qhull merges two facets,  it
+       produces  a  non-simplicial facet.  A non-simplicial facet
+       has more than d neighbors and  may  share  more  than  one
        ridge with a neighbor.
 
 
 IMPRECISION
-       Since Qhull uses	floating point arithmetic, roundoff error
-       may occur for each calculation.	This causes  problems for
+       Since Qhull uses floating point arithmetic, roundoff error
+       may occur for each calculation.  This causes  problems for
        most geometric algorithms.
 
        Qhull  automatically  sets  option  'C-0' in 2-d, 3-d, and
@@ -166,37 +166,37 @@ IMPRECISION
        use option 'QJ' to joggle the input.
 
        With 'C-0', Qhull  merges  non-convex  facets  while  con-
-       structing  the hull. The	remaining facets are clearly con-
-       vex. With 'Qx',	Qhull  merges  coplanar	 horizon  facets,
-       flipped	facets,	concave	facets and duplicated ridges.  It
+       structing  the hull. The remaining facets are clearly con-
+       vex. With 'Qx',  Qhull  merges  coplanar  horizon  facets,
+       flipped  facets, concave facets and duplicated ridges.  It
        merges coplanar facets after constructing the hull.   With
        'Qx',  coplanar points may be missed, but it appears to be
        unlikely.
 
-       To guarantee triangular	output,	 joggle	 the  input  with
-       option 'QJ'.  Facet merging will	not occur.
+       To guarantee triangular  output,  joggle  the  input  with
+       option 'QJ'.  Facet merging will not occur.
 
 OPTIONS
-       To  get	a  list	 of  the  most important options, execute
-       'qhull' by itself.  To get a  complete  list  of	 options,
-       execute	'qhull	-'.   To  get a	complete, concise list of
-       options,	execute	'qhull .'.
+       To  get  a  list  of  the  most important options, execute
+       'qhull' by itself.  To get a  complete  list  of  options,
+       execute  'qhull  -'.   To  get a complete, concise list of
+       options, execute 'qhull .'.
 
        Options can be in any order.  Capitalized options take  an
-       argument	 (except  'PG'	and 'F'	options).  Single letters
-       are used	for output formats and precision constants.   The
-       other options are grouped into menus for	other output for-
+       argument  (except  'PG'  and 'F' options).  Single letters
+       are used for output formats and precision constants.   The
+       other options are grouped into menus for other output for-
        mats ('F'), Geomview output ('G'), printing  ('P'),  Qhull
 
 
 
-Geometry Center		     2003/12/30			3
+Geometry Center              2003/12/30                 3
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
        control ('Q'), and tracing ('T').
@@ -204,618 +204,618 @@ qhull(1)						 qhull(1)
        Main options:
 
        default
-	      Compute  the  convex  hull  of  the  input  points.
-	      Report a summary of the result.
+              Compute  the  convex  hull  of  the  input  points.
+              Report a summary of the result.
 
        d      Compute the Delaunay triangulation by  lifting  the
-	      input  points  to	 a  paraboloid.	  The  'o' option
-	      prints the  input	 points	 and  facets.	The  'QJ'
-	      option  guarantees  triangular  output.	The  'Ft'
-	      option prints a triangulation.  It adds points (the
-	      centrums)	to non-simplicial facets.
-
-       v      Compute  the Voronoi diagram from	the Delaunay tri-
-	      angulation.  The 'p' option prints the Voronoi ver-
-	      tices.   The 'o' option prints the Voronoi vertices
-	      and the vertices in each Voronoi region.	It  lists
-	      regions  in  site	id order.  The 'Fv' option prints
-	      each ridge of the	Voronoi	diagram.   The	first  or
-	      zero'th  vertex indicates	the infinity vertex.  Its
-	      coordinates are qh_INFINITE  (-10.101).	It  indi-
-	      cates   unbounded	 Voronoi  regions  or  degenerate
-	      Delaunay triangles.
+              input  points  to  a  paraboloid.   The  'o' option
+              prints the  input  points  and  facets.   The  'QJ'
+              option  guarantees  triangular  output.   The  'Ft'
+              option prints a triangulation.  It adds points (the
+              centrums) to non-simplicial facets.
+
+       v      Compute  the Voronoi diagram from the Delaunay tri-
+              angulation.  The 'p' option prints the Voronoi ver-
+              tices.   The 'o' option prints the Voronoi vertices
+              and the vertices in each Voronoi region.  It  lists
+              regions  in  site id order.  The 'Fv' option prints
+              each ridge of the Voronoi diagram.   The  first  or
+              zero'th  vertex indicates the infinity vertex.  Its
+              coordinates are qh_INFINITE  (-10.101).   It  indi-
+              cates   unbounded  Voronoi  regions  or  degenerate
+              Delaunay triangles.
 
        Hn,n,...
-	      Compute halfspace	intersection  about  [n,n,0,...].
-	      The  input  is  a	 set of	halfspaces defined in the
-	      same format as 'n', 'Fo',	and 'Fi'.   Use	 'Fp'  to
-	      print  the  intersection	points.	 Use 'Fv' to list
-	      the intersection points for  each	 halfspace.   The
-	      other  output formats display the	dual convex hull.
-
-	      The point	[n,n,n,...] is a feasible point	 for  the
-	      halfspaces, i.e.,	a point	that is	inside all of the
-	      halfspaces (Hx+b <=  0).	 The  default  coordinate
-	      value is 0.
-
-	      The  input may start with	a feasible point.  If so,
-	      use 'H' by itself.  The input starts with	a  feasi-
-	      ble  point  when the first number	is the dimension,
-	      the second number	is "1",	and the	coordinates  com-
-	      plete  a line.  The 'FV' option produces a feasible
-	      point for	a convex hull.
+              Compute halfspace intersection  about  [n,n,0,...].
+              The  input  is  a  set of halfspaces defined in the
+              same format as 'n', 'Fo', and 'Fi'.   Use  'Fp'  to
+              print  the  intersection  points.  Use 'Fv' to list
+              the intersection points for  each  halfspace.   The
+              other  output formats display the dual convex hull.
+
+              The point [n,n,n,...] is a feasible point  for  the
+              halfspaces, i.e., a point that is inside all of the
+              halfspaces (Hx+b <=  0).   The  default  coordinate
+              value is 0.
+
+              The  input may start with a feasible point.  If so,
+              use 'H' by itself.  The input starts with a  feasi-
+              ble  point  when the first number is the dimension,
+              the second number is "1", and the coordinates  com-
+              plete  a line.  The 'FV' option produces a feasible
+              point for a convex hull.
 
        d Qu   Compute the  furthest-site  Delaunay  triangulation
-	      from  the	upper convex hull.  The	'o' option prints
-	      the input	points and facets.  The	'QJ' option guar-
-	      antees triangular	otuput.	 You can also use facets.
+              from  the upper convex hull.  The 'o' option prints
+              the input points and facets.  The 'QJ' option guar-
+              antees triangular otuput.  You can also use facets.
 
-       v Qu   Compute the furthest-site	Voronoi	diagram.  The 'p'
-	      option prints the	Voronoi	vertices.  The 'o' option
-	      prints the Voronoi vertices  and	the  vertices  in
+       v Qu   Compute the furthest-site Voronoi diagram.  The 'p'
+              option prints the Voronoi vertices.  The 'o' option
+              prints the Voronoi vertices  and  the  vertices  in
 
 
 
-Geometry Center		     2003/12/30			4
+Geometry Center              2003/12/30                 4
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-	      each  Voronoi  region.  The 'Fv' option prints each
-	      ridge of the Voronoi diagram.  The first or zero'th
-	      vertex  indicates	 the infinity vertex at	infinity.
-	      Its  coordinates	are  qh_INFINITE  (-10.101).   It
-	      indicates	 unbounded Voronoi regions and degenerate
-	      Delaunay triangles.
+              each  Voronoi  region.  The 'Fv' option prints each
+              ridge of the Voronoi diagram.  The first or zero'th
+              vertex  indicates  the infinity vertex at infinity.
+              Its  coordinates  are  qh_INFINITE  (-10.101).   It
+              indicates  unbounded Voronoi regions and degenerate
+              Delaunay triangles.
 
        Qt     Triangulated output.
 
 
        Input/Output options:
 
-       f      Print out	all facets and all fields of each  facet.
+       f      Print out all facets and all fields of each  facet.
 
-       G      Output  the hull in Geomview format.  For	imprecise
-	      hulls, Geomview displays the inner and outer  hull.
-	      Geomview can also	display	points,	ridges,	vertices,
-	      coplanar	points,	 and  facet  intersections.   See
-	      below for	a list of options.
+       G      Output  the hull in Geomview format.  For imprecise
+              hulls, Geomview displays the inner and outer  hull.
+              Geomview can also display points, ridges, vertices,
+              coplanar  points,  and  facet  intersections.   See
+              below for a list of options.
 
-	      For  Delaunay triangulations, 'G'	displays the cor-
-	      responding paraboloid.  For halfspace intersection,
-	      'G' displays the dual polytope.
+              For  Delaunay triangulations, 'G' displays the cor-
+              responding paraboloid.  For halfspace intersection,
+              'G' displays the dual polytope.
 
        i      Output the incident vertices for each facet.  Qhull
-	      prints the number	of facets followed  by	the  ver-
-	      tices  of	 each  facet.	One  facet is printed per
-	      line.  The numbers are the  0-relative  indices  of
-	      the  corresponding  input	 points.   The facets are
-	      oriented.
-
-	      In 4-d and higher, Qhull	triangulates  non-simpli-
-	      cial  facets.   Each  apex  (the first vertex) is	a
-	      created point that corresponds to	the facet's  cen-
-	      trum.  Its index is greater than the indices of the
-	      input points.  Each base corresponds to  a  simpli-
-	      cial  ridge  between two facets.	To print the ver-
-	      tices without triangulation, use option 'Fv'.
-
-       m      Output  the  hull	 in  Mathematica  format.   Qhull
-	      writes  a	 Mathematica  file for 2-d and 3-d convex
-	      hulls and	for 2-d	Delaunay triangulations.    Qhull
-	      produces a list of objects that you can assign to	a
-	      variable in Mathematica,	for  example:  "list=  <<
-	      <outputfilename> ". If the object	is 2-d,	it can be
-	      visualized  by  "Show[Graphics[list]]  ".	 For  3-d
-	      objects the command is "Show[Graphics3D[list]]".
+              prints the number of facets followed  by  the  ver-
+              tices  of  each  facet.   One  facet is printed per
+              line.  The numbers are the  0-relative  indices  of
+              the  corresponding  input  points.   The facets are
+              oriented.
+
+              In 4-d and higher, Qhull  triangulates  non-simpli-
+              cial  facets.   Each  apex  (the first vertex) is a
+              created point that corresponds to the facet's  cen-
+              trum.  Its index is greater than the indices of the
+              input points.  Each base corresponds to  a  simpli-
+              cial  ridge  between two facets.  To print the ver-
+              tices without triangulation, use option 'Fv'.
+
+       m      Output  the  hull  in  Mathematica  format.   Qhull
+              writes  a  Mathematica  file for 2-d and 3-d convex
+              hulls and for 2-d Delaunay triangulations.    Qhull
+              produces a list of objects that you can assign to a
+              variable in Mathematica,  for  example:  "list=  <<
+              <outputfilename> ". If the object is 2-d, it can be
+              visualized  by  "Show[Graphics[list]]  ".  For  3-d
+              objects the command is "Show[Graphics3D[list]]".
 
        n      Output  the  normal equation for each facet.  Qhull
-	      prints the dimension  (plus  one),  the  number  of
-	      facets,  and  the	 normals  for  each  facet.   The
-	      facet's offset follows its normal	coefficients.
+              prints the dimension  (plus  one),  the  number  of
+              facets,  and  the  normals  for  each  facet.   The
+              facet's offset follows its normal coefficients.
 
-       o      Output the facets	in OFF file format.  Qhull prints
-	      the  dimension, number of	points,	number of facets,
-	      and  number  of  ridges.	 Then	it   prints   the
+       o      Output the facets in OFF file format.  Qhull prints
+              the  dimension, number of points, number of facets,
+              and  number  of  ridges.   Then   it   prints   the
 
 
 
-Geometry Center		     2003/12/30			5
+Geometry Center              2003/12/30                 5
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-	      coordinates  of  the  input points and the vertices
-	      for each facet.  Each facet is on	a separate  line.
-	      The  first  number  is the number	of vertices.  The
-	      remainder	are  the  indices  of  the  corresponding
-	      points.  The vertices are	oriented in 2-d, 3-d, and
-	      in simplicial facets.
+              coordinates  of  the  input points and the vertices
+              for each facet.  Each facet is on a separate  line.
+              The  first  number  is the number of vertices.  The
+              remainder are  the  indices  of  the  corresponding
+              points.  The vertices are oriented in 2-d, 3-d, and
+              in simplicial facets.
 
-	      For 2-d Voronoi diagrams,	the vertices  are  sorted
-	      by adjacency, but	not oriented.  In 3-d and higher,
-	      the Voronoi vertices are sorted by index.	 See  the
-	      'v' option for more information.
+              For 2-d Voronoi diagrams, the vertices  are  sorted
+              by adjacency, but not oriented.  In 3-d and higher,
+              the Voronoi vertices are sorted by index.  See  the
+              'v' option for more information.
 
-       p      Output the coordinates of	each vertex point.  Qhull
-	      prints the dimension, the	number of points, and the
-	      coordinates  for	each  vertex.	With the 'Gc' and
-	      'Gi' options, it also prints coplanar and	 interior
-	      points.	For Voronoi diagrams, it prints	the coor-
-	      dinates of each Voronoi vertex.
+       p      Output the coordinates of each vertex point.  Qhull
+              prints the dimension, the number of points, and the
+              coordinates  for  each  vertex.   With the 'Gc' and
+              'Gi' options, it also prints coplanar and  interior
+              points.   For Voronoi diagrams, it prints the coor-
+              dinates of each Voronoi vertex.
 
        s      Print a summary to stderr.  If  no  output  options
-	      are  specified  at  all,	a summary goes to stdout.
-	      The summary lists	the number of input  points,  the
-	      dimension,  the  number  of  vertices in the convex
-	      hull, the	number of facets in the	convex hull,  the
-	      number of	good facets (if	'Pg'), and statistics.
+              are  specified  at  all,  a summary goes to stdout.
+              The summary lists the number of input  points,  the
+              dimension,  the  number  of  vertices in the convex
+              hull, the number of facets in the convex hull,  the
+              number of good facets (if 'Pg'), and statistics.
 
-	      The  last	 two  statistics  (if needed) measure the
-	      maximum distance from a point or vertex to a facet.
-	      The number in parenthesis	(e.g., 2.1x) is	the ratio
-	      between the maximum  distance  and  the  worst-case
-	      distance due to merging two simplicial facets.
+              The  last  two  statistics  (if needed) measure the
+              maximum distance from a point or vertex to a facet.
+              The number in parenthesis (e.g., 2.1x) is the ratio
+              between the maximum  distance  and  the  worst-case
+              distance due to merging two simplicial facets.
 
 
        Precision options
 
-       An     Maximum  angle  given  as	 a  cosine.  If	the angle
-	      between a	pair of	facet normals is greater than n, Qhull
-	      merges  one  of the facets into a	neighbor.  If 'n'
-	      is negative, Qhull tests angles after  adding  each
-	      point  to	 the hull (pre-merging).  If 'n' is posi-
-	      tive, Qhull tests	 angles	 after	constructing  the
-	      hull  (post-merging).   Both  pre- and post-merging
-	      can be defined.
+       An     Maximum  angle  given  as  a  cosine.  If the angle
+              between a pair of facet normals is greater than n, Qhull
+              merges  one  of the facets into a neighbor.  If 'n'
+              is negative, Qhull tests angles after  adding  each
+              point  to  the hull (pre-merging).  If 'n' is posi-
+              tive, Qhull tests  angles  after  constructing  the
+              hull  (post-merging).   Both  pre- and post-merging
+              can be defined.
 
-	      Option 'C0' or 'C-0' is set  if  the  corresponding
-	      'Cn' or 'C-n' is not set.	 If 'Qx' is set, then 'A-
-	      n' and 'C-n' are checked after  the  hull	 is  con-
-	      structed and before 'An' and 'Cn'	are checked.
+              Option 'C0' or 'C-0' is set  if  the  corresponding
+              'Cn' or 'C-n' is not set.  If 'Qx' is set, then 'A-
+              n' and 'C-n' are checked after  the  hull  is  con-
+              structed and before 'An' and 'Cn' are checked.
 
-       Cn     Centrum  radius.	If a centrum is	less than n below
-	      a	 neighboring  facet,  Qhull  merges  one  of  the
-	      facets.	If  'n'	 is negative or	'-0', Qhull tests
-	      and merges facets	after adding each  point  to  the
-	      hull.   This  is	called	"pre-merging".	If 'n' is
+       Cn     Centrum  radius.  If a centrum is less than n below
+              a  neighboring  facet,  Qhull  merges  one  of  the
+              facets.   If  'n'  is negative or '-0', Qhull tests
+              and merges facets after adding each  point  to  the
+              hull.   This  is  called  "pre-merging".  If 'n' is
 
 
 
-Geometry Center		     2003/12/30			6
+Geometry Center              2003/12/30                 6
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-	      positive,	Qhull  tests  for  convexity  after  con-
-	      structing	the hull ("post-merging").  Both pre- and
-	      post-merging can be defined.
+              positive, Qhull  tests  for  convexity  after  con-
+              structing the hull ("post-merging").  Both pre- and
+              post-merging can be defined.
 
-	      For 5-d and higher, 'Qx' should be used instead  of
-	      'C-n'.  Otherwise, most or all facets may	be merged
-	      together.
+              For 5-d and higher, 'Qx' should be used instead  of
+              'C-n'.  Otherwise, most or all facets may be merged
+              together.
 
        En     Maximum roundoff error for distance computations.
 
-       Rn     Randomly perturb distance	computations up	to +/-	n
-	      *	 max_coord.  This option perturbs every	distance,
-	      hyperplane, and angle computation.  To use time  as
-	      the random number	seed, use option 'QR-1'.
+       Rn     Randomly perturb distance computations up to +/-  n
+              *  max_coord.  This option perturbs every distance,
+              hyperplane, and angle computation.  To use time  as
+              the random number seed, use option 'QR-1'.
 
-       Vn     Minimum  distance	 for  a	 facet	to be visible.	A
-	      facet is visible if the distance from the	point  to
-	      the facet	is greater than	'Vn'.
+       Vn     Minimum  distance  for  a  facet  to be visible.  A
+              facet is visible if the distance from the point  to
+              the facet is greater than 'Vn'.
 
-	      Without  merging,	the default value for 'Vn' is the
-	      round-off	error ('En').  With merging, the  default
-	      value  is	 the  pre-merge	centrum	('C-n')	in 2-d or
-	      3--d, or three times that	in other dimensions.   If
-	      the outside width	is specified ('Wn'), the maximum,
-	      default value for	'Vn' is	'Wn'.
+              Without  merging, the default value for 'Vn' is the
+              round-off error ('En').  With merging, the  default
+              value  is  the  pre-merge centrum ('C-n') in 2-d or
+              3--d, or three times that in other dimensions.   If
+              the outside width is specified ('Wn'), the maximum,
+              default value for 'Vn' is 'Wn'.
 
        Un     Maximum distance below a facet for a  point  to  be
-	      coplanar	to the facet.  The default value is 'Vn'.
+              coplanar  to the facet.  The default value is 'Vn'.
 
-       Wn     Minimum outside width  of	 the  hull.   Points  are
-	      added  to	 the convex hull only if they are clearly
-	      outside of a facet.  A point is outside of a  facet
-	      if  its distance to the facet is greater than 'Wn'.
-	      The normal value for 'Wn'	is  'En'.   If	the  user
-	      specifies	 pre-merging  and does not set 'Wn', than
-	      'Wn'  is	set  to	 the  premerge	'Cn'  and  maxco-
-	      ord*(1-An).
+       Wn     Minimum outside width  of  the  hull.   Points  are
+              added  to  the convex hull only if they are clearly
+              outside of a facet.  A point is outside of a  facet
+              if  its distance to the facet is greater than 'Wn'.
+              The normal value for 'Wn' is  'En'.   If  the  user
+              specifies  pre-merging  and does not set 'Wn', than
+              'Wn'  is  set  to  the  premerge  'Cn'  and  maxco-
+              ord*(1-An).
 
 
        Additional input/output formats
 
        Fa     Print area for each facet.  For Delaunay triangula-
-	      tions, the area is the area of the  triangle.   For
-	      Voronoi  diagrams, the area is the area of the dual
-	      facet.   Use  'PAn'  for	printing  the  n  largest
-	      facets, and option 'PFn' for printing facets larger
-	      than 'n'.
+              tions, the area is the area of the  triangle.   For
+              Voronoi  diagrams, the area is the area of the dual
+              facet.   Use  'PAn'  for  printing  the  n  largest
+              facets, and option 'PFn' for printing facets larger
+              than 'n'.
 
-	      The area for non-simplicial facets is  the  sum  of
-	      the areas	for each ridge to the centrum.	 Vertices
-	      far below	the facet's hyperplane are ignored.   The
-	      reported	area  may  be significantly less than the
-	      actual area.
+              The area for non-simplicial facets is  the  sum  of
+              the areas for each ridge to the centrum.   Vertices
+              far below the facet's hyperplane are ignored.   The
+              reported  area  may  be significantly less than the
+              actual area.
 
 
 
 
-Geometry Center		     2003/12/30			7
+Geometry Center              2003/12/30                 7
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-       FA     Compute the total	area and volume	for  option  's'.
-	      It  is  an  approximation	for non-simplicial facets
-	      (see 'Fa').
+       FA     Compute the total area and volume for  option  's'.
+              It  is  an  approximation for non-simplicial facets
+              (see 'Fa').
 
-       Fc     Print coplanar points for	each facet.   The  output
-	      starts  with the number of facets.  Then each facet
-	      is printed one per line.	Each line is  the  number
-	      of  coplanar  points  followed  by  the  point ids.
-	      Option 'Qi' includes  the	 interior  points.   Each
-	      coplanar	point (interior	point) is assigned to the
-	      facet it is furthest above (resp., least below).
+       Fc     Print coplanar points for each facet.   The  output
+              starts  with the number of facets.  Then each facet
+              is printed one per line.  Each line is  the  number
+              of  coplanar  points  followed  by  the  point ids.
+              Option 'Qi' includes  the  interior  points.   Each
+              coplanar  point (interior point) is assigned to the
+              facet it is furthest above (resp., least below).
 
        FC     Print centrums for each facet.  The  output  starts
-	      with  the	 dimension  followed  by  the  number  of
-	      facets.  Then each facet centrum	is  printed,  one
-	      per line.
+              with  the  dimension  followed  by  the  number  of
+              facets.  Then each facet centrum  is  printed,  one
+              per line.
 
        Fd     Read  input  in cdd format with homogeneous points.
-	      The input	starts with comments.  The first  comment
-	      is  reported  in	the summary.  Data starts after	a
-	      "begin" line.  The  next	line  is  the  number  of
-	      points  followed	by  the	dimension+1 and	"real" or
-	      "integer".  Then the  points  are	 listed	  with	a
-	      leading  "1" or "1.0".  The data ends with an "end"
-	      line.
-
-	      For halfspaces ('Fd Hn,n,...'), the input	format is
-	      the  same.   Each	halfspace starts with its offset.
-	      The sign of the offset is	the opposite  of  Qhull's
-	      convention.
+              The input starts with comments.  The first  comment
+              is  reported  in  the summary.  Data starts after a
+              "begin" line.  The  next  line  is  the  number  of
+              points  followed  by  the dimension+1 and "real" or
+              "integer".  Then the  points  are  listed   with  a
+              leading  "1" or "1.0".  The data ends with an "end"
+              line.
+
+              For halfspaces ('Fd Hn,n,...'), the input format is
+              the  same.   Each halfspace starts with its offset.
+              The sign of the offset is the opposite  of  Qhull's
+              convention.
 
        FD     Print  normals ('n', 'Fo', 'Fi') or points ('p') in
-	      cdd format.  The first line  is  the  command  line
-	      that  invoked  Qhull.   Data  starts with	a "begin"
-	      line.  The next line is the number  of  normals  or
-	      points  followed	by  the	 dimension+1  and "real".
-	      Then the normals or points  are  listed	with  the
-	      offset  before  the  coefficients.   The offset for
-	      points is	1.0.  The  offset  for	normals	 has  the
-	      opposite sign.  The data ends with an "end" line.
+              cdd format.  The first line  is  the  command  line
+              that  invoked  Qhull.   Data  starts with a "begin"
+              line.  The next line is the number  of  normals  or
+              points  followed  by  the  dimension+1  and "real".
+              Then the normals or points  are  listed   with  the
+              offset  before  the  coefficients.   The offset for
+              points is 1.0.  The  offset  for  normals  has  the
+              opposite sign.  The data ends with an "end" line.
 
        FF     Print  facets  (as  in  'f')  without  printing the
-	      ridges.
+              ridges.
 
        Fi     Print inner planes for each facet.  The inner plane
-	      is below all vertices.
+              is below all vertices.
 
-       Fi     Print  separating	 hyperplanes  for  bounded, inner
-	      regions of the Voronoi diagram.  The first line  is
-	      the  number  of  ridges.	 Then  each hyperplane is
-	      printed, one per line.  A	line starts with the num-
-	      ber  of  indices	and floats.  The first pair lists
-	      adjacent input sites, the	next  d	 floats	 are  the
-	      normalized coefficients for the hyperplane, and the
+       Fi     Print  separating  hyperplanes  for  bounded, inner
+              regions of the Voronoi diagram.  The first line  is
+              the  number  of  ridges.   Then  each hyperplane is
+              printed, one per line.  A line starts with the num-
+              ber  of  indices  and floats.  The first pair lists
+              adjacent input sites, the next  d  floats  are  the
+              normalized coefficients for the hyperplane, and the
 
 
 
-Geometry Center		     2003/12/30			8
+Geometry Center              2003/12/30                 8
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-	      last float is the	offset.	 The hyperplane	 is  ori-
-	      ented  toward  verify that the hyperplanes are per-
-	      pendicular  bisectors.   Use  'Fo'  for	unbounded
-	      regions,	and  'Fv'  for	the corresponding Voronoi
-	      vertices.
+              last float is the offset.  The hyperplane  is  ori-
+              ented  toward  verify that the hyperplanes are per-
+              pendicular  bisectors.   Use  'Fo'  for   unbounded
+              regions,  and  'Fv'  for  the corresponding Voronoi
+              vertices.
 
        FI     Print facet identifiers.
 
        Fm     Print number of merges for each facet.  At most 511
-	      merges  are  reported  for  a facet.  See	'PMn' for
-	      printing the facets with the most	merges.
+              merges  are  reported  for  a facet.  See 'PMn' for
+              printing the facets with the most merges.
 
-       FM     Output  the  hull	 in  Maple format.  See 'm'
+       FM     Output  the  hull  in  Maple format.  See 'm'
 
        Fn     Print neighbors for each facet.  The output  starts
-	      with  the	 number	 of  facets.   Then each facet is
-	      printed one per line.  Each line is the  number  of
-	      neighbors	 followed  by an index for each	neighbor.
-	      The indices match	the other facet	output formats.
+              with  the  number  of  facets.   Then each facet is
+              printed one per line.  Each line is the  number  of
+              neighbors  followed  by an index for each neighbor.
+              The indices match the other facet output formats.
 
-	      A	negative index indicates an unprinted  facet  due
-	      to  printing  only  good	facets ('Pg').	It is the
-	      negation of the  facet's	id  (option  'FI').   For
-	      example,	negative  indices are used for facets "at
-	      infinity"	in the Delaunay	triangulation.
+              A negative index indicates an unprinted  facet  due
+              to  printing  only  good  facets ('Pg').  It is the
+              negation of the  facet's  id  (option  'FI').   For
+              example,  negative  indices are used for facets "at
+              infinity" in the Delaunay triangulation.
 
-       FN     Print vertex neighbors or	coplanar facet	for  each
-	      point.   The  first  line	 is the	number of points.
-	      Then each	point is printed, one per line.	  If  the
-	      point  is	coplanar, the line is "1" followed by the
-	      facet's id.  If the point	is not a selected vertex,
-	      the  line	is "0".	 Otherwise, each line is the num-
-	      ber of  neighbors	 followed  by  the  corresponding
-	      facet indices (see 'Fn').
+       FN     Print vertex neighbors or coplanar facet  for  each
+              point.   The  first  line  is the number of points.
+              Then each point is printed, one per line.   If  the
+              point  is coplanar, the line is "1" followed by the
+              facet's id.  If the point is not a selected vertex,
+              the  line is "0".  Otherwise, each line is the num-
+              ber of  neighbors  followed  by  the  corresponding
+              facet indices (see 'Fn').
 
-       Fo     Print  outer planes for each facet in the	same for-
-	      mat as 'n'.  The outer plane is above all	points.
+       Fo     Print  outer planes for each facet in the same for-
+              mat as 'n'.  The outer plane is above all points.
 
-       Fo     Print separating hyperplanes for	unbounded,  outer
-	      regions  of the Voronoi diagram.	The first line is
-	      the number of  ridges.   Then  each  hyperplane  is
-	      printed, one per line.  A	line starts with the num-
-	      ber of indices and floats.  The  first  pair  lists
-	      adjacent	input  sites,  the  next d floats are the
-	      normalized coefficients for the hyperplane, and the
-	      last  float  is the offset.  The hyperplane is ori-
-	      ented toward verify that the hyperplanes	are  per-
-	      pendicular   bisectors.	 Use   'Fi'  for  bounded
-	      regions, and 'Fv'	 for  the  corresponding  Voronoi
-	      vertices.
+       Fo     Print separating hyperplanes for  unbounded,  outer
+              regions  of the Voronoi diagram.  The first line is
+              the number of  ridges.   Then  each  hyperplane  is
+              printed, one per line.  A line starts with the num-
+              ber of indices and floats.  The  first  pair  lists
+              adjacent  input  sites,  the  next d floats are the
+              normalized coefficients for the hyperplane, and the
+              last  float  is the offset.  The hyperplane is ori-
+              ented toward verify that the hyperplanes  are  per-
+              pendicular   bisectors.    Use   'Fi'  for  bounded
+              regions, and 'Fv'  for  the  corresponding  Voronoi
+              vertices.
 
-       FO     List  all	 options to stderr, including the default
-	      values.  Additional 'FO's	are printed to stdout.
+       FO     List  all  options to stderr, including the default
+              values.  Additional 'FO's are printed to stdout.
 
-       Fp     Print points for	halfspace  intersections  (option
-	      'Hn,n,...').   Each  intersection	 corresponds to	a
+       Fp     Print points for  halfspace  intersections  (option
+              'Hn,n,...').   Each  intersection  corresponds to a
 
 
 
-Geometry Center		     2003/12/30			9
+Geometry Center              2003/12/30                 9
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-	      facet of the dual	polytope.  The	"infinity"  point
-	      [-10.101,-10.101,...]    indicates   an	unbounded
-	      intersection.
+              facet of the dual polytope.  The  "infinity"  point
+              [-10.101,-10.101,...]    indicates   an   unbounded
+              intersection.
 
-       FP     For each coplanar	point ('Qc') print the	point  id
-	      of  the nearest vertex, the point	id, the	facet id,
-	      and the distance.
+       FP     For each coplanar point ('Qc') print the  point  id
+              of  the nearest vertex, the point id, the facet id,
+              and the distance.
 
        FQ     Print command used for qhull and input.
 
-       Fs     Print a summary.	The first line	consists  of  the
-	      number  of  integers  ("7"), followed by the dimen-
-	      sion, the	number of points, the number of	vertices,
-	      the  number  of  facets,	the  number  of	 vertices
-	      selected for output, the number of facets	 selected
-	      for  output, the number of coplanar points selected
-	      for output.
+       Fs     Print a summary.  The first line  consists  of  the
+              number  of  integers  ("7"), followed by the dimen-
+              sion, the number of points, the number of vertices,
+              the  number  of  facets,  the  number  of  vertices
+              selected for output, the number of facets  selected
+              for  output, the number of coplanar points selected
+              for output.
 
-	      The second line consists of  the	number	of  reals
-	      ("2"),  followed by the maxmimum offset to an outer
-	      plane and	and minimum offset  to	an  inner  plane.
-	      Roundoff	is included.  Later versions of	Qhull may
-	      produce additional integers or reals.
+              The second line consists of  the  number  of  reals
+              ("2"),  followed by the maxmimum offset to an outer
+              plane and and minimum offset  to  an  inner  plane.
+              Roundoff  is included.  Later versions of Qhull may
+              produce additional integers or reals.
 
-       FS     Print the	size of	the hull.  The	first  line  con-
-	      sists  of	the number of integers ("0").  The second
-	      line consists of the number of  reals  ("2"),  fol-
-	      lowed  by	 the total facet area, and the total vol-
-	      ume.  Later versions of  Qhull  may  produce  addi-
-	      tional integers or reals.
+       FS     Print the size of the hull.  The  first  line  con-
+              sists  of the number of integers ("0").  The second
+              line consists of the number of  reals  ("2"),  fol-
+              lowed  by  the total facet area, and the total vol-
+              ume.  Later versions of  Qhull  may  produce  addi-
+              tional integers or reals.
 
-	      The  total volume	measures the volume of the inter-
-	      section of the halfspaces	defined	 by  each  facet.
-	      Both  area  and  volume are approximations for non-
-	      simplicial facets.  See option 'Fa'.
+              The  total volume measures the volume of the inter-
+              section of the halfspaces defined  by  each  facet.
+              Both  area  and  volume are approximations for non-
+              simplicial facets.  See option 'Fa'.
 
-       Ft     Print a triangulation with added	points	for  non-
-	      simplicial facets.  The first line is the	dimension
-	      and the second line is the number	of points and the
-	      number of	facets.	 The points follow, one	per line,
-	      then the facets follow as	a list of point	 indices.
-	      With option points include the point-at-infinity.
+       Ft     Print a triangulation with added  points  for  non-
+              simplicial facets.  The first line is the dimension
+              and the second line is the number of points and the
+              number of facets.  The points follow, one per line,
+              then the facets follow as a list of point  indices.
+              With option points include the point-at-infinity.
 
-       Fv     Print  vertices  for each	facet.	The first line is
-	      the number of facets.  Then each facet is	 printed,
-	      one  per line.  Each line	is the number of vertices
-	      followed by the corresponding point ids.	 Vertices
-	      are listed in the	order they were	added to the hull
-	      (the last	one is first).
+       Fv     Print  vertices  for each facet.  The first line is
+              the number of facets.  Then each facet is  printed,
+              one  per line.  Each line is the number of vertices
+              followed by the corresponding point ids.   Vertices
+              are listed in the order they were added to the hull
+              (the last one is first).
 
-       Fv     Print all	ridges of a Voronoi diagram.   The  first
-	      line  is	the number of ridges.  Then each ridge is
-	      printed, one per line.  A	line starts with the num-
-	      ber  of  indices.	  The  first  pair lists adjacent
+       Fv     Print all ridges of a Voronoi diagram.   The  first
+              line  is  the number of ridges.  Then each ridge is
+              printed, one per line.  A line starts with the num-
+              ber  of  indices.   The  first  pair lists adjacent
 
 
 
-Geometry Center		     2003/12/30		       10
+Geometry Center              2003/12/30                10
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-	      input sites, the	remaining  indices  list  Voronoi
-	      vertices.	  Vertex  '0'  indicates  the  vertex-at-
-	      infinity (i.e., an unbounded  ray).   In	3-d,  the
-	      vertices	are  listed  in	order.	See 'Fi' and 'Fo'
-	      for separating hyperplanes.
+              input sites, the  remaining  indices  list  Voronoi
+              vertices.   Vertex  '0'  indicates  the  vertex-at-
+              infinity (i.e., an unbounded  ray).   In  3-d,  the
+              vertices  are  listed  in order.  See 'Fi' and 'Fo'
+              for separating hyperplanes.
 
-       FV     Print average vertex.  The average vertex	is a fea-
-	      sible point for halfspace	intersection.
+       FV     Print average vertex.  The average vertex is a fea-
+              sible point for halfspace intersection.
 
        Fx     List  extreme points (vertices) of the convex hull.
-	      The first	line is	the number of points.  The  other
-	      lines give the indices of	the corresponding points.
-	      The first	point is '0'.  In 2-d, the  points  occur
-	      in counter-clockwise order; otherwise they occur in
-	      input order.   For  Delaunay  triangulations,  'Fx'
-	      lists  the  extreme points of the	input sites.  The
-	      points are unordered.
+              The first line is the number of points.  The  other
+              lines give the indices of the corresponding points.
+              The first point is '0'.  In 2-d, the  points  occur
+              in counter-clockwise order; otherwise they occur in
+              input order.   For  Delaunay  triangulations,  'Fx'
+              lists  the  extreme points of the input sites.  The
+              points are unordered.
 
 
-       Geomview	options
+       Geomview options
 
-       G      Produce a	file for viewing with Geomview.	  Without
-	      other  options,  Qhull displays edges in 2-d, outer
-	      planes in	3-d, and ridges	in 4-d.	 A ridge  can  be
-	      explicit or implicit.  An	explicit ridge is a dim-1
-	      dimensional simplex between two  facets.	 In  4-d,
-	      the explicit ridges are triangles.  When displaying
-	      a	ridge in 4-d, Qhull projects the ridge's vertices
-	      to  one  of  its	facets'	hyperplanes.  Use 'Gh' to
-	      project ridges to	the intersection of  both  hyper-
-	      planes.
+       G      Produce a file for viewing with Geomview.   Without
+              other  options,  Qhull displays edges in 2-d, outer
+              planes in 3-d, and ridges in 4-d.  A ridge  can  be
+              explicit or implicit.  An explicit ridge is a dim-1
+              dimensional simplex between two  facets.   In  4-d,
+              the explicit ridges are triangles.  When displaying
+              a ridge in 4-d, Qhull projects the ridge's vertices
+              to  one  of  its  facets' hyperplanes.  Use 'Gh' to
+              project ridges to the intersection of  both  hyper-
+              planes.
 
-       Ga     Display all input	points as dots.
+       Ga     Display all input points as dots.
 
-       Gc     Display  the  centrum  for  each facet in	3-d.  The
-	      centrum is defined by a green radius sitting  on	a
-	      blue  plane.   The plane corresponds to the facet's
-	      hyperplane.  The radius  is  defined  by	'C-n'  or
-	      'Cn'.
+       Gc     Display  the  centrum  for  each facet in 3-d.  The
+              centrum is defined by a green radius sitting  on  a
+              blue  plane.   The plane corresponds to the facet's
+              hyperplane.  The radius  is  defined  by  'C-n'  or
+              'Cn'.
 
-       GDn    Drop  dimension  n  in 3-d or 4-d.  The result is	a
-	      2-d or 3-d object.
+       GDn    Drop  dimension  n  in 3-d or 4-d.  The result is a
+              2-d or 3-d object.
 
-       Gh     Display hyperplane intersections in  3-d	and  4-d.
-	      In  3-d, the intersection	is a black line.  It lies
-	      on two  neighboring  hyperplanes	(c.f.,	the  blue
-	      squares  associated with centrums	('Gc')).  In 4-d,
-	      the ridges are projected	to  the	 intersection  of
-	      both hyperplanes.
+       Gh     Display hyperplane intersections in  3-d  and  4-d.
+              In  3-d, the intersection is a black line.  It lies
+              on two  neighboring  hyperplanes  (c.f.,  the  blue
+              squares  associated with centrums ('Gc')).  In 4-d,
+              the ridges are projected  to  the  intersection  of
+              both hyperplanes.
 
-       Gi     Display  inner  planes  in  2-d and 3-d.	The inner
-	      plane of a facet is below	all of its vertices.   It
-	      is  parallel  to the facet's hyperplane.	The inner
-	      plane's color is the opposite (1-r,1-g,1-b) of  the
+       Gi     Display  inner  planes  in  2-d and 3-d.  The inner
+              plane of a facet is below all of its vertices.   It
+              is  parallel  to the facet's hyperplane.  The inner
+              plane's color is the opposite (1-r,1-g,1-b) of  the
 
 
 
-Geometry Center		     2003/12/30		       11
+Geometry Center              2003/12/30                11
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-	      outer  plane.  Its edges are determined by the ver-
-	      tices.
+              outer  plane.  Its edges are determined by the ver-
+              tices.
 
-       Gn     Do not display inner or outer planes.  By	 default,
-	      Geomview displays	the precise plane (no merging) or
-	      both inner  and  output  planes  (merging).   Under
-	      merging,	Geomview does not display the inner plane
-	      if the the difference between inner  and	outer  is
-	      too small.
+       Gn     Do not display inner or outer planes.  By  default,
+              Geomview displays the precise plane (no merging) or
+              both inner  and  output  planes  (merging).   Under
+              merging,  Geomview does not display the inner plane
+              if the the difference between inner  and  outer  is
+              too small.
 
-       Go     Display  outer  planes  in  2-d and 3-d.	The outer
-	      plane of a facet is above	all input points.  It  is
-	      parallel	to  the	facet's	hyperplane.  Its color is
-	      determined by the	facet's	normal,	and its	edges are
-	      determined by the	vertices.
+       Go     Display  outer  planes  in  2-d and 3-d.  The outer
+              plane of a facet is above all input points.  It  is
+              parallel  to  the facet's hyperplane.  Its color is
+              determined by the facet's normal, and its edges are
+              determined by the vertices.
 
-       Gp     Display  coplanar	 points	and vertices as	radii.	A
-	      radius defines a	ball  which  corresponds  to  the
-	      imprecision  of  the point.  The imprecision is the
-	      maximum of the roundoff error, the centrum  radius,
-	      and  maxcoord  * (1-An).	It is at least 1/20'th of
-	      the maximum coordinate, and ignores post-merging if
-	      pre-merging is done.
+       Gp     Display  coplanar  points and vertices as radii.  A
+              radius defines a  ball  which  corresponds  to  the
+              imprecision  of  the point.  The imprecision is the
+              maximum of the roundoff error, the centrum  radius,
+              and  maxcoord  * (1-An).  It is at least 1/20'th of
+              the maximum coordinate, and ignores post-merging if
+              pre-merging is done.
 
-       Gr     Display  ridges  in  3-d.	 A ridge connects the two
-	      vertices that are	 shared	 by  neighboring  facets.
-	      Ridges are always	displayed in 4-d.
+       Gr     Display  ridges  in  3-d.  A ridge connects the two
+              vertices that are  shared  by  neighboring  facets.
+              Ridges are always displayed in 4-d.
 
-       Gt     A	 3-d  Delaunay	triangulation looks like a convex
-	      hull with	interior facets.  Option 'Gt' removes the
-	      outside  ridges to reveal	the outermost facets.  It
-	      automatically sets options 'Gr' and 'GDn'.
+       Gt     A  3-d  Delaunay  triangulation looks like a convex
+              hull with interior facets.  Option 'Gt' removes the
+              outside  ridges to reveal the outermost facets.  It
+              automatically sets options 'Gr' and 'GDn'.
 
        Gv     Display vertices as spheres.   The  radius  of  the
-	      sphere  corresponds to the imprecision of	the data.
-	      See 'Gp' for determining the radius.
+              sphere  corresponds to the imprecision of the data.
+              See 'Gp' for determining the radius.
 
 
        Print options
 
-       PAn    Only the n  largest  facets  are	marked	good  for
-	      printing.	  Unless  'PG'	is set,	'Pg' is	automati-
-	      cally set.
+       PAn    Only the n  largest  facets  are  marked  good  for
+              printing.   Unless  'PG'  is set, 'Pg' is automati-
+              cally set.
 
-       Pdk:n  Drop facet from output  if  normal[k]  <=	 n.   The
-	      option 'Pdk' uses	the default value of 0 for n.
+       Pdk:n  Drop facet from output  if  normal[k]  <=  n.   The
+              option 'Pdk' uses the default value of 0 for n.
 
-       PDk:n  Drop  facet  from	 output	 if  normal[k] >= n.  The
-	      option 'PDk' uses	the default value of 0 for n.
+       PDk:n  Drop  facet  from  output  if  normal[k] >= n.  The
+              option 'PDk' uses the default value of 0 for n.
 
        PFn    Only facets with area at least 'n' are marked  good
-	      for printing.  Unless 'PG' is set, 'Pg' is automat-
-	      ically set.
+              for printing.  Unless 'PG' is set, 'Pg' is automat-
+              ically set.
 
 
 
 
-Geometry Center		     2003/12/30		       12
+Geometry Center              2003/12/30                12
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-       Pg     Print only good facets.  A  good	facet  is  either
-	      visible from a point (the	'QGn' option) or includes
-	      a	point (the 'QVn'  option).   It	 also  meets  the
-	      requirements  of	'Pdk'  and 'PDk' options.  Option
-	      'Pg' is automatically set	 for  options  'PAn'  and
-	      'PFn'.
+       Pg     Print only good facets.  A  good  facet  is  either
+              visible from a point (the 'QGn' option) or includes
+              a point (the 'QVn'  option).   It  also  meets  the
+              requirements  of  'Pdk'  and 'PDk' options.  Option
+              'Pg' is automatically set  for  options  'PAn'  and
+              'PFn'.
 
        PG     Print neighbors of good facets.
 
-       PMn    Only  the	 n facets with the most	merges are marked
-	      good for printing.  Unless 'PG'  is  set,	 'Pg'  is
-	      automatically set.
+       PMn    Only  the  n facets with the most merges are marked
+              good for printing.  Unless 'PG'  is  set,  'Pg'  is
+              automatically set.
 
-       Po     Force output despite precision problems.	Verify  ('Tv')  does	not check
-	      coplanar points.	Flipped	facets are  reported  and
-	      concave  facets  are  counted.   If  'Po'	 is used,
-	      points are not partitioned into flipped facets  and
-	      a	 flipped  facet	 is  always  visible  to a point.
-	      Also, if an error	occurs before the  completion  of
-	      Qhull  and  tracing  is  not active, 'Po'	outputs	a
-	      neighborhood of the erroneous facets (if any).
+       Po     Force output despite precision problems.  Verify  ('Tv')  does    not check
+              coplanar points.  Flipped facets are  reported  and
+              concave  facets  are  counted.   If  'Po'  is used,
+              points are not partitioned into flipped facets  and
+              a  flipped  facet  is  always  visible  to a point.
+              Also, if an error occurs before the  completion  of
+              Qhull  and  tracing  is  not active, 'Po' outputs a
+              neighborhood of the erroneous facets (if any).
 
        Pp     Do not report precision problems.
 
@@ -823,371 +823,365 @@ qhull(1)						 qhull(1)
        Qhull control options
 
        Qbk:0Bk:0
-	      Drop dimension  k	 from  the  input  points.   This
-	      allows  the user to take convex hulls of sub-dimen-
-	      sional objects.  It happens before the Delaunay and
-	      Voronoi transformation.
+              Drop dimension  k  from  the  input  points.   This
+              allows  the user to take convex hulls of sub-dimen-
+              sional objects.  It happens before the Delaunay and
+              Voronoi transformation.
 
-       QbB    Scale the	input points to	fit the	unit cube.  After
-	      scaling, the lower bound will be -0.5 and	the upper
-	      bound  +0.5  in  all  dimensions.	 For Delaunay and
-	      Voronoi diagrams,	scaling	happens	after  projection
-	      to the paraboloid.  Under	precise	arithmetic, scal-
-	      ing does not change  the	topology  of  the  convex
-	      hull.
+       QbB    Scale the input points to fit the unit cube.  After
+              scaling, the lower bound will be -0.5 and the upper
+              bound  +0.5  in  all  dimensions.  For Delaunay and
+              Voronoi diagrams, scaling happens after  projection
+              to the paraboloid.  Under precise arithmetic, scal-
+              ing does not change  the  topology  of  the  convex
+              hull.
 
-       Qbb    Scale  the last coordinate to [0,	m] where m is the
-	      maximum absolute value of	 the  other  coordinates.
-	      For  Delaunay and	Voronoi	diagrams, scaling happens
-	      after projection to  the	paraboloid.   It  reduces
-	      roundoff error for inputs	with integer coordinates.
-	      Under precise arithmetic,	scaling	does  not  change
-	      the topology of the convex hull.
+       Qbb    Scale  the last coordinate to [0, m] where m is the
+              maximum absolute value of  the  other  coordinates.
+              For  Delaunay and Voronoi diagrams, scaling happens
+              after projection to  the  paraboloid.   It  reduces
+              roundoff error for inputs with integer coordinates.
+              Under precise arithmetic, scaling does  not  change
+              the topology of the convex hull.
 
-       Qbk:n  Scale  the  k'th	coordinate  of	the input points.
-	      After scaling, the lower bound of	the input  points
-	      will be n.  'Qbk'	scales to -0.5.
+       Qbk:n  Scale  the  k'th  coordinate  of  the input points.
+              After scaling, the lower bound of the input  points
+              will be n.  'Qbk' scales to -0.5.
 
 
 
-Geometry Center		     2003/12/30		       13
+Geometry Center              2003/12/30                13
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-       QBk:n  Scale  the  k'th	coordinate  of	the input points.
-	      After scaling, the upper bound will  be  n.   'QBk'
-	      scales to	+0.5.
+       QBk:n  Scale  the  k'th  coordinate  of  the input points.
+              After scaling, the upper bound will  be  n.   'QBk'
+              scales to +0.5.
 
        Qc     Keep  coplanar points with the nearest facet.  Out-
-	      put formats 'p', 'f', 'Gp', 'Fc',	 'FN',	and  'FP'
-	      will print the points.
+              put formats 'p', 'f', 'Gp', 'Fc',  'FN',  and  'FP'
+              will print the points.
 
-       Qf     Partition	points to the furthest outside facet.
+       Qf     Partition points to the furthest outside facet.
 
-       Qg     Only  build  good	 facets.   With	 the 'Qg' option,
-	      Qhull will only build those facets that it needs to
-	      determine	 the  good  facets  in	the  output.  See
-	      'QGn', 'QVn', and	'PdD' for defining  good  facets,
-	      and  'Pg'	 and  'PG'  for	 printing good facets and
-	      their neighbors.
+       Qg     Only  build  good  facets.   With  the 'Qg' option,
+              Qhull will only build those facets that it needs to
+              determine  the  good  facets  in  the  output.  See
+              'QGn', 'QVn', and 'PdD' for defining  good  facets,
+              and  'Pg'  and  'PG'  for  printing good facets and
+              their neighbors.
 
-       QGn    A	facet is good (see 'Qg'	and 'Pg') if it	is  visi-
-	      ble  from	point n.  If n < 0, a facet is good if it
-	      is not visible from point	n.  Point n is not  added
-	      to  the  hull  (unless 'TCn' or 'TPn').  With rbox,
-	      use the 'Pn,m,r' option to define	 your  point;  it
-	      will be point 0 (QG0).
+       QGn    A facet is good (see 'Qg' and 'Pg') if it is  visi-
+              ble  from point n.  If n < 0, a facet is good if it
+              is not visible from point n.  Point n is not  added
+              to  the  hull  (unless 'TCn' or 'TPn').  With rbox,
+              use the 'Pn,m,r' option to define  your  point;  it
+              will be point 0 (QG0).
 
        Qi     Keep  interior points with the nearest facet.  Out-
-	      put formats 'p', 'f', 'Gp', 'FN',	 'FP',	and  'Fc'
-	      will print the points.
+              put formats 'p', 'f', 'Gp', 'FN',  'FP',  and  'Fc'
+              will print the points.
 
        QJn    Joggle  each  input  coordinate  by adding a random
-	      number in	[-n,n].	 If  a	precision  error  occurs,
-	      then  qhull  increases  n	and tries again.  It does
-	      not increase n beyond a certain value, and it stops
-	      after  a	certain	 number	of attempts [see user.h].
-	      Option 'QJ' selects a default  value  for	 n.   The
-	      output will be simplicial.  For Delaunay triangula-
-	      tions, 'QJn' sets	'Qbb' to scale the  last  coordi-
-	      nate (not	if 'Qbk:n' or 'QBk:n' is set).  See also
-	      'Qt'.
+              number in [-n,n].  If  a  precision  error  occurs,
+              then  qhull  increases  n and tries again.  It does
+              not increase n beyond a certain value, and it stops
+              after  a  certain  number of attempts [see user.h].
+              Option 'QJ' selects a default  value  for  n.   The
+              output will be simplicial.  For Delaunay triangula-
+              tions, 'QJn' sets 'Qbb' to scale the  last  coordi-
+              nate (not if 'Qbk:n' or 'QBk:n' is set).  See also
+              'Qt'.
 
        Qm     Only  process  points that would otherwise increase
-	      max_outside.  Other points are treated as	 coplanar
-	      or interior points.
+              max_outside.  Other points are treated as  coplanar
+              or interior points.
 
        Qr     Process  random  outside points instead of furthest
-	      ones.  This makes	Qhull equivalent to  the  random-
-	      ized  incremental	 algorithms.   CPU  time  is  not
-	      reported since the randomization is inefficient.
+              ones.  This makes Qhull equivalent to  the  random-
+              ized  incremental  algorithms.   CPU  time  is  not
+              reported since the randomization is inefficient.
 
-       QRn    Randomly rotate the input	points.	 If n=0, use time
-	      as  the  random  number seed.  If	n>0, use n as the
-	      random number seed.  If n=-1, don't rotate but  use
-	      time  as the random number seed.	For Delaunay tri-
-	      angulations ('d' and 'v'), rotate	 about	the  last
-	      axis.
+       QRn    Randomly rotate the input points.  If n=0, use time
+              as  the  random  number seed.  If n>0, use n as the
+              random number seed.  If n=-1, don't rotate but  use
+              time  as the random number seed.  For Delaunay tri-
+              angulations ('d' and 'v'), rotate  about  the  last
+              axis.
 
 
 
 
-Geometry Center		     2003/12/30		       14
+Geometry Center              2003/12/30                14
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-       Qs     Search all points	for the	initial	simplex.
+       Qs     Search all points for the initial simplex.
 
        Qt     Triangulated output.  Triangulate non-simplicial 
               facets.
 
        Qv     Test  vertex  neighbors  for  convexity after post-
-	      merging.	To use the 'Qv'	option,	you also need  to
-	      set a merge option (e.g.,	'Qx' or	'C-0').
+              merging.  To use the 'Qv' option, you also need  to
+              set a merge option (e.g., 'Qx' or 'C-0').
 
-       QVn    A	 good facet (see 'Qg' and 'Pg')	includes point n.
-	      If n<0, then a good facet	does not include point n.
-	      The point	is either in the initial simplex or it is
-	      the first	point added to the  hull.   Option  'QVn'
-	      may not be used with merging.
+       QVn    A  good facet (see 'Qg' and 'Pg') includes point n.
+              If n<0, then a good facet does not include point n.
+              The point is either in the initial simplex or it is
+              the first point added to the  hull.   Option  'QVn'
+              may not be used with merging.
 
        Qx     Perform  exact merges while building the hull.  The
-	      "exact" merges are merging a point into a	 coplanar
-	      facet  (defined  by 'Vn',	'Un', and 'C-n'), merging
-	      concave facets, merging duplicate	ridges,	and merg-
-	      ing  flipped  facets.   Coplanar	merges	and angle
-	      coplanar merges ('A-n') are not performed.  Concav-
-	      ity testing is delayed until a merge occurs.
+              "exact" merges are merging a point into a  coplanar
+              facet  (defined  by 'Vn', 'Un', and 'C-n'), merging
+              concave facets, merging duplicate ridges, and merg-
+              ing  flipped  facets.   Coplanar  merges  and angle
+              coplanar merges ('A-n') are not performed.  Concav-
+              ity testing is delayed until a merge occurs.
 
-	      After  the  hull	is built, all coplanar merges are
-	      performed	(defined by 'C-n' and 'A-n'), then  post-
-	      merges are performed (defined by 'Cn' and	'An').
+              After  the  hull  is built, all coplanar merges are
+              performed (defined by 'C-n' and 'A-n'), then  post-
+              merges are performed (defined by 'Cn' and 'An').
 
        Qz     Add  a  point  "at  infinity"  that  is  above  the
-	      paraboloid for Delaunay triangulations and  Voronoi
-	      diagrams.	  This	reduces	 precision  problems  and
-	      allows the triangulation of cospherical points.
+              paraboloid for Delaunay triangulations and  Voronoi
+              diagrams.   This  reduces  precision  problems  and
+              allows the triangulation of cospherical points.
 
 
        Qhull experiments and speedups
 
        Q0     Turn off pre-merging as  a  default  option.   With
-	      'Q0'/'Qx'	 and  without explicit pre-merge options,
-	      Qhull ignores precision issues  while  constructing
-	      the  convex  hull.   This	 may  lead  to	precision
-	      errors.  If so, a	descriptive warning is generated.
+              'Q0'/'Qx'  and  without explicit pre-merge options,
+              Qhull ignores precision issues  while  constructing
+              the  convex  hull.   This  may  lead  to  precision
+              errors.  If so, a descriptive warning is generated.
 
-       Q1     With  'Q1',  Qhull  sorts	merges by type (coplanar,
-	      angle coplanar, concave) instead of by angle.
+       Q1     With  'Q1',  Qhull  sorts merges by type (coplanar,
+              angle coplanar, concave) instead of by angle.
 
        Q2     With 'Q2', Qhull merges all facets at once  instead
-	      of  using	 independent  sets  of	merges	and  then
-	      retesting.
+              of  using  independent  sets  of  merges  and  then
+              retesting.
 
        Q3     With 'Q3', Qhull does  not  remove  redundant  ver-
-	      tices.
+              tices.
 
-       Q4     With 'Q4', Qhull avoids merges of	an old facet into
-	      a	new facet.
+       Q4     With 'Q4', Qhull avoids merges of an old facet into
+              a new facet.
 
-       Q5     With 'Q5', Qhull does not	correct	outer  planes  at
-	      the  end.	 The maximum outer plane is used instead.
+       Q5     With 'Q5', Qhull does not correct outer  planes  at
+              the  end.  The maximum outer plane is used instead.
 
 
 
 
-Geometry Center		     2003/12/30		       15
+Geometry Center              2003/12/30                15
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-       Q6     With 'Q6', Qhull	does  not  pre-merge  concave  or
-	      coplanar facets.
+       Q6     With 'Q6', Qhull  does  not  pre-merge  concave  or
+              coplanar facets.
 
        Q7     With  'Q7',  Qhull  processes facets in depth-first
-	      order instead of breadth-first order.
+              order instead of breadth-first order.
 
-       Q8     With 'Q8'	and merging, Qhull does	not retain  near-
-	      interior	points	for adjusting outer planes.  'Qc'
-	      will probably retain all points that  adjust  outer
-	      planes.
+       Q8     With 'Q8' and merging, Qhull does not retain  near-
+              interior  points  for adjusting outer planes.  'Qc'
+              will probably retain all points that  adjust  outer
+              planes.
 
        Q9     With 'Q9', Qhull processes the furthest of all out-
-	      side sets	at each	iteration.
+              side sets at each iteration.
 
        Q10    With 'Q10', Qhull does not use special processing 
-	      for narrow distributions.
+              for narrow distributions.
 
        Q11    With 'Q11', Qhull copies normals and recomputes 
-	      centrums for tricoplanar facets.
+              centrums for tricoplanar facets.
 
        Trace options
 
-       Tn     Trace at level n.	 Qhull	includes  full	execution
-	      tracing.	 'T-1'	traces	events.	  'T1' traces the
-	      overall execution	of the program.	  'T2'	and  'T3'
-	      trace overall execution and geometric and	topologi-
-	      cal  events.   'T4'  traces  the	algorithm.   'T5'
-	      includes	information  about  memory allocation and
-	      Gaussian elimination.
+       Tn     Trace at level n.  Qhull  includes  full  execution
+              tracing.   'T-1'  traces  events.   'T1' traces the
+              overall execution of the program.   'T2'  and  'T3'
+              trace overall execution and geometric and topologi-
+              cal  events.   'T4'  traces  the  algorithm.   'T5'
+              includes  information  about  memory allocation and
+              Gaussian elimination.
 
        Tc     Check frequently during execution.  This will catch
-	      most inconsistency errors.
+              most inconsistency errors.
 
        TCn    Stop  Qhull  after  building the cone of new facets
-	      for point	n.  The	output for 'f' includes	the  cone
-	      and the old hull.	 See also 'TVn'.
+              for point n.  The output for 'f' includes the  cone
+              and the old hull.  See also 'TVn'.
 
-       TFn    Report  progress	whenever  more	than n facets are
-	      created During post-merging, 'TFn' reports progress
-	      after more than n/2 merges.
+       TFn    Report  progress  whenever  more  than n facets are
+              created During post-merging, 'TFn' reports progress
+              after more than n/2 merges.
 
        TI file
-	      Input data from 'file'.  The filename may not include 
-		  spaces or quotes.
+              Input data from 'file'.  The filename may not include 
+                  spaces or quotes.
 
        TO file
-	      Output results to	'file'.	 The name may be enclosed
-	      in single	quotes.
+              Output results to 'file'.  The name may be enclosed
+              in single quotes.
 
        TPn    Turn on tracing when point n is added to the  hull.
           Trace partitions of point n. If used with TWn, turn off
           tracing after adding point n to the hull.
 
        TRn    Rerun  qhull  n  times.  Usually used with 'QJn' to
-	      determine	the probability	that a given joggle  will
-	      fail.
+              determine the probability that a given joggle  will
+              fail.
 
-       Ts     Collect  statistics  and print to	stderr at the end
-	      of execution.
+       Ts     Collect  statistics  and print to stderr at the end
+              of execution.
 
-       Tv     Verify the convex	hull.  This checks the	topologi-
-	      cal  structure,  facet  convexity, and point inclu-
-	      sion.  If	precision problems occurred,  facet  con-
-	      vexity  is  tested whether or not	'Tv' is	selected.
-	      Option 'Tv'  does	 not  check  point  inclusion  if
+       Tv     Verify the convex hull.  This checks the  topologi-
+              cal  structure,  facet  convexity, and point inclu-
+              sion.  If precision problems occurred,  facet  con-
+              vexity  is  tested whether or not 'Tv' is selected.
+              Option 'Tv'  does  not  check  point  inclusion  if
 
 
 
-Geometry Center		     2003/12/30		       16
+Geometry Center              2003/12/30                16
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
-	      forcing output with 'Po',	or if 'Q5' is set.
+              forcing output with 'Po', or if 'Q5' is set.
 
-	      For  point  inclusion  testing, Qhull verifies that
-	      all points are below all outer planes  (facet->max-
-	      outside).	 Point inclusion is exhaustive if merging
-	      or if the	facet-point product is small enough; oth-
-	      erwise  Qhull  verifies  each point with a directed
-	      search (qh_findbest).
+              For  point  inclusion  testing, Qhull verifies that
+              all points are below all outer planes  (facet->max-
+              outside).  Point inclusion is exhaustive if merging
+              or if the facet-point product is small enough; oth-
+              erwise  Qhull  verifies  each point with a directed
+              search (qh_findbest).
 
-	      Point inclusion testing occurs after producing out-
-	      put.   It	 prints	a message to stderr unless option
-	      'Pp' is used.  This allows the  user  to	interrupt
-	      Qhull without changing the output.
+              Point inclusion testing occurs after producing out-
+              put.   It  prints a message to stderr unless option
+              'Pp' is used.  This allows the  user  to  interrupt
+              Qhull without changing the output.
 
-       TVn    Stop  Qhull  after  adding point n.  If n	< 0, stop
-	      Qhull before adding point	n.  Output shows the hull
-	      at this time.  See also 'TCn'
+       TVn    Stop  Qhull  after  adding point n.  If n < 0, stop
+              Qhull before adding point n.  Output shows the hull
+              at this time.  See also 'TCn'
 
        TMn    Turn on tracing at n'th merge.
 
-       TWn    Trace  merge  facets when	the width is greater than
-	      n.
+       TWn    Trace  merge  facets when the width is greater than
+              n.
 
        Tz     Redirect stderr to stdout.
 
 
 BUGS
-       Please	 report	   bugs	    to	   Brad	    Barber     at
+       Please    report    bugs     to     Brad     Barber     at
        qhull_bug@qhull.org.
 
-       If Qhull	does not compile, it is	due to an incompatibility
-       between your system and ours.  The first	thing to check is
-       that  your compiler is ANSI standard.  If it is,	check the
-       man page	for the	best options, or  find	someone	 to  help
-       you.  If	you locate the cause of	your problem, please send
+       If Qhull does not compile, it is due to an incompatibility
+       between your system and ours.  The first thing to check is
+       that  your compiler is ANSI standard.  If it is, check the
+       man page for the best options, or  find  someone  to  help
+       you.  If you locate the cause of your problem, please send
        email since it might help others.
 
-       If Qhull	compiles but crashes on	the test case (rbox  D4),
-       there's	still  incompatibility	between	 your  system and
-       ours.  Typically	it's been due to mem.c and memory  align-
-       ment.   You  can	 use qh_NOmem in mem.h to turn off memory
+       If Qhull compiles but crashes on the test case (rbox  D4),
+       there's  still  incompatibility  between  your  system and
+       ours.  Typically it's been due to mem.c and memory  align-
+       ment.   You  can  use qh_NOmem in mem.h to turn off memory
        management.  Please let us know if you figure out  how  to
        fix these problems.
 
-       If  you	do  find  a  problem,  try  to simplify	it before
-       reporting the error.  Try different size	inputs to  locate
-       the  smallest one that causes an	error.	You're welcome to
-       hunt through the	code  using  the  execution  trace  as	a
-       guide.	This  is  especially true if you're incorporating
+       If  you  do  find  a  problem,  try  to simplify it before
+       reporting the error.  Try different size inputs to  locate
+       the  smallest one that causes an error.  You're welcome to
+       hunt through the code  using  the  execution  trace  as  a
+       guide.   This  is  especially true if you're incorporating
        Qhull into your own program.
 
-       When you	do report an error, please attach a data  set  to
-       the  end	of your	message.  This allows us to see	the error
-       for ourselves.  Qhull is	maintained part-time.
+       When you do report an error, please attach a data  set  to
+       the  end of your message.  This allows us to see the error
+       for ourselves.  Qhull is maintained part-time.
 
 
 
-Geometry Center		     2003/12/30		       17
+Geometry Center              2003/12/30                17
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
 E-MAIL
-       Please  send  correspondence  to	 qhull@qhull.org   and
-       report  bugs  to	 qhull_bug@qhull.org.  Let us know how
+       Please  send  correspondence  to  qhull@qhull.org   and
+       report  bugs  to  qhull_bug@qhull.org.  Let us know how
        you use Qhull.  If you mention it in a paper, please  send
        the reference and an abstract.
 
        If  you would like to get Qhull announcements (e.g., a new
-       version)	and news (any bugs that	get fixed, etc.), let  us
-       know  and  we  will  add	 you to	our mailing list.  If you
+       version) and news (any bugs that get fixed, etc.), let  us
+       know  and  we  will  add  you to our mailing list.  If you
        would like to communicate with other Qhull users, we  will
        add you to the qhull_users alias.  For Internet news about
-       geometric algorithms and	convex hulls, look at comp.graph-
+       geometric algorithms and convex hulls, look at comp.graph-
        ics.algorithms and sci.math.num-analysis
 
 
 SEE ALSO
        rbox(1)
 
-       Barber,	C.  B.,	 D.P.  Dobkin,	and  H.T. Huhdanpaa, "The
+       Barber,  C.  B.,  D.P.  Dobkin,  and  H.T. Huhdanpaa, "The
        Quickhull Algorithm for Convex Hulls," ACM Trans. on Math-
-       ematical	Software, 22(4):469-483, Dec. 1996.
+       ematical Software, 22(4):469-483, Dec. 1996.
        http://portal.acm.org/citation.cfm?doid=235815.235821
        http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.6345
 
 
-       Clarkson, K.L., K. Mehlhorn, and	R. Seidel, "Four  results
+       Clarkson, K.L., K. Mehlhorn, and R. Seidel, "Four  results
        on  randomized  incremental  construction,"  Computational
-       Geometry: Theory	and Applications,  vol.	 3,  p.	 185-211,
+       Geometry: Theory and Applications,  vol.  3,  p.  185-211,
        1993.
 
-       Preparata,  F.  and  M.	Shamos,	 Computational	Geometry,
-       Springer-Verlag,	New York, 1985.
+       Preparata,  F.  and  M.  Shamos,  Computational  Geometry,
+       Springer-Verlag, New York, 1985.
 
 
 
 AUTHORS
-	 C. Bradford Barber		       Hannu Huhdanpaa
-	 bradb@qhull.org		       hannu@qhull.org
-
-			   c/o The Geometry Center
-			   University of Minnesota
-			   400 Lind Hall
-			   207 Church Street S.E.
-			   Minneapolis,	MN 55455
+         C. Bradford Barber                    Hannu Huhdanpaa
+         bradb@shore.net                       hannu@qhull.org
 
 
 
 ACKNOWLEDGEMENTS
-       A special thanks	to Albert Marden, Victor Milenkovic,  the
-       Geometry	Center,	Harvard	University, and	Endocardial Solu-
+       A special thanks to Albert Marden, Victor Milenkovic,  the
+       Geometry Center, Harvard University, and Endocardial Solu-
        tions, Inc. for supporting this work.
 
        Qhull 1.0 and 2.0 were developed under National Science Foundation 
@@ -1195,18 +1189,18 @@ ACKNOWLEDGEMENTS
 
 
 
-Geometry Center		     2003/12/30		       18
+Geometry Center              2003/12/30                18
 
 
 
 
 
-qhull(1)						 qhull(1)
+qhull(1)                                                 qhull(1)
 
 
        guided the original work at Princeton University.  
 
-       The Geometry Center is supported by grant DMS-8920161 from the National
+       The Geometry Center was supported by grant DMS-8920161 from the National
        Science Foundation, by grant DOE/DE-FG02-92ER25137 from the Department
        of Energy, by the University of Minnesota, and by Minnesota Technology, Inc.
 
@@ -1256,6 +1250,6 @@ qhull(1)						 qhull(1)
 
 
 
-Geometry Center		     2003/12/30		       19
+Geometry Center              2003/12/30                19
 
 
diff --git a/html/qvoron_f.htm b/html/qvoron_f.htm
index 712716f8a6b68cbe8c8a513abe1d85e487733048..19fbb5269f1545d8256fc594a72f7fcdaad680f1 100644
--- a/html/qvoron_f.htm
+++ b/html/qvoron_f.htm
@@ -93,7 +93,7 @@ in 4-d and higher.  It disables the following Qhull
 QB Qc Qf Qg Qi Qm Qr QR Qv Qx TR E V Fa FA FC Fp FS Ft FV Gt Q0,etc</i>.
 
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 <h3><a href="#TOP">»</a><a name="synopsis">furthest-site qvoronoi synopsis</a></h3>
diff --git a/html/qvoronoi.htm b/html/qvoronoi.htm
index 88b94a4860a32f10e4f88dd3e4b035984de17385..409d9a5756cc607040507d94909c2cf2cdf6c37d 100644
--- a/html/qvoronoi.htm
+++ b/html/qvoronoi.htm
@@ -115,7 +115,7 @@ in 4-d and higher.  It disables the following Qhull
 <a href=qh-quick.htm#options>options</a>: <i>d n v Qbb QbB Qf Qg Qm
 Qr QR Qv Qx Qz TR E V Fa FA FC FD FS Ft FV Gt Q0,etc</i>.
 
-<p><b>Copyright &copy; 1995-2008 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <p>Voronoi image by KOOK Architecture, Silvan Oesterle and Michael Knauss.
 
diff --git a/html/rbox.man b/html/rbox.man
index 13ad4a38cfbacceb44926b595a389516c66b3900..e0b0dc83ada5051688c2517a700242414cc085c7 100644
--- a/html/rbox.man
+++ b/html/rbox.man
@@ -1,15 +1,15 @@
-./"  This is the Unix manual page for rbox, written in nroff, the standard
-./"  manual formatter for Unix systems.  To format it, type
-./"
-./"  nroff -man rbox.man
-./"
-./"  This will print a formatted copy to standard output.  If you want
-./"  to ensure that the output is plain ascii, free of any control
-./"  characters that nroff uses for underlining etc, pipe the output
-./"  through "col -b":
-./"
-./"  nroff -man rbox.man | col -b
-./"
+.\"  This is the Unix manual page for rbox, written in nroff, the standard
+.\"  manual formatter for Unix systems.  To format it, type
+.\"
+.\"  nroff -man rbox.man
+.\"
+.\"  This will print a formatted copy to standard output.  If you want
+.\"  to ensure that the output is plain ascii, free of any control
+.\"  characters that nroff uses for underlining etc, pipe the output
+.\"  through "col -b":
+.\"
+.\"  nroff -man rbox.man | col -b
+.\"
 .TH rbox 1 "August 10, 1998" "Geometry Center"
 .SH NAME
 rbox \- generate point distributions for qhull
@@ -19,8 +19,8 @@ Command "rbox" (w/o arguments) lists the options.
 .PP
 rbox generates random or regular points according to the options given, and 
 outputs
-the points to stdout. The points are generated in a cube, unless 's' or
-'k' option is
+the points to stdout. The points are generated in a cube, unless 's' or  'k' 
+option is
 given. The format of the output is the following: first line
 contains the dimension and a comment, 
 second line contains the number of points, and the 
@@ -32,25 +32,25 @@ rbox 10
 10 random points in the unit cube centered at the origin.
 .TP
 rbox 10 s D2
-10 random points on a 2-d circle.
+10 random points on a 2\[hy]d circle.
 .TP
 rbox 100 W0
 100 random points on the surface of a cube.
 .TP
 rbox 1000 s D4
-1000 random points on a 4-d sphere.
+1000 random points on a 4\[hy]d sphere.
 .TP
 rbox c D5 O0.5
-a 5-d hypercube with one corner at the origin.
+a 5\[hy]d hypercube with one corner at the origin.
 .TP
 rbox d D10
-a 10-d diamond.
+a 10\[hy]d diamond.
 .TP 
 rbox x 1000 r W0
 100 random points on the surface of a fixed simplex 
 .TP
 rbox y D12
-a 12-d simplex.
+a 12\[hy]d simplex.
 .TP
 rbox l 10
 10 random points along a spiral
@@ -62,22 +62,22 @@ rbox 1000 L10000 D4 s
 1000 random points on the surface of a narrow lens.
 .TP
 rbox c G2 d G3
-a cube with coordinates +2/-2 and a diamond with coordinates +3/-3.
+a cube with coordinates +2/\-2 and a diamond with coordinates +3/\-3.
 .TP
 rbox 64 M3,4 z
-a rotated, {0,1,2,3} x {0,1,2,3} x {0,1,2,3} lattice (Mesh) of integer points.  
-'rbox 64 M1,0' is orthogonal.
+a rotated, {0,1,2,3} x {0,1,2,3} x {0,1,2,3} lattice (Mesh) of integer
+points. 'rbox 64 M1,0' is orthogonal.
 .TP
 rbox P0 P0 P0 P0 P0
-5 copies of the origin in 3-d.  Try 'rbox P0 P0 P0 P0 P0 | qhull QJ'.
+5 copies of the origin in 3\-d.  Try 'rbox P0 P0 P0 P0 P0 | qhull QJ'.
 .TP
 r 100 s Z1 G0.1
-two cospherical 100-gons plus another cospherical point.
+two cospherical 100\-gons plus another cospherical point.
 .TP
 100 s Z1
 a cone of points.
 .TP 
-100 s Z1e-7
+100 s Z1e\-7
 a narrow cone of points with many precision errors.
 .SH OPTIONS
 .TP
@@ -85,22 +85,22 @@ n
 number of points
 .TP
 Dn
-dimension n-d (default 3-d)
+dimension n\[hy]d (default 3\[hy]d)
 .TP
 Bn
 bounding box coordinates (default 0.5)
 .TP
 l
-spiral distribution, available only in 3-d
+spiral distribution, available only in 3\[hy]d
 .TP
 Ln
 lens distribution of radius n.  May be used with 's', 'r', 'G', and 'W'.
 .TP
 Mn,m,r
-lattice (Mesh) rotated by {[n,-m,0], [m,n,0], [0,0,r], ...}.  
+lattice (Mesh) rotated by {[n,\-m,0], [m,n,0], [0,0,r], ...}.  
 Use 'Mm,n' for a rigid rotation with r = sqrt(n^2+m^2).  'M1,0' is an 
-orthogonal lattice.  For example, '27 M1,0' is {0,1,2} x {0,1,2} x {0,1,2}. 
-'27 M3,4 z' is a rotated integer lattice.
+orthogonal lattice.  For example, '27 M1,0' is {0,1,2} x {0,1,2} x 
+{0,1,2}. '27 M3,4 z' is a rotated integer lattice.
 .TP
 s
 cospherical points randomly generated in a cube and projected to the unit sphere
@@ -118,13 +118,13 @@ c
 add a unit cube to the output
 .TP
 c Gm
-add a cube with all combinations of +m and -m to the output
+add a cube with all combinations of +m and \-m to the output
 .TP
 d
 add a unit diamond to the output.
 .TP
 d Gm
-add a diamond made of 0, +m and -m to the output
+add a diamond made of 0, +m and \-m to the output
 .TP
 Pn,m,r
 add point [n,m,r] to the output first.  Pad coordinates with 0.0.
@@ -143,12 +143,12 @@ set the random number seed to n.
 .TP
 z
 generate integer coordinates.  Use 'Bn' to change the range.  
-The default is 'B1e6' for six-digit coordinates.  In R^4, seven-digit
+The default is 'B1e6' for six\[hy]digit coordinates.  In R^4, seven\[hy]digit
 coordinates will overflow hyperplane normalization.
 .TP
 Zn s
 restrict points to a disk about the z+ axis and the sphere (default Z1.0). 
-Includes the opposite pole.  'Z1e-6' generates degenerate points under
+Includes the opposite pole.  'Z1e\-6' generates degenerate points under
 single precision.
 .TP
 Zn Gm s
@@ -168,9 +168,6 @@ qhull(1)
 .SH AUTHOR
 .nf
 C. Bradford Barber
-c/o The Geometry Center
-400 Lind Hall
-207 Church Street S.E.
-Minneapolis, MN 55455
+bradb@shore.net
 .fi
 
diff --git a/html/rbox.txt b/html/rbox.txt
index bc459525fe97fb3ea9ac062e1eba7f7279f0e733..3378d5ebc09051c5f5a0332340f8d90f46b6b30d 100644
--- a/html/rbox.txt
+++ b/html/rbox.txt
@@ -1,7 +1,7 @@
 
 
 
-rbox(1) 						  rbox(1)
+rbox(1)                                                   rbox(1)
 
 
 NAME
@@ -11,7 +11,7 @@ SYNOPSIS
        Command "rbox" (w/o arguments) lists the options.
 
 DESCRIPTION
-       rbox  generates	random or regular points according to the
+       rbox  generates random or regular points according to the
        options given, and  outputs  the  points  to  stdout.  The
        points  are  generated in a cube, unless 's' or given. The
        format of the output is the following: first line contains
@@ -22,73 +22,73 @@ DESCRIPTION
 
 EXAMPLES
        rbox 10
-	      10 random points in the unit cube centered  at  the
-	      origin.
+              10 random points in the unit cube centered  at  the
+              origin.
 
        rbox 10 s D2
-	      10 random points on a 2-d circle.
+              10 random points on a 2-d circle.
 
        rbox 100 W0
-	      100 random points on the surface of a cube.
+              100 random points on the surface of a cube.
 
        rbox 1000 s D4
-	      1000 random points on a 4-d sphere.
+              1000 random points on a 4-d sphere.
 
        rbox c D5 O0.5
-	      a 5-d hypercube with one corner at the origin.
+              a 5-d hypercube with one corner at the origin.
 
        rbox d D10
-	      a 10-d diamond.
+              a 10-d diamond.
 
        rbox x 1000 r W0
-	      100 random points on the surface of a fixed simplex
+              100 random points on the surface of a fixed simplex
 
        rbox y D12
-	      a 12-d simplex.
+              a 12-d simplex.
 
        rbox l 10
-	      10 random points along a spiral
+              10 random points along a spiral
 
        rbox l 10 r
-	      10 regular points  along	a  spiral  plus  two  end
-	      points
+              10 regular points  along  a  spiral  plus  two  end
+              points
 
        rbox 1000 L10000 D4 s
-	      1000 random points on the surface of a narrow lens.
+              1000 random points on the surface of a narrow lens.
 
        rbox c G2 d G3
-	      a cube with coordinates +2/-2 and  a  diamond  with
+              a cube with coordinates +2/-2 and  a  diamond  with
 
 
 
-Geometry Center 	 August 10, 1998			1
+Geometry Center          August 10, 1998                        1
 
 
 
 
 
-rbox(1) 						  rbox(1)
+rbox(1)                                                   rbox(1)
 
 
-	      coordinates +3/-3.
+              coordinates +3/-3.
 
        rbox 64 M3,4 z
-	      a  rotated,  {0,1,2,3} x {0,1,2,3} x {0,1,2,3} lat-
-	      tice (Mesh) of integer points.
+              a  rotated,  {0,1,2,3} x {0,1,2,3} x {0,1,2,3} lat-
+              tice (Mesh) of integer points.
 
        rbox P0 P0 P0 P0 P0
-	      5 copies of the origin in 3-d.  Try 'rbox P0 P0  P0
-	      P0 P0 | qhull QJ'.
+              5 copies of the origin in 3-d.  Try 'rbox P0 P0  P0
+              P0 P0 | qhull QJ'.
 
        r 100 s Z1 G0.1
-	      two  cospherical	100-gons plus another cospherical
-	      point.
+              two  cospherical  100-gons plus another cospherical
+              point.
 
        100 s Z1
-	      a cone of points.
+              a cone of points.
 
        100 s Z1e-7
-	      a narrow cone of points with many precision errors.
+              a narrow cone of points with many precision errors.
 
 OPTIONS
        n      number of points
@@ -100,40 +100,40 @@ OPTIONS
        l      spiral distribution, available only in 3-d
 
        Ln     lens  distribution  of  radius n.  May be used with
-	      's', 'r', 'G', and 'W'.
+              's', 'r', 'G', and 'W'.
 
-       Mn,m,r lattice  (Mesh)  rotated	by  {[n,-m,0],	 [m,n,0],
-	      [0,0,r],	...}.	Use  'Mm,n'  for a rigid rotation
-	      with r = sqrt(n^2+m^2).  'M1,0'  is  an  orthogonal
-	      lattice.	 For  example,	'27  M1,0'  is	{0,1,2} x
-	      {0,1,2} x {0,1,2}.
+       Mn,m,r lattice  (Mesh)  rotated  by  {[n,-m,0],   [m,n,0],
+              [0,0,r],  ...}.   Use  'Mm,n'  for a rigid rotation
+              with r = sqrt(n^2+m^2).  'M1,0'  is  an  orthogonal
+              lattice.   For  example,  '27  M1,0'  is  {0,1,2} x
+              {0,1,2} x {0,1,2}.
 
        s      cospherical points randomly generated in a cube and
-	      projected to the unit sphere
+              projected to the unit sphere
 
        x      simplicial  distribution.   It  is fixed for option
-	      'r'.  May be used with 'W'.
+              'r'.  May be used with 'W'.
 
-       y      simplicial distribution plus a simplex.	Both  'x'
-	      and 'y' generate the same points.
+       y      simplicial distribution plus a simplex.   Both  'x'
+              and 'y' generate the same points.
 
-       Wn     restrict	points	to distance n of the surface of a
-	      sphere or a cube
+       Wn     restrict  points  to distance n of the surface of a
+              sphere or a cube
 
        c      add a unit cube to the output
 
        c Gm   add a cube with all combinations of +m  and  -m  to
-	      the output
+              the output
 
 
 
-Geometry Center 	 August 10, 1998			2
+Geometry Center          August 10, 1998                        2
 
 
 
 
 
-rbox(1) 						  rbox(1)
+rbox(1)                                                   rbox(1)
 
 
        d      add a unit diamond to the output.
@@ -141,40 +141,40 @@ rbox(1) 						  rbox(1)
        d Gm   add a diamond made of 0, +m and -m to the output
 
        Pn,m,r add point [n,m,r] to the output first.  Pad coordi-
-	      nates with 0.0.
+              nates with 0.0.
 
        n      Remove the command line from the first line of out-
-	      put.
+              put.
 
        On     offset the data by adding n to each coordinate.
 
        t      use  time  in  seconds  as  the  random number seed
-	      (default is command line).
+              (default is command line).
 
        tn     set the random number seed to n.
 
        z      generate integer coordinates.  Use 'Bn'  to  change
-	      the  range.   The  default  is 'B1e6' for six-digit
-	      coordinates.  In R^4, seven-digit coordinates  will
-	      overflow hyperplane normalization.
+              the  range.   The  default  is 'B1e6' for six-digit
+              coordinates.  In R^4, seven-digit coordinates  will
+              overflow hyperplane normalization.
 
        Zn s   restrict points to a disk about the z+ axis and the
-	      sphere (default Z1.0).  Includes the opposite pole.
-	      'Z1e-6'  generates  degenerate  points under single
-	      precision.
+              sphere (default Z1.0).  Includes the opposite pole.
+              'Z1e-6'  generates  degenerate  points under single
+              precision.
 
        Zn Gm s
-	      same as Zn with an empty center (default G0.5).
+              same as Zn with an empty center (default G0.5).
 
        r s D2 generate a regular polygon
 
        r s Z1 G0.1
-	      generate a regular cone
+              generate a regular cone
 
 BUGS
        Some combinations of arguments generate odd results.
 
-       Report bugs to  qhull_bug@qhull.org,	other  correspon-
+       Report bugs to  qhull_bug@qhull.org,     other  correspon-
        dence to qhull@qhull.org
 
 SEE ALSO
@@ -182,17 +182,14 @@ SEE ALSO
 
 AUTHOR
        C. Bradford Barber
-       c/o The Geometry Center
-       400 Lind Hall
-       207 Church Street S.E.
-       Minneapolis, MN 55455
+       bradb@shore.net
+       
 
 
 
 
 
 
-
-Geometry Center 	 August 10, 1998			3
+Geometry Center          August 10, 1998                        3
 
 
diff --git a/index.htm b/index.htm
index 8ca94d7dcaed12b160b54cb087cd97c886872905..d7681cd1601e866f41e12b67cee63eeac1194e96 100644
--- a/index.htm
+++ b/index.htm
@@ -63,7 +63,7 @@ and higher. </p>
 		www.qhull.org
 	<p>
     <li><a href="http://www.qhull.org/news/qhull-news.html#users">How</a> is Qhull used?</li>
-	<li><a href="http://citeseer.ist.psu.edu/context/86585/83502">CiteSeer</a> references to Qhull
+        <li><a href="http://citeseerx.ist.psu.edu/showciting?doi=10.1.1.54.6345&sort=cite">CiteSeer</a> references to Qhull
 </p>
  	<li>
  	<a href=http://www.google.com/search?as_q=qhull+-debian+-cvs+-gentoo+-pool+-mirrors&num=100>Google</a> Qhull,
@@ -214,7 +214,7 @@ href="http://www.geomview.org">Geomview</a>.   An alternative
 is <a href=http://www.vtk.org/>VTK</a>.</p>
 
 <p>For an article about Qhull, download from <a
-href="http://citeseer.ist.psu.edu/83502.html">CiteSeer</a> or <a
+href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.6345">CiteSeer</a> or <a
     href="http://portal.acm.org/citation.cfm?doid=235815.235821">www.acm.org</a>:
 </p>
 
diff --git a/qhull.ilk b/qhull.ilk
new file mode 100644
index 0000000000000000000000000000000000000000..6c31410ad03e6c994a7dd1a623eeb1155ae5da2e
Binary files /dev/null and b/qhull.ilk differ
diff --git a/qtpro/libqhull/libqhull.pro b/qtpro/libqhull/libqhull.pro
index ddff30f69b1504f4cbc359bc78019e3fe59a0c37..079f2c08cfbbd6e63b8501b2b3506294c17e1152 100644
--- a/qtpro/libqhull/libqhull.pro
+++ b/qtpro/libqhull/libqhull.pro
@@ -2,9 +2,13 @@
 # libqhull.pro -- Qt project for Qhull static library
 # -------------------------------------------------
 
-CONFIG += staticlib
-TEMPLATE = lib
 DESTDIR = ../..
+TEMPLATE = lib
+CONFIG += staticlib warn_on
+CONFIG -= app_bundle qt
+QMAKE_CFLAGS_DEBUG += -Wall -Wextra -Wshadow -Wcast-qual -Wwrite-strings
+QMAKE_CFLAGS_DEBUG += -Wno-sign-conversion # Many size_t vs. int errors
+#QMAKE_CFLAGS_DEBUG += -Wconversion # no workaround for bit-field conversion errors
 build_pass:CONFIG(debug, debug|release):{
     TARGET = qhulld
     OBJECTS_DIR = ../../tmp/libqhull/Debug
@@ -12,7 +16,6 @@ build_pass:CONFIG(debug, debug|release):{
     TARGET = qhull
     OBJECTS_DIR = ../../tmp/libqhull/Release
 }
-CONFIG -= app_bundle qt
 MOC_DIR = ../../tmp/moc
 RCC_DIR = ../../tmp/rcc
 
@@ -33,6 +36,39 @@ SOURCES += src/stat.c
 SOURCES += src/user.c
 SOURCES += src/usermem.c
 SOURCES += src/userprintf.c
+OTHER_FILES += Announce.txt
+OTHER_FILES += COPYING.txt
+OTHER_FILES += File_id.diz
+OTHER_FILES += html/index.htm
+OTHER_FILES += html/qconvex.htm
+OTHER_FILES += html/qdelau_f.htm
+OTHER_FILES += html/qdelaun.htm
+OTHER_FILES += html/qhalf.htm
+OTHER_FILES += html/qh-code.htm
+OTHER_FILES += html/qh-eg.htm
+OTHER_FILES += html/qh-faq.htm
+OTHER_FILES += html/qh-get.htm
+OTHER_FILES += html/qh-impre.htm
+OTHER_FILES += html/qh-optc.htm
+OTHER_FILES += html/qh-optf.htm
+OTHER_FILES += html/qh-optg.htm
+OTHER_FILES += html/qh-opto.htm
+OTHER_FILES += html/qh-optp.htm
+OTHER_FILES += html/qh-optq.htm
+OTHER_FILES += html/qh-optt.htm
+OTHER_FILES += html/qh-quick.htm
+OTHER_FILES += html/qhull.htm
+OTHER_FILES += html/qhull.man
+OTHER_FILES += html/qhull.txt
+OTHER_FILES += html/qhull-cpp.xml
+OTHER_FILES += html/qvoron_f.htm
+OTHER_FILES += html/qvoronoi.htm
+OTHER_FILES += html/rbox.htm
+OTHER_FILES += html/rbox.man
+OTHER_FILES += html/rbox.txt
+OTHER_FILES += index.htm
+OTHER_FILES += README.txt
+OTHER_FILES += REGISTER.txt
 OTHER_FILES += src/Changes.txt
 OTHER_FILES += src/index.htm
 OTHER_FILES += src/Make-config.sh
diff --git a/qtpro/libqhullcpp/libqhullcpp.pro b/qtpro/libqhullcpp/libqhullcpp.pro
index 6c40613ae674c92e7fa9089c5da3a49f74b574da..38793b0be4872b85cdec8cf13430d5655584e5fe 100644
--- a/qtpro/libqhullcpp/libqhullcpp.pro
+++ b/qtpro/libqhullcpp/libqhullcpp.pro
@@ -3,22 +3,26 @@
 # -------------------------------------------------
 
 DESTDIR = ../..
-CONFIG += shared
 TEMPLATE = lib
+CONFIG += shared warn_on
+CONFIG -= app_bundle
+LIBS += -L../..
 build_pass:CONFIG(debug, debug|release):{
    TARGET = qhullcppd
-   LIBS += ../../libqhulld.a
+   LIBS += libqhulld
    OBJECTS_DIR = ../../tmp/libqhullcpp/Debug
 }else:build_pass:CONFIG(release, debug|release):{
    TARGET = qhullcpp
-   LIBS += ../../libqhull.a
+   LIBS += libqhull
    OBJECTS_DIR = ../../tmp/libqhullcpp/Release
 }
 QT -= gui
-CONFIG -= app_bundle
 MOC_DIR = ../../tmp/moc
 RCC_DIR = ../../tmp/rcc
 INCLUDEPATH = ../../cpp;../../cpp/road;../../tmp
+#FIXUP QMAKE_CXXFLAGS_DEBUG += -Wall -Wextra -Wshadow -Wcast-qual -Wwrite-strings
+#QMAKE_CXXFLAGS_DEBUG += -Wno-sign-conversion # Many size_t vs. int errors
+#QMAKE_CXXFLAGS_DEBUG += -Wconversion # no workaround for bit-field conversion errors
 
 VPATH = ../..
 SOURCES += cpp/Coordinates.cpp
diff --git a/qtpro/qhull-all.pro b/qtpro/qhull-all.pro
new file mode 100644
index 0000000000000000000000000000000000000000..ff58d667cd7aec6175161727227fa1a0bef8cf07
--- /dev/null
+++ b/qtpro/qhull-all.pro
@@ -0,0 +1,13 @@
+# -------------------------------------------------
+# qhull-all.pro -- Qt project to build all files
+# -------------------------------------------------
+
+TEMPLATE = subdirs
+CONFIG += ordered
+
+SUBDIRS += libqhull
+SUBDIRS += libqhullcpp
+SUBDIRS += qhull
+SUBDIRS += qhulltest
+SUBDIRS += rbox
+SUBDIRS += user_eg3
diff --git a/qtpro/qhull/qhull.pro b/qtpro/qhull/qhull.pro
index 645910306d5691d362ca1360a918d64dd3deff8e..cb63646378ca622b81ea18750e39fa7cedc494fc 100644
--- a/qtpro/qhull/qhull.pro
+++ b/qtpro/qhull/qhull.pro
@@ -5,16 +5,17 @@
 TARGET = qhull
 DESTDIR = ../..
 TEMPLATE = app
-CONFIG += console
+CONFIG += console warn_on
+CONFIG -= app_bundle
+LIBS += -L../..
 build_pass:CONFIG(debug, debug|release):{
-   LIBS += ../../libqhulld.a
+   LIBS += libqhulld
    OBJECTS_DIR = ../../tmp/qhull/Debug
 }else:build_pass:CONFIG(release, debug|release):{
-   LIBS += ../../libqhull.a
+   LIBS += libqhull
    OBJECTS_DIR = ../../tmp/qhull/Release
 }
 QT -= gui
-CONFIG -= app_bundle
 MOC_DIR = ../../tmp/moc
 RCC_DIR = ../../tmp/rcc
 INCLUDEPATH = ../../cpp;../../cpp/road;../../tmp
diff --git a/qtpro/qhulltest/qhulltest.pro b/qtpro/qhulltest/qhulltest.pro
index c199cf610d7e954520030f03457fb4de1e6814da..acf2a4085cd80522b71f2c4e5b210d6ea002f2d8 100644
--- a/qtpro/qhulltest/qhulltest.pro
+++ b/qtpro/qhulltest/qhulltest.pro
@@ -5,16 +5,17 @@
 TARGET = qhulltest
 DESTDIR = ../..
 TEMPLATE = app
-CONFIG += console qtestlib
+CONFIG += console qtestlib warn_on
+CONFIG -= app_bundle
+LIBS += -L../..
 build_pass:CONFIG(debug, debug|release):{
-   LIBS += ../../qhullcppd.dll
+   LIBS += libqhullcppd
    OBJECTS_DIR = ../../tmp/qhulltest/Debug
 }else:build_pass:CONFIG(release, debug|release):{
-   LIBS += ../../qhullcpp.dll
+   LIBS += libqhullcpp
    OBJECTS_DIR = ../../tmp/qhulltest/Release
 }
 QT -= gui
-CONFIG -= app_bundle
 MOC_DIR = ../../tmp/moc
 RCC_DIR = ../../tmp/rcc
 INCLUDEPATH = ../../cpp;../../cpp/road;../../tmp
diff --git a/qtpro/rbox/rbox.pro b/qtpro/rbox/rbox.pro
index d93aacf274bdf42e485b51410a48a0e7176beb83..72afc82a181c450b5aac211aec6a0124a7e8c288 100644
--- a/qtpro/rbox/rbox.pro
+++ b/qtpro/rbox/rbox.pro
@@ -5,11 +5,12 @@ TARGET = rbox
 DESTDIR = ../..
 TEMPLATE = app
 CONFIG += console
+LIBS += -L../..
 build_pass:CONFIG(debug, debug|release):{
-   LIBS += ../../libqhulld.a
+   LIBS += libqhulld
    OBJECTS_DIR = ../../tmp/rbox/Debug
 }else:build_pass:CONFIG(release, debug|release):{
-   LIBS += ../../libqhull.a
+   LIBS += libqhull
    OBJECTS_DIR = ../../tmp/rbox/Release
 }
 QT -= gui
diff --git a/qtpro/user_eg3/user_eg3.pro b/qtpro/user_eg3/user_eg3.pro
index a3a847e186bdac773f5ecd2e91b85b5d9072a646..5b987d76bcd74bfd3abc2ee74af61db063790f3e 100644
--- a/qtpro/user_eg3/user_eg3.pro
+++ b/qtpro/user_eg3/user_eg3.pro
@@ -5,11 +5,12 @@ TARGET = user_eg3
 DESTDIR = ../..
 TEMPLATE = app
 CONFIG += console
+LIBS += -L../..
 build_pass:CONFIG(debug, debug|release):{
-   LIBS += ../../qhullcppd.dll
+   LIBS += libqhullcppd
    OBJECTS_DIR = ../../tmp/user_eg3/Debug
 }else:build_pass:CONFIG(release, debug|release):{
-   LIBS += ../../qhullcpp.dll
+   LIBS += libqhullcpp
    OBJECTS_DIR = ../../tmp/user_eg3/Release
 }
 QT -= gui
diff --git a/rbox.ilk b/rbox.ilk
new file mode 100644
index 0000000000000000000000000000000000000000..8eef05d0678a46175a773033c843eee6a71fb6bf
Binary files /dev/null and b/rbox.ilk differ
diff --git a/src/Changes.txt b/src/Changes.txt
index 0e874cd6b50d06b7f838d336b0aba334d7872e10..c01f0101528cd71ca20f35733160e0b26c38ec72 100644
--- a/src/Changes.txt
+++ b/src/Changes.txt
@@ -1,16 +1,14 @@
 
 .............This file lists all changes to qhull and rbox.....................
 
-Doc  
-- qhullcpplib must be before qhull.lib _qh_fprintf already defined in qhull.lib
+To do for documentation
 - Qhull::addPoint().  Problems with qh_findbestfacet and otherpoints see 
    qh-code.htm#inc on-line construction with qh_addpoint()
- - How to handle 64-bit possible loss of data.  WARN64
+- How to handle 64-bit possible loss of data.  WARN64
 - Show custom of qh_fprintf
- - grep 'qh_mem ' x | sort | awk '{ print $2; }' | uniq -c | grep -vE ' (2|4|6|8|10|12|14|16|20|64|162)[^0-9]'
+- grep 'qh_mem ' x | sort | awk '{ print $2; }' | uniq -c | grep -vE ' (2|4|6|8|10|12|14|16|20|64|162)[^0-9]'
 - qtpro/qhulltest contains .pro and Makefile.  Remove Makefiles by setting shadow directory to ../../tmp/projectname
-
-Rules for use of qh_qh and multi processes
+- Rules for use of qh_qh and multi processes
     UsingQhull
     errorIfAnotherUser
     ~QhullPoints() needs ownership of qh_qh
@@ -19,16 +17,18 @@ Rules for use of qh_qh and multi processes
    qhmem, qhstat.ferr
    qhull_inuse==1 when qhull globals active [not useful?]
    rbox_inuse==1 when rbox globals active
+   - Multithreaded -- call largest dimension for infinityPoint() and origin()
+
  - Better documentation for qhmem totshort, freesize, etc.
  - Clean up qhull-news.html XML
  - how to change .h, .c, and .cpp to text/html.  OK in Opera
  - need a page with all QHnnnn for web lookups
- - Update citeseer reference in index.htm#ref
  - QhullVertex.dimension() is not quite correct, epensive
  - Check globalAngleEpsilon
  - Deprecate save_qhull()
+ - Review email for doc changes
 
-Suggestions
+To do for suggestions
    C++ class for access to statistics, accumulate vs. add
    Add dialog box to RoadError-- a virtual function?
  - Gt does not make visible all facets of the mesh example, rbox 32 M1,0,1 | qhull d Gt
@@ -42,12 +42,19 @@ Suggestions
  - Fix doc comments
 
 Qhull cpp questions
+ - iterator Coordinates::operator++() { return iterator(++i); } //FIXUP Should return reference, but get reference to temporary
  - size() as size_t, size_type, or int
  - Should all containers have a reserve()?
  - Qhull.feasiblePoint interface
- - Qhull and RboxPoints messaging
- - change qh_printf() to a virtual function
+ - How to avoid copy constructor while logging, maybeThrowQhullMessage()
+ - How to configure Qhull output.  Trace and results should go to stdout/stderr
+ - Qhull and RboxPoints messaging.  e.g., ~Qhull, hasQhullMessage()
+ -  rename as QhullErrorMessage?
+ - Qhull::feasiblePoint Qhull::useOutputStream as field or getter?
+ - Define virtual functions for user customization of Qhull (e.g., qh_fprintf, qh_memfree,etc.)
  - Figure out RoadError::global_log.  clearQhullMessage currently clearGlobalLog
+ - Should the false QhullFacet be NULL or empty?  e.g., QhullFacet::tricoplanarOwner() and QhullFacetSet::end()
+ - Should output format for floats be predefined (qh_REAL_1, 2.2g, 10.7g) or as currently set for stream
  - Should cout << !point.defined() be blank or 'undefined'
  - Interface for UsingLibQhull::globalAngleEpsilon(), globalDistanceEpsilon, etc.
  - Interface for UsingLibQhull::globalDimension
@@ -57,128 +64,162 @@ Qhull cpp questions
  - Is Q_GLOBAL_STATIC non-threaded/threaded, needed for Qhull?
  - When forwarding an implementation is base() an approriate name (e.g., Coordinates::iterator::base() as std::vector<coordT>::iterator).
  - When forwarding an implementation, does not work "returning address of temporary"
- - Alsoo --, +=, and -=
+ - Also --, +=, and -=
         iterator       &operator++() { return iterator(i++); }
  - if vector<coordT> inheritance is bad, is QhullVertexSet OK?
 
 To do
  - ConvexHull is a submodule to git.  How to get rid of?
- ** Change to static link library before shipping, or define Qt for static linking.
- - Configure qhull-qt.dll
- - ignore Warnings?  How to configure Qhull output.  Trace and results should go to stdout/stderr
  - Review Warn64
- - review all FIXUP.  Add dates?
- - Clear out QhullQh -- it is just the POD type
-    void checkIfQhullRan();
-    void errorAnotherUser();
-    void startQhullAccess();
-    void stopQhullAccess();
- - Redo .pro files for shared cpp library and static qhull library
- - Add dependencies between the .pro files, or define in the .pro files
-   If you want to specify it in the pro file then you can follow the following steps to get the dependencies to be generated automatically:
-   1a) there is a Lib/DLL project with the target name (the .lib is used, not the .dll of course) being that of what is used on link line of an other project in your solution
-   1b) there is a Exe project with the target name being that of what is used in a custom build-step of an other project in your solution
-   2) you don't use paths in the TARGET variable (use DESTDIR/DLLDESTDIR for that), like TARGET=$(SOME_VARIABLE)/myLib, won't work
-   3) if you have a special location for your libs, you specify the -Lmy/library/path and LIBS += mylib, instead of just using LIBS += my/library/path/mylib
-   4) the leaf projects are created before you generate the solution file. (You can use the recursive flag for qmake to do this, like "qmake -tp vc -r [yourproject.pro]"
-
-This is achievable by utilizing the MAKEFILE variable to indicate what you want to call the makefile, as for the location of it then you just need to call qmake from where you want it to be generated in.  To get the pro file how you want it something like:
-
-
-Pick up changes from Kent Williams
-
-qhull 2009.0.1  2009/12/08
- - Reordered #include from specific to general.  Move up .h for module.  
- - Use gcc 4.4.0 or later.  gcc 4.2.1, 4.2.2, and 4.3.2 -O2 segfaults in qset.c .  gcc 4.1.1 was OK
- -    Bug report    http://gcc.gnu.org/ml/gcc-bugs/2007-09/msg00474.html
+ - SUBDIRS to sln -- qmake -tp vc
+ - review all #pragma
+ - review all FIXUP [^0-9]
+ - clean up warnings for libqhullcpp
+ - Decide on citeseer 10.1.1.117.405 or 10.1.1.54.6345
+ - Abandon savannah
+ - Add config directory to Qhull
+ - Fix README Visual C++ quickstart
+ - Review changes with Kent Williams
+   Keep size of qh_set as int, set.h, global.c
+   Keep size of qh_mem as int, mem.h, global.c
+   Why rename index in qh_initthresholds(), poly2.c, qhull.c -- Seems OK
+ - Run qhull regression tests
+ - Measure performance of Qhull
+
+qhull 2010.0.1  2010/01/02
+
+New Features:
+ - Added option 'Ta' to annotate output with message codes
+
+Preliminary C++ support:
+ - Warning: C++ declarations may change without warning
+ - Preliminary documentation for Qhull's C++ interface [qh-code.htm#cpp, qhull-cpp.xml]
  - Added user_eg3 as an example of Qhull.cpp
- - Renamed html/qh-in.htm to html/qh-code.htm
- - Report not enough points if d points, Delaunay, and not Qz
- - Multithreaded -- call largest dimension for infinityPoint() and origin()
- - Oh... Ztotcheck, btw, I had to add to the statistics enum in the qh_KEEPstatistics=0 case in stat.h; otherwise stat.c gets an undefined symbol error. [R. Gardener]
+ - Removed qhull_interface.cpp
+
+Changes to qhull options and results
+ - Allow 'd' and 'v' as the filename for 'TO ..' and 'TI ...' in qdelaunay [M. Jambon]
+ - Allow quoted filenames for 'TO ...' and 'TI ...'
+ - Fixed rbox ignoring flags that were not separated by spaces
+ - Report all hidden options before exiting in qh_checkflags()
+ - Defined qh_OPTIONline [user.h] as max length of option line ('FO') 
+ - Report error if negative arguments to rbox 'G', 'L', 'Z'
+ - Unknown rbox flag changed from a warning to an error
+ - Set error status 4 qh_ERRmem if rbox runs out of memory
+ - Removed extra spaces at end of line
+
+Breaking Code Changes:
+ - 'rbox tN' takes an integer (previously allowed floats)
+ - Renamed qh.coplanarset to coplanarfacetset.  Avoids conflict with facetT.coplanarset
  - qh_restore_qhull() zeroes out qh.old_qhstat and qh.old_tempstack.  Ownership moved.
- - Removed qh.old_stat -- never used
- - Removed qhmem.curlong.  qa_memfreeshort computes curlong from cntlong and cntfree
  - Rewrote save_qhull/restore_qhull
+ - Add Ztotcheck to zzdef_ [R. Gardener]
  - Add message code to error messages and warnings (e.g., QH6012)
- - Renamed qh.coplanarset to coplanarfacetset.  Avoids conflict with facetT.coplanarset
+ - Changed qh_malloc to size_t (was unsigned long)
+ - Declare qh_PRINT instead of int [kwilliams]
+ - In qh_printafacet(), changed error output to 'qh ferr'
+
+Bug fixes to C code:
+ - Fixed qh_findfacet_all(), "REALmin" should be "-REALmax" [L.A. Taylor].
+     Effects library users for convex hulls and halfspace intersections.
+ - qh_printfacet [io.c] Removed extra space for neighboring facets
+ - Use gcc 4.4.0 or later.  gcc 4.2.1, 4.2.2, and 4.3.2 -O2 segfaults in qset.c .  gcc 4.1.1 was OK
+   See bug report http://gcc.gnu.org/ml/gcc-bugs/2007-09/msg00474.html
+ - Report error if d points, Delaunay, and not Qz
  - Fixed double-free of facet->centrum for triangulated facets
+ - Fixed mindist initialization if !testcentrum in io.c findbest_test [Ratcliff]
+ - Fixed parentheses around warning for missing 'Qc' [qh_initqhull_outputflags]
+ - Fixed rbox buffer overflow of 'command' when appending seedbuf
+ - Fixed option string for 'rbox t t999'.  Although seed was correctly set to 999, 
+   a random seed was appended to the rbox comment (e.g., 'rbox t t999 t32343')
+ - Fixed upper bound of sanity check for qh_RANDOMmax in qh_initqhull_globals()
+
+Changes to C code
+ - Reordered #include from specific to general.  Move up .h for module.
+ - Removed qh.old_stat -- never used
  - Removed qh_clearcenters from qh_freeqhull.  Duplicated by qh_delfacet
- - Added full tracing for short memory allocations.
- - Memory tracing (T5) redone for sort order by object
+ - qh_printcenter [io.c] removed unreachable fprintf argument
+ - qh_getarea() [geom2.c] ignored on multiple calls (qh.hasAreaVolume)
+ - qh_getarea() [geom2.c] checks facet->isarea. Set by QhullFacet.facetArea()
+ - qh_triangulate() [poly2.c] ignored on multiple calls (qh.hasTriangulation)
+ - Add statistics for vertex_visit and visit_id to buildtracing
+ - Defined scale and offset parameters for qh_randomfactor
+
+Bug fixes and changes to mem.c/mem.h
  - Fixed qhmem.totshort (total short memory in use)
- - Fixed parentheses around warning for missing 'Qc' [qh_initqhull_outputflags]
+ - Memory tracing (T5) redone for sort order by object
+ - Added full tracing for short memory allocations.
  - Added qhmem.totfree (total short memory on freelists)
- -    Increases size of qh_memalloc_ and qh_memfree_
+     Increases size of qh_memalloc_ and qh_memfree_
  - Added qhmem.totdropped (leftover freesize at end of each short buffer)
  - Added qhmem.totunused (short size - request size)
  - Added qhmem.totbuffer (total short memory buffer w/o links)
  - Added memory statistics to qh_NOmem;
  - Added qh_memtotal to track allocated memory
  - Renamed qh_memfree parameter to 'insize' for consistency with qh_memalloc
+ - Removed qhmem.curlong.  qa_memfreeshort computes curlong from cntlong and cntfree
+ - In mem.h, changed ptr_intT to long.  qh_meminit() checks that it holds a 'void*'
+
+Fixed g++ and devstudio warnings
+ - Except for bit field conversions, compiles cleanly with
+   -Wall -Wextra -Wshadow -Wcast-qual -Wwrite-strings -Wno-sign-conversion -Wconversion
+ - Fixed warnings at VC8, level 4
+ - Fix data types to remove conversion warnings [kwilliams]
+ - Use size_t for calls to malloc,etc [kwilliams]
+ - Change literal strings to const char* [kwilliams]
+ - getid_() returns an int [kwilliams]
+ - Add missing const annotations [kwilliams]
+ - Fixed 64-bit warnings (marked with "WARN64")
+ - Convert sizeof to (int) for int parameters
+ - In libqhull.c, added explicit casts from long to float,  Avoids warning
+ - In global.c, cast time() to int for QRandom-seed.  Avoids warning
+
+Changes to C code for C++ support
+ - Add sln, vcproj, and qtpro files for building Qhull -- add to README notes
  - Added dim to vertexT for cpp interface. Reduced size of qh.vertex_visit
- - Clear qh.ERREXITcalled at end of qh_errexit().
- - Documented Qhull's C++ interface [http://../html/qh-code.htm#cpp]
- - Renamed qh-in.htm to qh-code.htm
- - Removed qhull_interface.cpp
- - Documented <A href="qh-code.htm#cpp">C++ interface</a>
- - qh_printfacet [io.c] Removed extra space for neighboring facets
- - Allow 'd' and 'v' as the filename for 'TO ..' and 'TI ...' in qdelaunay [M. Jambon]
- - Allow quoted filenames for 'TO ...' and 'TI ...'
- - qh_printcenter [io.c] removed unreachable fprintf argument
- - qh_product_output [io.c] may be called multiple times (C++ interface)
- - qh_getarea() [geom2.c] checks facet->isarea. Set by QhullFacet.facetArea()
- - qh_getarea() [geom2.c] ignored on multiple calls (qh.hasAreaVolume)
- - qh_triangulate() [poly2.c] ignored on multiple calls (qh.hasTriangulation)
+ - qh_produce_output [io.c] may be called multiple times (C++ interface)
  - Moved SETsizeaddr_() to qset.h for use by QhullSet.cpp
- - Add statistics for vertex_visit and visit_id to buildtracing
- - Add reference to 'Qt' to 'i'
- - Add reference to 'FS' to 'FA'
- - qh-impre.htm discusses precision issues for halfspace intersection
- - Defined qh_OPTIONline [user.h] as max length of option line ('FO') 
  - Option 'Tz' sets flag qh.USEstdout for QhullPoints.cpp
- - Add cross references between options 'FA' and 'FS'
- - Report all hidden options before exiting in qh_checkflags()
- - Added option 'Ta' to annotate output with message codes
  - Added support for multiple output runs from QhullPoints.outputQhull
  -   qh_clear_outputflags() resets the output flags
  -   qh_initqhull_outputflags split from qh_initqhull_globals
  - Added qh.run_id, a random identifier for this instance of Qhull (QhullPoints)
  -   For qh.run_id, initqhull_start initializes qh_RANDOMseed to time instead of 1
  - Extracted qh_argv_to_command (random.c) from qh_init_qhull_command and fixed a buffer overflow
- - Updated copyright to 2008
  - Moved qh_strtod/qh_strtol from global.c to random.c for use in rboxlib.c
- - Fixed option string for 'rbox t t999'.  Although seed was correctly set to 999, 
-   a random seed was appended to the rbox comment (e.g., 'rbox t t999 t32343')
- - Fixed rbox ignoring flags that were not separated by spaces
- - Fixed rbox buffer overflow of 'command' when appending seedbuf
- - Fixed upper bound of sanity check for qh_RANDOMmax in qh_initqhull_globals()
- - Report error if negative arguments to rbox 'G', 'L', 'Z'
- - Unknown rbox flag changed from a warning to an error
  - Split out random functions into random.c
- - Defined scale and offset parameters for qh_randomfactor
- - Set error status 4 qh_ERRmem if rbox runs out of memory
- - In qh_printafacet(), changed error output to 'qh ferr'
  - Added message codes to qh_fprintf().  See its definition in user.c
- - In mem.h, changed ptr_intT to long.  qh_meminit() checks that it holds a 'void*'
- - Fixed 64-bit warnings (marked with "WARN64")
- - qhull.exe is ... faster/slower
- - Add sln and vcproj files for building Qhull -- add to README notes
- - Removed extra spaces at end of line
- - Fixed warnings at VC8, level 4
- - In libqhull.c, added explicit casts from long to float,  Avoids warning
- - In global.c, cast time() to int for QRandom-seed.  Avoids warning
  - Replaced exit, malloc, free, fprintf, and fputs with qh_malloc,...[J.W. Ratcliff]
  - Added qh_fprintf, qh_malloc, qh_free, ph_printhelp_narrowhull to user.c
  - Moved qh_printhelp_degenerate and qh_printhelp_singular from io.c to user.c
- - Fixed mindist initialization if !testcentrum in io.c findbest_test [Ratcliff]
+ - Clear qh.ERREXITcalled at end of qh_errexit().
+
+Documentation:
+ - Fixed out-of-date CiteSeer references
+ - Renamed html/qh-in.htm to html/qh-code.htm
+ - Renamed qh-in.htm to qh-code.htm
+ - Add reference to 'Qt' to 'i'
+ - Add reference to 'FS' to 'FA'
+ - qh-impre.htm discusses precision issues for halfspace intersection
+ - Add cross references between options 'FA' and 'FS'
  - Added link to Wolfram Research's MathWorld site
  - Updated Fukuda's links
  - Updated Qhull citation with page numbers.
  - Proposed project: constructing Voronoi diagram
  - Proposed project: computing Voronoi volumes
- - Fixed qh_findfacet_all(), "REALmin" should be "-REALmax" [L.A. Taylor].
-     Effects library users for convex hulls and halfspace intersections.
+
+qhull 2009.1  2009/6/11
+
+This is a maintenance release done by Rafael Laboissiere <rafael@debian.org>.
+ - src/rbox.c (main): Avoid problems of evaluation order when
+   pre-incrementing arguments of strtod
+ - src/io.c (qh_produce_output), src/stat.c (qh_initstatistics): Use %lu
+   instead of %d in the format string for arguments of type size_t
+ - html/qhull.man, html/rbox.man: Fix several syntax, macros, and hyphen
+   problems in man pages
+ - The Autotools files have been generated with modern version of autoconf (2.63),
+   automake/aclocal (1.10.2), and libtool (2.2.6)
+ - Some character issues in the man pages are fixed
 
 qhull 2003.1  2003/12/30
 
diff --git a/src/geom.c b/src/geom.c
index ceb534fe3b7527fae282d99c42c5010e31be25c0..5a050b86cb7e1e5f765810f8e842e531dcfb8ceb 100644
--- a/src/geom.c
+++ b/src/geom.c
@@ -6,9 +6,9 @@
 
    see qh-geom.htm and geom.h
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/geom.c#25 $$Change: 1047 $
-   $DateTime: 2009/09/12 21:08:23 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/geom.c#28 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 
    infrequent code goes into geom2.c
 */
@@ -892,7 +892,8 @@ void qh_normalize2 (coordT *normal, int dim, boolT toporient,
 */
 pointT *qh_projectpoint(pointT *point, facetT *facet, realT dist) {
   pointT *newpoint, *np, *normal;
-  int normsize= qh normal_size,k;
+  int normsize= qh normal_size;
+  int k;
   void **freelistp; /* used !qh_NOmem */
 
   qh_memalloc_(normsize, freelistp, newpoint, pointT);
@@ -928,7 +929,8 @@ pointT *qh_projectpoint(pointT *point, facetT *facet, realT dist) {
 void qh_setfacetplane(facetT *facet) {
   pointT *point;
   vertexT *vertex, **vertexp;
-  int k,i, normsize= qh normal_size, oldtrace= 0;
+  int normsize= qh normal_size;
+  int k,i, oldtrace= 0;
   realT dist;
   void **freelistp; /* used !qh_NOmem */
   coordT *coord, *gmcoord;
diff --git a/src/geom.h b/src/geom.h
index 038a0360adcd5e8371bc029ab300ef45b59bdee3..aa9d651b47cd950d1fdbacaf1cb5aa43dc4dd841 100644
--- a/src/geom.h
+++ b/src/geom.h
@@ -6,9 +6,9 @@
 
    see qh-geom.htm and geom.c
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/geom.h#15 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $        
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/geom.h#17 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $        
 */
 
 #ifndef qhDEFgeom
@@ -153,8 +153,8 @@ int     qh_mindiff(realT *vecA, realT *vecB, int dim);
 boolT   qh_orientoutside(facetT *facet);
 void    qh_outerinner(facetT *facet, realT *outerplane, realT *innerplane);
 coordT  qh_pointdist(pointT *point1, pointT *point2, int dim);
-void    qh_printmatrix(FILE *fp, char *string, realT **rows, int numrow, int numcol);
-void    qh_printpoints(FILE *fp, char *string, setT *points);
+void    qh_printmatrix(FILE *fp, const char *string, realT **rows, int numrow, int numcol);
+void    qh_printpoints(FILE *fp, const char *string, setT *points);
 void    qh_projectinput(void);
 void 	qh_projectpoints(signed char *project, int n, realT *points, 
              int numpoints, int dim, realT *newpoints, int newdim);
diff --git a/src/geom2.c b/src/geom2.c
index 52296a9d813d46bcdc81d230452f3b49ab2e268d..5150b91a08ef7d2de8759cb849d91a2ecc670da5 100644
--- a/src/geom2.c
+++ b/src/geom2.c
@@ -7,9 +7,9 @@
 
    see qh-geom.htm and geom.h
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/geom2.c#25 $$Change: 1059 $
-   $DateTime: 2009/10/30 18:26:26 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/geom2.c#28 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 
    frequently used code goes into geom.c
 */
@@ -28,13 +28,13 @@ coordT *qh_copypoints(coordT *points, int numpoints, int dimension) {
   int size;
   coordT *newpoints;
 
-  size= numpoints * dimension * sizeof(coordT);
-  if (!(newpoints=(coordT*)qh_malloc(size))) {
+  size= numpoints * dimension * (int)sizeof(coordT);
+  if (!(newpoints=(coordT*)qh_malloc((size_t)size))) {
     qh_fprintf(qh ferr, 6004, "qhull error: insufficient memory to copy %d points\n",
         numpoints);
     qh_errexit(qh_ERRmem, NULL, NULL);
   }
-  memcpy((char *)newpoints, (char *)points, size);
+  memcpy((char *)newpoints, (char *)points, (size_t)size);
   return newpoints;
 } /* copypoints */
 
@@ -470,7 +470,7 @@ realT qh_facetarea(facetT *facet) {
       centrum= qh_getcentrum(facet);
     FOREACHridge_(facet->ridges)
       area += qh_facetarea_simplex(qh hull_dim, centrum, ridge->vertices,
-                 NULL, (ridge->top == facet),  facet->normal, &facet->offset);
+                 NULL, (boolT)(ridge->top == facet),  facet->normal, &facet->offset);
     if (qh CENTERtype != qh_AScentrum)
       qh_memfree(centrum, qh normal_size);
   }
@@ -871,7 +871,7 @@ boolT qh_inthresholds(coordT *normal, realT *angle) {
       sets the Delaunay projection
 */
 void qh_joggleinput(void) {
-  int size, i, seed;
+  int i, seed, size;
   coordT *coordp, *inputp;
   realT randr, randa, randb;
 
@@ -879,7 +879,7 @@ void qh_joggleinput(void) {
     qh input_points= qh first_point;
     qh input_malloc= qh POINTSmalloc;
     size= qh num_points * qh hull_dim * sizeof(coordT);
-    if (!(qh first_point=(coordT*)qh_malloc(size))) {
+    if (!(qh first_point=(coordT*)qh_malloc((size_t)size))) {
       qh_fprintf(qh ferr, 6009, "qhull error: insufficient memory to joggle %d points\n",
           qh num_points);
       qh_errexit(qh_ERRmem, NULL, NULL);
@@ -1340,7 +1340,7 @@ coordT qh_pointdist(pointT *point1, pointT *point2, int dim) {
   notes:
     print a vector by qh_printmatrix(fp, "", &vect, 1, len)
 */
-void qh_printmatrix(FILE *fp, char *string, realT **rows, int numrow, int numcol) {
+void qh_printmatrix(FILE *fp, const char *string, realT **rows, int numrow, int numcol) {
   realT *rowp;
   realT r; /*bug fix*/
   int i,k;
@@ -1364,7 +1364,7 @@ void qh_printmatrix(FILE *fp, char *string, realT **rows, int numrow, int numcol
     print pointids to fp for a set of points
     if string, prints string and 'p' point ids
 */
-void qh_printpoints(FILE *fp, char *string, setT *points) {
+void qh_printpoints(FILE *fp, const char *string, setT *points) {
   pointT *point, **pointp;
 
   if (string) {
@@ -1428,7 +1428,7 @@ void qh_projectinput(void) {
   realT paraboloid, maxboloid= 0;
 
   project= (signed char*)qh_memalloc(size);
-  memset((char*)project, 0, size);
+  memset((char*)project, 0, (size_t)size);
   for (k=0; k < qh input_dim; k++) {   /* skip Delaunay bound */
     if (qh lower_bound[k] == 0 && qh upper_bound[k] == 0) {
       project[k]= -1;
@@ -1465,7 +1465,7 @@ void qh_projectinput(void) {
     qh_projectpoints(project, qh input_dim, qh feasible_point,
 		      1, qh input_dim, qh feasible_point, newdim);
   }
-  qh_memfree(project, ((qh input_dim+1)*sizeof(*project)));
+  qh_memfree(project, (qh input_dim+1)*sizeof(*project));
   if (qh POINTSmalloc)
     qh_free(qh first_point);
   qh first_point= newpoints;
diff --git a/src/global.c b/src/global.c
index eb636ebb660ae92d611d9ac42439e67b9697bc5e..bf943c757c2c1047af6b464e7c0b209082eb850a 100644
--- a/src/global.c
+++ b/src/global.c
@@ -11,9 +11,9 @@
 
    see qhull_a.h for internal functions
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/global.c#47 $$Change: 1111 $
-   $DateTime: 2009/12/10 22:15:38 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/global.c#50 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
  */
 
 #include "qhull_a.h"
@@ -47,7 +47,7 @@ qhT qh_qh;     		/* all global variables.
     recompile user_eg.c, rbox.c, libqhull.c, qconvex.c, qdelaun.c qvoronoi.c, qhalf.c
 */
 
-char *qh_version = "2009.0.1 2009/12/08";
+const char *qh_version = "2010.0.1 2010/01/02";
 
 /*-<a                             href="qh-globa.htm#TOC"
   >-------------------------------</a><a name="appendprint">-</a>
@@ -83,7 +83,8 @@ void qh_appendprint(qh_PRINT format) {
     qh_initflags() initializes Qhull according to commandStr
 */
 void qh_checkflags(char *command, char *hiddenflags) {
-  char *s= command, *t, *chkerr, key, opt, prevopt;
+  char *s= command, *t, *chkerr; /* qh_skipfilename is non-const */
+  char key, opt, prevopt;
   char chkkey[]= "   ";
   char chkopt[]=  "    ";
   char chkopt2[]= "     ";
@@ -349,7 +350,7 @@ void qh_freebuild(boolT allmem) {
       if (vertex->next)
         qh_delvertex(vertex);
       else {
-        qh_memfree(vertex, sizeof(vertexT));
+        qh_memfree(vertex, (int)sizeof(vertexT));
         qh newvertex_list= qh vertex_list= NULL;
       }
     }
@@ -376,7 +377,7 @@ void qh_freebuild(boolT allmem) {
       FOREACHridge_(facet->ridges) {
         if (ridge->seen) {
           qh_setfree(&(ridge->vertices));
-          qh_memfree(ridge, sizeof(ridgeT));
+          qh_memfree(ridge, (int)sizeof(ridgeT));
         }else
           ridge->seen= True;
       }
@@ -388,7 +389,7 @@ void qh_freebuild(boolT allmem) {
       if (facet->next)
         qh_delfacet(facet);
       else {
-        qh_memfree(facet, sizeof(facetT));
+        qh_memfree(facet, (int)sizeof(facetT));
         qh visible_list= qh newfacet_list= qh facet_list= NULL;
       }
     }
@@ -407,7 +408,7 @@ void qh_freebuild(boolT allmem) {
   qh_memfree(qh interior_point, qh normal_size);
   qh interior_point= NULL;
   FOREACHmerge_(qh facet_mergeset)  /* usually empty */
-    qh_memfree(merge, sizeof(mergeT));
+    qh_memfree(merge, (int)sizeof(mergeT));
   qh facet_mergeset= NULL;  /* temp set */
   qh degen_mergeset= NULL;  /* temp set */
   qh_settempfree_all();
@@ -570,7 +571,7 @@ void qh_init_B(coordT *points, int numpoints, int dim, boolT ismalloc) {
 */
 void qh_init_qhull_command(int argc, char *argv[]) {
 
-  if (!qh_argv_to_command(argc, argv, qh qhull_command, sizeof(qh qhull_command))){
+  if (!qh_argv_to_command(argc, argv, qh qhull_command, (int)sizeof(qh qhull_command))){
     qh_exit(qh_ERRinput);  /* error reported, can not use qh_errexit */
   }
 } /* init_qhull_command */
@@ -722,11 +723,11 @@ void qh_initflags(char *command) {
 	qh_strtod(s, &t);
       }
       if (start < t) {
-        if (!(qh feasible_string= (char*)calloc(t-start+1, 1))) {
+        if (!(qh feasible_string= (char*)calloc((size_t)(t-start+1), (size_t)1))) {
           qh_fprintf(qh ferr, 6034, "qhull error: insufficient memory for 'Hn,n,n'\n");
           qh_errexit(qh_ERRmem, NULL, NULL);
         }
-        strncpy(qh feasible_string, start, t-start);
+        strncpy(qh feasible_string, start, (size_t)(t-start));
         qh_option("Halfspace-about", NULL, NULL);
         qh_option(qh feasible_string, NULL, NULL);
       }else
@@ -1308,7 +1309,7 @@ void qh_initflags(char *command) {
           {
             char filename[qh_FILENAMElen];
 
-            qh_copyfilename(filename, sizeof(filename), s, (int)(t-s));   /* WARN64 */
+            qh_copyfilename(filename, (int)sizeof(filename), s, (int)(t-s));   /* WARN64 */
             s= t;
 	    if (!freopen(filename, "r", stdin)) {
 	      qh_fprintf(qh ferr, 6041, "qhull error: could not open file \"%s\".", filename);
@@ -1328,7 +1329,7 @@ void qh_initflags(char *command) {
             {
               char filename[qh_FILENAMElen];
 
-              qh_copyfilename(filename, sizeof(filename), s, (int)(t-s));  /* WARN64 */
+              qh_copyfilename(filename, (int)sizeof(filename), s, (int)(t-s));  /* WARN64 */
               s= t;
        	      if (!freopen(filename, "w", stdout)) {
 	        qh_fprintf(qh ferr, 6044, "qhull error: could not open file \"%s\".", filename);
@@ -1668,12 +1669,12 @@ void qh_initqhull_mem(void) {
   numsizes= 8+10;
   qh_meminitbuffers(qh IStracing, qh_MEMalign, numsizes,
                      qh_MEMbufsize,qh_MEMinitbuf);
-  qh_memsize(sizeof(vertexT));
+  qh_memsize((int)sizeof(vertexT));
   if (qh MERGING) {
-    qh_memsize(sizeof(ridgeT));
-    qh_memsize(sizeof(mergeT));
+    qh_memsize((int)sizeof(ridgeT));
+    qh_memsize((int)sizeof(mergeT));
   }
-  qh_memsize(sizeof(facetT));
+  qh_memsize((int)sizeof(facetT));
   i= sizeof(setT) + (qh hull_dim - 1) * SETelemsize;  /* ridge.vertices */
   qh_memsize(i);
   qh_memsize(qh normal_size);        /* normal */
@@ -1909,7 +1910,7 @@ void qh_initqhull_start2(FILE *infile, FILE *outfile, FILE *errfile) {
 void qh_initthresholds(char *command) {
   realT value;
   int index, maxdim, k;
-  char *s= command;
+  char *s= command; /* non-const due to strtol */
   char key;
 
   maxdim= qh input_dim;
@@ -2016,7 +2017,7 @@ void qh_initthresholds(char *command) {
     will be printed with statistics ('Ts') and errors
     strlen(option) < 40
 */
-void qh_option(char *option, int *i, realT *r) {
+void qh_option(const char *option, int *i, realT *r) {
   char buf[200];
   int len, maxlen;
 
@@ -2031,9 +2032,9 @@ void qh_option(char *option, int *i, realT *r) {
   maximize_(maxlen, 0);
   if (qh qhull_optionlen >= qh_OPTIONline && maxlen > 0) {
     qh qhull_optionlen= len;
-    strncat(qh qhull_options, "\n", maxlen--);
+    strncat(qh qhull_options, "\n", (size_t)(maxlen--));
   }
-  strncat(qh qhull_options, buf, maxlen);
+  strncat(qh qhull_options, buf, (size_t)maxlen);
 } /* option */
 
 #if qh_QHpointer
diff --git a/src/index.htm b/src/index.htm
index 94eba872ad206ad4feb50c1fd15f9b7ba9b862ca..0555d1408bbaf0a07097fc50326d4992d214afa9 100644
--- a/src/index.htm
+++ b/src/index.htm
@@ -86,7 +86,7 @@ to <a href="mailto:qhull-bug@qhull.org">qhull-bug@qhull.org</a>.
 </p>
 </blockquote>
 
-<p><b>Copyright &copy; 1997-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1997-2010 The Geometry Center, Minneapolis MN</b></p>
 
 <hr>
 
diff --git a/src/io.c b/src/io.c
index e8b95ecfa8f87d56742fee8b12ad711ff1c1d158..91b522c86a3dc6c312c080129a0fa99113002745 100644
--- a/src/io.c
+++ b/src/io.c
@@ -13,9 +13,9 @@
    unix.c and user.c are the only callers of io.c functions
    This allows the user to avoid loading io.o from qhull.a
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/io.c#30 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/io.c#33 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #include "qhull_a.h"
@@ -70,8 +70,8 @@ void qh_produce_output2(void) {
     qh_fprintf(qh ferr, 8040, "\
     size in bytes: merge %d ridge %d vertex %d facet %d\n\
          normal %d ridge vertices %d facet vertices or neighbors %d\n",
-            sizeof(mergeT), sizeof(ridgeT),
-            sizeof(vertexT), sizeof(facetT),
+            (int)sizeof(mergeT), (int)sizeof(ridgeT),
+            (int)sizeof(vertexT), (int)sizeof(facetT),
             qh normal_size, d_1, d_1 + SETelemsize);
   }
   if (qh_setsize((setT*)qhmem.tempstack) != tempsize) {
@@ -125,7 +125,7 @@ void dvertex(unsigned id) {
     used by qsort() to order vertices by point id
 */
 int qh_compare_vertexpoint(const void *p1, const void *p2) {
-  vertexT *a= *((vertexT **)p1), *b= *((vertexT **)p2);
+  const vertexT *a= *((vertexT *const*)p1), *b= *((vertexT *const*)p2);
 
   return((qh_pointid(a->point) > qh_pointid(b->point)?1:-1));
 } /* compare_vertexpoint */
@@ -137,7 +137,7 @@ int qh_compare_vertexpoint(const void *p1, const void *p2) {
     used by qsort() to order facets by area
 */
 int qh_compare_facetarea(const void *p1, const void *p2) {
-  facetT *a= *((facetT **)p1), *b= *((facetT **)p2);
+  const facetT *a= *((facetT *const*)p1), *b= *((facetT *const*)p2);
 
   if (!a->isarea)
     return -1;
@@ -157,7 +157,7 @@ int qh_compare_facetarea(const void *p1, const void *p2) {
     used by qsort() to order facets by number of merges
 */
 int qh_compare_facetmerge(const void *p1, const void *p2) {
-  facetT *a= *((facetT **)p1), *b= *((facetT **)p2);
+  const facetT *a= *((facetT *const*)p1), *b= *((facetT *const*)p2);
 
   return(a->nummerge - b->nummerge);
 } /* compare_facetvisit */
@@ -169,7 +169,7 @@ int qh_compare_facetmerge(const void *p1, const void *p2) {
     used by qsort() to order facets by visit id or id
 */
 int qh_compare_facetvisit(const void *p1, const void *p2) {
-  facetT *a= *((facetT **)p1), *b= *((facetT **)p2);
+  const facetT *a= *((facetT *const*)p1), *b= *((facetT *const*)p2);
   int i,j;
 
   if (!(i= a->visitid))
@@ -188,7 +188,7 @@ int qh_compare_facetvisit(const void *p1, const void *p2) {
   notes:
     see qh_skipfilename() for syntax
 */
-void qh_copyfilename(char *filename, int size, char* source, int length) {
+void qh_copyfilename(char *filename, int size, const char* source, int length) {
   char c= *source;
 
   if (length > size + 1) {
@@ -489,7 +489,7 @@ setT *qh_detvridge(vertexT *vertex) {
       }
     }
   }
-  qsort(SETaddr_(centers, facetT), qh_setsize(centers),
+  qsort(SETaddr_(centers, facetT), (size_t)qh_setsize(centers),
              sizeof(facetT *), qh_compare_facetvisit);
   qh_settempfree(&tricenters);
   return centers;
@@ -690,7 +690,7 @@ int qh_eachvoronoi(FILE *fp, printvridgeT printvridge, vertexT *atvertex, boolT
 /*-<a                             href="qh-poly.htm#TOC"
   >-------------------------------</a><a name="eachvoronoi_all">-</a>
 
-  qh_eachvoronoi_all( fp, printvridge, isupper, innerouter, inorder )
+  qh_eachvoronoi_all( fp, printvridge, isUpper, innerouter, inorder )
     visit all Voronoi ridges
 
     innerouter:
@@ -702,7 +702,7 @@ int qh_eachvoronoi(FILE *fp, printvridgeT printvridge, vertexT *atvertex, boolT
   returns
     total number of ridges
 
-    if isupper == facet->upperdelaunay  (i.e., a Vornoi vertex)
+    if isUpper == facet->upperdelaunay  (i.e., a Vornoi vertex)
       facet->visitid= Voronoi vertex index(same as 'o' format)
     else
       facet->visitid= 0
@@ -715,7 +715,7 @@ int qh_eachvoronoi(FILE *fp, printvridgeT printvridge, vertexT *atvertex, boolT
     Not used for qhull.exe
     same effect as qh_printvdiagram but ridges not sorted by point id
 */
-int qh_eachvoronoi_all(FILE *fp, printvridgeT printvridge, boolT isupper, qh_RIDGE innerouter, boolT inorder) {
+int qh_eachvoronoi_all(FILE *fp, printvridgeT printvridge, boolT isUpper, qh_RIDGE innerouter, boolT inorder) {
   facetT *facet;
   vertexT *vertex;
   int numcenters= 1;  /* vertex 0 is vertex-at-infinity */
@@ -730,7 +730,7 @@ int qh_eachvoronoi_all(FILE *fp, printvridgeT printvridge, boolT isupper, qh_RID
     facet->seen2= True;
   }
   FORALLfacets {
-    if (facet->upperdelaunay == isupper)
+    if (facet->upperdelaunay == isUpper)
       facet->visitid= numcenters++;
   }
   FORALLvertices
@@ -899,7 +899,7 @@ void qh_markkeep(facetT *facetlist) {
   }
   size= qh_setsize(facets);
   if (qh KEEParea) {
-    qsort(SETaddr_(facets, facetT), size,
+    qsort(SETaddr_(facets, facetT), (size_t)size,
              sizeof(facetT *), qh_compare_facetarea);
     if ((count= size - qh KEEParea) > 0) {
       FOREACHfacet_(facets) {
@@ -910,7 +910,7 @@ void qh_markkeep(facetT *facetlist) {
     }
   }
   if (qh KEEPmerge) {
-    qsort(SETaddr_(facets, facetT), size,
+    qsort(SETaddr_(facets, facetT), (size_t)size,
              sizeof(facetT *), qh_compare_facetmerge);
     if ((count= size - qh KEEPmerge) > 0) {
       FOREACHfacet_(facets) {
@@ -939,12 +939,12 @@ void qh_markkeep(facetT *facetlist) {
 /*-<a                             href="qh-io.htm#TOC"
   >-------------------------------</a><a name="markvoronoi">-</a>
 
-  qh_markvoronoi( facetlist, facets, printall, islower, numcenters )
+  qh_markvoronoi( facetlist, facets, printall, isLower, numcenters )
     mark voronoi vertices for printing by site pairs
 
   returns:
     temporary set of vertices indexed by pointid
-    islower set if printing lower hull (i.e., at least one facet is lower hull)
+    isLower set if printing lower hull (i.e., at least one facet is lower hull)
     numcenters= total number of Voronoi vertices
     bumps qh.printoutnum for vertex-at-infinity
     clears all facet->seen and sets facet->seen2
@@ -959,11 +959,11 @@ void qh_markkeep(facetT *facetlist) {
   notes:
     ignores qh.ATinfinity, if defined
 */
-setT *qh_markvoronoi(facetT *facetlist, setT *facets, boolT printall, boolT *islowerp, int *numcentersp) {
+setT *qh_markvoronoi(facetT *facetlist, setT *facets, boolT printall, boolT *isLowerp, int *numcentersp) {
   int numcenters=0;
   facetT *facet, **facetp;
   setT *vertices;
-  boolT islower= False;
+  boolT isLower= False;
 
   qh printoutnum++;
   qh_clearcenters(qh_ASvoronoi);  /* in case, qh_printvdiagram2 called by user */
@@ -976,7 +976,7 @@ setT *qh_markvoronoi(facetT *facetlist, setT *facets, boolT printall, boolT *isl
   FORALLfacet_(facetlist) {
     if (printall || !qh_skipfacet(facet)) {
       if (!facet->upperdelaunay) {
-        islower= True;
+        isLower= True;
         break;
       }
     }
@@ -984,13 +984,13 @@ setT *qh_markvoronoi(facetT *facetlist, setT *facets, boolT printall, boolT *isl
   FOREACHfacet_(facets) {
     if (printall || !qh_skipfacet(facet)) {
       if (!facet->upperdelaunay) {
-        islower= True;
+        isLower= True;
         break;
       }
     }
   }
   FORALLfacets {
-    if (facet->normal && (facet->upperdelaunay == islower))
+    if (facet->normal && (facet->upperdelaunay == isLower))
       facet->visitid= 0;  /* facetlist or facets may overwrite */
     else
       facet->visitid= qh visit_id;
@@ -1006,9 +1006,9 @@ setT *qh_markvoronoi(facetT *facetlist, setT *facets, boolT printall, boolT *isl
     if (printall || !qh_skipfacet(facet))
       facet->visitid= numcenters++;
   }
-  *islowerp= islower;
+  *isLowerp= isLower;
   *numcentersp= numcenters;
-  trace2((qh ferr, 2007, "qh_markvoronoi: islower %d numcenters %d\n", islower, numcenters));
+  trace2((qh ferr, 2007, "qh_markvoronoi: isLower %d numcenters %d\n", isLower, numcenters));
   return vertices;
 } /* markvoronoi */
 
@@ -1108,7 +1108,7 @@ void qh_prepare_output(void) {
     call appropriate routine for format
     or output results directly
 */
-void qh_printafacet(FILE *fp, int format, facetT *facet, boolT printall) {
+void qh_printafacet(FILE *fp, qh_PRINT format, facetT *facet, boolT printall) {
   realT color[4], offset, dist, outerplane, innerplane;
   boolT zerodiv;
   coordT *point, *normp, *coordp, **pointp, *feasiblep;
@@ -1278,6 +1278,8 @@ void qh_printafacet(FILE *fp, int format, facetT *facet, boolT printall) {
       qh_fprintf(fp, 9031, " %d", qh_pointid(vertex->point));
     qh_fprintf(fp, 9032, "\n");
     break;
+  default:
+    break;
   }
 } /* printafacet */
 
@@ -1302,7 +1304,7 @@ void qh_printafacet(FILE *fp, int format, facetT *facet, boolT printall) {
     count facets and related statistics
     print header for format
 */
-void qh_printbegin(FILE *fp, int format, facetT *facetlist, setT *facets, boolT printall) {
+void qh_printbegin(FILE *fp, qh_PRINT format, facetT *facetlist, setT *facets, boolT printall) {
   int numfacets, numsimplicial, numridges, totneighbors, numcoplanars, numtricoplanars;
   int i, num;
   facetT *facet, **facetp;
@@ -1576,7 +1578,7 @@ void qh_printbegin(FILE *fp, int format, facetT *facetlist, setT *facets, boolT
     if format=PRINTgeom, adds a 0 if would otherwise be 2-d
     Same as QhullFacet::printCenter
 */
-void qh_printcenter(FILE *fp, int format, char *string, facetT *facet) {
+void qh_printcenter(FILE *fp, qh_PRINT format, const char *string, facetT *facet) {
   int k, num;
 
   if (qh CENTERtype != qh_ASvoronoi && qh CENTERtype != qh_AScentrum)
@@ -1683,7 +1685,7 @@ void qh_printcentrum(FILE *fp, facetT *facet, realT radius) {
     qh_printbegin() and qh_printafacet()
 
 */
-void qh_printend(FILE *fp, int format, facetT *facetlist, setT *facets, boolT printall) {
+void qh_printend(FILE *fp, qh_PRINT format, facetT *facetlist, setT *facets, boolT printall) {
   int num;
   facetT *facet, **facetp;
 
@@ -1721,6 +1723,8 @@ void qh_printend(FILE *fp, int format, facetT *facetlist, setT *facets, boolT pr
     if (qh CDDoutput)
       qh_fprintf(fp, 9083, "end\n");
     break;
+  default:
+    break;
   }
 } /* printend */
 
@@ -1799,7 +1803,7 @@ void qh_printend4geom(FILE *fp, facetT *facet, int *nump, boolT printall) {
     sorted by id
     same order as qh_printpoints_out if no coplanar/interior points
 */
-void qh_printextremes(FILE *fp, facetT *facetlist, setT *facets, int printall) {
+void qh_printextremes(FILE *fp, facetT *facetlist, setT *facets, boolT printall) {
   setT *vertices, *points;
   pointT *point;
   vertexT *vertex, **vertexp;
@@ -1838,7 +1842,7 @@ void qh_printextremes(FILE *fp, facetT *facetlist, setT *facets, int printall) {
     errors if facets form a loop
     does not print coplanar points
 */
-void qh_printextremes_2d(FILE *fp, facetT *facetlist, setT *facets, int printall) {
+void qh_printextremes_2d(FILE *fp, facetT *facetlist, setT *facets, boolT printall) {
   int numfacets, numridges, totneighbors, numcoplanars, numsimplicial, numtricoplanars;
   setT *vertices;
   facetT *facet, *startfacet, *nextfacet;
@@ -1895,7 +1899,7 @@ void qh_printextremes_2d(FILE *fp, facetT *facetlist, setT *facets, int printall
 
     unordered
 */
-void qh_printextremes_d(FILE *fp, facetT *facetlist, setT *facets, int printall) {
+void qh_printextremes_d(FILE *fp, facetT *facetlist, setT *facets, boolT printall) {
   setT *vertices;
   vertexT *vertex, **vertexp;
   boolT upperseen, lowerseen;
@@ -2010,10 +2014,10 @@ void qh_printfacet2geom_points(FILE *fp, pointT *point1, pointT *point2,
     use %16.8f since Mathematica 2.2 does not handle exponential format
     see qh_printfacet3math
 */
-void qh_printfacet2math(FILE *fp, facetT *facet, int format, int notfirst) {
+void qh_printfacet2math(FILE *fp, facetT *facet, qh_PRINT format, int notfirst) {
   pointT *point0, *point1;
   realT mindist;
-  char *pointfmt;
+  const char *pointfmt;
 
   qh_facet2point(facet, &point0, &point1, &mindist);
   if (notfirst)
@@ -2196,13 +2200,13 @@ void qh_printfacet3geom_simplicial(FILE *fp, facetT *facet, realT color[3]) {
     use %16.8f since Mathematica 2.2 does not handle exponential format
     see qh_printfacet2math
 */
-void qh_printfacet3math(FILE *fp, facetT *facet, int format, int notfirst) {
+void qh_printfacet3math(FILE *fp, facetT *facet, qh_PRINT format, int notfirst) {
   vertexT *vertex, **vertexp;
   setT *points, *vertices;
   pointT *point, **pointp;
   boolT firstpoint= True;
   realT dist;
-  char *pointfmt, *endfmt;
+  const char *pointfmt, *endfmt;
 
   if (notfirst)
     qh_fprintf(fp, 9105, ",\n");
@@ -2248,7 +2252,7 @@ void qh_printfacet3math(FILE *fp, facetT *facet, int format, int notfirst) {
     prints number of vertices first if format == qh_PRINToff
     the facet may be non-simplicial
 */
-void qh_printfacet3vertex(FILE *fp, facetT *facet, int format) {
+void qh_printfacet3vertex(FILE *fp, facetT *facet, qh_PRINT format) {
   vertexT *vertex, **vertexp;
   setT *vertices;
 
@@ -2376,7 +2380,7 @@ void qh_printfacet4geom_simplicial(FILE *fp, facetT *facet, realT color[3]) {
     print vertices for an N-d non-simplicial facet
     triangulates each ridge to the id
 */
-void qh_printfacetNvertex_nonsimplicial(FILE *fp, facetT *facet, int id, int format) {
+void qh_printfacetNvertex_nonsimplicial(FILE *fp, facetT *facet, int id, qh_PRINT format) {
   vertexT *vertex, **vertexp;
   ridgeT *ridge, **ridgep;
 
@@ -2407,7 +2411,7 @@ void qh_printfacetNvertex_nonsimplicial(FILE *fp, facetT *facet, int id, int for
       2-d facets (orientation preserved by qh_mergefacet2d)
       PRINToff ('o') for 4-d and higher
 */
-void qh_printfacetNvertex_simplicial(FILE *fp, facetT *facet, int format) {
+void qh_printfacetNvertex_simplicial(FILE *fp, facetT *facet, qh_PRINT format) {
   vertexT *vertex, **vertexp;
 
   if (format == qh_PRINToff || format == qh_PRINTtriangles)
@@ -2634,7 +2638,7 @@ void qh_printfacetridges(FILE *fp, facetT *facet) {
     also used for specialized formats ('FO' and summary)
     turns off 'Rn' option since want actual numbers
 */
-void qh_printfacets(FILE *fp, int format, facetT *facetlist, setT *facets, boolT printall) {
+void qh_printfacets(FILE *fp, qh_PRINT format, facetT *facetlist, setT *facets, boolT printall) {
   int numfacets, numsimplicial, numridges, totneighbors, numcoplanars, numtricoplanars;
   facetT *facet, **facetp;
   setT *vertices;
@@ -2800,7 +2804,7 @@ void qh_printline3geom(FILE *fp, pointT *pointA, pointT *pointB, realT color[3])
     calls qh_findgood_all()
     bumps qh.visit_id
 */
-void qh_printneighborhood(FILE *fp, int format, facetT *facetA, facetT *facetB, boolT printall) {
+void qh_printneighborhood(FILE *fp, qh_PRINT format, facetT *facetA, facetT *facetB, boolT printall) {
   facetT *neighbor, **neighborp, *facet;
   setT *facets;
 
@@ -2844,13 +2848,13 @@ void qh_printneighborhood(FILE *fp, int format, facetT *facetA, facetT *facetB,
     prints id unless it is undefined (-1)
     Same as QhullPoint's printPoint
 */
-void qh_printpoint(FILE *fp, char *string, pointT *point) {
+void qh_printpoint(FILE *fp, const char *string, pointT *point) {
   int id= qh_pointid( point);
 
   qh_printpointid( fp, string, qh hull_dim, point, id);
 } /* printpoint */
 
-void qh_printpointid(FILE *fp, char *string, int dim, pointT *point, int id) {
+void qh_printpointid(FILE *fp, const char *string, int dim, pointT *point, int id) {
   int k;
   realT r; /*bug fix*/
 
@@ -2904,7 +2908,7 @@ void qh_printpoint3 (FILE *fp, pointT *point) {
     if no coplanar/interior points,
       same order as qh_printextremes
 */
-void qh_printpoints_out(FILE *fp, facetT *facetlist, setT *facets, int printall) {
+void qh_printpoints_out(FILE *fp, facetT *facetlist, setT *facets, boolT printall) {
   int allpoints= qh num_points + qh_setsize(qh other_points);
   int numpoints=0, point_i, point_n;
   setT *vertices, *points;
@@ -3131,10 +3135,10 @@ INST geom {define vsphere OFF\n\
     if all facets are upperdelaunay,
       prints upper hull (furthest-site Voronoi diagram)
 */
-void qh_printvdiagram(FILE *fp, int format, facetT *facetlist, setT *facets, boolT printall) {
+void qh_printvdiagram(FILE *fp, qh_PRINT format, facetT *facetlist, setT *facets, boolT printall) {
   setT *vertices;
   int totcount, numcenters;
-  boolT islower;
+  boolT isLower;
   qh_RIDGE innerouter= qh_RIDGEall;
   printvridgeT printvridge= NULL;
 
@@ -3151,7 +3155,7 @@ void qh_printvdiagram(FILE *fp, int format, facetT *facetlist, setT *facets, boo
     qh_fprintf(qh ferr, 6219, "Qhull internal error (qh_printvdiagram): unknown print format %d.\n", format);
     qh_errexit(qh_ERRinput, NULL, NULL);
   }
-  vertices= qh_markvoronoi(facetlist, facets, printall, &islower, &numcenters);
+  vertices= qh_markvoronoi(facetlist, facets, printall, &isLower, &numcenters);
   totcount= qh_printvdiagram2 (NULL, NULL, vertices, innerouter, False);
   qh_fprintf(fp, 9231, "%d\n", totcount);
   totcount= qh_printvdiagram2 (fp, printvridge, vertices, innerouter, True /* inorder*/);
@@ -3258,7 +3262,7 @@ void qh_printvertex(FILE *fp, vertexT *vertex) {
     prints vertices used by a facetlist or facet set
     tests qh_skipfacet() if !printall
 */
-void qh_printvertexlist(FILE *fp, char* string, facetT *facetlist,
+void qh_printvertexlist(FILE *fp, const char* string, facetT *facetlist,
                          setT *facets, boolT printall) {
   vertexT *vertex, **vertexp;
   setT *vertices;
@@ -3278,7 +3282,7 @@ void qh_printvertexlist(FILE *fp, char* string, facetT *facetlist,
     prints vertices in a set
     duplicated as printVertexSet [QhullVertex.cpp]
 */
-void qh_printvertices(FILE *fp, char* string, setT *vertices) {
+void qh_printvertices(FILE *fp, const char* string, setT *vertices) {
   vertexT *vertex, **vertexp;
 
   qh_fprintf(fp, 9245, "%s", string);
@@ -3339,7 +3343,7 @@ void qh_printvneighbors(FILE *fp, facetT* facetlist, setT *facets, boolT printal
       if (qh hull_dim == 3)
         qh_order_vertexneighbors(vertex);
       else if (qh hull_dim >= 4)
-        qsort(SETaddr_(vertex->neighbors, facetT), numneighbors,
+        qsort(SETaddr_(vertex->neighbors, facetT), (size_t)numneighbors,
              sizeof(facetT *), qh_compare_facetvisit);
       FOREACHneighbor_(vertex)
         qh_fprintf(fp, 9250, " %d",
@@ -3379,15 +3383,15 @@ void qh_printvneighbors(FILE *fp, facetT* facetlist, setT *facets, boolT printal
     if all facets are upperdelaunay,
       reverses lower and upper hull
 */
-void qh_printvoronoi(FILE *fp, int format, facetT *facetlist, setT *facets, boolT printall) {
+void qh_printvoronoi(FILE *fp, qh_PRINT format, facetT *facetlist, setT *facets, boolT printall) {
   int k, numcenters, numvertices= 0, numneighbors, numinf, vid=1, vertex_i, vertex_n;
   facetT *facet, **facetp, *neighbor, **neighborp;
   setT *vertices;
   vertexT *vertex;
-  boolT islower;
+  boolT isLower;
   unsigned int numfacets= (unsigned int) qh num_facets;
 
-  vertices= qh_markvoronoi(facetlist, facets, printall, &islower, &numcenters);
+  vertices= qh_markvoronoi(facetlist, facets, printall, &isLower, &numcenters);
   FOREACHvertex_i_(vertices) {
     if (vertex) {
       numvertices++;
@@ -3440,7 +3444,7 @@ void qh_printvoronoi(FILE *fp, int format, facetT *facetlist, setT *facets, bool
         qh_order_vertexneighbors(vertex);
       else if (qh hull_dim >= 4)
         qsort(SETaddr_(vertex->neighbors, vertexT),
-             qh_setsize(vertex->neighbors),
+             (size_t)qh_setsize(vertex->neighbors),
              sizeof(facetT *), qh_compare_facetvisit);
       FOREACHneighbor_(vertex) {
         if (neighbor->visitid == 0)
@@ -3505,6 +3509,7 @@ void qh_printvnorm(FILE *fp, vertexT *vertex, vertexT *vertexA, setT *centers, b
   pointT *normal;
   realT offset;
   int k;
+  QHULL_UNUSED(unbounded);
 
   normal= qh_detvnorm(vertex, vertexA, centers, &offset);
   qh_fprintf(fp, 9271, "%d %d %d ",
@@ -3531,6 +3536,7 @@ void qh_printvnorm(FILE *fp, vertexT *vertex, vertexT *vertexA, setT *centers, b
 */
 void qh_printvridge(FILE *fp, vertexT *vertex, vertexT *vertexA, setT *centers, boolT unbounded) {
   facetT *facet, **facetp;
+  QHULL_UNUSED(unbounded);
 
   qh_fprintf(fp, 9275, "%d %d %d", qh_setsize(centers)+2,
        qh_pointid(vertex->point), qh_pointid(vertexA->point));
@@ -3569,8 +3575,8 @@ void qh_projectdim3 (pointT *source, pointT *destination) {
 /*-<a                             href="qh-io.htm#TOC"
   >-------------------------------</a><a name="readfeasible">-</a>
 
-  qh_readfeasible( dim, remainder )
-    read feasible point from remainder string and qh.fin
+  qh_readfeasible( dim, curline )
+    read feasible point from current line and qh.fin
 
   returns:
     number of lines read from qh.fin
@@ -3583,10 +3589,11 @@ void qh_projectdim3 (pointT *source, pointT *destination) {
   see:
     qh_setfeasible
 */
-int qh_readfeasible(int dim, char *remainder) {
+int qh_readfeasible(int dim, const char *curline) {
   boolT isfirst= True;
   int linecount= 0, tokcount= 0;
-  char *s, *t, firstline[qh_MAXfirst+1];
+  const char *s;
+  char *t, firstline[qh_MAXfirst+1];
   coordT *coords, value;
 
   if (!qh HALFspace) {
@@ -3600,7 +3607,7 @@ int qh_readfeasible(int dim, char *remainder) {
     qh_errexit(qh_ERRmem, NULL, NULL);
   }
   coords= qh feasible_point;
-  while ((s= (isfirst ?  remainder : fgets(firstline, qh_MAXfirst, qh fin)))) {
+  while ((s= (isfirst ?  curline : fgets(firstline, qh_MAXfirst, qh fin)))) {
     if (isfirst)
       isfirst= False;
     else
@@ -3686,7 +3693,7 @@ coordT *qh_readpoints(int *numpoints, int *dimension, boolT *ismalloc) {
           linecount += qh_readfeasible(dimfeasible, s);
         else
           dimfeasible= 0;
-      }else if (!memcmp(firstline, "begin", 5) || !memcmp(firstline, "BEGIN", 5))
+      }else if (!memcmp(firstline, "begin", (size_t)5) || !memcmp(firstline, "BEGIN", (size_t)5))
         break;
       else if (!*qh rbox_command)
         strncat(qh rbox_command, s, sizeof(qh rbox_command)-1);
@@ -3698,7 +3705,7 @@ coordT *qh_readpoints(int *numpoints, int *dimension, boolT *ismalloc) {
   }
   while (!numinput && (s= fgets(firstline, qh_MAXfirst, qh fin))) {
     linecount++;
-    if (!memcmp(s, "begin", 5) || !memcmp(s, "BEGIN", 5))
+    if (!memcmp(s, "begin", (size_t)5) || !memcmp(s, "BEGIN", (size_t)5))
       wasbegin= True;
     while (*s) {
       while (isspace(*s))
@@ -3773,7 +3780,7 @@ coordT *qh_readpoints(int *numpoints, int *dimension, boolT *ismalloc) {
   }
   qh normal_size= *dimension * sizeof(coordT); /* for tracing with qh_printpoint */
   if (qh HALFspace) {
-    qh half_space= coordp= (coordT*) qh_malloc(qh normal_size + sizeof(coordT));
+    qh half_space= coordp= (coordT*)qh_malloc(qh normal_size + sizeof(coordT));
     if (qh CDDinput) {
       offsetp= qh half_space;
       normalp= offsetp + 1;
@@ -3804,7 +3811,7 @@ coordT *qh_readpoints(int *numpoints, int *dimension, boolT *ismalloc) {
     if (!isfirst) {
       linecount++;
       if (*s == 'e' || *s == 'E') {
-        if (!memcmp(s, "end", 3) || !memcmp(s, "END", 3)) {
+        if (!memcmp(s, "end", (size_t)3) || !memcmp(s, "END", (size_t)3)) {
           if (qh CDDinput )
             break;
           else if (wasbegin)
@@ -3968,7 +3975,7 @@ qhull input error: halfspace intersection needs a feasible point.\n\
 Either prepend the input with 1 point or use 'Hn,n,n'.  See manual.\n");
     qh_errexit(qh_ERRinput, NULL, NULL);
   }
-  if (!(qh feasible_point= (pointT*)qh_malloc(dim* sizeof(coordT)))) {
+  if (!(qh feasible_point= (pointT*)qh_malloc(dim * sizeof(coordT)))) {
     qh_fprintf(qh ferr, 6079, "qhull error: insufficient memory for 'Hn,n,n'\n");
     qh_errexit(qh_ERRmem, NULL, NULL);
   }
@@ -4028,7 +4035,7 @@ boolT qh_skipfacet(facetT *facet) {
     For qhull, qh_argv_to_command() only uses double quotes 
 */
 char *qh_skipfilename(char *filename) {
-  char *s= filename;
+  char *s= filename;  /* non-const due to return */
   char c;
 
   while (*s && isspace(*s)) 
diff --git a/src/io.h b/src/io.h
index 9e238673a63911aef973a147b018e923e6df65ac..e622463faac6faaf4bfc385d0ffc35e00050b394 100644
--- a/src/io.h
+++ b/src/io.h
@@ -6,9 +6,9 @@
 
    see README, libqhull.h and io.c
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/io.h#22 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/io.h#24 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #ifndef qhDEFio
@@ -83,7 +83,7 @@ int	qh_compare_facetarea(const void *p1, const void *p2);
 int	qh_compare_facetmerge(const void *p1, const void *p2);
 int	qh_compare_facetvisit(const void *p1, const void *p2);
 int	qh_compare_vertexpoint(const void *p1, const void *p2); /* not used */
-void    qh_copyfilename(char *filename, int size, char* source, int length);
+void    qh_copyfilename(char *filename, int size, const char* source, int length);
 void    qh_countfacets(facetT *facetlist, setT *facets, boolT printall, 
               int *numfacetsp, int *numsimplicialp, int *totneighborsp, 
               int *numridgesp, int *numcoplanarsp, int *numnumtricoplanarsp);
@@ -91,66 +91,66 @@ pointT *qh_detvnorm(vertexT *vertex, vertexT *vertexA, setT *centers, realT *off
 setT   *qh_detvridge(vertexT *vertex);
 setT   *qh_detvridge3 (vertexT *atvertex, vertexT *vertex);
 int     qh_eachvoronoi(FILE *fp, printvridgeT printvridge, vertexT *atvertex, boolT visitall, qh_RIDGE innerouter, boolT inorder);
-int     qh_eachvoronoi_all(FILE *fp, printvridgeT printvridge, boolT isupper, qh_RIDGE innerouter, boolT inorder);
+int     qh_eachvoronoi_all(FILE *fp, printvridgeT printvridge, boolT isUpper, qh_RIDGE innerouter, boolT inorder);
 void	qh_facet2point(facetT *facet, pointT **point0, pointT **point1, realT *mindist);
 setT   *qh_facetvertices(facetT *facetlist, setT *facets, boolT allfacets);
 void    qh_geomplanes(facetT *facet, realT *outerplane, realT *innerplane);
 void    qh_markkeep(facetT *facetlist);
-setT   *qh_markvoronoi(facetT *facetlist, setT *facets, boolT printall, boolT *islowerp, int *numcentersp);
+setT   *qh_markvoronoi(facetT *facetlist, setT *facets, boolT printall, boolT *isLowerp, int *numcentersp);
 void    qh_order_vertexneighbors(vertexT *vertex);
 void    qh_prepare_output(void);
-void	qh_printafacet(FILE *fp, int format, facetT *facet, boolT printall);
-void    qh_printbegin(FILE *fp, int format, facetT *facetlist, setT *facets, boolT printall);
-void 	qh_printcenter(FILE *fp, int format, char *string, facetT *facet);
+void	qh_printafacet(FILE *fp, qh_PRINT format, facetT *facet, boolT printall);
+void    qh_printbegin(FILE *fp, qh_PRINT format, facetT *facetlist, setT *facets, boolT printall);
+void 	qh_printcenter(FILE *fp, qh_PRINT format, const char *string, facetT *facet);
 void    qh_printcentrum(FILE *fp, facetT *facet, realT radius);
-void    qh_printend(FILE *fp, int format, facetT *facetlist, setT *facets, boolT printall);
+void    qh_printend(FILE *fp, qh_PRINT format, facetT *facetlist, setT *facets, boolT printall);
 void    qh_printend4geom(FILE *fp, facetT *facet, int *num, boolT printall);
-void    qh_printextremes(FILE *fp, facetT *facetlist, setT *facets, int printall);
-void    qh_printextremes_2d(FILE *fp, facetT *facetlist, setT *facets, int printall);
-void    qh_printextremes_d(FILE *fp, facetT *facetlist, setT *facets, int printall);
+void    qh_printextremes(FILE *fp, facetT *facetlist, setT *facets, boolT printall);
+void    qh_printextremes_2d(FILE *fp, facetT *facetlist, setT *facets, boolT printall);
+void    qh_printextremes_d(FILE *fp, facetT *facetlist, setT *facets, boolT printall);
 void	qh_printfacet(FILE *fp, facetT *facet);
-void	qh_printfacet2math(FILE *fp, facetT *facet, int format, int notfirst);
+void	qh_printfacet2math(FILE *fp, facetT *facet, qh_PRINT format, int notfirst);
 void	qh_printfacet2geom(FILE *fp, facetT *facet, realT color[3]);
 void    qh_printfacet2geom_points(FILE *fp, pointT *point1, pointT *point2,
 			       facetT *facet, realT offset, realT color[3]);
-void	qh_printfacet3math(FILE *fp, facetT *facet, int format, int notfirst);
+void	qh_printfacet3math(FILE *fp, facetT *facet, qh_PRINT format, int notfirst);
 void	qh_printfacet3geom_nonsimplicial(FILE *fp, facetT *facet, realT color[3]);
 void	qh_printfacet3geom_points(FILE *fp, setT *points, facetT *facet, realT offset, realT color[3]);
 void	qh_printfacet3geom_simplicial(FILE *fp, facetT *facet, realT color[3]);
-void	qh_printfacet3vertex(FILE *fp, facetT *facet, int format);
+void	qh_printfacet3vertex(FILE *fp, facetT *facet, qh_PRINT format);
 void	qh_printfacet4geom_nonsimplicial(FILE *fp, facetT *facet, realT color[3]);
 void	qh_printfacet4geom_simplicial(FILE *fp, facetT *facet, realT color[3]);
-void	qh_printfacetNvertex_nonsimplicial(FILE *fp, facetT *facet, int id, int format);
-void	qh_printfacetNvertex_simplicial(FILE *fp, facetT *facet, int format);
+void	qh_printfacetNvertex_nonsimplicial(FILE *fp, facetT *facet, int id, qh_PRINT format);
+void	qh_printfacetNvertex_simplicial(FILE *fp, facetT *facet, qh_PRINT format);
 void    qh_printfacetheader(FILE *fp, facetT *facet);
 void    qh_printfacetridges(FILE *fp, facetT *facet);
-void	qh_printfacets(FILE *fp, int format, facetT *facetlist, setT *facets, boolT printall);
+void	qh_printfacets(FILE *fp, qh_PRINT format, facetT *facetlist, setT *facets, boolT printall);
 void	qh_printhyperplaneintersection(FILE *fp, facetT *facet1, facetT *facet2,
   		   setT *vertices, realT color[3]);
-void	qh_printneighborhood(FILE *fp, int format, facetT *facetA, facetT *facetB, boolT printall);
+void	qh_printneighborhood(FILE *fp, qh_PRINT format, facetT *facetA, facetT *facetB, boolT printall);
 void    qh_printline3geom(FILE *fp, pointT *pointA, pointT *pointB, realT color[3]);
-void	qh_printpoint(FILE *fp, char *string, pointT *point);
-void	qh_printpointid(FILE *fp, char *string, int dim, pointT *point, int id);
+void	qh_printpoint(FILE *fp, const char *string, pointT *point);
+void	qh_printpointid(FILE *fp, const char *string, int dim, pointT *point, int id);
 void    qh_printpoint3 (FILE *fp, pointT *point);
-void    qh_printpoints_out(FILE *fp, facetT *facetlist, setT *facets, int printall);
+void    qh_printpoints_out(FILE *fp, facetT *facetlist, setT *facets, boolT printall);
 void    qh_printpointvect(FILE *fp, pointT *point, coordT *normal, pointT *center, realT radius, realT color[3]);
 void    qh_printpointvect2 (FILE *fp, pointT *point, coordT *normal, pointT *center, realT radius);
 void	qh_printridge(FILE *fp, ridgeT *ridge);
 void    qh_printspheres(FILE *fp, setT *vertices, realT radius);
-void    qh_printvdiagram(FILE *fp, int format, facetT *facetlist, setT *facets, boolT printall);
+void    qh_printvdiagram(FILE *fp, qh_PRINT format, facetT *facetlist, setT *facets, boolT printall);
 int     qh_printvdiagram2 (FILE *fp, printvridgeT printvridge, setT *vertices, qh_RIDGE innerouter, boolT inorder);
 void	qh_printvertex(FILE *fp, vertexT *vertex);
-void	qh_printvertexlist(FILE *fp, char* string, facetT *facetlist,
+void	qh_printvertexlist(FILE *fp, const char* string, facetT *facetlist,
                          setT *facets, boolT printall);
-void	qh_printvertices(FILE *fp, char* string, setT *vertices);
+void	qh_printvertices(FILE *fp, const char* string, setT *vertices);
 void    qh_printvneighbors(FILE *fp, facetT* facetlist, setT *facets, boolT printall);
-void    qh_printvoronoi(FILE *fp, int format, facetT *facetlist, setT *facets, boolT printall);
+void    qh_printvoronoi(FILE *fp, qh_PRINT format, facetT *facetlist, setT *facets, boolT printall);
 void    qh_printvnorm(FILE *fp, vertexT *vertex, vertexT *vertexA, setT *centers, boolT unbounded);
 void    qh_printvridge(FILE *fp, vertexT *vertex, vertexT *vertexA, setT *centers, boolT unbounded);
 void	qh_produce_output(void);
 void	qh_produce_output2(void);
 void    qh_projectdim3 (pointT *source, pointT *destination);
-int     qh_readfeasible(int dim, char *remainder);
+int     qh_readfeasible(int dim, const char *curline);
 coordT *qh_readpoints(int *numpoints, int *dimension, boolT *ismalloc);
 void    qh_setfeasible(int dim);
 boolT	qh_skipfacet(facetT *facet);
diff --git a/src/libqhull.c b/src/libqhull.c
index 7dfe78f1070ca562d0ed83245decc71b0036043b..492dc44634ea1fa004100a80953c01726da8ca55 100644
--- a/src/libqhull.c
+++ b/src/libqhull.c
@@ -10,9 +10,9 @@
 
    see qhull_a.h for internal functions
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/libqhull.c#1 $$Change: 1107 $
-   $DateTime: 2009/12/07 21:05:37 $$Author: bbarber $        
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/libqhull.c#3 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $        
 */
 
 #include "qhull_a.h" 
@@ -443,8 +443,8 @@ void qh_buildtracing(pointT *furthest, facetT *facet) {
   if (!furthest) {
     time(&timedata);
     tp= localtime(&timedata);
-    cpu= (float)qh_CPUclock - qh hulltime;
-    cpu /= qh_SECticks;
+    cpu= (float)qh_CPUclock - (float)qh hulltime;
+    cpu /= (float)qh_SECticks;
     total= zzval_(Ztotmerge) - zzval_(Zcyclehorizon) + zzval_(Zcyclefacettot);
     qh_fprintf(qh ferr, 8118, "\n\
 At %02d:%02d:%02d & %2.5g CPU secs, qhull has created %d facets and merged %d.\n\
@@ -465,8 +465,8 @@ At %02d:%02d:%02d & %2.5g CPU secs, qhull has created %d facets and merged %d.\n
     qh lastreport= qh facet_id-1;
     time(&timedata);
     tp= localtime(&timedata);
-    cpu= (float)qh_CPUclock - qh hulltime;
-    cpu /= qh_SECticks;
+    cpu= (float)qh_CPUclock - (float)qh hulltime;
+    cpu /= (float)qh_SECticks;
     total= zzval_(Ztotmerge) - zzval_(Zcyclehorizon) + zzval_(Zcyclefacettot);
     zinc_(Zdistio);
     qh_distplane(furthest, facet, &dist);
@@ -478,8 +478,8 @@ At %02d:%02d:%02d & %2.5g CPU secs, qhull has created %d facets and merged %d.\n
       total, qh num_facets, qh num_vertices, qh num_outside+1,
       furthestid, qh vertex_id, dist, getid_(facet));
   }else if (qh IStracing >=1) {
-    cpu= (float)qh_CPUclock - qh hulltime;
-    cpu /= qh_SECticks;
+    cpu= (float)qh_CPUclock - (float)qh hulltime;
+    cpu /= (float)qh_SECticks;
     qh_distplane(furthest, facet, &dist);
     qh_fprintf(qh ferr, 8120, "qh_addpoint: add p%d(v%d) to hull of %d facets(%2.2g above f%d) and %d outside at %4.4g CPU secs.  Previous was p%d.\n",
       furthestid, qh vertex_id, qh num_facets, dist,
@@ -1175,7 +1175,7 @@ void qh_partitionvisible(/*visible_list*/ boolT allpoints, int *numoutside) {
   qh_precision( reason )
     restart on precision errors if not merging and if 'QJn'
 */
-void qh_precision(char *reason) {
+void qh_precision(const char *reason) {
 
   if (qh ALLOWrestart && !qh PREmerge && !qh MERGEexact) {
     if (qh JOGGLEmax < REALmax/2) {
@@ -1205,7 +1205,7 @@ void qh_printsummary(FILE *fp) {
   int size, id, nummerged, numvertices, numcoplanars= 0, nonsimplicial=0;
   int goodused;
   facetT *facet;
-  char *s;
+  const char *s;
   int numdel= zzval_(Zdelvertextot);
   int numtricoplanars= 0;
 
@@ -1351,7 +1351,7 @@ Convex hull of %d points in %d-d:\n\n", size, qh hull_dim);
   }
   if (!qh RANDOMoutside && qh QHULLfinished) {
     cpu= (float)qh hulltime;
-    cpu /= qh_SECticks;
+    cpu /= (float)qh_SECticks;
     wval_(Wcpu)= cpu;
     qh_fprintf(fp, 9333, "  CPU seconds to compute hull(after input): %2.4g\n", cpu);
   }
diff --git a/src/libqhull.h b/src/libqhull.h
index 45a7d0ef275ff4b1a79ead2328a5df4a2d150c76..43f0e9570c89bfa418e7c7947b6a63917c69d3b6 100644
--- a/src/libqhull.h
+++ b/src/libqhull.h
@@ -6,9 +6,9 @@
 
    see qh-qhull.htm, qhull_a.h
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/libqhull.h#1 $$Change: 1107 $
-   $DateTime: 2009/12/07 21:05:37 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/libqhull.h#4 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 
    NOTE: access to qh_qh is via the 'qh' macro.  This allows
    qh_qh to be either a pointer or a structure.  An example
@@ -54,13 +54,9 @@
 #endif
 #endif
 
-#ifdef _MSC_VER  /* Microsoft Visual C++ -- warning level 4 */
-#pragma warning( disable : 4224)  /* FIXUP? nonstandard extension used : formal parameter 'errcode' was previously defined as a type. [errcode was replaced by errno_t] */
-#endif
-
 /*============ constants and basic types ====================*/
 
-extern char *qh_version; /* defined in global.c */
+extern const char *qh_version; /* defined in global.c */
 
 /*-<a                             href="qh-geom.htm#TOC"
   >--------------------------------</a><a name="coordT">-</a>
@@ -350,7 +346,7 @@ struct ridgeT {
                            NULL if a degen ridge (matchsame) */
   facetT  *top;         /* top facet this ridge is part of */
   facetT  *bottom;      /* bottom facet this ridge is part of */
-  unsigned id:24;       /* unique identifier, =>room for 8 flags */
+  unsigned id:24;       /* unique identifier, =>room for 8 flags, bit field matches qh.ridge_id */
   flagT    seen:1;      /* used to perform operations only once */
   flagT    tested:1;    /* True when ridge is tested for convexity */
   flagT    nonconvex:1; /* True if getmergeset detected a non-convex neighbor
@@ -376,9 +372,9 @@ struct vertexT {
   pointT  *point;       /* hull_dim coordinates (coordT) */
   setT    *neighbors;   /* neighboring facets of vertex, qh_vertexneighbors()
 			   inits in io.c or after first merge */
-  unsigned visitid:31;  /* for use with qh vertex_visit */
+  unsigned visitid:31;  /* for use with qh vertex_visit, size must match */
   flagT    seen2:1;     /* another seen flag */
-  unsigned id:24;       /* unique identifier */
+  unsigned id:24;       /* unique identifier, bit field matches qh.vertex_id */
   unsigned dim:4;       /* dimension of point if non-zero, used by cpp */
                         /* =>room for 4 flags */
   flagT    seen:1;      /* used to perform operations only once */
@@ -619,8 +615,8 @@ struct qhT {
   FILE *fout;             /* pointer to output file */
   FILE *ferr;             /* pointer to error file */
   pointT *interior_point; /* center point of the initial simplex*/
-  int   normal_size;      /* size in bytes for facet normals and point coords*/
-  int   center_size;      /* size in bytes for Voronoi centers */
+  int normal_size;     /* size in bytes for facet normals and point coords*/
+  int center_size;     /* size in bytes for Voronoi centers */
   int   TEMPsize;         /* size for small, temporary sets (in quick mem) */
 
 /*-<a                             href="qh-globa.htm#TOC"
@@ -656,8 +652,8 @@ struct qhT {
                                includes coplanar outsideset points for NARROWhull/qh_outcoplanar() */
   int   num_good;         /* number of good facets (after findgood_all) */
   unsigned facet_id;      /* ID of next, new facet from newfacet() */
-  unsigned ridge_id;      /* ID of next, new ridge from newridge() */
-  unsigned vertex_id;     /* ID of next, new vertex from newvertex() */
+  unsigned ridge_id:24;   /* ID of next, new ridge from newridge() */
+  unsigned vertex_id:24;  /* ID of next, new vertex from newvertex() */
 
 /*-<a                             href="qh-globa.htm#TOC"
   >--------------------------------</a><a name="qh-var">-</a>
@@ -702,7 +698,7 @@ struct qhT {
   realT totarea;          /* 'FA': total facet area computed by qh_getarea, hasAreaVolume */
   realT totvol;           /* 'FA': total volume computed by qh_getarea, hasAreaVolume */
   unsigned int visit_id;  /* unique ID for searching neighborhoods, */
-  unsigned int vertex_visit; /* unique ID for searching vertices, reset with qh_buildtracing */
+  unsigned int vertex_visit:31; /* unique ID for searching vertices, reset with qh_buildtracing */
   boolT ZEROall_ok;       /* True if qh_checkzero always succeeds */
   boolT WAScoplanar;      /* True if qh_partitioncoplanar (qh_check_maxout) */
 
@@ -776,9 +772,9 @@ struct qhT {
 
   getid_(p)
     return ID for facet, ridge, or vertex
-    return MAXINT if NULL (-1 causes type conversion error )
+    FIXUP: return MAXINT if NULL (-1 causes type conversion error )
 */
-#define getid_(p)       ((p) ? (p)->id : -1)
+#define getid_(p)       ((p) ? (int)((p)->id) : -1)
 
 /*============== FORALL macros ===================*/
 
@@ -982,7 +978,7 @@ struct qhT {
 
   see:
     <a href="qset.h#FOREACHsetelement_i_">FOREACHsetelement_i_</a>
- */
+*/
 #define FOREACHvertex_i_(vertices) FOREACHsetelement_i_(vertexT, vertices,vertex)
 
 /********* -libqhull.c prototypes (duplicated from qhull_a.h) **********************/
@@ -994,7 +990,7 @@ void	qh_printsummary(FILE *fp);
 /********* -user.c prototypes (alphabetical) **********************/
 
 void 	qh_errexit(int exitcode, facetT *facet, ridgeT *ridge);
-void 	qh_errprint(char* string, facetT *atfacet, facetT *otherfacet, ridgeT *atridge, vertexT *atvertex);
+void 	qh_errprint(const char* string, facetT *atfacet, facetT *otherfacet, ridgeT *atridge, vertexT *atvertex);
 int     qh_new_qhull(int dim, int numpoints, coordT *points, boolT ismalloc,
 		char *qhull_cmd, FILE *outfile, FILE *errfile);
 void    qh_printfacetlist(facetT *facetlist, setT *facets, boolT printall);
@@ -1004,11 +1000,11 @@ void	qh_printhelp_singular(FILE *fp);
 void 	qh_user_memsizes(void);
 
 /********* -user2.c prototypes (alphabetical) **********************/
-void    qh_exit(int errcode);
+void    qh_exit(int exitcode);
 void	qh_fprintf(FILE *fp, int msgcode, const char *fmt, ... );
 void	qh_fprintf_rbox(FILE *fp, int msgcode, const char *fmt, ... );
 void    qh_free(void *mem);
-void   *qh_malloc(unsigned int size);
+void   *qh_malloc(size_t size);
 
 /***** -geom.c/geom2.c/random.c prototypes (duplicated from geom.h, random.h) ****************/
 
@@ -1047,7 +1043,7 @@ void    qh_initqhull_outputflags(void);
 void 	qh_initqhull_start(FILE *infile, FILE *outfile, FILE *errfile);
 void 	qh_initqhull_start2(FILE *infile, FILE *outfile, FILE *errfile);
 void 	qh_initthresholds(char *command);
-void    qh_option(char *option, int *i, realT *r);
+void    qh_option(const char *option, int *i, realT *r);
 #if qh_QHpointer
 void 	qh_restore_qhull(qhT **oldqh);
 qhT    *qh_save_qhull(void);
@@ -1057,7 +1053,7 @@ qhT    *qh_save_qhull(void);
 
 void    dfacet( unsigned id);
 void    dvertex( unsigned id);
-void	qh_printneighborhood(FILE *fp, int format, facetT *facetA, facetT *facetB, boolT printall);
+void	qh_printneighborhood(FILE *fp, qh_PRINT format, facetT *facetA, facetT *facetB, boolT printall);
 void	qh_produce_output(void);
 coordT *qh_readpoints(int *numpoints, int *dimension, boolT *ismalloc);
 
@@ -1089,6 +1085,6 @@ void    qh_errexit_rbox(int exitcode);
 /********* -stat.c prototypes (duplicated from stat.h) **********************/
 
 void    qh_collectstatistics(void);
-void    qh_printallstatistics(FILE *fp, char *string);
+void    qh_printallstatistics(FILE *fp, const char *string);
 
 #endif /* qhDEFlibqhull */
diff --git a/src/mem.c b/src/mem.c
index ad1bc4eda05bbe575523edfabffb34bb3497a8dc..0d4232c9a995fc0f3dd2624341dce723e0cbd8c8 100644
--- a/src/mem.c
+++ b/src/mem.c
@@ -10,8 +10,8 @@
 
     qh_meminit(stderr);  
     qh_meminitbuffers(qh IStracing, qh_MEMalign, 7, qh_MEMbufsize,qh_MEMinitbuf);
-    qh_memsize(sizeof(facetT));
-    qh_memsize(sizeof(facetT));
+    qh_memsize((int)sizeof(facetT));
+    qh_memsize((int)sizeof(facetT));
     ...
     qh_memsetup();
     
@@ -29,9 +29,9 @@
     qh-mem.htm and mem.h
     global.c (qh_initbuffers) for an example of using mem.c 
    
-  copyright (c) 1993-2009 The Geometry Center.
-  $Id: //product/qhull/main/rel/src/mem.c#27 $$Change: 1102 $
-  $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+  copyright (c) 1993-2010 The Geometry Center.
+  $Id: //product/qhull/main/rel/src/mem.c#30 $$Change: 1137 $
+  $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #include "mem.h"
@@ -44,21 +44,22 @@ typedef struct ridgeT ridgeT;
 typedef struct facetT facetT;
 #ifdef _MSC_VER  /* Microsoft Visual C++ -- warning level 4 */
 #pragma warning( disable : 4127)  /* conditional expression is constant */
-#pragma warning( disable : 4224)  /* nonstandard extension used : formal parameter 'errcode' was previously defined as a type. [errcode was replaced by errno_t] */
 #pragma warning( disable : 4706)  /* assignment within conditional function */
 #endif
 void    qh_errexit(int exitcode, facetT *, ridgeT *);
-void    qh_exit(int errcode);
-void	qh_fprintf(FILE *fp, int msgcode, char *fmt, ... );
+void    qh_exit(int exitcode);
+void	qh_fprintf(FILE *fp, int msgcode, const char *fmt, ... );
 void    qh_free(void *mem);
-void   *qh_malloc(unsigned int size);
+void   *qh_malloc(size_t size);
 #endif
 
 /*============ -global data structure ==============
     see mem.h for definition
 */
 
-qhmemT qhmem= {0};     /* remove "= {0}" if this causes a compiler error */
+qhmemT qhmem= {0,0,0,0,0,0,0,0,0,0,0,
+               0,0,0,0,0,0,0,0,0,0,0,
+               0,0,0,0,0,0,0};     /* remove "= {0}" if this causes a compiler error */
 
 #ifndef qh_NOmem
 
@@ -75,7 +76,7 @@ static int qh_intcompare(const void *i, const void *j);
     used by qsort and bsearch to compare two integers
 */
 static int qh_intcompare(const void *i, const void *j) {
-  return(*((int *)i) - *((int *)j));
+  return(*((const int *)i) - *((const int *)j));
 } /* intcompare */
 
 
@@ -113,7 +114,7 @@ void *qh_memalloc(int insize) {
   int outsize, bufsize;
   void *object;
 
-  if ((unsigned) insize <= (unsigned) qhmem.LASTsize) {
+  if (insize <= qhmem.LASTsize) {
     index= qhmem.indextable[insize];
     outsize= qhmem.sizetable[index];
     qhmem.totshort += outsize;
@@ -136,7 +137,7 @@ void *qh_memalloc(int insize) {
 	  bufsize= qhmem.BUFinit;
         else
 	  bufsize= qhmem.BUFsize;
-      	if (!(newbuffer= qh_malloc(bufsize))) {
+        if (!(newbuffer= qh_malloc((size_t)bufsize))) {
 	  qh_fprintf(qhmem.ferr, 6080, "qhull error (qh_memalloc): insufficient memory to allocate short memory buffer (%d bytes)\n", bufsize);
 	  qh_errexit(qhmem_ERRmem, NULL, NULL);
 	} 
@@ -175,7 +176,7 @@ void *qh_memalloc(int insize) {
     qhmem .totlong += outsize;
     if (qhmem.maxlong < qhmem.totlong)
       qhmem.maxlong= qhmem.totlong;
-    if (!(object= qh_malloc(outsize))) {
+    if (!(object= qh_malloc((size_t)outsize))) {
       qh_fprintf(qhmem.ferr, 6082, "qhull error (qh_memalloc): insufficient memory to allocate %d bytes\n", outsize);
       qh_errexit(qhmem_ERRmem, NULL, NULL);
     }
@@ -264,7 +265,7 @@ void qh_memfreeshort(int *curlong, int *totlong) {
     qh_free(qhmem .sizetable);
   }
   ferr= qhmem.ferr;
-  memset((char *)&qhmem, 0, sizeof qhmem);  /* every field is 0, FALSE, NULL */
+  memset((char *)&qhmem, 0, sizeof(qhmem));  /* every field is 0, FALSE, NULL */
   qhmem.ferr= ferr;
 } /* memfreeshort */
 
@@ -277,14 +278,14 @@ void qh_memfreeshort(int *curlong, int *totlong) {
 */
 void qh_meminit(FILE *ferr) {
   
-  memset((char *)&qhmem, 0, sizeof qhmem);  /* every field is 0, FALSE, NULL */
+  memset((char *)&qhmem, 0, sizeof(qhmem));  /* every field is 0, FALSE, NULL */
   qhmem.ferr= ferr;
   if (sizeof(void*) < sizeof(int)) {
-    qh_fprintf(ferr, 6083, "qhull internal error (qh_meminit): sizeof(void*) < sizeof(int).  qset.c will not work\n");
+    qh_fprintf(ferr, 6083, "qhull internal error (qh_meminit): sizeof(void*) %d < sizeof(int) %d.  qset.c will not work\n", (int)sizeof(void*), (int)sizeof(int));
     qh_exit(qhmem_ERRqhull);  /* can not use qh_errexit() */
   }
   if (sizeof(void*) > sizeof(ptr_intT)) {
-      qh_fprintf(ferr, 6084, "qhull internal error (qh_meminit): sizeof(void*) > sizeof(ptr_intT). Change ptr_intT in mem.h to 'long long'\n");
+      qh_fprintf(ferr, 6084, "qhull internal error (qh_meminit): sizeof(void*) %d > sizeof(ptr_intT) %d. Change ptr_intT in mem.h to 'long long'\n", (int)sizeof(void*), (int)sizeof(ptr_intT));
       qh_exit(qhmem_ERRqhull);  /* can not use qh_errexit() */
   }
 } /* meminit */
@@ -311,8 +312,8 @@ void qh_meminitbuffers(int tracelevel, int alignment, int numsizes, int bufsize,
     qh_fprintf(qhmem.ferr, 6085, "qhull internal error (qh_meminit): memory alignment %d is not a power of 2\n", alignment);
     qh_errexit(qhmem_ERRqhull, NULL, NULL);
   }
-  qhmem.sizetable= (int *) calloc(numsizes, sizeof(int));
-  qhmem.freelists= (void **) calloc(numsizes, sizeof(void *));
+  qhmem.sizetable= (int *) calloc((size_t)numsizes, sizeof(int));
+  qhmem.freelists= (void **) calloc((size_t)numsizes, sizeof(void *));
   if (!qhmem.sizetable || !qhmem.freelists) {
     qh_fprintf(qhmem.ferr, 6086, "qhull error (qh_meminit): insufficient memory\n");
     qh_errexit(qhmem_ERRmem, NULL, NULL);
@@ -330,7 +331,7 @@ void qh_meminitbuffers(int tracelevel, int alignment, int numsizes, int bufsize,
 void qh_memsetup(void) {
   int k,i;
 
-  qsort(qhmem.sizetable, qhmem.TABLEsize, sizeof(int), qh_intcompare);
+  qsort(qhmem.sizetable, (size_t)qhmem.TABLEsize, sizeof(int), qh_intcompare);
   qhmem.LASTsize= qhmem.sizetable[qhmem.TABLEsize-1];
   if (qhmem .LASTsize >= qhmem .BUFsize || qhmem.LASTsize >= qhmem .BUFinit) {
     qh_fprintf(qhmem.ferr, 6087, "qhull error (qh_memsetup): largest mem size %d is >= buffer size %d or initial buffer size %d\n",
@@ -421,7 +422,7 @@ void qh_memstatistics(FILE *fp) {
 	   qhmem .totbuffer, qhmem .BUFsize, qhmem .BUFinit);
   if (qhmem.cntlarger) {
     qh_fprintf(fp, 9279, "%7d calls to qh_setlarger\n%7.2g     average copy size\n",
-	   qhmem.cntlarger, ((float) qhmem.totlarger)/ qhmem.cntlarger);
+           qhmem.cntlarger, ((float)qhmem.totlarger)/(float)qhmem.cntlarger);
     qh_fprintf(fp, 9280, "  freelists(bytes->count):");
   }
   for (i=0; i < qhmem.TABLEsize; i++) {
@@ -448,7 +449,7 @@ void qh_memstatistics(FILE *fp) {
 void *qh_memalloc(int insize) {
   void *object;
 
-  if (!(object= qh_malloc(insize))) {
+  if (!(object= qh_malloc((size_t)insize))) {
     qh_fprintf(qhmem.ferr, 6090, "qhull error (qh_memalloc): insufficient memory\n");
     qh_errexit(qhmem_ERRmem, NULL, NULL);
   }
@@ -475,15 +476,15 @@ void qh_memfree(void *object, int insize) {
 void qh_memfreeshort(int *curlong, int *totlong) {
   *totlong= qhmem .totlong;
   *curlong= qhmem .cntlong - qhmem .freelong;
-  memset((char *)&qhmem, 0, sizeof qhmem);  /* every field is 0, FALSE, NULL */
+  memset((char *)&qhmem, 0, sizeof(qhmem));  /* every field is 0, FALSE, NULL */
 }
 
 void qh_meminit(FILE *ferr) {
 
-  memset((char *)&qhmem, 0, sizeof qhmem);  /* every field is 0, FALSE, NULL */
+  memset((char *)&qhmem, 0, sizeof(qhmem));  /* every field is 0, FALSE, NULL */
   qhmem.ferr= ferr;
   if (sizeof(void*) < sizeof(int)) {
-    qh_fprintf(ferr, 6091, "qhull internal error (qh_meminit): sizeof(void*) < sizeof(int).  qset.c will not work\n");
+    qh_fprintf(ferr, 6091, "qhull internal error (qh_meminit): sizeof(void*) %d < sizeof(int) %d.  qset.c will not work\n", (int)sizeof(void*), (int)sizeof(int));
     qh_errexit(qhmem_ERRqhull, NULL, NULL);
   }
 }
diff --git a/src/mem.h b/src/mem.h
index 3d2d997a88937d81d7f4a56d25cccc1f1925def4..4690034061e7cdbd5f43d604dcaf15ad7b729806 100644
--- a/src/mem.h
+++ b/src/mem.h
@@ -11,9 +11,9 @@
        and
      qh_errexit(qhmem_ERRqhull, NULL, NULL) otherwise
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/mem.h#22 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/mem.h#25 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #ifndef qhDEFmem
@@ -74,7 +74,8 @@ Trace short and quick memory allocations at T5
     On 64-bit machines, a pointer may be larger than an 'int'.  
     qh_meminit()/mem.c checks that 'ptr_intT' holds a 'void*'
     ptr_intT is not defined as 'long long' for portability to older compilers
-    size_t is typically an unsigned int
+    size_t is typically unsigned, but should match the parameter type
+    Qhull uses int instead of size_t except for system calls such as malloc, qsort, qh_malloc, etc.
 */
 typedef long ptr_intT;
 
@@ -99,6 +100,7 @@ typedef long ptr_intT;
 typedef struct qhmemT qhmemT;
 extern qhmemT qhmem; 
 
+/* Update qhmem in mem.c if add or remove fields */
 struct qhmemT {               /* global memory management variables */
   int      BUFsize;	      /* size of memory allocation buffer */
   int      BUFinit;	      /* initial size of memory allocation buffer */
diff --git a/src/merge.c b/src/merge.c
index 13435c438ffac6f2f841400ffc664defbf219c01..be39f75fd9ff7573afb510c5ee77dceb54036105 100644
--- a/src/merge.c
+++ b/src/merge.c
@@ -20,9 +20,9 @@
    merges occur in qh_mergefacet and in qh_mergecycle
    vertex->neighbors not set until the first merge occurs
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/merge.c#22 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $        
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/merge.c#24 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $        
 */
 
 #include "qhull_a.h"
@@ -126,7 +126,7 @@ void qh_premerge(vertexT *apex, realT maxcentrum, realT maxangle) {
     determine non-convex facets
     merge all non-convex facets
 */
-void qh_postmerge(char *reason, realT maxcentrum, realT maxangle, 
+void qh_postmerge(const char *reason, realT maxcentrum, realT maxangle, 
                       boolT vneighbors) {
   facetT *newfacet;
   boolT othermerges= False;
@@ -230,7 +230,7 @@ void qh_all_merges(boolT othermerge, boolT vneighbors) {
 	facet1= merge->facet1;
 	facet2= merge->facet2;
 	mergetype= merge->type;
-	qh_memfree_(merge, sizeof(mergeT), freelistp);
+	qh_memfree_(merge, (int)sizeof(mergeT), freelistp);
 	if (facet1->visible || facet2->visible) /*deleted facet*/
 	  continue;  
 	if ((facet1->newfacet && !facet1->tested)
@@ -325,7 +325,7 @@ void qh_appendmergeset(facetT *facet, facetT *neighbor, mergeType mergetype, rea
     return;
   if (facet->degenerate && mergetype == MRGdegen)
     return;
-  qh_memalloc_(sizeof(mergeT), freelistp, merge, mergeT);
+  qh_memalloc_((int)sizeof(mergeT), freelistp, merge, mergeT);
   merge->facet1= facet;
   merge->facet2= neighbor;
   merge->type= mergetype;
@@ -567,7 +567,7 @@ boolT qh_checkzero(boolT testall) {
     used by qsort() to order merges by angle
 */
 int qh_compareangle(const void *p1, const void *p2) {
-  mergeT *a= *((mergeT **)p1), *b= *((mergeT **)p2);
+  const mergeT *a= *((mergeT *const*)p1), *b= *((mergeT *const*)p2);
  
   return((a->angle > b->angle) ? 1 : -1);
 } /* compareangle */
@@ -579,7 +579,7 @@ int qh_compareangle(const void *p1, const void *p2) {
     used by qsort() to order merges
 */
 int qh_comparemerge(const void *p1, const void *p2) {
-  mergeT *a= *((mergeT **)p1), *b= *((mergeT **)p2);
+  const mergeT *a= *((mergeT *const*)p1), *b= *((mergeT *const*)p2);
  
   return(a->type - b->type);
 } /* comparemerge */
@@ -591,7 +591,7 @@ int qh_comparemerge(const void *p1, const void *p2) {
     used by qsort() to order vertices by their visitid
 */
 int qh_comparevisit(const void *p1, const void *p2) {
-  vertexT *a= *((vertexT **)p1), *b= *((vertexT **)p2);
+  const vertexT *a= *((vertexT *const*)p1), *b= *((vertexT *const*)p2);
  
   return(a->visitid - b->visitid);
 } /* comparevisit */
@@ -800,13 +800,13 @@ vertexT *qh_find_newvertex(vertexT *oldvertex, setT *vertices, setT *ridges) {
       vertexp--; /* repeat since deleted this vertex */
     }
   }
-  qh vertex_visit += qh_setsize(ridges);
+  qh vertex_visit += (unsigned int)qh_setsize(ridges);
   if (!qh_setsize(vertices)) {
     trace4((qh ferr, 4023, "qh_find_newvertex: vertices not in ridges for v%d\n",
 	    oldvertex->id));
     return NULL;
   }
-  qsort(SETaddr_(vertices, vertexT), qh_setsize(vertices),
+  qsort(SETaddr_(vertices, vertexT), (size_t)qh_setsize(vertices),
 	        sizeof(vertexT *), qh_comparevisit);
   /* can now use qh vertex_visit */
   if (qh PRINTstatistics) {
@@ -1009,7 +1009,7 @@ void qh_flippedmerges(facetT *facetlist, boolT *wasmerge) {
   }
   FOREACHmerge_(othermerges) {
     if (merge->facet1->visible || merge->facet2->visible)
-      qh_memfree(merge, sizeof(mergeT));
+      qh_memfree(merge, (int)sizeof(mergeT));
     else
       qh_setappend(&qh facet_mergeset, merge);
   }
@@ -1102,7 +1102,7 @@ void qh_forcedmerges(boolT *wasmerge) {
   }
   FOREACHmerge_(othermerges) {
     if (merge->type == MRGridge)
-      qh_memfree(merge, sizeof(mergeT));
+      qh_memfree(merge, (int)sizeof(mergeT));
     else
       qh_setappend(&qh facet_mergeset, merge);
   }
@@ -1177,9 +1177,9 @@ void qh_getmergeset(facetT *facetlist) {
   }
   nummerges= qh_setsize(qh facet_mergeset);
   if (qh ANGLEmerge)
-    qsort(SETaddr_(qh facet_mergeset, mergeT), nummerges,sizeof(mergeT *),qh_compareangle);
+    qsort(SETaddr_(qh facet_mergeset, mergeT), (size_t)nummerges, sizeof(mergeT *), qh_compareangle);
   else
-    qsort(SETaddr_(qh facet_mergeset, mergeT), nummerges,sizeof(mergeT *),qh_comparemerge);
+    qsort(SETaddr_(qh facet_mergeset, mergeT), (size_t)nummerges, sizeof(mergeT *), qh_comparemerge);
   if (qh POSTmerging) {
     zadd_(Zmergesettot2, nummerges);
   }else {
@@ -1242,9 +1242,9 @@ void qh_getmergeset_initial(facetT *facetlist) {
   }
   nummerges= qh_setsize(qh facet_mergeset);
   if (qh ANGLEmerge)
-    qsort(SETaddr_(qh facet_mergeset, mergeT), nummerges,sizeof(mergeT *),qh_compareangle);
+    qsort(SETaddr_(qh facet_mergeset, mergeT), (size_t)nummerges, sizeof(mergeT *), qh_compareangle);
   else
-    qsort(SETaddr_(qh facet_mergeset, mergeT), nummerges,sizeof(mergeT *),qh_comparemerge);
+    qsort(SETaddr_(qh facet_mergeset, mergeT), (size_t)nummerges, sizeof(mergeT *), qh_comparemerge);
   if (qh POSTmerging) {
     zadd_(Zmergeinittot2, nummerges);
   }else {
@@ -1589,7 +1589,7 @@ int qh_merge_degenredundant(void) {
     facet1= merge->facet1;
     facet2= merge->facet2;
     mergetype= merge->type;
-    qh_memfree(merge, sizeof(mergeT));
+    qh_memfree(merge, (int)sizeof(mergeT));
     if (facet1->visible)
       continue;
     facet1->degenerate= False; 
@@ -1884,7 +1884,7 @@ void qh_mergecycle_all(facetT *facetlist, boolT *wasmerge) {
       if (nummerge > qh_MAXnummerge) 
       	horizon->nummerge= qh_MAXnummerge;
       else
-        horizon->nummerge= nummerge;
+        horizon->nummerge= (short unsigned int)nummerge;
       zzinc_(Zcyclehorizon);
       total += facets;
       zzadd_(Zcyclefacettot, facets);
@@ -2113,12 +2113,12 @@ void qh_mergecycle_ridges(facetT *samecycle, facetT *newfacet) {
       }
       if (neighbor == newfacet) {
         qh_setfree(&(ridge->vertices)); 
-        qh_memfree_(ridge, sizeof(ridgeT), freelistp);
+        qh_memfree_(ridge, (int)sizeof(ridgeT), freelistp);
         numold++;
       }else if (neighbor->visitid == samevisitid) {
 	qh_setdel(neighbor->ridges, ridge);
 	qh_setfree(&(ridge->vertices)); 
-	qh_memfree_(ridge, sizeof(ridgeT), freelistp);
+	qh_memfree_(ridge, (int)sizeof(ridgeT), freelistp);
 	numold++;
       }else {
         qh_setappend(&newfacet->ridges, ridge);
@@ -2348,7 +2348,7 @@ too strong.\n", qh hull_dim+1);
   if (nummerge >= qh_MAXnummerge) 
     facet2->nummerge= qh_MAXnummerge;
   else
-    facet2->nummerge= nummerge;
+    facet2->nummerge= (short unsigned int)nummerge;
   facet2->newmerge= True;
   facet2->dupridge= False;
   qh_updatetested  (facet1, facet2);
@@ -2677,7 +2677,7 @@ void qh_mergesimplex(facetT *facet1, facetT *facet2, boolT mergeapex) {
     if (otherfacet == facet2) {
       qh_setdel(facet2->ridges, ridge);
       qh_setfree(&(ridge->vertices)); 
-      qh_memfree(ridge, sizeof(ridgeT));
+      qh_memfree(ridge, (int)sizeof(ridgeT));
       qh_setdel(facet2->neighbors, facet1);
     }else {
       qh_setappend(&facet2->ridges, ridge);
@@ -3614,7 +3614,7 @@ void qh_willdelete(facetT *facet, facetT *replace) {
 #else /* qh_NOmerge */
 void qh_premerge(vertexT *apex, realT maxcentrum, realT maxangle) {
 }
-void qh_postmerge(char *reason, realT maxcentrum, realT maxangle, 
+void qh_postmerge(const char *reason, realT maxcentrum, realT maxangle, 
                       boolT vneighbors) {
 }
 boolT qh_checkzero(boolT testall) {
diff --git a/src/merge.h b/src/merge.h
index 00861c260683a49820d55d49ac24639b58075121..5495783bb93630297d2e350d4a13b4a04312dd25 100644
--- a/src/merge.h
+++ b/src/merge.h
@@ -6,9 +6,9 @@
 
    see qh-merge.htm and merge.c
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/merge.h#17 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/merge.h#19 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #ifndef qhDEFmerge
@@ -114,7 +114,7 @@ struct mergeT {		/* initialize in qh_appendmergeset */
 /*============ prototypes in alphabetical order after pre/postmerge =======*/
 
 void    qh_premerge(vertexT *apex, realT maxcentrum, realT maxangle);
-void    qh_postmerge(char *reason, realT maxcentrum, realT maxangle, 
+void    qh_postmerge(const char *reason, realT maxcentrum, realT maxangle, 
              boolT vneighbors);
 void    qh_all_merges(boolT othermerge, boolT vneighbors);
 void    qh_appendmergeset(facetT *facet, facetT *neighbor, mergeType mergetype, realT *angle);
diff --git a/src/poly.c b/src/poly.c
index 6682ea3f8b81ea2eb83d9b2ae072e51b497fdd69..8326ab96b0573581ec8f12dcd12550f5e0bbcca9 100644
--- a/src/poly.c
+++ b/src/poly.c
@@ -9,9 +9,9 @@
    infrequent code is in poly2.c 
    (all but top 50 and their callers 12/3/95)
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/poly.c#21 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/poly.c#23 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #include "qhull_a.h"
@@ -143,7 +143,7 @@ void qh_attachnewfacets(void ) {
 	  if (!neighbor->visible)  /* delete ridge for simplicial horizon */
 	    qh_setdel(neighbor->ridges, ridge);
 	  qh_setfree(&(ridge->vertices)); /* delete on 2nd visit */
-	  qh_memfree(ridge, sizeof(ridgeT));
+	  qh_memfree(ridge, (int)sizeof(ridgeT));
 	}
       }
       SETfirst_(visible->ridges)= NULL;
@@ -269,7 +269,7 @@ void qh_delfacet(facetT *facet) {
     qh_setfree(&(facet->outsideset));
   if (facet->coplanarset)
     qh_setfree(&(facet->coplanarset));
-  qh_memfree_(facet, sizeof(facetT), freelistp);
+  qh_memfree_(facet, (int)sizeof(facetT), freelistp);
 } /* delfacet */
 
 
@@ -481,7 +481,7 @@ facetT *qh_makenewfacet(setT *vertices, boolT toporient,facetT *horizon) {
   }
   newfacet= qh_newfacet();
   newfacet->vertices= vertices;
-  newfacet->toporient= toporient;
+  newfacet->toporient= (unsigned char)toporient;
   if (horizon)
     qh_setappend(&(newfacet->neighbors), horizon);
   qh_appendfacet(newfacet);
@@ -568,7 +568,7 @@ facetT *qh_makenew_nonsimplicial(facetT *visible, vertexT *apex, int *numnew) {
       if (!qh ONLYgood) {
         if (neighbor->visitid == qh visit_id) {
           qh_setfree(&(ridge->vertices));  /* delete on 2nd visit */
-	  qh_memfree_(ridge, sizeof(ridgeT), freelistp);
+	  qh_memfree_(ridge, (int)sizeof(ridgeT), freelistp);
 	}
       }
     }else {  /* neighbor is an horizon facet */
@@ -605,7 +605,7 @@ facetT *qh_makenew_nonsimplicial(facetT *visible, vertexT *apex, int *numnew) {
         if (neighbor->simplicial) {
           qh_setdel(neighbor->ridges, ridge);
           qh_setfree(&(ridge->vertices)); 
-	  qh_memfree(ridge, sizeof(ridgeT));
+	  qh_memfree(ridge, (int)sizeof(ridgeT));
 	}else {
  	  qh_setappend(&(newfacet->ridges), ridge);
  	  if (toporient)
@@ -717,16 +717,17 @@ facetT *qh_makenew_simplicial(facetT *visible, vertexT *apex, int *numnew) {
 void qh_matchneighbor(facetT *newfacet, int newskip, int hashsize, int *hashcount) {
   boolT newfound= False;   /* True, if new facet is already in hash chain */
   boolT same, ismatch;
-  int hash, scan;
+  unsigned hash;
+  int scan;
   facetT *facet, *matchfacet;
   int skip, matchskip;
 
-  hash= (int)qh_gethash(hashsize, newfacet->vertices, qh hull_dim, 1, 
+  hash= qh_gethash(hashsize, newfacet->vertices, qh hull_dim, 1, 
                      SETelem_(newfacet->vertices, newskip));
-  trace4((qh ferr, 4050, "qh_matchneighbor: newfacet f%d skip %d hash %d hashcount %d\n",
+  trace4((qh ferr, 4050, "qh_matchneighbor: newfacet f%d skip %d hash %ud hashcount %d\n",
 	  newfacet->id, newskip, hash, *hashcount));
   zinc_(Zhashlookup);
-  for (scan= hash; (facet= SETelemt_(qh hash_table, scan, facetT)); 
+  for (scan= (int)hash; (facet= SETelemt_(qh hash_table, scan, facetT)); 
        scan= (++scan >= hashsize ? 0 : scan)) {
     if (facet == newfacet) {
       newfound= True;
@@ -741,7 +742,7 @@ void qh_matchneighbor(facetT *newfacet, int newskip, int hashsize, int *hashcoun
           facet->id, newfacet->id);
         qh_errexit2 (qh_ERRprec, facet, newfacet);
       }
-      ismatch= (same == (newfacet->toporient ^ facet->toporient));
+      ismatch= (same == (boolT)((newfacet->toporient ^ facet->toporient)));
       matchfacet= SETelemt_(facet->neighbors, skip, facetT);
       if (ismatch && !matchfacet) {
         SETelem_(facet->neighbors, skip)= newfacet;
@@ -780,7 +781,7 @@ void qh_matchneighbor(facetT *newfacet, int newskip, int hashsize, int *hashcoun
 	  *hashcount += 2;
 	}
       }
-      trace4((qh ferr, 4052, "qh_matchneighbor: new f%d skip %d duplicates ridge for f%d skip %d matching f%d ismatch %d at hash %d\n",
+      trace4((qh ferr, 4052, "qh_matchneighbor: new f%d skip %d duplicates ridge for f%d skip %d matching f%d ismatch %d at hash %ud\n",
 	   newfacet->id, newskip, facet->id, skip, 
 	   (matchfacet == qh_DUPLICATEridge ? -2 : getid_(matchfacet)), 
 	   ismatch, hash));
@@ -790,7 +791,7 @@ void qh_matchneighbor(facetT *newfacet, int newskip, int hashsize, int *hashcoun
   if (!newfound) 
     SETelem_(qh hash_table, scan)= newfacet;  /* same as qh_addhash */
   (*hashcount)++;
-  trace4((qh ferr, 4053, "qh_matchneighbor: no match for f%d skip %d at hash %d\n",
+  trace4((qh ferr, 4053, "qh_matchneighbor: no match for f%d skip %d at hash %ud\n",
            newfacet->id, newskip, hash));
 } /* matchneighbor */
 
@@ -973,8 +974,8 @@ facetT *qh_newfacet(void) {
   facetT *facet;
   void **freelistp; /* used !qh_NOmem */
   
-  qh_memalloc_(sizeof(facetT), freelistp, facet, facetT);
-  memset((char *)facet, 0, sizeof(facetT));
+  qh_memalloc_((int)sizeof(facetT), freelistp, facet, facetT);
+  memset((char *)facet, (size_t)0, sizeof(facetT));
   if (qh facet_id == qh tracefacet_id)
     qh tracefacet= facet;
   facet->id= qh facet_id++;
@@ -1006,15 +1007,15 @@ ridgeT *qh_newridge(void) {
   ridgeT *ridge;
   void **freelistp;   /* used !qh_NOmem */
 
-  qh_memalloc_(sizeof(ridgeT), freelistp, ridge, ridgeT);
-  memset((char *)ridge, 0, sizeof(ridgeT));
+  qh_memalloc_((int)sizeof(ridgeT), freelistp, ridge, ridgeT);
+  memset((char *)ridge, (size_t)0, sizeof(ridgeT));
   zinc_(Ztotridges);
   if (qh ridge_id == 0xFFFFFF) {
     qh_fprintf(qh ferr, 7074, "\
 qhull warning: more than %d ridges.  ID field overflows and two ridges\n\
 may have the same identifier.  Otherwise output ok.\n", 0xFFFFFF);
   }
-  ridge->id= qh ridge_id++;     
+  ridge->id= qh ridge_id++;
   trace4((qh ferr, 4056, "qh_newridge: created ridge r%d\n", ridge->id));
   return(ridge);
 } /* newridge */
diff --git a/src/poly.h b/src/poly.h
index cc2506f029c8bc196bb9368d608f019705e919f1..7413f193c8d94c706e2d20b5cdb51a8d482c07ec 100644
--- a/src/poly.h
+++ b/src/poly.h
@@ -6,9 +6,9 @@
 
    see qh-poly.htm, libqhull.h and poly.c
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/poly.h#19 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/poly.h#20 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #ifndef qhDEFpoly
diff --git a/src/poly2.c b/src/poly2.c
index 57abb2ff8bbe771495878987c38b1883f8fcbccb..1626f5875879bb4f03a531a1853644d9866f320e 100644
--- a/src/poly2.c
+++ b/src/poly2.c
@@ -8,9 +8,9 @@
 
    frequently used code is in poly.c
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/poly2.c#33 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/poly2.c#35 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #include "qhull_a.h"
@@ -323,9 +323,9 @@ void qh_check_points(void) {
   trace1((qh ferr, 1025, "qh_check_points: check all points below %2.2g of all facet planes\n",
 	  maxoutside));
   if (qh num_good)   /* miss counts other_points and !good facets */
-     total= (float) qh num_good * qh num_points;
+     total= (float)qh num_good * (float)qh num_points;
   else
-     total= (float) qh num_facets * qh num_points;
+     total= (float)qh num_facets * (float)qh num_points;
   if (total >= qh_VERIFYdirect && !qh maxoutdone) {
     if (!qh_QUICKhelp && qh SKIPcheckmax && qh MERGING)
       qh_fprintf(qh ferr, 7075, "\n\
@@ -390,7 +390,7 @@ all %sfacets.  Will make %2.0f distance computations.\n",
       qh_errexit2( qh_ERRprec, errfacet1, errfacet2 );
     }else if (errfacet1 && qh outside_err > REALmax/2)
         qh_errexit2( qh_ERRprec, errfacet1, errfacet2 );
-       /* else if errfacet1, the error was logged to qh.ferr but does not effect the output */
+    /* else if errfacet1, the error was logged to qh.ferr but does not effect the output */
     trace0((qh ferr, 21, "qh_check_points: max distance outside %2.2g\n", maxdist));
   }
 } /* check_points */
@@ -895,7 +895,7 @@ void qh_checkpolygon(facetT *facetlist) {
       }
     }
   }
-  qh vertex_visit += numfacets;
+  qh vertex_visit += (unsigned int)numfacets;
   if (facetlist == qh facet_list) {
     if (numfacets != qh num_facets - qh num_visible) {
       qh_fprintf(qh ferr, 6140, "qhull internal error (qh_checkpolygon): actual number of facets is %d, cumulative facet count is %d - %d visible facets\n",
@@ -1045,7 +1045,7 @@ void qh_createsimplex(setT *vertices) {
     newfacet= qh_newfacet();
     newfacet->vertices= qh_setnew_delnthsorted(vertices, vertex_n,
 						vertex_i, 0);
-    newfacet->toporient= toporient;
+    newfacet->toporient= (unsigned char)toporient;
     qh_appendfacet(newfacet);
     newfacet->newfacet= True;
     qh_appendvertex(vertex);
@@ -1081,7 +1081,7 @@ void qh_delridge(ridgeT *ridge) {
   qh_setdel(ridge->top->ridges, ridge);
   qh_setdel(ridge->bottom->ridges, ridge);
   qh_setfree(&(ridge->vertices));
-  qh_memfree_(ridge, sizeof(ridgeT), freelistp);
+  qh_memfree_(ridge, (int)sizeof(ridgeT), freelistp);
 } /* delridge */
 
 
@@ -1101,7 +1101,7 @@ void qh_delvertex(vertexT *vertex) {
     qh tracevertex= NULL;
   qh_removevertex(vertex);
   qh_setfree(&vertex->neighbors);
-  qh_memfree(vertex, sizeof(vertexT));
+  qh_memfree(vertex, (int)sizeof(vertexT));
 } /* delvertex */
 
 
@@ -1765,7 +1765,7 @@ void qh_initialhull(setT *vertices) {
   qh_distplane(qh interior_point, firstfacet, &dist);
   if (dist > 0) {  
     FORALLfacets
-      facet->toporient ^= True;
+      facet->toporient ^= (unsigned char)True;
   }
   FORALLfacets
     qh_setfacetplane(facet);
@@ -1774,7 +1774,7 @@ void qh_initialhull(setT *vertices) {
       trace1((qh ferr, 1031, "qh_initialhull: initial orientation incorrect.  Correct all facets\n"));
       facet->flipped= False;
       FORALLfacets {
-	facet->toporient ^= True;
+        facet->toporient ^= (unsigned char)True;
 	qh_orientoutside(facet);
       }
       break;
@@ -2050,7 +2050,7 @@ void qh_matchduplicates(facetT *atfacet, int atskip, int hashsize, int *hashcoun
 	  continue;
 	zinc_(Zhashtests);
 	if (qh_matchvertices(1, newfacet->vertices, newskip, facet->vertices, &skip, &same)) {
-	  ismatch= (same == (newfacet->toporient ^ facet->toporient));
+	  ismatch= (same == (boolT)(newfacet->toporient ^ facet->toporient));
 	  if (SETelemt_(facet->neighbors, skip, facetT) != qh_DUPLICATEridge) {
 	    if (!makematch) {
 	      qh_fprintf(qh ferr, 6155, "qhull internal error (qh_matchduplicates): missing dupridge at f%d skip %d for new f%d skip %d hash %d\n",
@@ -2264,8 +2264,8 @@ vertexT *qh_newvertex(pointT *point) {
   vertexT *vertex;
 
   zinc_(Ztotvertices);
-  vertex= (vertexT *)qh_memalloc(sizeof(vertexT));
-  memset((char *) vertex, 0, sizeof(vertexT));
+  vertex= (vertexT *)qh_memalloc((int)sizeof(vertexT));
+  memset((char *) vertex, (size_t)0, sizeof(vertexT));
   if (qh vertex_id == 0xFFFFFF) {
     qh_fprintf(qh ferr, 6159, "qhull input error: more than %d vertices.  ID field overflows and two vertices\n\
 may have the same identifier.  Vertices not sorted correctly.\n", 0xFFFFFF);
@@ -2275,8 +2275,8 @@ may have the same identifier.  Vertices not sorted correctly.\n", 0xFFFFFF);
     qh tracevertex= vertex;
   vertex->id= qh vertex_id++;
   vertex->point= point;
-  vertex->dim= (qh hull_dim <= MAX_vdim ? qh hull_dim : 0);
-  trace4((qh ferr, 4060, "qh_newvertex: vertex p%d(v%d) created\n", qh_pointid(vertex->point), 
+  vertex->dim= (unsigned char)(qh hull_dim <= MAX_vdim ? qh hull_dim : 0);
+  trace4((qh ferr, 4060, "qh_newvertex: vertex p%d(v%d) created\n", qh_pointid(vertex->point),
 	  vertex->id));
   return(vertex);
 } /* newvertex */
@@ -2755,7 +2755,7 @@ void qh_triangulate(void /*qh facet_list*/) {
     facet1= merge->facet1;
     facet2= merge->facet2;
     mergetype= merge->type;
-    qh_memfree(merge, sizeof(mergeT));
+    qh_memfree(merge, (int)sizeof(mergeT));
     if (mergetype == MRGmirror) {
       zinc_(Ztrimirror);
       qh_triangulate_mirror(facet1, facet2);
diff --git a/src/qh-geom.htm b/src/qh-geom.htm
index c14969e5b45edba4fac8f3f7ceaac6a76db72a4a..9709a52e0971b7bab14c2226ce97ede96567a097 100644
--- a/src/qh-geom.htm
+++ b/src/qh-geom.htm
@@ -54,7 +54,7 @@ computations is determined at initialization. The roundoff error
 in halfspace computation is accounted for by computing the
 distance from vertices to the halfspace. </p>
 </blockquote>
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 <hr>
 <p><a href="#TOP">»</a> <b>Geom</b> 
 <a name="TOC">&#149;</a> <a href="qh-globa.htm#TOC">Global</a> &#149; 
diff --git a/src/qh-globa.htm b/src/qh-globa.htm
index ff9650ef996ac2803af9d467036d880f63b713b6..8ea5e006e0092569ca65782381bc8fdd551602d3 100644
--- a/src/qh-globa.htm
+++ b/src/qh-globa.htm
@@ -42,7 +42,7 @@ dynamically allocated with malloc().  See
 <a href="user.h#QHpointer">QHpointer</a>.
 </p>
 </blockquote>
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 <hr>
 <p><a href="#TOP">»</a> <a href="qh-geom.htm#TOC">Geom</a> 
 <a name="TOC">&#149;</a> <b>Global</b> &#149; 
diff --git a/src/qh-io.htm b/src/qh-io.htm
index b85f1fbe094c51745cc96f73204cd4531431400b..1bbb352b5e64f11f5d5ad399b901111cd5816ac8 100644
--- a/src/qh-io.htm
+++ b/src/qh-io.htm
@@ -53,7 +53,7 @@ the same driver: </p>
 qh_skipfacet() is tested. </p>
 
 </blockquote>
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 <hr>
 <p><a href="#TOP">»</a> <a href="qh-geom.htm#TOC">Geom</a> <a name="TOC">&#149;</a>
 <a href="qh-globa.htm#TOC">Global</a> &#149; <b>Io</b> &#149; 
diff --git a/src/qh-mem.htm b/src/qh-mem.htm
index 2be8ec0a1d1fc9be940c0c343ea2867e50fe9655..d227178023b5d5ef8fb60db64d6552a8042ab1a9 100644
--- a/src/qh-mem.htm
+++ b/src/qh-mem.htm
@@ -40,7 +40,7 @@ from a reserved buffer. </p>
 <p>Use 'T5' to trace memory allocations.</p>
 
 </blockquote>
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 <hr>
 <p><a href="#TOP">»</a> <a href="qh-geom.htm#TOC">Geom</a> 
 <a name="TOC">&#149;</a> <a href="qh-globa.htm#TOC">Global</a> &#149;
diff --git a/src/qh-merge.htm b/src/qh-merge.htm
index 976e2f41182c836d6797a52c2e6386f1be787c35..265d6ca578756dc1ccca741152d97b846def4d9e 100644
--- a/src/qh-merge.htm
+++ b/src/qh-merge.htm
@@ -98,7 +98,7 @@ structure.This is called a <em>redundant vertex</em>.
 </li>
 </ul>
 </blockquote>
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 <hr>
 <p><a href="#TOP">»</a> <a href="qh-geom.htm#TOC">Geom</a> 
 <a name="TOC">&#149;</a> <a href="qh-globa.htm#TOC">Global</a>
diff --git a/src/qh-poly.htm b/src/qh-poly.htm
index 97e566a7338beca82968e686b3e3b079f04781a8..e4723cb67a5535659c583dfeb6133bf1964819aa 100644
--- a/src/qh-poly.htm
+++ b/src/qh-poly.htm
@@ -119,7 +119,7 @@ joggled input, they
 may have zero area or flipped orientation.
 
 </blockquote>
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 <hr>
 <p><a href="#TOP">»</a> <a href="qh-geom.htm#TOC">Geom</a> 
 <a name="TOC">&#149;</a> <a href="qh-globa.htm#TOC">Global</a>
diff --git a/src/qh-qhull.htm b/src/qh-qhull.htm
index 5d88bdacd3bf1785f0e3f7a46030fe1ce3b3525c..9bb25fd98c43d7ffdce5d3294ba4c1b83271563e 100644
--- a/src/qh-qhull.htm
+++ b/src/qh-qhull.htm
@@ -41,7 +41,7 @@ the n-d beneath-beyond algorithm. See
 functions and base data types.  The top-level header file, <tt>libqhull.h</tt>,
 contains prototypes for these functions.</p>
 </blockquote>
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 <hr>
 <p><a href="#TOP">»</a> <a href="qh-geom.htm#TOC">Geom</a> 
 <a name="TOC">&#149;</a> <a href="qh-globa.htm#TOC">Global</a>
@@ -93,6 +93,8 @@ macros</a></h3>
 <ul>
 <li><a href="qhull_a.h#traceN">traceN</a> print trace
 message if <em>qh.IStracing &gt;= N</em>. </li>
+<li><a href="qhull_a.h#QHULL_UNUSED">QHULL_UNUSED</a> declare an
+ unused variable to avoid warnings. </li>
 </ul>
 
 <h3><a href="qh-qhull.htm#TOC">»</a><a name="qfunc">Quickhull
diff --git a/src/qh-set.htm b/src/qh-set.htm
index bbd162b3dfb0d262a919c20fbffbabfcdf329bca..49b9f91d518d82d423e007f4cd822bc71334d03c 100644
--- a/src/qh-set.htm
+++ b/src/qh-set.htm
@@ -60,7 +60,7 @@ If a set is full, appending an element copies the set to
 a larger array. </p>
 
 </blockquote>
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 <hr>
 <p><a href="#TOP">»</a> <a href="qh-geom.htm#TOC">Geom</a> 
 <a name="TOC">&#149;</a> <a href="qh-globa.htm#TOC">Global</a> &#149;
diff --git a/src/qh-stat.htm b/src/qh-stat.htm
index 7e124e579b68db922d44394e4c01ccb5ca2cf53a..c976908cd3c31b769863d158dc4a4bc04387b448 100644
--- a/src/qh-stat.htm
+++ b/src/qh-stat.htm
@@ -41,7 +41,7 @@ Statistics
 may be turned off in user.h. If so, all but the 'zz'
 statistics are ignored.</p>
 </blockquote>
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 <hr>
 <p><a href="#TOP">»</a> <a href="qh-geom.htm#TOC">Geom</a> 
 <a name="TOC">&#149;</a> <a href="qh-globa.htm#TOC">Global</a>
diff --git a/src/qh-user.htm b/src/qh-user.htm
index c7ecd9f5d1b7ee51708bfde8c6ba522bdb2fe21f..4042ab3faca15a4d2efaa26e3e19284ea76b3760 100644
--- a/src/qh-user.htm
+++ b/src/qh-user.htm
@@ -35,7 +35,7 @@ href="http://www.qhull.org">Home page</a> for Qhull<br>
 user may want to change. </p>
 
 </blockquote>
-<p><b>Copyright &copy; 1995-2009 The Geometry Center, Minneapolis MN</b></p>
+<p><b>Copyright &copy; 1995-2010 The Geometry Center, Minneapolis MN</b></p>
 <hr>
 <p><a href="#TOP">»</a> <a href="qh-geom.htm#TOC">Geom</a> 
 <a name="TOC">&#149;</a> <a href="qh-globa.htm#TOC">Global</a>
diff --git a/src/qhull.h b/src/qhull.h
index 877bda884f5b2dc8410b094886a105c6205e184f..3354218cc199e483844bd717de860da17c6f52c1 100644
--- a/src/qhull.h
+++ b/src/qhull.h
@@ -5,9 +5,9 @@
 
    Proxy for libqhull.h for backwards compatability
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/qhull.h#49 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/qhull.h#50 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #ifndef qhDEFqhull
diff --git a/src/qhull_a.h b/src/qhull_a.h
index 41895e9c966759e51c9e9e4f6cfa6be39d963bca..ad35036bec9c9838417aba017ed62ca4a31fb293 100644
--- a/src/qhull_a.h
+++ b/src/qhull_a.h
@@ -12,9 +12,9 @@
 
    defines internal functions for libqhull.c global.c
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/qhull_a.h#23 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/qhull_a.h#25 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 
    Notes:  grep for ((" and (" to catch fprintf("lkasdjf");
            full parens around (x?y:z)
@@ -89,6 +89,25 @@
 #define trace5(args) {}
 #endif /* qh_NOtrace */
 
+/*-<a                             href="qh-qhull.htm#TOC"
+  >--------------------------------</a><a name="QHULL_UNUSED">-</a>
+
+*/
+
+/* See Qt's qglobal.h */
+#if !defined(SAG_COM) && (defined(WIN64) || defined(_WIN64) || defined(__WIN64__) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__))
+#   define QHULL_OS_WIN
+#elif defined(__MWERKS__) && defined(__INTEL__)
+#   define QHULL_OS_WIN
+#endif
+#if defined(__INTEL_COMPILER) && !defined(QHULL_OS_WIN)
+template <typename T>
+inline void qhullUnused(T &x) { (void)x; }
+#  define QHULL_UNUSED(x) qhullUnused(x);
+#else
+#  define QHULL_UNUSED(x) (void)x;
+#endif
+
 /***** -libqhull.c prototypes (alphabetical after qhull) ********************/
 
 void 	qh_qhull(void);
@@ -103,7 +122,7 @@ void 	qh_partitionall(setT *vertices, pointT *points,int npoints);
 void    qh_partitioncoplanar(pointT *point, facetT *facet, realT *dist);
 void    qh_partitionpoint(pointT *point, facetT *facet);
 void 	qh_partitionvisible(boolT allpoints, int *numpoints);
-void    qh_precision(char *reason);
+void    qh_precision(const char *reason);
 void	qh_printsummary(FILE *fp);
 
 /***** -global.c internal prototypes (alphabetical) ***********************/
diff --git a/src/qset.c b/src/qset.c
index 1c8c0275c51fe48489b5bd73abfee265b908bc93..7c0059c44b37b7cd7019085293ce017e866dbf41 100644
--- a/src/qset.c
+++ b/src/qset.c
@@ -7,9 +7,9 @@
 
    see qh-set.htm and qset.h
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/qset.c#24 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/qset.c#26 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #include "qset.h"
@@ -25,7 +25,7 @@
 typedef struct ridgeT ridgeT;
 typedef struct facetT facetT;
 void    qh_errexit(int exitcode, facetT *, ridgeT *);
-void	qh_fprintf(FILE *fp, int msgcode, char *fmt, ... );
+void	qh_fprintf(FILE *fp, int msgcode, const char *fmt, ... );
 #  ifdef _MSC_VER  /* Microsoft Visual C++ -- warning level 4 */
 #  pragma warning( disable : 4127)  /* conditional expression is constant */
 #  pragma warning( disable : 4706)  /* assignment within conditional function */
@@ -173,7 +173,7 @@ void qh_setappend_set(setT **setp, setT *setA) {
   }
   *sizep= size+sizeA+1;   /* memcpy may overwrite */
   if (sizeA > 0) 
-    memcpy((char *)&((*setp)->e[size].p), (char *)&(setA->e[0].p), SETelemsize *(sizeA+1));
+    memcpy((char *)&((*setp)->e[size].p), (char *)&(setA->e[0].p), (size_t)(sizeA+1) * SETelemsize);
 } /* setappend_set */
 
 
@@ -219,7 +219,7 @@ void qh_setappend2ndlast(setT **setp, void *newelem) {
   design:
     checks that maxsize, actual size, and NULL terminator agree
 */
-void qh_setcheck(setT *set, char *tname, int id) {
+void qh_setcheck(setT *set, const char *tname, unsigned id) {
   int maxsize, size;
   int waserr= 0;
 
@@ -304,7 +304,7 @@ setT *qh_setcopy(setT *set, int extra) {
   SETreturnsize_(set, size);
   newset= qh_setnew(size+extra);
   *SETsizeaddr_(newset)= size+1;    /* memcpy may overwrite */
-  memcpy((char *)&(newset->e[0].p), (char *)&(set->e[0].p), SETelemsize *(size+1));
+  memcpy((char *)&(newset->e[0].p), (char *)&(set->e[0].p), (size_t)(size+1) * SETelemsize);
   return(newset);
 } /* setcopy */
 
@@ -534,7 +534,7 @@ setT *qh_setduplicate(setT *set, int elemsize) {
   newSet= qh_setnew(size);
   FOREACHelem_(set) {
     newElem= qh_memalloc(elemsize);
-    memcpy(newElem, elem, elemsize);
+    memcpy(newElem, elem, (size_t)elemsize);
     qh_setappend(&newSet, newElem);
   }
   return newSet;
@@ -830,7 +830,7 @@ void qh_setlarger(setT **oldsetp) {
     newset= qh_setnew(2 * size);
     oldp= SETaddr_(oldset, void);
     newp= SETaddr_(newset, void);
-    memcpy((char *)newp, (char *)oldp, (size+1) * SETelemsize);
+    memcpy((char *)newp, (char *)oldp, (size_t)(size+1) * SETelemsize);
     sizep= SETsizeaddr_(newset);
     *sizep= size+1;
     FOREACHset_((setT *)qhmem.tempstack) {
@@ -894,7 +894,7 @@ setT *qh_setnew(int setsize) {
   if (!setsize)
     setsize++;
   size= sizeof(setT) + setsize * SETelemsize;
-  if ((unsigned) size <= (unsigned) qhmem.LASTsize) {
+  if (size <= qhmem.LASTsize) {
     qh_memalloc_(size, freelistp, set, setT);
 #ifndef qh_NOmem
     sizereceived= qhmem.sizetable[ qhmem.indextable[size]];
@@ -965,7 +965,7 @@ setT *qh_setnew_delnthsorted(setT *set, int size, int nth, int prepend) {
     *(newp++)= *oldp++;
     break;
   default:
-    memcpy((char *)newp, (char *)oldp, nth * SETelemsize);
+    memcpy((char *)newp, (char *)oldp, (size_t)nth * SETelemsize);
     newp += nth;
     oldp += nth;
     break;
@@ -993,7 +993,7 @@ setT *qh_setnew_delnthsorted(setT *set, int size, int nth, int prepend) {
     *(newp++)= *oldp++;
     break;
   default:
-    memcpy((char *)newp, (char *)oldp, tailsize * SETelemsize);
+    memcpy((char *)newp, (char *)oldp, (size_t)tailsize * SETelemsize);
     newp += tailsize;
   }
   *newp= NULL;
@@ -1010,7 +1010,7 @@ setT *qh_setnew_delnthsorted(setT *set, int size, int nth, int prepend) {
   notes:
     never errors
 */
-void qh_setprint(FILE *fp, char* string, setT *set) {
+void qh_setprint(FILE *fp, const char* string, setT *set) {
   int size, k;
 
   if (!set)
@@ -1294,7 +1294,7 @@ void qh_setzero(setT *set, int index, int size) {
   }
   set->e[set->maxsize].i=  size+1;  /* may be overwritten */
   count= size - index + 1;   /* +1 for NULL terminator */
-  memset((char *)SETelemaddr_(set, index, void), 0, count * SETelemsize);
+  memset((char *)SETelemaddr_(set, index, void), 0, (size_t)count * SETelemsize);
 } /* setzero */
 
 
diff --git a/src/qset.h b/src/qset.h
index c188d6a495ce7cf326b928cd826c17f267730975..6fec13f558f651c3912223f4724023d6f66c15f4 100644
--- a/src/qset.h
+++ b/src/qset.h
@@ -16,9 +16,9 @@
     - every set is NULL terminated
     - sets may be sorted or unsorted, the caller must distinguish this
    
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/qset.h#16 $$Change: 1099 $
-   $DateTime: 2009/12/04 22:49:19 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/qset.h#18 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #ifndef qhDEFset
@@ -95,7 +95,7 @@ struct setT {
   SETelemsize
     size of a set element in bytes
 */
-#define SETelemsize sizeof(setelemT) 
+#define SETelemsize ((int)sizeof(setelemT)) 
 
 
 /*=========== -macros- =========================*/
@@ -447,7 +447,7 @@ void  qh_setaddnth(setT **setp, int nth, void *newelem);
 void  qh_setappend(setT **setp, void *elem);
 void  qh_setappend_set(setT **setp, setT *setA);
 void  qh_setappend2ndlast(setT **setp, void *elem);
-void  qh_setcheck(setT *set, char *tname, int id);
+void  qh_setcheck(setT *set, const char *tname, unsigned id);
 void  qh_setcompact(setT *set);
 setT *qh_setcopy(setT *set, int extra);
 void *qh_setdel(setT *set, void *elem);
@@ -468,7 +468,7 @@ void  qh_setlarger(setT **setp);
 void *qh_setlast(setT *set);
 setT *qh_setnew(int size);
 setT *qh_setnew_delnthsorted(setT *set, int size, int nth, int prepend);
-void  qh_setprint(FILE *fp, char* string, setT *set);
+void  qh_setprint(FILE *fp, const char* string, setT *set);
 void  qh_setreplace(setT *set, void *oldelem, void *newelem);
 int   qh_setsize(setT *set);
 setT *qh_settemp(int setsize);
diff --git a/src/random.h b/src/random.h
index 9eacdd945369a8fd3455207b58efdca6cd80a3a1..cb20ab6107d3c1116ef7425efe4e3f9cd6b7f7ca 100644
--- a/src/random.h
+++ b/src/random.h
@@ -6,9 +6,9 @@
 
    see qh-geom.htm and random.c
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/random.h#9 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $        
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/random.h#10 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $        
 */
 
 #ifndef qhDEFrandom
diff --git a/src/rbox.c b/src/rbox.c
index 886c6a138097497edecef51be55259d15d18fcfc..00b3b25dfa0aa2f5c2c575ec7ca161837e49fdd3 100644
--- a/src/rbox.c
+++ b/src/rbox.c
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
   }
 
   command_size= qh_argv_to_command_size(argc, argv);
-  if ((command= (char *)qh_malloc(command_size))) {
+  if ((command= (char *)qh_malloc((size_t)command_size))) {
     qh_argv_to_command(argc, argv, command, command_size);
     return_status= qh_rboxpoints(stdout, stderr, command);
     qh_free(command);
diff --git a/src/rboxlib.c b/src/rboxlib.c
index f74fcd2cb83dfd17316df2301e880eaeaa6f8d7c..a9bd5e1d760e245343f5684a76fcca039c44c783 100644
--- a/src/rboxlib.c
+++ b/src/rboxlib.c
@@ -41,7 +41,7 @@ void out3n( double a, double b, double c);
 
 void	qh_fprintf_rbox(FILE *fp, int msgcode, const char *fmt, ... );
 void    qh_free(void *mem);
-void   *qh_malloc(unsigned int size);
+void   *qh_malloc(size_t size);
 int     qh_rand( void);
 void    qh_srand( int seed);
 
@@ -176,7 +176,7 @@ int qh_rboxpoints(FILE* fout, FILE* ferr, char* rbox_command) {
     case 't':
       istime= 1;
       if (isdigit(*s)) {
-	seed= qh_strtod(s, &s);
+        seed= qh_strtol(s, &s);
         israndom= 0;
       }else 
         israndom= 1;
@@ -220,13 +220,15 @@ int qh_rboxpoints(FILE* fout, FILE* ferr, char* rbox_command) {
       ismesh= 1;
       if (*s)
 	meshn= qh_strtod(s, &s);
-      if (*s == ',')
-	meshm= qh_strtod(++s, &s);
-      else
+      if (*s == ',') {
+        ++s;
+        meshm= qh_strtod(s, &s);
+      }else
 	meshm= 0.0;
-      if (*s == ',')
-	meshr= qh_strtod(++s, &s);
-      else
+      if (*s == ',') {
+        ++s;
+        meshr= qh_strtod(s, &s);
+      }else
 	meshr= sqrt(meshn*meshn + meshm*meshm);
       if (*s && !isspace(*s)) {
 	qh_fprintf_rbox(rbox.ferr, 7069, "rbox warning: assuming 'M3,4,5' since mesh args are not integers or reals\n");
@@ -268,7 +270,7 @@ int qh_rboxpoints(FILE* fout, FILE* ferr, char* rbox_command) {
   if (rbox.isinteger && !isbox)
     box= qh_DEFAULTzbox;
   if (addcube) {
-    cubesize= floor(ldexp(1.0,dim)+0.5);
+    cubesize= (int)floor(ldexp(1.0,dim)+0.5);
     if (cube == 0.0)
       cube= box;
   }else
@@ -457,7 +459,7 @@ int qh_rboxpoints(FILE* fout, FILE* ferr, char* rbox_command) {
 
   /* ============= mesh distribution =============== */
   if (ismesh) {
-    nthroot= pow(numpoints, 1.0/dim) + 0.99999;
+    nthroot= (int)(pow((double)numpoints, 1.0/dim) + 0.99999);
     for (k=dim; k--; )
       mult[k]= 0;
     for (i=0; i < numpoints; i++) {
@@ -561,7 +563,7 @@ int qh_rboxpoints(FILE* fout, FILE* ferr, char* rbox_command) {
       y= sin(angle);
       if (iscdd)
         out1( 1.0);
-      out3n( box*x, box*y, 0);
+      out3n( box*x, box*y, 0.0);
       x *= 1-gap;
       y *= 1-gap;
       if (iscdd)
@@ -747,13 +749,13 @@ int roundi( double a) {
       qh_fprintf_rbox(rbox.ferr, 6200, "rbox input error: negative coordinate %2.2g is too large.  Reduce 'Bn'\n", a);
       qh_errexit_rbox(qh_ERRinput);
     }
-    return a - 0.5;
+    return (int)(a - 0.5);
   }else {
     if (a + 0.5 > INT_MAX) {
       qh_fprintf_rbox(rbox.ferr, 6201, "rbox input error: coordinate %2.2g is too large.  Reduce 'Bn'\n", a);
       qh_errexit_rbox(qh_ERRinput);
     }
-    return a + 0.5;
+    return (int)(a + 0.5);
   }
 } /* roundi */
 
diff --git a/src/stat.c b/src/stat.c
index 9a51463608b8239bb1eff65006ca00415a998758..066112597e58fb2ad4f36bd6f98d6f5afd48f26d 100644
--- a/src/stat.c
+++ b/src/stat.c
@@ -6,9 +6,9 @@
 
    see qh-stat.htm and stat.h
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/stat.c#22 $$Change: 1059 $
-   $DateTime: 2009/10/30 18:26:26 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/stat.c#25 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #include "qhull_a.h"
@@ -470,9 +470,9 @@ void qh_initstatistics(void) {
   qh_allstatG();
   qh_allstatH();
   qh_allstatI();
-  if (qhstat next > sizeof(qhstat id)) {
+  if (qhstat next > (int)sizeof(qhstat id)) {
     qh_fprintf(qhmem.ferr, 6184, "qhull error (qh_initstatistics): increase size of qhstat.id[].\n\
-      qhstat.next %d should be <= sizeof(qhstat id) %d\n", qhstat next, sizeof(qhstat id));
+      qhstat.next %d should be <= sizeof(qhstat id) %d\n", qhstat next, (int)sizeof(qhstat id));
 #if 0 /* for locating error, Znumridges should be duplicated */
     for(i=0; i < ZEND; i++) {
       int j;
@@ -552,7 +552,7 @@ boolT qh_nostatistic(int i) {
   qh_printallstatistics( fp, string )
     print all statistics with header 'string'
 */
-void qh_printallstatistics(FILE *fp, char *string) {
+void qh_printallstatistics(FILE *fp, const char *string) {
 
   qh_allstatistics();
   qh_collectstatistics();
@@ -571,7 +571,7 @@ void qh_printallstatistics(FILE *fp, char *string) {
   see: 
     qh_printallstatistics()
 */
-void qh_printstatistics(FILE *fp, char *string) {
+void qh_printstatistics(FILE *fp, const char *string) {
   int i, k;
   realT ave;
   
diff --git a/src/stat.h b/src/stat.h
index 6dcb90ddfab10ccf40b62dfcb86437533a545c32..9415436249243a4d088c9a8056c6c4b05aaa5661 100644
--- a/src/stat.h
+++ b/src/stat.h
@@ -6,9 +6,9 @@
 
    see qh-stat.htm and stat.c
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/stat.h#22 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/stat.h#25 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 
    recompile qhull if you change this file
 
@@ -494,7 +494,7 @@ extern qhstatT qh_qhstat;
 struct qhstatT {  
   intrealT   stats[ZEND];     /* integer and real statistics */
   unsigned   char id[ZEND+10]; /* id's in print order */
-  char      *doc[ZEND];       /* array of documentation strings */
+  const char *doc[ZEND];       /* array of documentation strings */
   short int  count[ZEND];     /* -1 if none, else index of count to use */
   char       type[ZEND];      /* type, see ztypes above */
   char       printed[ZEND];   /* true, if statistic has been printed */
@@ -525,8 +525,8 @@ void	qh_freestatistics(void);
 void    qh_initstatistics(void);
 boolT 	qh_newstats(int index, int *nextindex);
 boolT 	qh_nostatistic(int i);
-void    qh_printallstatistics(FILE *fp, char *string);
-void    qh_printstatistics(FILE *fp, char *string);
+void    qh_printallstatistics(FILE *fp, const char *string);
+void    qh_printstatistics(FILE *fp, const char *string);
 void  	qh_printstatlevel(FILE *fp, int id, int start);
 void  	qh_printstats(FILE *fp, int index, int *nextindex);
 realT   qh_stddev(int num, realT tot, realT tot2, realT *ave);
diff --git a/src/unix.c b/src/unix.c
index be6b3cfc6667b7fd041a3c5ee82b399987795496..d74b403735ea05519646c81ddaf504d39af08ff4 100644
--- a/src/unix.c
+++ b/src/unix.c
@@ -7,9 +7,9 @@
 
    see qh-qhull.htm
 
-   copyright (c) 1993-2009 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/unix.c#24 $$Change: 1102 $
-   $DateTime: 2009/12/07 20:26:04 $$Author: bbarber $
+   copyright (c) 1993-2010 The Geometry Center.
+   $Id: //product/qhull/main/rel/src/unix.c#25 $$Change: 1137 $
+   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
 */
 
 #include "mem.h"
diff --git a/src/user.c b/src/user.c
index a6742ed8f02db759ab028cecf17ed89e23c56f87..6e6287e8ddc3b0047c4c3d8b9dcb77661b841fe4 100644
--- a/src/user.c
+++ b/src/user.c
@@ -129,7 +129,7 @@ int qh_new_qhull(int dim, int numpoints, coordT *points, boolT ismalloc,
     qh_meminit(errfile);
     firstcall= False;
   }
-  if (strncmp(qhull_cmd,"qhull ", 6)) {
+  if (strncmp(qhull_cmd,"qhull ", (size_t)6)) {
     qh_fprintf(errfile, 6186, "qhull error (qh_new_qhull): start qhull_cmd argument with \"qhull \"\n");
     qh_exit(qh_ERRinput);
   }
@@ -253,7 +253,7 @@ void qh_errexit(int exitcode, facetT *facet, ridgeT *ridge) {
   notes:
     except for string, any parameter may be NULL
 */
-void qh_errprint(char *string, facetT *atfacet, facetT *otherfacet, ridgeT *atridge, vertexT *atvertex) {
+void qh_errprint(const char *string, facetT *atfacet, facetT *otherfacet, ridgeT *atridge, vertexT *atvertex) {
   int i;
 
   if (atfacet) {
diff --git a/src/user.h b/src/user.h
index 472144d268d37f766361d7db6e86263d1faaca00..5cbf14291a53c87d7882e014a64e56b919a6fb00 100644
--- a/src/user.h
+++ b/src/user.h
@@ -427,7 +427,7 @@ stop after qh_JOGGLEmaxretry attempts
     If using gcc, best alignment is
               #define qh_MEMalign fmax_(__alignof__(realT),__alignof__(void *))
 */
-#define qh_MEMalign fmax_(sizeof(realT), sizeof(void *))
+#define qh_MEMalign ((int)(fmax_(sizeof(realT), sizeof(void *))))
 
 /*-<a                             href="qh-user.htm#TOC"
   >--------------------------------</a><a name="MEMbufsize">-</a>
diff --git a/src/user_eg2.c b/src/user_eg2.c
index fa2cc47c5ee350eb67de4269758cce76e73f6108..da2c77fe7658952e1e571b1ecdb0e250ef51601c 100644
--- a/src/user_eg2.c
+++ b/src/user_eg2.c
@@ -302,7 +302,7 @@ void addhalf (coordT *points, int numpoints, int numnew, int dim, coordT *feasib
     offset= -1.0;
     for (k=dim; k--; ) {
       if (j/2 == k) {
-	normal[k]= sqrt (dim);   /* to normalize as in makehalf */
+	normal[k]= sqrt((coordT)dim);   /* to normalize as in makehalf */
 	if (j & 1)
 	  normal[k]= -normal[k];
       }else
diff --git a/src/usermem.c b/src/usermem.c
index 82b7a43bb773ea20ec0139fdc547affc27c7f53e..134a415ee05131a441c3244b1ec4a8cf8a590c7b 100644
--- a/src/usermem.c
+++ b/src/usermem.c
@@ -25,14 +25,14 @@
 /*-<a                             href="qh-user.htm#TOC"
   >-------------------------------</a><a name="qh_exit">-</a>
 
-  qh_exit( errstatus )
+  qh_exit( exitcode )
     exit program
 
   notes:
     same as exit()
 */
-void qh_exit(int errstatus) {
-    exit(errstatus);
+void qh_exit(int exitcode) {
+    exit(exitcode);
 } /* exit */
 
 /*-<a                             href="qh-user.htm#TOC"
@@ -57,7 +57,7 @@ void qh_free(void *mem) {
     notes:
       same as malloc()
 */
-void *qh_malloc(unsigned int size) {
+void *qh_malloc(size_t size) {
     return malloc(size);
 } /* malloc */
 
diff --git a/user_eg3.ilk b/user_eg3.ilk
new file mode 100644
index 0000000000000000000000000000000000000000..dd16733fcdf03fb95d39af078eccfc3ff3497085
Binary files /dev/null and b/user_eg3.ilk differ