// file and in each case pick the more accurate data type for intermediate
// results. currently, the choice is pretty much random. this may also allow
// us some operations where one operand is complex and the other is not
+// -> use ProductType<T,U> type trait for the results
#include <deal.II/base/config.h>
#include <deal.II/base/template_constraints.h>
* @note The template with @tref number2 only exists for compile-time
* compatibility with FullMatrix. Only the case @tref number2 = @tref
* number is implemented due to limitations in the underlying LAPACK
- * interface
+ * interface. All other variants throw an error upon invocation.
*/
template <typename number2>
void vmult (Vector<number2> &w,
const Vector<number2> &v,
const bool adding = false) const;
+ /**
+ * Specialization of above function for compatbile Vector::value_type.
+ */
void vmult (Vector<number> &w,
const Vector<number> &v,
const bool adding = false) const;
void vmult_add (Vector<number2> &w,
const Vector<number2> &v) const;
+ /**
+ * Specialization of above function for compatbile Vector::value_type.
+ */
void vmult_add (Vector<number> &w,
const Vector<number> &v) const;
const Vector<number2> &v,
const bool adding=false) const;
+ /**
+ * Specialization of above function for compatbile Vector::value_type.
+ */
void Tvmult (Vector<number> &w,
const Vector<number> &v,
const bool adding=false) const;
void Tvmult_add (Vector<number2> &w,
const Vector<number2> &v) const;
+ /**
+ * Specialization of above function for compatbile Vector::value_type.
+ */
void Tvmult_add (Vector<number> &w,
const Vector<number> &v) const;