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

Last change on this file since 3753 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
RevLine 
[762]1// Classe d'initialisation du module TArray (template Arrays)
[2615]2#include "sopnamsp.h"
[762]3#include "machdefs.h"
4#include "tarrinit.h"
5
[772]6#include "fioarr.h"
[762]7
[920]8/*!
9 \defgroup TArray TArray module
[1371]10 This module contains template arrays, matrices and vectors.
[920]11*/
[762]12
[920]13/*!
14 \class SOPHYA::TArrayInitiator
15 \ingroup TArray
16 Array Matrices and Vector initiator
17*/
[926]18
19int TArrayInitiator::FgInit = 0;
20
[3017]21// Module version number - 2.0 , Jul 2006
[3298]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
[3751]24// V= 2.2 , Fev/Nars 2010: Tableaux en long double
25#define MOD_VERS 2.2
[3017]26
[762]27TArrayInitiator::TArrayInitiator()
28 : SophyaInitiator()
29{
30 FgInit++;
31 if (FgInit > 1) return;
32
33// Enregistrement des classes PPersist du modules TArray
34
35
[3661]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
[772]46 PPRegister(FIO_TArray<uint_2>);
[804]47 DObjRegister(FIO_TArray<uint_2>, TArray<uint_2>);
[813]48 DObjRegister(FIO_TArray<uint_2>, TMatrix<uint_2>);
49 DObjRegister(FIO_TArray<uint_2>, TVector<uint_2>);
50
[2927]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>);
[813]55
[3661]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
[772]61 PPRegister(FIO_TArray<int_4>);
[804]62 DObjRegister(FIO_TArray<int_4>, TArray<int_4>);
[813]63 DObjRegister(FIO_TArray<int_4>, TMatrix<int_4>);
64 DObjRegister(FIO_TArray<int_4>, TVector<int_4>);
65
[3661]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
[772]71 PPRegister(FIO_TArray<int_8>);
[804]72 DObjRegister(FIO_TArray<int_8>, TArray<int_8>);
[813]73 DObjRegister(FIO_TArray<int_8>, TMatrix<int_8>);
74 DObjRegister(FIO_TArray<int_8>, TVector<int_8>);
75
[772]76 PPRegister(FIO_TArray<r_4>);
[804]77 DObjRegister(FIO_TArray<r_4>, TArray<r_4>);
[813]78 DObjRegister(FIO_TArray<r_4>, TMatrix<r_4>);
79 DObjRegister(FIO_TArray<r_4>, TVector<r_4>);
80
[772]81 PPRegister(FIO_TArray<r_8>);
[804]82 DObjRegister(FIO_TArray<r_8>, TArray<r_8>);
[813]83 DObjRegister(FIO_TArray<r_8>, TMatrix<r_8>);
84 DObjRegister(FIO_TArray<r_8>, TVector<r_8>);
85
[3751]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
[772]93 PPRegister(FIO_TArray< complex<r_4> >);
[804]94 DObjRegister(FIO_TArray< complex<r_4> >, TArray< complex<r_4> >);
[813]95 DObjRegister(FIO_TArray< complex<r_4> >, TMatrix< complex<r_4> >);
96 DObjRegister(FIO_TArray< complex<r_4> >, TVector< complex<r_4> >);
97
[772]98 PPRegister(FIO_TArray< complex<r_8> >);
[804]99 DObjRegister(FIO_TArray< complex<r_8> >, TArray< complex<r_8> >);
[813]100 DObjRegister(FIO_TArray< complex<r_8> >, TMatrix< complex<r_8> >);
101 DObjRegister(FIO_TArray< complex<r_8> >, TVector< complex<r_8> >);
[772]102
[3751]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
[3017]110 SophyaInitiator::RegisterModule("TArray", MOD_VERS); // Module name and version number registration
[762]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.