TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Test_SSE_Kernels.cpp
1/****************************************************************************
2* Copyright (c) 2026, CEA
3* All rights reserved.
4*
5* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8* 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
9*
10* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
11* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
12* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
13*
14*****************************************************************************/
15
16#include <Test_SSE_Kernels.h>
17#include <iostream>
18#include <sys/time.h>
19#include <IJK_Field.h>
20#include <Param.h>
21
22Implemente_instanciable(Test_SSE_Kernels, "Test_SSE_Kernels", Interprete);
23// XD Test_SSE_Kernels interprete Test_SSE_Kernels BRACE Object to test the different kernel methods used in the
24// XD_CONT multigrid solver in IJK discretization
25
27{
28 return s;
29}
30
32{
33 return is;
34}
35
37{
38 int nmax=1000;
39 Param param(que_suis_je());
40 param.ajouter("nmax", &nmax); // XD_ADD_P entier
41 // XD_CONT Number of tests we want to perform
42 param.lire_avec_accolades(is);
43
44 /*
45 test64x64_float(64*64,64,0,0,false);
46 i++;
47 if (i>nmax) return is;
48 testgeneric_float(64*64,64,0,0,false);
49 i++;
50 if (i>nmax) return is;
51 test68x68_float(68*68,68,0,0,false);
52 i++;
53 if (i>nmax) return is;
54 testgeneric_float(68*68,68,0,0,false);
55 i++;
56 if (i>nmax) return is;
57 test72x72_float(72*72,72,0,0,false);
58 i++;
59 if (i>nmax) return is;
60 testgeneric_float(72*72,72,0,0,false);
61 i++;
62 if (i>nmax) return is;
63 test76x76_float(76*76,76,0,0,false);
64 i++;
65 if (i>nmax) return is;
66 testgeneric_float(76*76,76,0,0,false);
67 i++;
68 if (i>nmax) return is;
69 test80x80_float(80*80,80,0,0,false);
70 i++;
71 if (i>nmax) return is;
72 testgeneric_float(80*80,80,0,0,false);
73 i++;
74 if (i>nmax) return is;
75 test64x64_double(64*64,64,0,0,false);
76 i++;
77 if (i>nmax) return is;
78 testgeneric_double(64*64,64,0,0,false);
79 i++;
80 if (i>nmax) return is;
81 test68x68_double(68*68,68,0,0,false);
82 i++;
83 if (i>nmax) return is;
84 testgeneric_double(68*68,68,0,0,false);
85 i++;
86 if (i>nmax) return is;
87 test72x72_double(72*72,72,0,0,false);
88 i++;
89 if (i>nmax) return is;
90 testgeneric_double(72*72,72,0,0,false);
91 i++;
92 if (i>nmax) return is;
93 test76x76_double(76*76,76,0,0,false);
94 i++;
95 if (i>nmax) return is;
96 testgeneric_double(76*76,76,0,0,false);
97 i++;
98 if (i>nmax) return is;
99 test80x80_double(80*80,80,0,0,false);
100 i++;
101 if (i>nmax) return is;
102 testgeneric_double(80*80,80,0,0,false);
103 i++;
104 if (i>nmax) return is;
105 test64x64_float(64*64,64,0,0,true);
106 i++;
107 if (i>nmax) return is;
108 testgeneric_float(64*64,64,0,0,true);
109 i++;
110 if (i>nmax) return is;
111 test68x68_float(68*68,68,0,0,true);
112 i++;
113 if (i>nmax) return is;
114 testgeneric_float(68*68,68,0,0,true);
115 i++;
116 if (i>nmax) return is;
117 test72x72_float(72*72,72,0,0,true);
118 i++;
119 if (i>nmax) return is;
120 testgeneric_float(72*72,72,0,0,true);
121 i++;
122 if (i>nmax) return is;
123 test76x76_float(76*76,76,0,0,true);
124 i++;
125 if (i>nmax) return is;
126 testgeneric_float(76*76,76,0,0,true);
127 i++;
128 if (i>nmax) return is;
129 test80x80_float(80*80,80,0,0,true);
130 i++;
131 if (i>nmax) return is;
132 testgeneric_float(80*80,80,0,0,true);
133 i++;
134 if (i>nmax) return is;
135 test64x64_double(64*64,64,0,0,true);
136 i++;
137 if (i>nmax) return is;
138 testgeneric_double(64*64,64,0,0,true);
139 i++;
140 if (i>nmax) return is;
141 test68x68_double(68*68,68,0,0,true);
142 i++;
143 if (i>nmax) return is;
144 testgeneric_double(68*68,68,0,0,true);
145 i++;
146 if (i>nmax) return is;
147 test72x72_double(72*72,72,0,0,true);
148 i++;
149 if (i>nmax) return is;
150 testgeneric_double(72*72,72,0,0,true);
151 i++;
152 if (i>nmax) return is;
153 test76x76_double(76*76,76,0,0,true);
154 i++;
155 if (i>nmax) return is;
156 testgeneric_double(76*76,76,0,0,true);
157 i++;
158 if (i>nmax) return is;
159 test80x80_double(80*80,80,0,0,true);
160 i++;
161 if (i>nmax) return is;
162 testgeneric_double(80*80,80,0,0,true);
163 i++;
164 if (i>nmax) return is;
165 // suite
166 testgeneric_float(68*68, 68, 128, (68-64)/2, true);
167 i++;
168 if (i>nmax) return is;
169 test68x68_float(68*68, 68, 128, (68-64)/2, true);
170 i++;
171 if (i>nmax) return is;
172 testgeneric_float(68*68, 68, 128, (68-64)/2, false);
173 i++;
174 if (i>nmax) return is;
175 test68x68_float(68*68, 68, 128, (68-64)/2, false);
176 i++;
177 if (i>nmax) return is;
178 testgeneric_float(72*72, 72, 128, (72-64)/2, true);
179 i++;
180 if (i>nmax) return is;
181 test72x72_float(72*72, 72, 128, (72-64)/2, true);
182 i++;
183 if (i>nmax) return is;
184 testgeneric_float(72*72, 72, 128, (72-64)/2, false);
185 i++;
186 if (i>nmax) return is;
187 test72x72_float(72*72, 72, 128, (72-64)/2, false);
188 i++;
189 if (i>nmax) return is;
190 testgeneric_float(76*76, 76, 128, (76-64)/2, true);
191 i++;
192 if (i>nmax) return is;
193 test76x76_float(76*76, 76, 128, (76-64)/2, true);
194 i++;
195 if (i>nmax) return is;
196 testgeneric_float(76*76, 76, 128, (76-64)/2, false);
197 i++;
198 if (i>nmax) return is;
199 test76x76_float(76*76, 76, 128, (76-64)/2, false);
200 i++;
201 if (i>nmax) return is;
202 testgeneric_float(80*80, 80, 128, (80-64)/2, true);
203 i++;
204 if (i>nmax) return is;
205 test80x80_float(80*80, 80, 128, (80-64)/2, true);
206 i++;
207 if (i>nmax) return is;
208 testgeneric_float(80*80, 80, 128, (80-64)/2, false);
209 i++;
210 if (i>nmax) return is;
211 test80x80_float(80*80, 80, 128, (80-64)/2, false);
212 i++;
213 if (i>nmax) return is;
214 */
215 return is;
216}
217
Class defining operators and methods for all reading operation in an input flow (file,...
Definition Entree.h:42
Classe de base des objets "interprete".
Definition Interprete.h:38
friend class Entree
Definition Objet_U.h:76
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
Definition Objet_U.cpp:104
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
Definition Objet_U.cpp:293
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
Definition Objet_U.cpp:282
Helper class to factorize the readOn method of Objet_U classes.
Definition Param.h:112
void ajouter(const char *keyword, const int *value, Param::Nature nat=Param::OPTIONAL)
Register an integer parameter.
Definition Param.cpp:364
int lire_avec_accolades(Entree &is)
Alias of lire_avec_accolades_depuis.
Definition Param.h:577
Classe de base des flux de sortie.
Definition Sortie.h:52
Entree & interpreter(Entree &is) override