source: Sophya/trunk/SophyaProg/Tests/tsttvec.cc@ 2586

Last change on this file since 2586 was 2322, checked in by cmv, 23 years ago
  • passage xxstream.h en xxstream
  • compile avec gcc_3.2, gcc_2.96 et cxx En 3.2 le seek from ::end semble marcher (voir Eval/COS/pbseekios.cc)

rz+cmv 11/2/2003

File size: 2.4 KB
Line 
1#include "machdefs.h"
2#include <iostream>
3#include <stdlib.h>
4#include <stdio.h>
5#include <string.h>
6#include <math.h>
7#include "ntoolsinit.h"
8#include "pexceptions.h"
9
10#include "array.h"
11#include "srandgen.h"
12
13////////////////////////////////////////////////////////////////////////////////////////
14int main(int narg,char *arg[])
15{
16SophyaInit();
17r_8 v[10] = {1,2,3,4,5,6,7,8,9,10};
18{
19cout<<"TVector(10)"<<endl;
20TVector<r_8> v1(10);
21{for(int i=0;i<10;i++) v1(i)=100+i;}
22cout<<"nel="<<v1.NElts()<<endl<<v1;
23
24{
25cout << " Test ecriture PPersist TVector " << endl;
26FIO_TArray<r_8> ftv(v1);
27ftv.Write("tvec.ppf");
28}
29{
30cout << " Test lecture PPersist TVector " << endl;
31FIO_TArray<r_8> ftv("tvec.ppf");
32cout<<"Vlue:"<<(TVector<r_8>)ftv<<endl;
33}
34
35
36cout<<"TVector(10,v,br) (v2)"<<endl;
37sa_size_t siz[5];
38siz[1] = 10;
39siz[0] = 1;
40TVector<r_8> v2(TArray<r_8>(2,siz,v,1,0,new Bridge)); cout<<v2;
41
42cout<<"TVector()"<<endl;
43TVector<r_8> v3; cout<<v3;
44
45cout<<"v3 = v1"<<endl;
46v3 = v1; cout<<v3;
47
48cout<<"v3 = 123456"<<endl;
49v3 = 123456.; cout<<v3;
50
51cout<<"ps = v2.Transpose() * v1"<<endl;
52r_8 ps = (v2.Transpose()*v1).toScalar(); cout<<"ps="<<ps<<endl;
53
54cout<<"v2 = 10.*v1"<<endl;
55v2 = 10.*v1; cout<<v2;
56cout<<"v2 = v2*0.1"<<endl;
57v2 = v2*0.1; cout<<v2;
58
59cout<<"v2 = v1/10."<<endl;
60v2 = v1/10.; cout<<v2;
61cout<<"v2 = v2/0.1"<<endl;
62v2 = v2/0.1; cout<<v2;
63
64cout<<"v2 = 10.+v1"<<endl;
65v2 = 10.+v1; cout<<v2;
66cout<<"v2 = v2-10."<<endl;
67v2 = v2-10.; cout<<v2;
68
69cout<<"v2 = 10.-v1"<<endl;
70v2 = 10.-v1; cout<<v2;
71cout<<"v2 = (-1.)*v2+10."<<endl;
72v2 = (-1.)*v2+10.; cout<<v2;
73
74cout<<"v2 += 10."<<endl;
75v2 += 10.; cout<<v2;
76cout<<"v2 -= 10."<<endl;
77v2 -= 10.; cout<<v2;
78cout<<"v2 *= 10."<<endl;
79v2 *= 10.; cout<<v2;
80cout<<"v2 /= 10."<<endl;
81v2 /= 10.; cout<<v2;
82
83cout<<"v3.ReSize(4)"<<endl;
84v3.ReSize(4);
85{for(int i=0;i<4;i++) v3(i)=i+1;} cout<<v3;
86TMatrix<r_8> M(2,4);
87{for(int i=0;i<8;i++) M[i]=i+1;} cout<<M;
88TVector<r_8> v4(10);
89v4 = M*v3; cout<<v4;
90
91cout<<"LinSolve(A,B,X)"<<endl;
92TMatrix<r_8> A(5,5);
93TVector<r_8> B(5);
94{for(int i=0;i<25;i++) {A[i]=drand01(); if(i<5) B(i)=drand01();}}
95TVector<r_8> X;
96X = B;
97cout<<"A = "<<A; cout<<"B = "<<B;
98r_8 d=0.;
99d = LinSolve(A,B,X);
100cout<<"d="<<d<<endl; cout<<"X = "<<X;
101X = A*X; cout<<"A*X = "<<X;
102X -= B; cout<<"B-X = "<<X;
103cout<<"LinSolveInPlace(A,B)"<<endl;
104X = B;
105d = LinSolveInPlace(A,X);
106cout<<"d="<<d<<endl; cout<<"X = "<<X;
107
108cout<<"Conversion en ancien Vector"<<endl;
109Vector Vold(v1);
110cout<<"Vold = "<<Vold;
111
112} // destruction de toutes les vecteurs
113exit(0);
114}
Note: See TracBrowser for help on using the repository browser.