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

Last change on this file since 2605 was 2343, checked in by ansari, 23 years ago

Compilation avec SGI-CC -LANG:std - Reza 10/03/2003

File size: 3.2 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-- */
31DECL_TEMP_SPEC /* equivalent a template <> , pour SGI-CC en particulier */
32double POTVectorAdapter< complex<float> >::Value(int i)
33{
34double re,im;
35re = (*mVec)(i).real();
36im = (*mVec)(i).imag();
37return(sqrt(re*re+im*im));
38}
39
40/* --Methode-- */
41DECL_TEMP_SPEC /* equivalent a template <> , pour SGI-CC en particulier */
42double POTVectorAdapter< complex<double> >::Value(int i)
43{
44double re,im;
45re = (*mVec)(i).real();
46im = (*mVec)(i).imag();
47return(sqrt(re*re+im*im));
48}
49
50/* --Methode-- */
51template <class T>
52POTMatrixAdapter<T>::POTMatrixAdapter(TMatrix<T>* mtx, bool ad)
53 : P2DArrayAdapter(mtx->NCols(), mtx->NRows())
54{
55aDel = ad;
56mMtx = mtx;
57}
58/* --Methode-- */
59template <class T>
60POTMatrixAdapter<T>::~POTMatrixAdapter()
61{
62if (aDel) delete mMtx;
63}
64/* --Methode-- */
65template <class T>
66double POTMatrixAdapter<T>::Value(int ix, int iy)
67{
68return((double)(*mMtx)(iy, ix));
69}
70
71/* --Methode-- */
72DECL_TEMP_SPEC /* equivalent a template <> , pour SGI-CC en particulier */
73double POTMatrixAdapter< complex<float> >::Value(int ix, int iy)
74{
75double re,im;
76re = (*mMtx)(iy, ix).real();
77im = (*mMtx)(iy, ix).imag();
78return(sqrt(re*re+im*im));
79}
80
81/* --Methode-- */
82DECL_TEMP_SPEC /* equivalent a template <> , pour SGI-CC en particulier */
83double POTMatrixAdapter< complex<double> >::Value(int ix, int iy)
84{
85double re,im;
86re = (*mMtx)(iy, ix).real();
87im = (*mMtx)(iy, ix).imag();
88return(sqrt(re*re+im*im));
89}
90
91#ifdef __CXX_PRAGMA_TEMPLATES__
92#pragma define_template POTVectorAdapter< int_4 >
93#pragma define_template POTVectorAdapter< int_8 >
94#pragma define_template POTVectorAdapter< float >
95#pragma define_template POTVectorAdapter< double >
96#pragma define_template POTVectorAdapter< complex<float> >
97#pragma define_template POTVectorAdapter< complex<double> >
98
99#pragma define_template POTMatrixAdapter< int_4 >
100#pragma define_template POTMatrixAdapter< int_8 >
101#pragma define_template POTMatrixAdapter< float >
102#pragma define_template POTMatrixAdapter< double >
103#pragma define_template POTMatrixAdapter< complex<float> >
104#pragma define_template POTMatrixAdapter< complex<double> >
105#endif
106
107#if defined(ANSI_TEMPLATES)
108template class POTVectorAdapter< int_4 >;
109template class POTVectorAdapter< int_8 >;
110template class POTVectorAdapter< float >;
111template class POTVectorAdapter< double >;
112template class POTVectorAdapter< complex<float> >;
113template class POTVectorAdapter< complex<double> >;
114
115template class POTMatrixAdapter< int_4 >;
116template class POTMatrixAdapter< int_8 >;
117template class POTMatrixAdapter< float >;
118template class POTMatrixAdapter< double >;
119template class POTMatrixAdapter< complex<float> >;
120template class POTMatrixAdapter< complex<double> >;
121#endif
Note: See TracBrowser for help on using the repository browser.