TRUST 1.9.8
HPC thermohydraulic platform
Loading...
Searching...
No Matches
Sparskit.h
1/****************************************************************************
2* Copyright (c) 2022, 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#ifndef Sparskit_inclus
17#define Sparskit_inclus
18
19#include <arch.h>
20/*! @brief
21 *
22 * @sa FORMATS/formats.f :, csrbnd : converts a compressed sparse row format into a banded format (linpack style), ORDERINGS/levset.f :, BSF : Breadth-First Search traversal (Cuthill-McKee ordering), rversp : routine to reverse a given permutation (e.g., for RCMK), INFO/infofun.f :, bandwidth : Computes ml = lower_bandwidth(A), mu = upper_bandwidth(A), iband = max_bandwidth(A), bndav = average_bandwidth(A), UNARY/unary :, dvperm : permutes a real vector (in-place), ivperm : permutes an integer vector (in-place)
23 */
24
25#ifdef _NO_SPARSKIT_
26static inline void ERREUR(char * msg)
27{
28 Cerr << "SPARSKIT : " << msg << finl;
29 exit();
30}
31inline void F77NAME(ILUT)(const int* const a, const double* const b,
32 const int* const c, const int* const d,
33 const int* const e, double* const f, double* const g,
34 int* const h, const int* const i,
35 int* const j, double* const k, int* const l,
36
37 int* const p)
38{
39 ERREUR("ILUT pas code");
40}
41
42inline void F77NAME(LUSOL) (const int* const,const double* const,
43 const double* const,const double* const,
44 const int* const,const int* const)
45{
46 ERREUR("LUSOL pas code");
47}
48
49inline void F77NAME(LUTSOL) (const int* const,const double* const,
50 const double* const,const double* const,
51 const int* const,const int* const)
52{
53 ERREUR("LUTSOL pas code");
54}
55
56inline void F77NAME(PGMRES)(const int* const a, const int* const b,
57 const double* const c, double* const d,
58 const double* const e, const double* const f,
59 const int* const g, const int* const h,
60 const double* const i, const int* const j,
61 const int* const k, const double* const l,
62 const int* const m, const int* const n, int* const o)
63{
64 ERREUR("PGMRES pas code");
65}
66
67inline void F77NAME(AMUX)(const int* n, const double* x, const double* y,
68 const double* a,const int* ja, const int* ia)
69{
70 ERREUR("AMUX pas code");
71}
72
73inline void F77NAME(ATMUX)(const int* n, const double* x, const double* y,
74 const double* a,const int* ja, const int* ia)
75{
76 ERREUR("ATMUX pas code");
77}
78
79inline void F77NAME(AMUDIA)(const int* const a, const int* const b,
80 const double* const c,
81 const int* const d, const int* const e,
82 const double* const f,
83 const double* g, const int* h, const int* i)
84{
85 ERREUR("AMUDIA pas code");
86}
87
88inline void F77NAME(AMUB)(const int* const a, const int* const b,
89 const int* const c, const double* const d,
90 const int* const e, const int* const f, const double* const g,
91 const int* const h, const int* const i,
92 double* const j, int* const k, int* const l,
93 const int* const m, const int* const n, int* const o)
94{
95 ERREUR("AMUB pas code");
96}
97
98inline void F77NAME(APLB)(const int* const a, const int* const b,
99 const int* const c,
100 const double* const d, const int* const e,const int* const f,
101 const double* const g,const int* const h,const int* const i,
102 const double* const j,const int* const k,const int* const l,
103 const int* const m,const int* const n,const int* const o)
104{
105 ERREUR("APLB pas code");
106}
107
108inline void F77NAME(APLB1)(const int* const a, const int* const b,
109 const int* const c,
110 const double* const d, const int* const e, const int* const f,
111 const double* const g, const int* const h, const int* const i,
112 const double* const j, const int* const k, const int* const l,
113 const int* const m, const int* const n, const int* const o)
114{
115 ERREUR("APLB1 pas code");
116}
117
118inline void F77NAME(APLSB)(const int* const a, const int* const b,
119 const double* const c,
120 const int* const d, const int* const e, const int* const f,
121 const double* const g, const int* const h, const int* const i,
122 const double* const j, const int* const k, const int* const l,
123 const int* const m, const int* const n, const int* const o)
124{
125 ERREUR("APLSB pas code");
126}
127
128inline void F77NAME(APLSB1)(const int* const a, const int* const b,
129 const double* const c,
130 const int* const d, const int* const e, const int* const f,
131 const double* const g, const int* const h, const int* const i,
132 const double* const j, const int* const k, const int* const l,
133 const int* const m, const int* const n, const int* const o)
134{
135 ERREUR("APLSB1 pas code");
136}
137
138inline void F77NAME(APMBT)(const int* const a, const int* const b,
139 const int* const c,
140 const double* const d, const int* const e,const int* const f,
141 const double* const g,const int* const h,const int* const i,
142 const double* const j,const int* const k,const int* const l,
143 const int* const m, const int* const n,const int* const o)
144{
145 ERREUR("APMBT pas code");
146}
147
148inline void F77NAME(APLSBT)(const int* const a, const int* const b,
149 const int* const c,
150 const double* const d, const int* const e,const int* const f,
151 const double* const g,const int* const h,const int* const i,
152 const double* const j,const int* const k,const int* const l,
153 const int* const m, const int* const n,const int* const o)
154{
155 ERREUR("APLSBT pas code");
156}
157
158inline void F77NAME(DIAMUA)(const int* const a, const int* const b,
159 const double* const c,
160 const int* const d, const int* const e, const double* const f,
161 const double* const g, const int* const h, const int* const i)
162{
163 ERREUR("DIAMUA pas code");
164}
165
166inline void F77NAME(APLSCA)(const int* const a, const double* const b,
167 const int* const c,
168 const int* const d, const double* const e,const int* const f)
169{
170 ERREUR("APLSCA pas code");
171}
172
173inline void F77NAME(APLDIA)(const int* const a, const int* const b,
174 const double* const c,
175 const int* const d, const int* const e, const double* const f,
176 const double* const g, const int* const h, const int* const i,
177 const int* const j)
178{
179 ERREUR("APLDIA pas code");
180}
181//inline void F77NAME(DINFO1)(const int* const a, const int* const b,
182// const double* const c,
183// const int* const d, const int* const e, const int* const f,
184// const char* const g, const char* const h, const char* const i,
185// const double* const j,const int* const k,const int* const l){
186// ERREUR("PGMRES pas code");
187// }
188inline void F77NAME(BANDWIDTH)(const int* const a,const int* const b,
189 const double* const c,
190 const int* const d, const int* const e, const int* const f,
191 const double* const g)
192{
193 ERREUR("BANDWIDTH pas code");
194}
195inline void F77NAME(NONZ)(const int* const a,const int* const b,
196 const int* const c,
197 const double* const d,
198 const double* const e, const int* const f, const int* const g,
199 const int* const h, const int* const i, const int* const j,
200 const int* const k)
201{
202 ERREUR("NONZ pas code");
203}
204inline void F77NAME(DIAG_DOMI)(const int* const a,const int* const b,
205 const int* const c,
206 const double* const d, const int* const e,
207 const double* const f, const double* const g,
208 const double* const h,
209 const double* const i, const double* const j)
210{
211 ERREUR("DIAG_DOMI pas code");
212}
213inline void F77NAME(FROBNORM)(const int* const a,const int* const b,
214 const double* const c,const int* const d,
215 const double* const e,const double* const f)
216{
217 ERREUR("FROBNORM pas code");
218}
219inline void F77NAME(ANSYM)(const int* const a,const int* const b,
220 const double* const c,
221 const int* const d,const double* const e,const double* const f,
222 const int* const g,const double* const h,const int* const i,
223 const double* const j,const double* const k,const double* const l)
224{
225 ERREUR("ANSYM pas code");
226}
227inline void F77NAME(DISTAIJ)(const int* const a,const int* const b,
228 const int* const c,
229 const int* const d,const double* const e,const double* const f,
230 const double* const g)
231{
232 ERREUR("DISTAIJ pas code");
233}
234inline void F77NAME(SKYLINE)(const int* const a,const int* const b,
235 const int* const c,
236 const double* const d,
237 const int* const e,const double* const f,const int* const g)
238{
239 ERREUR("SKYLINE pas code");
240}
241inline void F77NAME(DISTDIAG)(const int* const a,const int* const b,
242 const int* const c,
243 const double* const d,const double* const e)
244{
245 ERREUR("DISTDIAG pas code");
246}
247inline void F77NAME(BANDPART)(const int* const a,const int* const b,
248 const double* const c,const double* const d,
249 const int* const e,const int* const f)
250{
251 ERREUR("BANDPART pas code");
252}
253inline void F77NAME(N_IMP_DIAG)(const int* const a,const int* const b,
254 const double* const c,
255 const int* const d,const int* const e,
256 const int* const f,const double* const g)
257{
258 ERREUR("N_IMP_DIAG pas code");
259}
260inline void F77NAME(NONZ_LUD)(const int* const a,const int* const b,
261 const double* const c,const int* const d,
262 const int* const e, const int* const f)
263{
264 ERREUR("NONZ_LUD pas code");
265}
266inline void F77NAME(AVNZ_COL)(const int* const a,const int* const b,
267 const double* const c,const double* const d,
268 const int* const e, const double* const f,
269 const double* const g)
270{
271 ERREUR("AVNZ_COL pas code");
272}
273inline void F77NAME(VBRINFO)(const int* const a, const int* const b,
274 const int* const c, const int* const d,
275 const double* const e, const int* const f,
276 const int* const g, const int* const h,
277 const int* const i)
278{
279 ERREUR("VBRINFO pas code");
280}
281inline void F77DECLARE(CSRCSC)(const int* const,const int* const,const int* const,const int* const,
282 const double* const , const int* const , const int* const,
283 double* , int* , int* )
284{
285 ERREUR("CSRCSC pas code");
286}
287inline void F77DECLARE(GETU)(const int* const, const double* const,
288 const int* const, const int* const,
289 double* ,int* ,int* )
290{
291 ERREUR("GETU pas code");
292}
293
294inline void F77NAME(CG)(const int* const a, const double* const b,
295 double* c, int* d,double* e,double* f )
296{
297 ERREUR("CG pas code");
298}
299
300inline void F77NAME(BCGSTAB)(const int* const a, const double* const b,
301 double* c, int* d,double* e,double* f )
302{
303 ERREUR("BCGSTAB pas code");
304}
305
306inline void F77NAME(GMRES)(const int* const a, const double* const b,
307 double* c, int* d,double* e,double* f )
308{
309 ERREUR("GMRES pas code");
310}
311
312inline void F77NAME(GMRESBIS)(const int* const a, const double* const b,
313 double* c, int* d,double* e,double* f )
314{
315 ERREUR("GMRESBIS pas code");
316}
317
318inline double F77NAME(DISTDOT)(const int* const a, const double* const b,
319 const int* const c, const double* const d,
320 const int* const e)
321{
322 ERREUR("DISTDOT pas code");
323 return 0;
324}
325
326
327
328#else //_NO_SPARSKIT_
329
330extern "C" {
331#ifdef F77_Majuscule
332 //////////////////
333 // Ajout Solveur direct Cholesky
334 void F77DECLARE(DPERM) (const int*, const double*,
335 const int*, const int*,
336 double*, int*, int*,
337 const int*, const int*,
338 const int*);
339
340 void F77DECLARE(DVPERM) (const int*, double*, const int*);
341
342 void F77DECLARE(PERPHN)(const int* a ,const int* b,
343 const int* c,const int* e,
344 const int* f,const int* g,int* h,
345 int* i, int* j);
346 //////////////////
347 // AJOUT pour Multigrille
348 //////////////////
349 void F77DECLARE(CSORT) (const int*, double*, int*,
350 int*, int*, const int*);
351
352
353 //////////////////
354 void F77DECLARE(ILUT)(const int* const, const double* const, const int* const, const int* const,
355 const int* const, double* const, double* const, int* const, const int* const,
356 int* const, double* const, int* const,
357 int* const);
358
359 void F77DECLARE(LUSOL) (const int* const,const double* const,
360 const double* const,const double* const,
361 const int* const,const int* const);
362
363 void F77DECLARE(LUTSOL) (const int* const,const double* const,
364 const double* const,const double* const,
365 const int* const,const int* const);
366
367 void F77DECLARE(PGMRES)(const int* const, const int* const, const double* const, double* const,
368 const double* const, const double* const, const int* const, const int* const,
369 const double* const, const int* const, const int* const, const double* const,
370 const int* const, const int* const, int* const);
371
372 void F77DECLARE(AMUX)(const int* n, const double* x, const double* y,
373 const double* a,const int* ja, const int* ia);
374
375 void F77DECLARE(ATMUX)(const int* n, const double* x, const double* y,
376 const double* a,const int* ja, const int* ia);
377
378 void F77DECLARE(AMUDIA)(const int* const, const int* const, const double* const,
379 const int* const, const int* const, const double* const,
380 const double*, const int*, const int* );
381
382 void F77DECLARE(AMUB)(const int* const, const int* const, const int* const, const double* const,
383 const int* const, const int* const, const double* const,
384 const int* const, const int* const, double* const, int* const, int* const,
385 const int* const, const int* const, int* const);
386
387 void F77DECLARE(APLB)(const int* const, const int* const,const int* const,
388 const double* const, const int* const,const int* const,
389 const double* const,const int* const,const int* const,
390 const double* const,const int* const,const int* const,
391 const int* const,const int* const,const int* const);
392
393 void F77DECLARE(APLB1)(const int* const, const int* const,const int* const,
394 const double* const, const int* const,const int* const,
395 const double* const,const int* const,const int* const,
396 const double* const,const int* const,const int* const,
397 const int* const,const int* const,const int* const);
398
399 void F77DECLARE(APLSB)(const int* const, const int* const, const double* const,
400 const int* const, const int* const, const int* const,
401 const double* const, const int* const, const int* const,
402 const double* const, const int* const, const int* const,
403 const int* const, const int* const, const int* const);
404
405 void F77DECLARE(APLSB1)(const int* const, const int* const, const double* const,
406 const int* const, const int* const, const int* const,
407 const double* const, const int* const, const int* const,
408 const double* const, const int* const, const int* const,
409 const int* const, const int* const, const int* const);
410
411 void F77DECLARE(APMBT)(const int* const, const int* const,const int* const,
412 const double* const, const int* const,const int* const,
413 const double* const,const int* const,const int* const,
414 const double* const,const int* const,const int* const,
415 const int* const,const int* const,const int* const);
416
417 void F77DECLARE(APLSBT)(const int* const, const int* const,const int* const,
418 const double* const, const int* const,const int* const,
419 const double* const,const int* const,const int* const,
420 const double* const,const int* const,const int* const,
421 const int* const,const int* const,const int* const);
422
423 void F77DECLARE(DIAMUA)(const int* const, const int* const, const double* const,
424 const int* const, const int* const, const double* const,
425 const double* const, const int* const, const int* const);
426
427 void F77DECLARE(APLSCA)(const int* const, const double* const, const int* const,
428 const int* const, const double* const,const int* const);
429
430 void F77DECLARE(APLDIA)(const int* const, const int* const, const double* const,
431 const int* const, const int* const, const double* const,
432 const double* const, const int* const, const int* const,
433 const int* const);
434 void F77DECLARE(DINFO1)(const int* const, const int* const, const double* const,
435 const int* const, const int* const, const int* const,
436 const char* const, const char* const, const char* const,
437 const double* const,const int* const,const int* const);
438 void F77DECLARE(BANDWIDTH)(const int* const,const int* const, const double* const,
439 const int* const, const int* const, const int* const,
440 const double* const);
441 void F77DECLARE(NONZ)(const int* const,const int* const, const int* const,
442 const double* const,
443 const double* const, const int* const, const int* const,
444 const int* const, const int* const, const int* const,
445 const int* const);
446 void F77DECLARE(DIAG_DOMI)(const int* const,const int* const,const int* const,
447 const double* const, const int* const,
448 const double* const,const double* const,
449 const double* const,
450 const double* const, const double* const);
451 void F77DECLARE(FROBNORM)(const int* const,const int* const,
452 const double* const,const int* const,
453 const double* const,const double* const) ;
454 void F77DECLARE(ANSYM)(const int* const,const int* const,const double* const,
455 const int* const,const double* const,const double* const,
456 const int* const,const double* const,const int* const,
457 const double* const,const double* const,const double* const);
458 void F77DECLARE(DISTAIJ)(const int* const,const int* const,const int* const,
459 const int* const,const double* const,const double* const,
460 const double* const);
461 void F77DECLARE(SKYLINE)(const int* const,const int* const,const int* const,
462 const double* const,
463 const int* const,const double* const,const int* const);
464 void F77DECLARE(DISTDIAG)(const int* const,const int* const,const int* const,
465 const double* const,const double* const);
466 void F77DECLARE(BANDPART)(const int* const,const int* const,
467 const double* const,const double* const,
468 const int* const,const int* const);
469 void F77DECLARE(N_IMP_DIAG)(const int* const,const int* const,const double* const,
470 const int* const,const int* const,
471 const int* const,const double* const);
472 void F77DECLARE(NONZ_LUD)(const int* const,const int* const,
473 const double* const,const int* const,
474 const int* const, const int* const);
475 void F77DECLARE(AVNZ_COL)(const int* const,const int* const,
476 const double* const,const double* const,
477 const int* const, const double* const,
478 const double* const);
479 void F77DECLARE(VBRINFO)(const int* const, const int* const,
480 const int* const, const int* const,
481 const double* const, const int* const,
482 const int* const, const int* const,
483 const int* const);
484 void F77DECLARE(CSRCSC)(const int* const,const int* const,const int* const,const int* const,
485 const double* const , const int* const , const int* const,
486 double* , int* , int* );
487 void F77DECLARE(GETU)(const int* const, const double* const,
488 const int* const, const int* const,
489 double* ,int* ,int* );
490
491 void F77NAME(CG)(const int* const a, const double* const b,
492 double* c, int* d,double* e, double* f );
493
494 void F77NAME(BCGSTAB)(const int* const a, const double* const b,
495 double* c, int* d,double* e, double* f );
496
497 void F77NAME(GMRES)(const int* const a, const double* const b,
498 double* c, int* d,double* e, double* f );
499
500 void F77NAME(GMRESBIS)(const int* const a, const double* const b,
501 double* c, int* d,double* e, double* f );
502
503
504
505#else // F77_Majuscule
506 ////////////////////
507 // AJOUT pour SolvCHolesky
508 //////////////////
509 void F77DECLARE(dperm) (const int*, const double*,
510 const int*, const int*,
511 double*, int*, int*,
512 const int*, const int*,
513 const int*);
514
515 void F77DECLARE(dvperm) (const int*, double*, const int*);
516
517 void F77DECLARE(perphn)(const int* a ,const int* b,
518 const int* c,const int* e,
519 const int* f ,const int* g, int* h,
520 int* i , int* j) ;
521 //////////////////
522 // AJOUT pour Multigrille
523 //////////////////
524 void F77DECLARE(csort) (const int*, double*, int*,
525 int*, int*, const int*);
526 //////////////////
527
528 void F77DECLARE(ilut)(const int* const, const double* const, const int* const, const int* const,
529 const int* const, double* const, double* const, int* const, const int* const,
530 int* const, double* const, int* const,
531 int* const);
532
533 void F77DECLARE(lusol) (const int* const,const double* const,
534 const double* const,const double* const,
535 const int* const,const int* const);
536
537 void F77DECLARE(lutsol) (const int* const,const double* const,
538 const double* const,const double* const,
539 const int* const,const int* const);
540
541 void F77DECLARE(pgmres)(const int* const, const int* const, const double* const, double* const,
542 const double* const, const double* const, const int* const, const int* const,
543 const double* const, const int* const, const int* const, const double* const,
544 const int* const, const int* const, int* const);
545
546 void F77DECLARE(amux)(const int* n, const double* x, const double* y,
547 const double* a,const int* ja, const int* ia);
548
549 void F77DECLARE(atmux)(const int* n, const double* x, const double* y,
550 const double* a,const int* ja, const int* ia);
551
552 void F77DECLARE(amudia)(const int* const, const int* const, const double* const,
553 const int* const, const int* const, const double* const,
554 const double*, const int*, const int* );
555
556 void F77DECLARE(amub)(const int* const, const int* const, const int* const, const double* const,
557 const int* const, const int* const, const double* const,
558 const int* const, const int* const, double* const, int* const, int* const,
559 const int* const, const int* const, int* const);
560
561 void F77DECLARE(aplb)(const int* const, const int* const,const int* const,
562 const double* const, const int* const,const int* const,
563 const double* const,const int* const,const int* const,
564 const double* const,const int* const,const int* const,
565 const int* const,const int* const,const int* const);
566
567 void F77DECLARE(aplb1)(const int* const, const int* const,const int* const,
568 const double* const, const int* const,const int* const,
569 const double* const,const int* const,const int* const,
570 const double* const,const int* const,const int* const,
571 const int* const,const int* const,const int* const);
572
573 void F77DECLARE(aplsb)(const int* const, const int* const, const double* const,
574 const int* const, const int* const, const int* const,
575 const double* const, const int* const, const int* const,
576 const double* const, const int* const, const int* const,
577 const int* const, const int* const, const int* const);
578
579 void F77DECLARE(aplsb1)(const int* const, const int* const, const double* const,
580 const int* const, const int* const, const int* const,
581 const double* const, const int* const, const int* const,
582 const double* const, const int* const, const int* const,
583 const int* const, const int* const, const int* const);
584
585 void F77DECLARE(apmbt)(const int* const, const int* const,const int* const,
586 const double* const, const int* const,const int* const,
587 const double* const,const int* const,const int* const,
588 const double* const,const int* const,const int* const,
589 const int* const,const int* const,const int* const);
590
591 void F77DECLARE(aplsbt)(const int* const, const int* const,const int* const,
592 const double* const, const int* const,const int* const,
593 const double* const,const int* const,const int* const,
594 const double* const,const int* const,const int* const,
595 const int* const,const int* const,const int* const);
596
597 void F77DECLARE(diamua)(const int* const, const int* const, const double* const,
598 const int* const, const int* const, const double* const,
599 const double* const, const int* const, const int* const);
600
601 void F77DECLARE(aplsca)(const int* const, const double* const, const int* const,
602 const int* const, const double* const,const int* const);
603
604 void F77DECLARE(apldia)(const int* const, const int* const, const double* const,
605 const int* const, const int* const, const double* const,
606 const double* const, const int* const, const int* const,
607 const int* const);
608 void F77DECLARE(dinfo1)(const int* const, const int* const, const double* const,
609 const int* const, const int* const, const int* const,
610 const char* const, const char* const, const char* const,
611 const double* const,const int* const,const int* const);
612
613 void F77DECLARE(bandwidth)(const int* const,const int* const, const double* const,
614 const int* const, const int* const, const int* const,
615 const double* const);
616 void F77DECLARE(nonz)(const int* const,const int* const, const int* const,
617 const double* const,
618 const double* const, const int* const, const int* const,
619 const int* const, const int* const, const int* const,
620 const int* const);
621 void F77DECLARE(diag_domi)(const int* const,const int* const,const int* const,
622 const double* const, const int* const,
623 const double* const,const double* const,
624 const double* const,
625 const double* const, const double* const);
626 void F77DECLARE(frobnorm)(const int* const,const int* const,
627 const double* const,const int* const,
628 const double* const,const double* const) ;
629 void F77DECLARE(ansym)(const int* const,const int* const,const double* const,
630 const int* const,const double* const,const double* const,
631 const int* const,const double* const,const int* const,
632 const double* const,const double* const,const double* const);
633 void F77DECLARE(distaij)(const int* const,const int* const,const int* const,
634 const int* const,const double* const,const double* const,
635 const double* const);
636 void F77DECLARE(skyline)(const int* const,const int* const,const int* const,
637 const double* const,
638 const int* const,const double* const,const int* const);
639 void F77DECLARE(distdiag)(const int* const,const int* const,const int* const,
640 const double* const,const double* const);
641 void F77DECLARE(bandpart)(const int* const,const int* const,
642 const double* const,const double* const,
643 const int* const,const int* const);
644 void F77DECLARE(n_imp_diag)(const int* const,const int* const,const double* const,
645 const int* const,const int* const,
646 const int* const,const double* const);
647 void F77DECLARE(nonz_lud)(const int* const,const int* const,
648 const double* const,const int* const,
649 const int* const, const int* const);
650 void F77DECLARE(avnz_col)(const int* const,const int* const,
651 const double* const,const double* const,
652 const int* const, const double* const,
653 const double* const);
654 void F77DECLARE(vbrinfo)(const int* const, const int* const,
655 const int* const, const int* const,
656 const double* const, const int* const,
657 const int* const, const int* const,
658 const int* const);
659 void F77DECLARE(csrcsc)(const int* const,const int* const,const int* const,const int* const,
660 const double* const , const int* const , const int* const,
661 double* , int* , int* );
662 void F77DECLARE(getu)(const int* const, const double* const,
663 const int* const, const int* const,
664 double* ,int* ,int* );
665
666
667 void F77NAME(cg)(const int* const a, const double* const b,
668 double* c, int* d,double* e, double* f );
669
670 void F77NAME(bcgstab)(const int* const a, const double* const b,
671 double* c, int* d,double* e, double* f );
672
673 void F77NAME(gmres)(const int* const a, const double* const b,
674 double* c, int* d,double* e, double* f );
675
676 void F77NAME(gmresbis)(const int* const a, const double* const b,
677 double* c, int* d,double* e, double* f );
678
679 double F77NAME(distdot)(const integer* const a, const double* const b,
680 const integer* const c, const double* const d,
681 const integer* const e);
682
683#endif //F77_Majuscule
684
685}
686
687/*! @brief
688 *
689 */
690#ifndef F77_Majuscule
691inline void F77NAME(ILUT)(const int* const a, const double* const b,
692 const int* const c, const int* const d,
693 const int* const e, double* const f, double* const g,
694 int* const h, const int* const i,
695 int* const j, double* const k, int* const l,
696
697 int* const p)
698{
699 F77NAME(ilut)(a,b,c,d,e,f,g,h,i,j,k,l,p);
700}
701
702inline void F77NAME(LUSOL) (const int* const a, const double* const b,
703 const double* const c, const double* const d,
704 const int* const e, const int* const f)
705{
706 F77NAME(lusol)(a,b,c,d,e,f);
707}
708
709inline void F77NAME(LUTSOL) (const int* const a, const double* const b,
710 const double* const c, const double* const d,
711 const int* const e, const int* const f)
712{
713 F77NAME(lutsol)(a,b,c,d,e,f);
714}
715
716
717/*! @brief
718 *
719 */
720inline void F77NAME(PGMRES)(const int* const a, const int* const b,
721 const double* const c, double* const d,
722 const double* const e, const double* const f,
723 const int* const g, const int* const h,
724 const double* const i, const int* const j,
725 const int* const k, const double* const l,
726 const int* const m, const int* const n, int* const o)
727{
728 F77NAME(pgmres)(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);
729}
730
731
732/*! @brief
733 *
734 */
735inline void F77NAME(AMUX)(const int* n, const double* x, const double* y,
736 const double* a,const int* ja, const int* ia)
737{
738 F77NAME(amux)(n,x,y,a,ja,ia);
739}
740
741
742/*! @brief
743 *
744 */
745inline void F77NAME(ATMUX)(const int* n, const double* x, const double* y,
746 const double* a,const int* ja, const int* ia)
747{
748 F77NAME(atmux)(n,x,y,a,ja,ia);
749}
750
751
752/*! @brief
753 *
754 */
755inline void F77NAME(AMUDIA)(const int* const a, const int* const b,
756 const double* const c,
757 const int* const d, const int* const e,
758 const double* const f,
759 const double* g, const int* h, const int* i)
760{
761 F77NAME(amudia)(a,b,c,d,e,f,g,h,i);
762}
763
764
765/*! @brief
766 *
767 */
768inline void F77NAME(AMUB)(const int* const a, const int* const b,
769 const int* const c, const double* const d,
770 const int* const e, const int* const f, const double* const g,
771 const int* const h, const int* const i,
772 double* const j, int* const k, int* const l,
773 const int* const m, const int* const n, int* const o)
774{
775 F77NAME(amub)(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);
776}
777
778
779/*! @brief
780 *
781 */
782inline void F77NAME(APLB)(const int* const a, const int* const b,
783 const int* const c,
784 const double* const d, const int* const e,const int* const f,
785 const double* const g,const int* const h,const int* const i,
786 const double* const j,const int* const k,const int* const l,
787 const int* const m,const int* const n,const int* const o)
788{
789 F77NAME(aplb)(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);
790}
791
792
793/*! @brief
794 *
795 */
796inline void F77NAME(APLB1)(const int* const a, const int* const b,
797 const int* const c,
798 const double* const d, const int* const e, const int* const f,
799 const double* const g, const int* const h, const int* const i,
800 const double* const j, const int* const k, const int* const l,
801 const int* const m, const int* const n, const int* const o)
802{
803 F77NAME(aplb1)(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);
804}
805
806
807/*! @brief
808 *
809 */
810inline void F77NAME(APLSB)(const int* const a, const int* const b,
811 const double* const c,
812 const int* const d, const int* const e, const int* const f,
813 const double* const g, const int* const h, const int* const i,
814 const double* const j, const int* const k, const int* const l,
815 const int* const m, const int* const n, const int* const o)
816{
817 F77NAME(aplsb)(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);
818}
819
820
821/*! @brief
822 *
823 */
824inline void F77NAME(APLSB1)(const int* const a, const int* const b,
825 const double* const c,
826 const int* const d, const int* const e, const int* const f,
827 const double* const g, const int* const h, const int* const i,
828 const double* const j, const int* const k, const int* const l,
829 const int* const m, const int* const n, const int* const o)
830{
831 F77NAME(aplsb1)(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);
832}
833
834
835/*! @brief
836 *
837 */
838inline void F77NAME(APMBT)(const int* const a, const int* const b,
839 const int* const c,
840 const double* const d, const int* const e,const int* const f,
841 const double* const g,const int* const h,const int* const i,
842 const double* const j,const int* const k,const int* const l,
843 const int* const m, const int* const n,const int* const o)
844{
845 F77NAME(apmbt)(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);
846}
847
848
849/*! @brief
850 *
851 */
852inline void F77NAME(APLSBT)(const int* const a, const int* const b,
853 const int* const c,
854 const double* const d, const int* const e,const int* const f,
855 const double* const g,const int* const h,const int* const i,
856 const double* const j,const int* const k,const int* const l,
857 const int* const m, const int* const n,const int* const o)
858{
859 F77NAME(aplsbt)(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);
860}
861
862
863/*! @brief
864 *
865 */
866inline void F77NAME(DIAMUA)(const int* const a, const int* const b,
867 const double* const c,
868 const int* const d, const int* const e, const double* const f,
869 const double* const g, const int* const h, const int* const i)
870{
871 F77NAME(diamua)(a,b,c,d,e,f,g,h,i);
872}
873
874
875/*! @brief
876 *
877 */
878inline void F77NAME(APLSCA)(const int* const a, const double* const b,
879 const int* const c,
880 const int* const d, const double* const e,const int* const f)
881{
882 F77NAME(aplsca)(a,b,c,d,e,f);
883}
884
885
886/*! @brief
887 *
888 */
889inline void F77NAME(APLDIA)(const int* const a, const int* const b,
890 const double* const c,
891 const int* const d, const int* const e, const double* const f,
892 const double* const g, const int* const h, const int* const i,
893 const int* const j)
894{
895 F77NAME(apldia)(a,b,c,d,e,f,g,h,i,j);
896}
897//inline void F77NAME(DINFO1)(const int* const a, const int* const b,
898// const double* const c,
899// const int* const d, const int* const e, const int* const f,
900// const char* const g, const char* const h, const char* const i,
901// const double* const j,const int* const k,const int* const l){
902// F77NAME(dinfo1)(a,b,c,d,e,f,g,h,i,j,k,l);
903// }
904inline void F77NAME(BANDWIDTH)(const int* const a,const int* const b,
905 const double* const c,
906 const int* const d, const int* const e, const int* const f,
907 const double* const g)
908{
909 F77NAME(bandwidth)(a,b,c,d,e,f,g);
910}
911
912/*! @brief
913 *
914 */
915inline void F77NAME(NONZ)(const int* const a,const int* const b,
916 const int* const c,
917 const double* const d,
918 const double* const e, const int* const f, const int* const g,
919 const int* const h, const int* const i, const int* const j,
920 const int* const k)
921{
922 F77NAME(nonz)(a,b,c,d,e,f,g,h,i,j,k);
923}
924
925/*! @brief
926 *
927 */
928inline void F77NAME(DIAG_DOMI)(const int* const a,const int* const b,
929 const int* const c,
930 const double* const d, const int* const e,
931 const double* const f, const double* const g,
932 const double* const h,
933 const double* const i, const double* const j)
934{
935 F77NAME(diag_domi)(a,b,c,d,e,f,g,h,i,j);
936}
937
938/*! @brief
939 *
940 */
941inline void F77NAME(FROBNORM)(const int* const a,const int* const b,
942 const double* const c,const int* const d,
943 const double* const e,const double* const f)
944{
945 F77NAME(frobnorm)(a,b,c,d,e,f);
946}
947
948/*! @brief
949 *
950 */
951inline void F77NAME(ANSYM)(const int* const a,const int* const b,
952 const double* const c,
953 const int* const d,const double* const e,const double* const f,
954 const int* const g,const double* const h,const int* const i,
955 const double* const j,const double* const k,const double* const l)
956{
957 F77NAME(ansym)(a,b,c,d,e,f,g,h,i,j,k,l);
958}
959
960/*! @brief
961 *
962 */
963inline void F77NAME(DISTAIJ)(const int* const a,const int* const b,
964 const int* const c,
965 const int* const d,const double* const e,const double* const f,
966 const double* const g)
967{
968 F77NAME(distaij)(a,b,c,d,e,f,g);
969}
970
971/*! @brief
972 *
973 */
974inline void F77NAME(SKYLINE)(const int* const a,const int* const b,
975 const int* const c,
976 const double* const d,
977 const int* const e,const double* const f,const int* const g)
978{
979 F77NAME(skyline)(a,b,c,d,e,f,g);
980}
981
982/*! @brief
983 *
984 */
985inline void F77NAME(DISTDIAG)(const int* const a,const int* const b,
986 const int* const c,
987 const double* const d,const double* const e)
988{
989 F77NAME(distdiag)(a,b,c,d,e);
990}
991
992/*! @brief
993 *
994 */
995inline void F77NAME(BANDPART)(const int* const a,const int* const b,
996 const double* const c,const double* const d,
997 const int* const e,const int* const f)
998{
999 F77NAME(bandpart)(a,b,c,d,e,f);
1000}
1001
1002/*! @brief
1003 *
1004 */
1005inline void F77NAME(N_IMP_DIAG)(const int* const a,const int* const b,
1006 const double* const c,
1007 const int* const d,const int* const e,
1008 const int* const f,const double* const g)
1009{
1010 F77NAME(n_imp_diag)(a,b,c,d,e,f,g);
1011}
1012
1013/*! @brief
1014 *
1015 */
1016inline void F77NAME(NONZ_LUD)(const int* const a,const int* const b,
1017 const double* const c,const int* const d,
1018 const int* const e, const int* const f)
1019{
1020 F77NAME(nonz_lud)(a,b,c,d,e,f);
1021}
1022
1023/*! @brief
1024 *
1025 */
1026inline void F77NAME(AVNZ_COL)(const int* const a,const int* const b,
1027 const double* const c,const double* const d,
1028 const int* const e, const double* const f,
1029 const double* const g)
1030{
1031 F77NAME(avnz_col)(a,b,c,d,e,f,g);
1032}
1033
1034/*! @brief
1035 *
1036 */
1037inline void F77NAME(VBRINFO)(const int* const a, const int* const b,
1038 const int* const c, const int* const d,
1039 const double* const e, const int* const f,
1040 const int* const g, const int* const h,
1041 const int* const i)
1042{
1043 F77NAME(vbrinfo)(a,b,c,d,e,f,g,h,i);
1044}
1045inline void F77DECLARE(CSRCSC)(const int* const a,const int* const b,
1046 const int* const c,const int* const d,
1047 const double* const e, const int* const f,
1048 const int* const g, double* h,
1049 int* i, int* j)
1050{
1051 F77NAME(csrcsc)(a,b,c,d,e,f,g,h,i,j);
1052}
1053
1054inline void F77DECLARE(GETU)(const int* const a, const double* const b,
1055 const int* const c, const int* const d,
1056 double* e,int* f,int* g)
1057{
1058 F77NAME(getu)(a,b,c,d,e,f,g);
1059}
1060
1061
1062inline void F77NAME(CG)(const int* const a, const double* const b,
1063 double* c,int* d,double* e,double* f )
1064{
1065 F77NAME(cg)(a,b,c,d,e,f);
1066}
1067
1068inline void F77NAME(BCGSTAB)(const int* const a, const double* const b,
1069 double* c,int* d,double* e,double* f )
1070{
1071 F77NAME(bcgstab)(a,b,c,d,e,f);
1072}
1073
1074inline void F77NAME(GMRES)(const int* const a, const double* const b,
1075 double* c,int* d,double* e,double* f )
1076{
1077 F77NAME(gmres)(a,b,c,d,e,f);
1078}
1079
1080
1081/*! @brief
1082 *
1083 */
1084inline void F77NAME(GMRESBIS)(const int* const a, const double* const b,
1085 double* c,int* d,double* e,double* f )
1086{
1087 F77NAME(gmresbis)(a,b,c,d,e,f);
1088}
1089
1090
1091
1092
1093
1094
1095
1096//////////////////
1097// Ajout Solveur direct Cholesky
1098inline void F77DECLARE(DPERM) (const int* a, const double* b,
1099 const int* c, const int* d,
1100 double* e, int* f, int* g,
1101 const int* h, const int* i,
1102 const int* j)
1103{
1104 F77NAME(dperm)(a,b,c,d,e,f,g,h,i,j);
1105}
1106
1107inline void F77DECLARE(DVPERM) (const int* a, double* b, const int* c)
1108{
1109 F77NAME(dvperm)(a,b,c);
1110}
1111
1112inline void F77DECLARE(PERPHN)(const int* a ,const int* b,
1113 const int* c, const int* e,
1114 const int* f, const int* g, int* h,
1115 int* i, int* j)
1116{
1117 F77NAME(perphn)(a,b,c,e,f,g,h,i,j);
1118}
1119
1120//////////////////
1121// AJOUT pour Multigrille
1122//////////////////
1123inline void F77DECLARE(CSORT) (const int* a, double* b, int* c,
1124 int* d, int* e, const int* f)
1125{
1126 F77NAME(csort)(a,b,c,d,e,f);
1127}
1128
1129#endif //F77_Majuscule
1130#endif //_NO_SPARSKIT_
1131#endif //Sparskit_inclus
1132
1133
1134