tminres
|
00001 // tminres is free software; you can redistribute it and/or modify it under the 00002 // terms of the GNU Lesser General Public License (as published by the Free 00003 // Software Foundation) version 2.1 dated February 1999. 00004 // 00005 // Authors: 00006 // - Umberto Villa, Emory University - uvilla@emory.edu 00007 // - Michael Saunders, Stanford University 00008 // - Santiago Akle, Stanford University 00009 00016 #ifndef VECTOR_TRAIT_HPP_ 00017 #define VECTOR_TRAIT_HPP_ 00018 00020 00024 class Vector_trait 00025 { 00026 00028 Vector_trait & operator=(const double & val) = 0; 00030 Vector_trait & operator=(const Vector_trait & RHS) = 0; 00032 void Scale(const double & val) = 0; 00034 Vector_trait * Clone() = 0; 00035 00037 friend void add(const Vector_trait & v1, const double & c2, const Vector_trait & v2, Vector_trait & result); 00039 friend void add(const double & c1, const Vector_trait & v1, const double & c2, const Vector_trait & v2, Vector_trait & result); 00041 friend void add(const double & alpha, const Vector_trait & v1, const Vector_trait & v2, Vector_trait & result); 00043 friend void add(const Vector_trait & v1, const Vector_trait & v2, const Vector_trait & v3, Vector_trait & result); 00045 friend void subtract(const Vector_trait & v1, const Vector_trait & v2, Vector_trait & result); 00047 friend double InnerProduct(const Vector_trait & v1, const Vector_trait & v2); 00048 00049 00050 00051 }; 00052 00053 00054 #endif /* VECTOR_TRAIT_HPP_ */