]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Remove comparison operators from PointerMatrixBase and associated infrastructure...
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sat, 15 Feb 2014 13:00:22 +0000 (13:00 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sat, 15 Feb 2014 13:00:22 +0000 (13:00 +0000)
git-svn-id: https://svn.dealii.org/trunk@32492 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/doc/news/changes.h
deal.II/include/deal.II/lac/matrix_lib.h
deal.II/include/deal.II/lac/pointer_matrix.h
deal.II/include/deal.II/lac/transpose_matrix.h
deal.II/source/lac/matrix_lib.cc

index a3d9e9f8746b622337811b889e66a0895c24fd1b..83cd398594ec0f3e20bb45fc7ea67dcf04a4a6cc 100644 (file)
@@ -40,6 +40,17 @@ inconvenience this causes.
 </p>
 
 <ol>
+  <li> Removed: Class PointerMatrixBase (and, consequently, the various
+  classes derived from it) had comparison operators that were intended to
+  work generically for any kind of derived class. However, the implementation
+  used a scheme that was not robust enough to handle the various situations
+  that derived classes implemented and, consequently, was not always correct.
+  These operators were not previously used inside the library and, likely,
+  were not widely used in applications either. They have now been removed.
+  <br>
+  (Wolfgang Bangerth, 2014/02/15)
+  </li>
+
   <li> Changed: The various classes generating graphical output, such
   as DataOut or DataOutStack, are all derived from a common interface
   class DataOutInterface which, in turn was derived from DataOutBase
index 589ea8262020517d2c44ce7619e117105e0b7ffa..03eb9b7a3d35a15f5d9d16f8938f6511385a3c63 100644 (file)
@@ -145,12 +145,6 @@ private:
    * Memory for auxiliary vector.
    */
   SmartPointer<VectorMemory<VECTOR>,ProductMatrix<VECTOR> > mem;
-
-  /**
-   * Return some kind of
-   * identifier.
-   */
-  virtual const void *get() const;
 };
 
 
@@ -190,7 +184,7 @@ public:
   void initialize (const MATRIX &M, const double factor);
 
   /**
-   * Delete internal matrix pointer.
+   * Reset the object to its original state.
    */
   void clear ();
 
@@ -317,11 +311,6 @@ private:
    * Memory for auxiliary vector.
    */
   SmartPointer<VectorMemory<VectorType>,ProductSparseMatrix<number,vector_number>  > mem;
-  /**
-   * Return some kind of
-   * identifier.
-   */
-  virtual const void *get() const;
 };
 
 
@@ -738,13 +727,6 @@ ProductMatrix<VECTOR>::Tvmult_add (VECTOR &dst, const VECTOR &src) const
 }
 
 
-template<class VECTOR>
-const void *
-ProductMatrix<VECTOR>::get () const
-{
-  return (void *) m1;
-}
-
 
 //---------------------------------------------------------------------------
 
index b53d6bab4bbb696008f710863f50b3d2ee257d48..d430c659abd64322153abe1d55325f118a511fba 100644 (file)
@@ -78,48 +78,10 @@ public:
   virtual ~PointerMatrixBase ();
 
   /**
-   * Reset pointer and release the
-   * matrix pointed to.
+   * Reset the object to its original state.
    */
   virtual void clear () = 0;
 
-  /**
-   * Find out if two matrices point
-   * to the same object.
-   */
-  bool operator == (const PointerMatrixBase<VECTOR> &) const;
-
-  /**
-   * Find out if two matrices do
-   * not point to the same object.
-   */
-  bool operator != (const PointerMatrixBase<VECTOR> &) const;
-
-  /**
-   * Find out if this pointer is
-   * less.
-   */
-  bool operator < (const PointerMatrixBase<VECTOR> &) const;
-
-  /**
-   * Find out if this pointer is
-   * less or equal.
-   */
-  bool operator <= (const PointerMatrixBase<VECTOR> &) const;
-
-  /**
-   * Find out if this pointer is
-   * greater.
-   */
-  bool operator > (const PointerMatrixBase<VECTOR> &) const;
-
-  /**
-   * Find out if this pointer is
-   * greater or equal.
-   */
-  bool operator >= (const PointerMatrixBase<VECTOR> &) const;
-
-
   /**
    * Matrix-vector product.
    */
@@ -145,12 +107,6 @@ public:
    */
   virtual void Tvmult_add (VECTOR &dst,
                            const VECTOR &src) const = 0;
-
-private:
-  /**
-   * Get the pointer for comparison.
-   */
-  virtual const void *get() const = 0;
 };
 
 /**
@@ -242,12 +198,6 @@ public:
                            const VECTOR &src) const;
 
 private:
-  /**
-   * Return the address of the
-   * matrix for comparison.
-   */
-  virtual const void *get() const;
-
   /**
    * The pointer to the actual matrix.
    */
@@ -364,12 +314,6 @@ public:
                            const VECTOR &src) const;
 
 private:
-  /**
-   * Return the address of the
-   * matrix for comparison.
-   */
-  virtual const void *get() const;
-
   /**
    * The backup memory if none was provided.
    */
@@ -510,12 +454,6 @@ public:
                            const Vector<number> &src) const;
 
 private:
-  /**
-   * Return the address of the
-   * matrix for comparison.
-   */
-  virtual const void *get() const;
-
   /**
    * The pointer to the actual matrix.
    */
@@ -688,65 +626,6 @@ PointerMatrixBase<VECTOR>::~PointerMatrixBase ()
 
 
 
-template<class VECTOR>
-inline
-bool
-PointerMatrixBase<VECTOR>::operator == (const PointerMatrixBase<VECTOR> &other) const
-{
-  return (get() == other.get());
-}
-
-
-
-template<class VECTOR>
-inline
-bool
-PointerMatrixBase<VECTOR>::operator != (const PointerMatrixBase<VECTOR> &other) const
-{
-  return (get() != other.get());
-}
-
-
-
-template<class VECTOR>
-inline
-bool
-PointerMatrixBase<VECTOR>::operator < (const PointerMatrixBase<VECTOR> &other) const
-{
-  return (get() < other.get());
-}
-
-
-
-template<class VECTOR>
-inline
-bool
-PointerMatrixBase<VECTOR>::operator <= (const PointerMatrixBase<VECTOR> &other) const
-{
-  return (get() <= other.get());
-}
-
-
-
-template<class VECTOR>
-inline
-bool
-PointerMatrixBase<VECTOR>::operator > (const PointerMatrixBase<VECTOR> &other) const
-{
-  return (get() > other.get());
-}
-
-
-
-template<class VECTOR>
-inline
-bool
-PointerMatrixBase<VECTOR>::operator >= (const PointerMatrixBase<VECTOR> &other) const
-{
-  return (get() >= other.get());
-}
-
-
 //----------------------------------------------------------------------//
 
 
@@ -836,13 +715,6 @@ PointerMatrix<MATRIX, VECTOR>::Tvmult_add (VECTOR &dst,
 }
 
 
-template<class MATRIX, class VECTOR>
-inline const void *
-PointerMatrix<MATRIX, VECTOR>::get () const
-{
-  return m;
-}
-
 
 //----------------------------------------------------------------------//
 
@@ -977,14 +849,6 @@ PointerMatrixAux<MATRIX, VECTOR>::Tvmult_add (VECTOR &dst,
 }
 
 
-template<class MATRIX, class VECTOR>
-inline const void *
-PointerMatrixAux<MATRIX, VECTOR>::get () const
-{
-  return m;
-}
-
-
 //----------------------------------------------------------------------//
 
 
@@ -1086,15 +950,6 @@ PointerMatrixVector<number>::Tvmult_add (
 }
 
 
-template<typename number>
-inline const void *
-PointerMatrixVector<number>::get () const
-{
-  return m;
-}
-
-
-
 DEAL_II_NAMESPACE_CLOSE
 
 #endif
index 6558e6a3b801364a7440cdfe803ee53ebae725e2..cb0dd3bae745db2dbc77b2b21510dae7e273b9a8 100644 (file)
@@ -118,12 +118,6 @@ public:
                            const VECTOR &src) const;
 
 private:
-  /**
-   * Return the address of the
-   * matrix for comparison.
-   */
-  virtual const void *get() const;
-
   /**
    * The pointer to the actual matrix.
    */
@@ -220,15 +214,6 @@ TransposeMatrix<MATRIX, VECTOR>::Tvmult_add (VECTOR &dst,
 }
 
 
-template<class MATRIX, class VECTOR>
-inline const void *
-TransposeMatrix<MATRIX, VECTOR>::get () const
-{
-  return m;
-}
-
-
-
 DEAL_II_NAMESPACE_CLOSE
 
 #endif
index 69b68c0298bb6df2d4fc91c1836b7319b8c7c3dd..7f869c20bf4ef7a731772861b9eb18f25b0ea21f 100644 (file)
@@ -135,14 +135,6 @@ ProductSparseMatrix<number, vnumber>::Tvmult_add (VectorType &dst, const VectorT
 }
 
 
-template<typename number, typename vnumber>
-const void *
-ProductSparseMatrix<number, vnumber>::get () const
-{
-  return &*m1;
-}
-
-
 template class ProductSparseMatrix<double, double>;
 template class ProductSparseMatrix<double, float>;
 template class ProductSparseMatrix<float, double>;

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.