Salome HOME
Reduced test time (fewer meshes)
[tools/solverlab.git] / CDMATH / base / inc / Vector.hxx
1 /*
2  * Vector.hxx
3  *
4  *  Created on: 15 avr. 2013
5  *      Author: CDMATH
6  */
7
8 #ifndef VECTOR_HXX_
9 #define VECTOR_HXX_
10
11 #include "Matrix.hxx"
12
13 class Vector: public Matrix
14 {
15     public: //----------------------------------------------------------------
16
17         Vector ( void ) ;
18
19         Vector( int numberOfRows ) ;
20
21         ~Vector ( void ) ;
22
23     /**
24      * deep copy of a vector (values are copied)
25      * @param vector : The Vector object to be copied
26      */
27     Vector deepCopy( ) const;
28
29         int size() const ;
30
31         double& operator () ( int i ) ;
32
33         double operator () ( int i ) const ;
34
35         double& operator [] ( int i ) ;
36
37         double operator [] ( int i ) const ;
38
39         double norm() const ;
40
41         Vector maxVector(int gap=1) const ;
42
43         Vector innerProduct (const Vector& vector) const ;
44
45         Vector crossProduct (const Vector& vector) const ;
46
47         Matrix tensProduct ( const Vector& vector) const ;
48
49         double operator* (const Vector& vector) const ;
50
51         friend Matrix operator^(const Vector& vector1, const Vector& vector2);
52
53         friend Vector operator+ (const Vector& vector1, const Vector& vector2);
54
55         friend Vector operator- (const Vector& vector1, const Vector& vector2);
56
57         friend Vector operator* (double value , const Vector& vector ) ;
58
59         friend Vector operator* (const Vector& vector, double value ) ;
60
61         friend Vector operator% (const Vector& vector1, const Vector& vector2 ) ;//cross-product for vectors in dimension 3
62
63         friend Vector operator/ (const Vector& vector, double value) ;
64
65 };
66
67 #endif /* VECTOR_HXX_ */