ParMooN
 All Classes Functions Variables Friends Pages
amg_blas.h
1 /****************************************************************************/
2 /* */
3 /* File: amg_blas.h */
4 /* */
5 /* Purpose: BLAS on amg data structures */
6 /* */
7 /* Author: Peter Bastian */
8 /* Institut fuer Computeranwendungen III */
9 /* Universitaet Stuttgart */
10 /* Pfaffenwaldring 27 */
11 /* 70550 Stuttgart */
12 /* email: peter@ica3.uni-stuttgart.de */
13 /* phone: 0049-(0)711-685-7003 */
14 /* fax : 0049-(0)711-685-7000 */
15 /* */
16 /* History: 01 FEB 1996 Begin */
17 /* 30 SEP 1997 redesign */
18 /* */
19 /* Remarks: */
20 /* */
21 /* Author: Volker John */
22 /* Otto--von--Guericke Universitaet Magdeburg */
23 /* Institut fuer Analysis und Numerik */
24 /* Postfach 4120 */
25 /* 39016 Magdeburg */
26 /* email : volker.john@mathematik.uni-magdeburg.de */
27 /* */
28 /* History: 1998/04/28 start adding routine for solving saddle */
29 /* point problems */
30 /* */
31 /* Remarks: */
32 /* */
33 /****************************************************************************/
34 
35 /****************************************************************************/
36 /* */
37 /* auto include mechanism and other include files */
38 /* */
39 /****************************************************************************/
40 
41 #ifndef __AMG_BLAS__
42 #define __AMG_BLAS__
43 
44 #include "amg_sp.h"
45 
46 /****************************************************************************/
47 /* */
48 /* defines in the following order */
49 /* */
50 /* compile time constants defining static data size (i.e. arrays) */
51 /* other constants */
52 /* macros */
53 /* */
54 /****************************************************************************/
55 
56 /* BLAS Level 1 */
57 int AMG_dset (AMG_VECTOR *x, double a);
58 int AMG_randomize (AMG_VECTOR *x);
59 int AMG_dcopy (AMG_VECTOR *x, AMG_VECTOR *y);
60 int AMG_dscale (AMG_VECTOR *x, double a);
61 int AMG_daxpy (AMG_VECTOR *x, double a, AMG_VECTOR *y);
62 double AMG_ddot (AMG_VECTOR *x, AMG_VECTOR *y);
63 int AMG_daxpby (AMG_VECTOR *x, double a, AMG_VECTOR *y, double b, AMG_VECTOR *z);
64 
65 /* BLAS Level 2 */
66 int AMG_dmatset (AMG_MATRIX *A, double a);
67 int AMG_dmatcopy (AMG_MATRIX *A, AMG_MATRIX *B);
68 
69 int AMG_dmatmul (AMG_VECTOR *x, AMG_MATRIX *A, AMG_MATRIX **B,AMG_VECTOR *y);
70 int AMG_dmatminus (AMG_VECTOR *x, AMG_MATRIX *A, AMG_MATRIX **B,AMG_VECTOR *y);
71 int AMG_dmattransmul (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
72 
73 int AMG_dmatmul_SCALAR2 (AMG_VECTOR *x, AMG_MATRIX *A, AMG_MATRIX **B,AMG_VECTOR *y);
74 int AMG_dmatminus_SCALAR2 (AMG_VECTOR *x, AMG_MATRIX *A, AMG_MATRIX **B,AMG_VECTOR *y);
75 
76 int AMG_dmatmul_SCALAR3 (AMG_VECTOR *x, AMG_MATRIX *A, AMG_MATRIX **B,AMG_VECTOR *y);
77 int AMG_dmatminus_SCALAR3 (AMG_VECTOR *x, AMG_MATRIX *A, AMG_MATRIX **B,AMG_VECTOR *y);
78 
79 int AMG_dmatmul_SCALAR6 (AMG_VECTOR *x, AMG_MATRIX *A, AMG_MATRIX **B,AMG_VECTOR *y);
80 int AMG_dmatminus_SCALAR6 (AMG_VECTOR *x, AMG_MATRIX *A, AMG_MATRIX **B,AMG_VECTOR *y);
81 
82 int AMG_dmatmul_SCALAR_VAL_LAZ_2 (AMG_VECTOR *x, AMG_MATRIX *A, AMG_MATRIX **B,AMG_VECTOR *y);
83 int AMG_dmatminus_SCALAR_VAL_LAZ_2 (AMG_VECTOR *x, AMG_MATRIX *A, AMG_MATRIX **B,AMG_VECTOR *y);
84 
85 int AMG_dmatmul_SADDLE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
86 int AMG_dmatminus_SADDLE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
87 int AMG_A_dmatmul_SADDLE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
88 int AMG_B_dmatmul_SADDLE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
89 int AMG_B_Trans_dmatmul_SADDLE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
90 
91 int AMG_dmatmul_SADDLE_1_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
92 int AMG_dmatminus_SADDLE_1_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
93 int AMG_B_dmatmul_SADDLE_1_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
94 int AMG_B_Trans_dmatmul_SADDLE_1_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
95 
96 /* 2d saddle point problems */
97 int AMG_dmatmul_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
98 int AMG_dmatminus_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
99 int AMG_A_dmatmul_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
100 int AMG_A_dmatminus_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
101 int AMG_B_dmatmul_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
102 int AMG_B_Trans_dmatmul_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
103 
104 int AMG_dmatmul_SADDLE_2_TYPE_2 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
105 int AMG_dmatminus_SADDLE_2_TYPE_2 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
106 int AMG_B_dmatmul_SADDLE_2_TYPE_2 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
107 int AMG_B_Trans_dmatmul_SADDLE_2_TYPE_2 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
108 
109 int AMG_dmatmul_SADDLE_2_TYPE_2_MORTAR (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
110 int AMG_dmatminus_SADDLE_2_TYPE_2_MORTAR (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
111 int AMG_B_dmatmul_SADDLE_2_TYPE_2_MORTAR (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
112 int AMG_B_Trans_dmatmul_SADDLE_2_TYPE_2_MORTAR (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
113 
114 int AMG_dmatmul_SADDLE_2_TYPE_3 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
115 int AMG_dmatminus_SADDLE_2_TYPE_3 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
116 int AMG_A_dmatmul_SADDLE_2_TYPE_3 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
117 int AMG_A_dmatminus_SADDLE_2_TYPE_3 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
118 
119 int AMG_dmatmul_SADDLE_2_TYPE_4 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
120 int AMG_dmatminus_SADDLE_2_TYPE_4 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
121 int AMG_A_dmatmul_SADDLE_2_TYPE_4 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
122 int AMG_A_dmatminus_SADDLE_2_TYPE_4 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
123 
124 int AMG_dmatminus_gal_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
125 int AMG_B_dmatmul_gal_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
126 int AMG_B_Trans_dmatmul_gal_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
127 
128 int AMG_dmatmul_BRAESS_SARAZIN_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A,
129  AMG_MATRIX **B, AMG_VECTOR *y_);
130 int AMG_dmatminus_BRAESS_SARAZIN_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A,
131  AMG_MATRIX **B, AMG_VECTOR *y_);
132 int AMG_A_dmatmul_BRAESS_SARAZIN_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A,
133  AMG_MATRIX **B, AMG_VECTOR *y_);
134 int AMG_A_dmatminus_BRAESS_SARAZIN_SADDLE_2_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A,
135  AMG_MATRIX **B, AMG_VECTOR *y_);
136 
137 int AMG_dmatmul_BRAESS_SARAZIN_SADDLE_2_TYPE_2 (AMG_VECTOR *x_, AMG_MATRIX *A,
138  AMG_MATRIX **B, AMG_VECTOR *y_);
139 int AMG_dmatminus_BRAESS_SARAZIN_SADDLE_2_TYPE_2 (AMG_VECTOR *x_, AMG_MATRIX *A,
140  AMG_MATRIX **B, AMG_VECTOR *y_);
141 
142 int AMG_dmatmul_BRAESS_SARAZIN_SADDLE_2_TYPE_3 (AMG_VECTOR *x_, AMG_MATRIX *A,
143  AMG_MATRIX **B, AMG_VECTOR *y_);
144 int AMG_dmatminus_BRAESS_SARAZIN_SADDLE_2_TYPE_3 (AMG_VECTOR *x_, AMG_MATRIX *A,
145  AMG_MATRIX **B, AMG_VECTOR *y_);
146 int AMG_A_dmatmul_BRAESS_SARAZIN_SADDLE_2_TYPE_3 (AMG_VECTOR *x_, AMG_MATRIX *A,
147  AMG_MATRIX **B, AMG_VECTOR *y_);
148 int AMG_A_dmatminus_BRAESS_SARAZIN_SADDLE_2_TYPE_3 (AMG_VECTOR *x_, AMG_MATRIX *A,
149  AMG_MATRIX **B, AMG_VECTOR *y_);
150 
151 int AMG_dmatmul_BRAESS_SARAZIN_SADDLE_2_TYPE_4 (AMG_VECTOR *x_, AMG_MATRIX *A,
152  AMG_MATRIX **B, AMG_VECTOR *y_);
153 int AMG_dmatminus_BRAESS_SARAZIN_SADDLE_2_TYPE_4 (AMG_VECTOR *x_, AMG_MATRIX *A,
154  AMG_MATRIX **B, AMG_VECTOR *y_);
155 int AMG_A_dmatmul_BRAESS_SARAZIN_SADDLE_2_TYPE_4 (AMG_VECTOR *x_, AMG_MATRIX *A,
156  AMG_MATRIX **B, AMG_VECTOR *y_);
157 int AMG_A_dmatminus_BRAESS_SARAZIN_SADDLE_2_TYPE_4 (AMG_VECTOR *x_, AMG_MATRIX *A,
158  AMG_MATRIX **B, AMG_VECTOR *y_);
159 
160 
161 /* 3d saddle point problems */
162 int AMG_dmatmul_SADDLE_3_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
163 int AMG_dmatminus_SADDLE_3_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
164 int AMG_A_dmatmul_SADDLE_3_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
165 int AMG_A_dmatminus_SADDLE_3_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
166 int AMG_B_dmatmul_SADDLE_3_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
167 int AMG_B_Trans_dmatmul_SADDLE_3_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A, AMG_MATRIX **B, AMG_VECTOR *y_);
168 
169 int AMG_dmatmul_BRAESS_SARAZIN_SADDLE_3_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A,
170  AMG_MATRIX **B, AMG_VECTOR *y_);
171 int AMG_dmatminus_BRAESS_SARAZIN_SADDLE_3_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A,
172  AMG_MATRIX **B, AMG_VECTOR *y_);
173 int AMG_A_dmatmul_BRAESS_SARAZIN_SADDLE_3_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A,
174  AMG_MATRIX **B, AMG_VECTOR *y_);
175 int AMG_A_dmatminus_BRAESS_SARAZIN_SADDLE_3_TYPE_1 (AMG_VECTOR *x_, AMG_MATRIX *A,
176  AMG_MATRIX **B, AMG_VECTOR *y_);
177 #endif
Definition: amg_sp.h:70
Definition: amg_sp.h:96