source: Sophya/trunk/SophyaPI/PIext/pitvmaad.cc@ 1451

Last change on this file since 1451 was 594, checked in by ercodmgr, 26 years ago

finalisation interfacage TMatrix, PixelMap - Reza 17/11/99

File size: 2.9 KB
Line 
1// Adaptateurs pour TMatrix TVector du package Sophya
2// R. Ansari 1/99
3// LAL (Orsay) / IN2P3-CNRS DAPNIA/SPP (Saclay) / CEA
4
5#include "pitvmaad.h"
6#include <math.h>
7
8/* --Methode-- */
9template <class T>
10POTVectorAdapter<T>::POTVectorAdapter(TVector<T>* v, bool ad)
11 : P1DArrayAdapter(v->NElts())
12{
13aDel = ad;
14mVec = v;
15}
16/* --Methode-- */
17template <class T>
18POTVectorAdapter<T>::~POTVectorAdapter()
19{
20if (aDel) delete mVec;
21}
22
23/* --Methode-- */
24template <class T>
25double POTVectorAdapter<T>::Value(int i)
26{
27return((*mVec)(i));
28}
29
30/* --Methode-- */
31double POTVectorAdapter< complex<float> >::Value(int i)
32{
33double re,im;
34re = (*mVec)(i).real();
35im = (*mVec)(i).imag();
36return(sqrt(re*re+im*im));
37}
38
39/* --Methode-- */
40double POTVectorAdapter< complex<double> >::Value(int i)
41{
42double re,im;
43re = (*mVec)(i).real();
44im = (*mVec)(i).imag();
45return(sqrt(re*re+im*im));
46}
47
48/* --Methode-- */
49template <class T>
50POTMatrixAdapter<T>::POTMatrixAdapter(TMatrix<T>* mtx, bool ad)
51 : P2DArrayAdapter(mtx->NCols(), mtx->NRows())
52{
53aDel = ad;
54mMtx = mtx;
55}
56/* --Methode-- */
57template <class T>
58POTMatrixAdapter<T>::~POTMatrixAdapter()
59{
60if (aDel) delete mMtx;
61}
62/* --Methode-- */
63template <class T>
64double POTMatrixAdapter<T>::Value(int ix, int iy)
65{
66return((double)(*mMtx)(iy, ix));
67}
68
69/* --Methode-- */
70double POTMatrixAdapter< complex<float> >::Value(int ix, int iy)
71{
72double re,im;
73re = (*mMtx)(iy, ix).real();
74im = (*mMtx)(iy, ix).imag();
75return(sqrt(re*re+im*im));
76}
77
78/* --Methode-- */
79double POTMatrixAdapter< complex<double> >::Value(int ix, int iy)
80{
81double re,im;
82re = (*mMtx)(iy, ix).real();
83im = (*mMtx)(iy, ix).imag();
84return(sqrt(re*re+im*im));
85}
86
87#ifdef __CXX_PRAGMA_TEMPLATES__
88#pragma define_template POTVectorAdapter< int_4 >
89#pragma define_template POTVectorAdapter< int_8 >
90#pragma define_template POTVectorAdapter< float >
91#pragma define_template POTVectorAdapter< double >
92#pragma define_template POTVectorAdapter< complex<float> >
93#pragma define_template POTVectorAdapter< complex<double> >
94
95#pragma define_template POTMatrixAdapter< int_4 >
96#pragma define_template POTMatrixAdapter< int_8 >
97#pragma define_template POTMatrixAdapter< float >
98#pragma define_template POTMatrixAdapter< double >
99#pragma define_template POTMatrixAdapter< complex<float> >
100#pragma define_template POTMatrixAdapter< complex<double> >
101#endif
102
103#if defined(ANSI_TEMPLATES)
104template class POTVectorAdapter< int_4 >;
105template class POTVectorAdapter< int_8 >;
106template class POTVectorAdapter< float >;
107template class POTVectorAdapter< double >;
108template class POTVectorAdapter< complex<float> >;
109template class POTVectorAdapter< complex<double> >;
110
111template class POTMatrixAdapter< int_4 >;
112template class POTMatrixAdapter< int_8 >;
113template class POTMatrixAdapter< float >;
114template class POTMatrixAdapter< double >;
115template class POTMatrixAdapter< complex<float> >;
116template class POTMatrixAdapter< complex<double> >;
117#endif
Note: See TracBrowser for help on using the repository browser.