source: Sophya/trunk/Poubelle/DPC:FitsIOServer/SysTools/piocmplx.h@ 4003

Last change on this file since 4003 was 658, checked in by ansari, 26 years ago

no message

File size: 2.6 KB
Line 
1// This may look like C code, but it is really -*- C++ -*-
2// Fonctions d'ecriture de tableaux numeriques
3#ifndef PIOCMPLX_H_SEEN
4#define PIOCMPLX_H_SEEN
5
6/*
7// Pour gerer les Persist I/O de tableaux numerique templates
8template <class T>
9void PIOSReadArray(PInPersist & is, T* arr, size_t n);
10template <class T>
11void PIOSWriteArray(POutPersist & os, T const * arr, size_t n);
12*/
13
14// Pour pouvoir ecrire des tableau de complex, en attendant
15// PIn/POutPersist::Get/Put(complex<>)
16
17inline
18void PIOSReadArray(PInPersist & is, uint_1 * arr, size_t n)
19{
20is.GetBytes(arr, n);
21}
22
23inline
24void PIOSReadArray(PInPersist & is, uint_2 * arr, size_t n)
25{
26is.Get(arr, n);
27}
28
29inline
30void PIOSReadArray(PInPersist & is, int_2 * arr, size_t n)
31{
32is.Get(arr, n);
33}
34
35inline
36void PIOSReadArray(PInPersist & is, uint_4 * arr, size_t n)
37{
38is.Get(arr, n);
39}
40
41inline
42void PIOSReadArray(PInPersist & is, int_4 * arr, size_t n)
43{
44is.Get(arr, n);
45}
46
47inline
48void PIOSReadArray(PInPersist & is, uint_8 * arr, size_t n)
49{
50is.Get(arr, n);
51}
52
53inline
54void PIOSReadArray(PInPersist & is, int_8 * arr, size_t n)
55{
56is.Get(arr, n);
57}
58
59inline
60void PIOSReadArray(PInPersist & is, r_4 * arr, size_t n)
61{
62is.Get(arr, n);
63}
64
65inline
66void PIOSReadArray(PInPersist & is, r_8 * arr, size_t n)
67{
68is.Get(arr, n);
69}
70
71inline
72void PIOSReadArray(PInPersist & is, complex<float> * arr, size_t n)
73{
74r_4 * pr = (r_4 *)arr;
75is.Get(pr, n*2);
76}
77
78inline
79void PIOSReadArray(PInPersist & is, complex<double> * arr, size_t n)
80{
81r_8 * pr = (r_8 *)arr;
82is.Get(pr, n*2);
83}
84
85// Fonctions d ecriture de tableaux de nombre
86inline
87void PIOSWriteArray(POutPersist & os, uint_1 const * arr, size_t n)
88{
89os.PutBytes(arr, n);
90}
91
92inline
93void PIOSWriteArray(POutPersist & os, uint_2 const * arr, size_t n)
94{
95os.Put(arr, n);
96}
97
98inline
99void PIOSWriteArray(POutPersist & os, int_2 const * arr, size_t n)
100{
101os.Put(arr, n);
102}
103
104inline
105void PIOSWriteArray(POutPersist & os, uint_4 const * arr, size_t n)
106{
107os.Put(arr, n);
108}
109
110inline
111void PIOSWriteArray(POutPersist & os, int_4 const * arr, size_t n)
112{
113os.Put(arr, n);
114}
115
116inline
117void PIOSWriteArray(POutPersist & os, uint_8 const * arr, size_t n)
118{
119os.Put(arr, n);
120}
121
122inline
123void PIOSWriteArray(POutPersist & os, int_8 const * arr, size_t n)
124{
125os.Put(arr, n);
126}
127
128inline
129void PIOSWriteArray(POutPersist & os, r_4 const * arr, size_t n)
130{
131os.Put(arr, n);
132}
133
134inline
135void PIOSWriteArray(POutPersist & os, r_8 const * arr, size_t n)
136{
137os.Put(arr, n);
138}
139
140inline
141void PIOSWriteArray(POutPersist & os, complex<float> const * arr, size_t n)
142{
143r_4 const * pr = (r_4 const *)arr;
144os.Put(pr, n*2);
145}
146
147inline
148void PIOSWriteArray(POutPersist & os, complex<double> const * arr, size_t n)
149{
150r_8 const * pr = (r_8 const *)arr;
151os.Put(pr, n*2);
152}
153
154#endif
Note: See TracBrowser for help on using the repository browser.