fix some warnings
diff --git a/.hgignore b/.hgignore
index 58b3966..5845f20 100644
--- a/.hgignore
+++ b/.hgignore
@@ -5,6 +5,7 @@
 *.diff
 diff
 *.save
+save
 *.old
 *.gmo
 *.qm
diff --git a/Eigen/src/Sparse/SparseLU.h b/Eigen/src/Sparse/SparseLU.h
index 3fe9df1..0211b78 100644
--- a/Eigen/src/Sparse/SparseLU.h
+++ b/Eigen/src/Sparse/SparseLU.h
@@ -102,7 +102,7 @@
 
     void setOrderingMethod(int m)
     {
-      ei_assert(m&~OrderingMask == 0 && m!=0 && "invalid ordering method");
+      ei_assert( (m&~OrderingMask) == 0 && m!=0 && "invalid ordering method");
       m_flags = m_flags&~OrderingMask | m&OrderingMask;
     }
 
@@ -138,7 +138,7 @@
   * using the default algorithm.
   */
 template<typename MatrixType, int Backend>
-void SparseLU<MatrixType,Backend>::compute(const MatrixType& a)
+void SparseLU<MatrixType,Backend>::compute(const MatrixType& )
 {
   ei_assert(false && "not implemented yet");
 }
@@ -153,7 +153,7 @@
   */
 template<typename MatrixType, int Backend>
 template<typename BDerived, typename XDerived>
-bool SparseLU<MatrixType,Backend>::solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived>* x, const int transposed) const
+bool SparseLU<MatrixType,Backend>::solve(const MatrixBase<BDerived> &, MatrixBase<XDerived>* , const int ) const
 {
   ei_assert(false && "not implemented yet");
   return false;
diff --git a/Eigen/src/Sparse/SparseProduct.h b/Eigen/src/Sparse/SparseProduct.h
index 4499e88..078ac5f 100644
--- a/Eigen/src/Sparse/SparseProduct.h
+++ b/Eigen/src/Sparse/SparseProduct.h
@@ -156,8 +156,8 @@
   float avgNnzPerRhsColumn = float(rhs.nonZeros())/float(cols);
   float ratioRes = std::min(ratioLhs * avgNnzPerRhsColumn, 1.f);
 
-  int t200 = rows/(log2(200)*1.39);
-  int t = (rows*100)/139;
+//  int t200 = rows/(log2(200)*1.39);
+//  int t = (rows*100)/139;
 
   res.resize(rows, cols);
   res.reserve(int(ratioRes*rows*cols));
@@ -377,6 +377,11 @@
 {
   static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
   {
+      // prevent warnings until the code is fixed
+      (void) lhs;
+      (void) rhs;
+      (void) res;
+
 //     typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
 //     RowMajorMatrix rhsRow = rhs;
 //     RowMajorMatrix resRow(res.rows(), res.cols());
diff --git a/Eigen/src/Sparse/SparseSelfAdjointView.h b/Eigen/src/Sparse/SparseSelfAdjointView.h
index 8496612..d477053 100644
--- a/Eigen/src/Sparse/SparseSelfAdjointView.h
+++ b/Eigen/src/Sparse/SparseSelfAdjointView.h
@@ -214,7 +214,7 @@
     DenseTimeSparseSelfAdjointProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
     {}
 
-    template<typename Dest> void scaleAndAddTo(Dest& dest, Scalar alpha) const
+    template<typename Dest> void scaleAndAddTo(Dest& /*dest*/, Scalar /*alpha*/) const
     {
       // TODO
     }
diff --git a/Eigen/src/Sparse/SparseUtil.h b/Eigen/src/Sparse/SparseUtil.h
index b051b68..782690b 100644
--- a/Eigen/src/Sparse/SparseUtil.h
+++ b/Eigen/src/Sparse/SparseUtil.h
@@ -144,7 +144,7 @@
 const int OuterRandomAccessPattern  = 0x4 | CoherentAccessPattern;
 const int RandomAccessPattern       = 0x8 | OuterRandomAccessPattern | InnerRandomAccessPattern;
 
-template<typename T> class ei_eval<T,Sparse>
+template<typename T> struct ei_eval<T,Sparse>
 {
     typedef typename ei_traits<T>::Scalar _Scalar;
     enum {
diff --git a/Eigen/src/Sparse/SparseVector.h b/Eigen/src/Sparse/SparseVector.h
index d328312..6806ab2 100644
--- a/Eigen/src/Sparse/SparseVector.h
+++ b/Eigen/src/Sparse/SparseVector.h
@@ -379,7 +379,7 @@
     {}
 
     template<unsigned int Added, unsigned int Removed>
-    InnerIterator(const Flagged<SparseVector,Added,Removed>& vec, int outer)
+    InnerIterator(const Flagged<SparseVector,Added,Removed>& vec, int )
       : m_data(vec._expression().m_data), m_id(0), m_end(m_data.size())
     {}