-
Notifications
You must be signed in to change notification settings - Fork 1
/
rmatrix.h
104 lines (97 loc) · 4.42 KB
/
rmatrix.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// Simple interval library from Luc JAULIN, with minor modifications from Fabrice LE BARS and Jeremy NICOLA.
#ifndef RMATRIX_H
#define RMATRIX_H
#include "box.h"
#include "matrix_lib/tnt.h"
#include "matrix_lib/jama_lu.h"
class rmatrix
{
public:
TNT::Array2D <double> data;
public:
//----------------------------------------------------------------------
// Constructors/destructors
//----------------------------------------------------------------------
rmatrix();
rmatrix(int, int);
rmatrix(const box &);
rmatrix(const rmatrix&);
~rmatrix();
//----------------------------------------------------------------------
// Operators
//----------------------------------------------------------------------
rmatrix& operator=(const rmatrix&);
friend rmatrix operator+(const rmatrix&, const rmatrix&);
friend rmatrix operator-(const rmatrix&);
friend rmatrix operator-(const rmatrix&, const rmatrix&);
friend rmatrix operator*(const rmatrix&, const rmatrix&);
friend rmatrix operator*(const double, const rmatrix&);
//friend rmatrix operator*(const rmatrix&, const interval&);
//friend std::ostream& operator<<(std::ostream&, const rmatrix&);
//----------------------------------------------------------------------
// Member functions
//----------------------------------------------------------------------
double GetVal(int, int) const;
void SetVal(int, int, double);
int dim1(void) const;
int dim2(void) const;
};
//----------------------------------------------------------------------
// rmatrix-valued functions
//----------------------------------------------------------------------
rmatrix Zeros(int, int);
rmatrix Eye(int);
rmatrix Inv(rmatrix&);
rmatrix RotationPhiThetaPsi(double phi, double theta, double psi);
//----------------------------------------------------------------------
// Other functions
//----------------------------------------------------------------------
box ToBox(const rmatrix& B);
double Det(rmatrix&);
/*double Angle (rmatrix& ,rmatrix&); // Il faut des vecteurs de dim 2
int Size (const rmatrix&);
int AxePrincipal (rmatrix&);
int AxePrincipal (rmatrix&, vector<int>&);
int AxePrincipal (rmatrix&, rmatrix&);
void Update (rmatrix&);
rmatrix Rand (const rmatrix& X);
rmatrix Center (const rmatrix&);
rmatrix Center (const rmatrix&, vector<int>&);
//void CheckRange (rmatrix&,rmatrix&);
interval Determinant (rmatrix&, rmatrix&);
bool Emptyrmatrix (const rmatrix&);
bool Disjoint (const rmatrix&,const rmatrix&);
double decrease (const rmatrix&, const rmatrix&);
double decrease (const rmatrix&, const rmatrix&, vector<int>);
double Eloignement (rmatrix&,rmatrix&);
double Eloignement2 (rmatrix&,rmatrix&);
double EloignementRelatif2(rmatrix&,rmatrix&);
double Marge (rmatrix,rmatrix);
iboolean In (rmatrix,rmatrix);
rmatrix Inf (rmatrix);
rmatrix Inflate (rmatrix&,double);
rmatrix Inter (const rmatrix&,const rmatrix&);
rmatrix Concat (const rmatrix&, const rmatrix&);
rmatrix Proj (const rmatrix&, int, int);
//void Inter1 (rmatrix&,rmatrix&,const rmatrix&,const rmatrix&,const rmatrix&);
interval Norm (rmatrix);
interval NormEuclid (rmatrix, rmatrix);
interval NormInf (rmatrix, rmatrix);
void Phi0 (rmatrix&,rmatrix*); //0-intersection (voir qminimax)
void Phi1 (rmatrix&,rmatrix&,rmatrix*); //1-intersection (voir qminimax)
void Phi2 (rmatrix&,rmatrix&,rmatrix&,rmatrix*); //2-intersection
interval ProduitScalaire (rmatrix&,rmatrix&);
bool Prop (rmatrix&,rmatrix&);
bool Subset (rmatrix&,rmatrix&);
bool Subset (rmatrix&,rmatrix&,double);
bool Isrmatrix (rmatrix);
void Sucre (rmatrix&,rmatrix&);
rmatrix Sup (rmatrix);
rmatrix Union (rmatrix&,rmatrix&);
double Volume (rmatrix&);
double Width (rmatrix&);
double Width (rmatrix&,vector<int>&);
double Width (rmatrix&,rmatrix&);
//rmatrix Empty (int);
//rmatrix Infinity (int);*/
#endif // !RMATRIX_H