source: Sophya/trunk/SophyaLib/TArray/tarrinit.cc@ 3786

Last change on this file since 3786 was 3751, checked in by ansari, 16 years ago

Prise en charge de float 128 bits (r_16, complex<r_16>) par TArray<T>,TMatrix<T>,TVector<T>. activation par le flag de compilation SO_LDBLE128

File size: 3.9 KB
Line 
1// Classe d'initialisation du module TArray (template Arrays)
2#include "sopnamsp.h"
3#include "machdefs.h"
4#include "tarrinit.h"
5
6#include "fioarr.h"
7
8/*!
9 \defgroup TArray TArray module
10 This module contains template arrays, matrices and vectors.
11*/
12
13/*!
14 \class SOPHYA::TArrayInitiator
15 \ingroup TArray
16 Array Matrices and Vector initiator
17*/
18
19int TArrayInitiator::FgInit = 0;
20
21// Module version number - 2.0 , Jul 2006
22// V= 2.04 , Jan/Fev 2007: Ajout TArray::ZeroSize() , RenewObjId() et methodes de cast (arrctcast.h)
23// V= 2.1 , Avr/Jul 2007: Constr.copie/extrac sous-tableaux thread-safe
24// V= 2.2 , Fev/Nars 2010: Tableaux en long double
25#define MOD_VERS 2.2
26
27TArrayInitiator::TArrayInitiator()
28 : SophyaInitiator()
29{
30 FgInit++;
31 if (FgInit > 1) return;
32
33// Enregistrement des classes PPersist du modules TArray
34
35
36 PPRegister(FIO_TArray<uint_1>);
37 DObjRegister(FIO_TArray<uint_1>, TArray<uint_1>);
38 DObjRegister(FIO_TArray<uint_1>, TMatrix<uint_1>);
39 DObjRegister(FIO_TArray<uint_1>, TVector<uint_1>);
40
41 PPRegister(FIO_TArray<int_1>);
42 DObjRegister(FIO_TArray<int_1>, TArray<int_1>);
43 DObjRegister(FIO_TArray<int_1>, TMatrix<int_1>);
44 DObjRegister(FIO_TArray<int_1>, TVector<int_1>);
45
46 PPRegister(FIO_TArray<uint_2>);
47 DObjRegister(FIO_TArray<uint_2>, TArray<uint_2>);
48 DObjRegister(FIO_TArray<uint_2>, TMatrix<uint_2>);
49 DObjRegister(FIO_TArray<uint_2>, TVector<uint_2>);
50
51 PPRegister(FIO_TArray<int_2>);
52 DObjRegister(FIO_TArray<int_2>, TArray<int_2>);
53 DObjRegister(FIO_TArray<int_2>, TMatrix<int_2>);
54 DObjRegister(FIO_TArray<int_2>, TVector<int_2>);
55
56 PPRegister(FIO_TArray<uint_4>);
57 DObjRegister(FIO_TArray<uint_4>, TArray<uint_4>);
58 DObjRegister(FIO_TArray<uint_4>, TMatrix<uint_4>);
59 DObjRegister(FIO_TArray<uint_4>, TVector<uint_4>);
60
61 PPRegister(FIO_TArray<int_4>);
62 DObjRegister(FIO_TArray<int_4>, TArray<int_4>);
63 DObjRegister(FIO_TArray<int_4>, TMatrix<int_4>);
64 DObjRegister(FIO_TArray<int_4>, TVector<int_4>);
65
66 PPRegister(FIO_TArray<uint_8>);
67 DObjRegister(FIO_TArray<uint_8>, TArray<uint_8>);
68 DObjRegister(FIO_TArray<uint_8>, TMatrix<uint_8>);
69 DObjRegister(FIO_TArray<uint_8>, TVector<uint_8>);
70
71 PPRegister(FIO_TArray<int_8>);
72 DObjRegister(FIO_TArray<int_8>, TArray<int_8>);
73 DObjRegister(FIO_TArray<int_8>, TMatrix<int_8>);
74 DObjRegister(FIO_TArray<int_8>, TVector<int_8>);
75
76 PPRegister(FIO_TArray<r_4>);
77 DObjRegister(FIO_TArray<r_4>, TArray<r_4>);
78 DObjRegister(FIO_TArray<r_4>, TMatrix<r_4>);
79 DObjRegister(FIO_TArray<r_4>, TVector<r_4>);
80
81 PPRegister(FIO_TArray<r_8>);
82 DObjRegister(FIO_TArray<r_8>, TArray<r_8>);
83 DObjRegister(FIO_TArray<r_8>, TMatrix<r_8>);
84 DObjRegister(FIO_TArray<r_8>, TVector<r_8>);
85
86#ifdef SO_LDBLE128
87 PPRegister(FIO_TArray<r_16>);
88 DObjRegister(FIO_TArray<r_16>, TArray<r_16>);
89 DObjRegister(FIO_TArray<r_16>, TMatrix<r_16>);
90 DObjRegister(FIO_TArray<r_16>, TVector<r_16>);
91#endif
92
93 PPRegister(FIO_TArray< complex<r_4> >);
94 DObjRegister(FIO_TArray< complex<r_4> >, TArray< complex<r_4> >);
95 DObjRegister(FIO_TArray< complex<r_4> >, TMatrix< complex<r_4> >);
96 DObjRegister(FIO_TArray< complex<r_4> >, TVector< complex<r_4> >);
97
98 PPRegister(FIO_TArray< complex<r_8> >);
99 DObjRegister(FIO_TArray< complex<r_8> >, TArray< complex<r_8> >);
100 DObjRegister(FIO_TArray< complex<r_8> >, TMatrix< complex<r_8> >);
101 DObjRegister(FIO_TArray< complex<r_8> >, TVector< complex<r_8> >);
102
103#ifdef SO_LDBLE128
104 PPRegister(FIO_TArray< complex<r_16> >);
105 DObjRegister(FIO_TArray< complex<r_16> >, TArray< complex<r_16> >);
106 DObjRegister(FIO_TArray< complex<r_16> >, TMatrix< complex<r_16> >);
107 DObjRegister(FIO_TArray< complex<r_16> >, TVector< complex<r_16> >);
108#endif
109
110 SophyaInitiator::RegisterModule("TArray", MOD_VERS); // Module name and version number registration
111}
112
113TArrayInitiator::~TArrayInitiator()
114{
115 FgInit--;
116}
117
118
119// On met un objet initiator en statique, pour les loaders qui savent
120// appeler le constructeur des objets statiques Reza 08/98
121static TArrayInitiator tarrayinit;
122
Note: See TracBrowser for help on using the repository browser.