Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
poly_imp.h
Go to the documentation of this file.
1 /* generated by gen_poly_imp.c */
2 
3 #define GLL_LAG_FIX_MAX 24
4 
5 static void gll_lag_02(double *restrict p, double *restrict w,
6  unsigned n, int d, double xh)
7 {
8  const double x = xh*2;
9  const double d00=x+2 ,d01=x-2 ;
10  const double u0_01= 1*d00;
11  const double v0_00=d01* 1;
12  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01* 1;
13  if(d>0) {
14  p[2+ 0]=2*w[ 0]*( 1);
15  p[2+ 1]=2*w[ 1]*( 1 );
16  if(d>1) {
17  p[2*2+ 0]=0;
18  p[2*2+ 1]=0;
19  }
20  }
21 }
22 
23 static void gll_lag_03(double *restrict p, double *restrict w,
24  unsigned n, int d, double xh)
25 {
26  const double x = xh*2;
27  const double d00=x+2 ,d01=x ,d02=x-2 ;
28  const double u0_01= 1*d00,u0_02=u0_01*d01;
29  const double v0_01=d02* 1,v0_00=d01*v0_01;
30  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02* 1;
31  if(d>0) {
32  const double u1_02= 1*d01+u0_01;
33  const double v1_00=d01* 1+v0_01;
34  p[3+ 0]=2*w[ 0]*( v1_00);
35  p[3+ 1]=2*w[ 1]*( 1*v0_01+u0_01* 1);
36  p[3+ 2]=2*w[ 2]*(u1_02 );
37  if(d>1) {
38  p[2*3+ 0]=4*w[ 0]*( + 1* 2);
39  p[2*3+ 1]=4*w[ 1]*( +2* 1* 1 );
40  p[2*3+ 2]=4*w[ 2]*( 2* 1 );
41  }
42  }
43 }
44 
45 static const double gllz_04[ 1] = {
46  0.44721359549995793928183473374625524708812367192231
47 };
48 
49 static void gll_lag_04(double *restrict p, double *restrict w,
50  unsigned n, int d, double xh)
51 {
52  const double x = xh*2;
53  const double d00=x+2 ,d01=x+2*gllz_04[ 0],d02=x-2*gllz_04[ 0],
54  d03=x-2 ;
55  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02;
56  const double v0_02=d03* 1,v0_01=d02*v0_02,v0_00=d01*v0_01;
57  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
58  p[ 3]=w[ 3]*u0_03* 1;
59  if(d>0) {
60  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02;
61  const double v1_01=d02* 1+v0_02,v1_00=d01*v1_01+v0_01;
62  p[4+ 0]=2*w[ 0]*( v1_00);
63  p[4+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
64  p[4+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02* 1);
65  p[4+ 3]=2*w[ 3]*(u1_03 );
66  if(d>1) {
67  const double u2_03= 2*d02+2*u1_02;
68  const double v2_00=d01* 2+2*v1_01;
69  p[2*4+ 0]=4*w[ 0]*( + 1*v2_00);
70  p[2*4+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01* 2);
71  p[2*4+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02* 1 );
72  p[2*4+ 3]=4*w[ 3]*(u2_03* 1 );
73  }
74  }
75 }
76 
77 static const double gllz_05[ 1] = {
78  0.65465367070797714379829245624685835556920808239542
79 };
80 
81 static void gll_lag_05(double *restrict p, double *restrict w,
82  unsigned n, int d, double xh)
83 {
84  const double x = xh*2;
85  const double d00=x+2 ,d01=x+2*gllz_05[ 0],d02=x ,
86  d03=x-2*gllz_05[ 0],d04=x-2 ;
87  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
88  u0_04=u0_03*d03;
89  const double v0_03=d04* 1,v0_02=d03*v0_03,v0_01=d02*v0_02,
90  v0_00=d01*v0_01;
91  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
92  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04* 1;
93  if(d>0) {
94  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
95  u1_04=u1_03*d03+u0_03;
96  const double v1_02=d03* 1+v0_03,v1_01=d02*v1_02+v0_02,
97  v1_00=d01*v1_01+v0_01;
98  p[5+ 0]=2*w[ 0]*( v1_00);
99  p[5+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
100  p[5+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
101  p[5+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03* 1);
102  p[5+ 4]=2*w[ 4]*(u1_04 );
103  if(d>1) {
104  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03;
105  const double v2_01=d02* 2+2*v1_02,v2_00=d01*v2_01+2*v1_01;
106  p[2*5+ 0]=4*w[ 0]*( + 1*v2_00);
107  p[2*5+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
108  p[2*5+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02* 2);
109  p[2*5+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03* 1 );
110  p[2*5+ 4]=4*w[ 4]*(u2_04* 1 );
111  }
112  }
113 }
114 
115 static const double gllz_06[ 2] = {
116  0.7650553239294646928510029739593381503657356885361,
117  0.28523151648064509631415099404087907191900347272643
118 };
119 
120 static void gll_lag_06(double *restrict p, double *restrict w,
121  unsigned n, int d, double xh)
122 {
123  const double x = xh*2;
124  const double d00=x+2 ,d01=x+2*gllz_06[ 0],d02=x+2*gllz_06[ 1],
125  d03=x-2*gllz_06[ 1],d04=x-2*gllz_06[ 0],d05=x-2 ;
126  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
127  u0_04=u0_03*d03,u0_05=u0_04*d04;
128  const double v0_04=d05* 1,v0_03=d04*v0_04,v0_02=d03*v0_03,
129  v0_01=d02*v0_02,v0_00=d01*v0_01;
130  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
131  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05* 1;
132  if(d>0) {
133  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
134  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04;
135  const double v1_03=d04* 1+v0_04,v1_02=d03*v1_03+v0_03,
136  v1_01=d02*v1_02+v0_02,v1_00=d01*v1_01+v0_01;
137  p[6+ 0]=2*w[ 0]*( v1_00);
138  p[6+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
139  p[6+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
140  p[6+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
141  p[6+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04* 1);
142  p[6+ 5]=2*w[ 5]*(u1_05 );
143  if(d>1) {
144  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
145  u2_05=u2_04*d04+2*u1_04;
146  const double v2_02=d03* 2+2*v1_03,v2_01=d02*v2_02+2*v1_02,
147  v2_00=d01*v2_01+2*v1_01;
148  p[2*6+ 0]=4*w[ 0]*( + 1*v2_00);
149  p[2*6+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
150  p[2*6+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
151  p[2*6+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03* 2);
152  p[2*6+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04* 1 );
153  p[2*6+ 5]=4*w[ 5]*(u2_05* 1 );
154  }
155  }
156 }
157 
158 static const double gllz_07[ 2] = {
159  0.830223896278566929872032213967465139587170364872,
160  0.46884879347071421380377188190876632940559747167184
161 };
162 
163 static void gll_lag_07(double *restrict p, double *restrict w,
164  unsigned n, int d, double xh)
165 {
166  const double x = xh*2;
167  const double d00=x+2 ,d01=x+2*gllz_07[ 0],d02=x+2*gllz_07[ 1],
168  d03=x ,d04=x-2*gllz_07[ 1],d05=x-2*gllz_07[ 0],
169  d06=x-2 ;
170  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
171  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05;
172  const double v0_05=d06* 1,v0_04=d05*v0_05,v0_03=d04*v0_04,
173  v0_02=d03*v0_03,v0_01=d02*v0_02,v0_00=d01*v0_01;
174  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
175  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
176  p[ 6]=w[ 6]*u0_06* 1;
177  if(d>0) {
178  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
179  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
180  u1_06=u1_05*d05+u0_05;
181  const double v1_04=d05* 1+v0_05,v1_03=d04*v1_04+v0_04,
182  v1_02=d03*v1_03+v0_03,v1_01=d02*v1_02+v0_02,
183  v1_00=d01*v1_01+v0_01;
184  p[7+ 0]=2*w[ 0]*( v1_00);
185  p[7+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
186  p[7+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
187  p[7+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
188  p[7+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
189  p[7+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05* 1);
190  p[7+ 6]=2*w[ 6]*(u1_06 );
191  if(d>1) {
192  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
193  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05;
194  const double v2_03=d04* 2+2*v1_04,v2_02=d03*v2_03+2*v1_03,
195  v2_01=d02*v2_02+2*v1_02,v2_00=d01*v2_01+2*v1_01;
196  p[2*7+ 0]=4*w[ 0]*( + 1*v2_00);
197  p[2*7+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
198  p[2*7+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
199  p[2*7+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
200  p[2*7+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04* 2);
201  p[2*7+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05* 1 );
202  p[2*7+ 6]=4*w[ 6]*(u2_06* 1 );
203  }
204  }
205 }
206 
207 static const double gllz_08[ 3] = {
208  0.87174014850960661533744576122066343810378066967698,
209  0.59170018143314230214451073139795318994570098951733,
210  0.20929921790247886876865726034535125529554540508668
211 };
212 
213 static void gll_lag_08(double *restrict p, double *restrict w,
214  unsigned n, int d, double xh)
215 {
216  const double x = xh*2;
217  const double d00=x+2 ,d01=x+2*gllz_08[ 0],d02=x+2*gllz_08[ 1],
218  d03=x+2*gllz_08[ 2],d04=x-2*gllz_08[ 2],d05=x-2*gllz_08[ 1],
219  d06=x-2*gllz_08[ 0],d07=x-2 ;
220  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
221  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
222  u0_07=u0_06*d06;
223  const double v0_06=d07* 1,v0_05=d06*v0_06,v0_04=d05*v0_05,
224  v0_03=d04*v0_04,v0_02=d03*v0_03,v0_01=d02*v0_02,
225  v0_00=d01*v0_01;
226  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
227  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
228  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07* 1;
229  if(d>0) {
230  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
231  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
232  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06;
233  const double v1_05=d06* 1+v0_06,v1_04=d05*v1_05+v0_05,
234  v1_03=d04*v1_04+v0_04,v1_02=d03*v1_03+v0_03,
235  v1_01=d02*v1_02+v0_02,v1_00=d01*v1_01+v0_01;
236  p[8+ 0]=2*w[ 0]*( v1_00);
237  p[8+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
238  p[8+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
239  p[8+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
240  p[8+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
241  p[8+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
242  p[8+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06* 1);
243  p[8+ 7]=2*w[ 7]*(u1_07 );
244  if(d>1) {
245  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
246  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
247  u2_07=u2_06*d06+2*u1_06;
248  const double v2_04=d05* 2+2*v1_05,v2_03=d04*v2_04+2*v1_04,
249  v2_02=d03*v2_03+2*v1_03,v2_01=d02*v2_02+2*v1_02,
250  v2_00=d01*v2_01+2*v1_01;
251  p[2*8+ 0]=4*w[ 0]*( + 1*v2_00);
252  p[2*8+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
253  p[2*8+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
254  p[2*8+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
255  p[2*8+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
256  p[2*8+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05* 2);
257  p[2*8+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06* 1 );
258  p[2*8+ 7]=4*w[ 7]*(u2_07* 1 );
259  }
260  }
261 }
262 
263 static const double gllz_09[ 3] = {
264  0.8997579954114601573123452444183379580514802955661,
265  0.67718627951073775344588542709134245071102964761391,
266  0.36311746382617815871075206870865921302064227760088
267 };
268 
269 static void gll_lag_09(double *restrict p, double *restrict w,
270  unsigned n, int d, double xh)
271 {
272  const double x = xh*2;
273  const double d00=x+2 ,d01=x+2*gllz_09[ 0],d02=x+2*gllz_09[ 1],
274  d03=x+2*gllz_09[ 2],d04=x ,d05=x-2*gllz_09[ 2],
275  d06=x-2*gllz_09[ 1],d07=x-2*gllz_09[ 0],d08=x-2 ;
276  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
277  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
278  u0_07=u0_06*d06,u0_08=u0_07*d07;
279  const double v0_07=d08* 1,v0_06=d07*v0_07,v0_05=d06*v0_06,
280  v0_04=d05*v0_05,v0_03=d04*v0_04,v0_02=d03*v0_03,
281  v0_01=d02*v0_02,v0_00=d01*v0_01;
282  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
283  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
284  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08* 1;
285  if(d>0) {
286  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
287  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
288  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
289  u1_08=u1_07*d07+u0_07;
290  const double v1_06=d07* 1+v0_07,v1_05=d06*v1_06+v0_06,
291  v1_04=d05*v1_05+v0_05,v1_03=d04*v1_04+v0_04,
292  v1_02=d03*v1_03+v0_03,v1_01=d02*v1_02+v0_02,
293  v1_00=d01*v1_01+v0_01;
294  p[9+ 0]=2*w[ 0]*( v1_00);
295  p[9+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
296  p[9+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
297  p[9+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
298  p[9+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
299  p[9+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
300  p[9+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
301  p[9+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07* 1);
302  p[9+ 8]=2*w[ 8]*(u1_08 );
303  if(d>1) {
304  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
305  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
306  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07;
307  const double v2_05=d06* 2+2*v1_06,v2_04=d05*v2_05+2*v1_05,
308  v2_03=d04*v2_04+2*v1_04,v2_02=d03*v2_03+2*v1_03,
309  v2_01=d02*v2_02+2*v1_02,v2_00=d01*v2_01+2*v1_01;
310  p[2*9+ 0]=4*w[ 0]*( + 1*v2_00);
311  p[2*9+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
312  p[2*9+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
313  p[2*9+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
314  p[2*9+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
315  p[2*9+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
316  p[2*9+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06* 2);
317  p[2*9+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07* 1 );
318  p[2*9+ 8]=4*w[ 8]*(u2_08* 1 );
319  }
320  }
321 }
322 
323 static const double gllz_10[ 4] = {
324  0.91953390816645881382893266082233813415354307544628,
325  0.73877386510550507500310617485983072501618510137693,
326  0.47792494981044449566117509273125799788677289333057,
327  0.16527895766638702462621976595817353323115034354948
328 };
329 
330 static void gll_lag_10(double *restrict p, double *restrict w,
331  unsigned n, int d, double xh)
332 {
333  const double x = xh*2;
334  const double d00=x+2 ,d01=x+2*gllz_10[ 0],d02=x+2*gllz_10[ 1],
335  d03=x+2*gllz_10[ 2],d04=x+2*gllz_10[ 3],d05=x-2*gllz_10[ 3],
336  d06=x-2*gllz_10[ 2],d07=x-2*gllz_10[ 1],d08=x-2*gllz_10[ 0],
337  d09=x-2 ;
338  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
339  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
340  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08;
341  const double v0_08=d09* 1,v0_07=d08*v0_08,v0_06=d07*v0_07,
342  v0_05=d06*v0_06,v0_04=d05*v0_05,v0_03=d04*v0_04,
343  v0_02=d03*v0_03,v0_01=d02*v0_02,v0_00=d01*v0_01;
344  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
345  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
346  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
347  p[ 9]=w[ 9]*u0_09* 1;
348  if(d>0) {
349  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
350  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
351  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
352  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08;
353  const double v1_07=d08* 1+v0_08,v1_06=d07*v1_07+v0_07,
354  v1_05=d06*v1_06+v0_06,v1_04=d05*v1_05+v0_05,
355  v1_03=d04*v1_04+v0_04,v1_02=d03*v1_03+v0_03,
356  v1_01=d02*v1_02+v0_02,v1_00=d01*v1_01+v0_01;
357  p[10+ 0]=2*w[ 0]*( v1_00);
358  p[10+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
359  p[10+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
360  p[10+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
361  p[10+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
362  p[10+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
363  p[10+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
364  p[10+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
365  p[10+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08* 1);
366  p[10+ 9]=2*w[ 9]*(u1_09 );
367  if(d>1) {
368  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
369  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
370  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
371  u2_09=u2_08*d08+2*u1_08;
372  const double v2_06=d07* 2+2*v1_07,v2_05=d06*v2_06+2*v1_06,
373  v2_04=d05*v2_05+2*v1_05,v2_03=d04*v2_04+2*v1_04,
374  v2_02=d03*v2_03+2*v1_03,v2_01=d02*v2_02+2*v1_02,
375  v2_00=d01*v2_01+2*v1_01;
376  p[2*10+ 0]=4*w[ 0]*( + 1*v2_00);
377  p[2*10+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
378  p[2*10+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
379  p[2*10+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
380  p[2*10+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
381  p[2*10+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
382  p[2*10+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
383  p[2*10+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07* 2);
384  p[2*10+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08* 1 );
385  p[2*10+ 9]=4*w[ 9]*(u2_09* 1 );
386  }
387  }
388 }
389 
390 static const double gllz_11[ 4] = {
391  0.93400143040805913433227413609938363453991733010996,
392  0.78448347366314441862241781610845810350719745509406,
393  0.56523532699620500647096396947775166428305214556202,
394  0.2957581355869393914319115155590575089410064343486
395 };
396 
397 static void gll_lag_11(double *restrict p, double *restrict w,
398  unsigned n, int d, double xh)
399 {
400  const double x = xh*2;
401  const double d00=x+2 ,d01=x+2*gllz_11[ 0],d02=x+2*gllz_11[ 1],
402  d03=x+2*gllz_11[ 2],d04=x+2*gllz_11[ 3],d05=x ,
403  d06=x-2*gllz_11[ 3],d07=x-2*gllz_11[ 2],d08=x-2*gllz_11[ 1],
404  d09=x-2*gllz_11[ 0],d10=x-2 ;
405  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
406  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
407  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
408  u0_10=u0_09*d09;
409  const double v0_09=d10* 1,v0_08=d09*v0_09,v0_07=d08*v0_08,
410  v0_06=d07*v0_07,v0_05=d06*v0_06,v0_04=d05*v0_05,
411  v0_03=d04*v0_04,v0_02=d03*v0_03,v0_01=d02*v0_02,
412  v0_00=d01*v0_01;
413  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
414  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
415  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
416  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10* 1;
417  if(d>0) {
418  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
419  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
420  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
421  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
422  u1_10=u1_09*d09+u0_09;
423  const double v1_08=d09* 1+v0_09,v1_07=d08*v1_08+v0_08,
424  v1_06=d07*v1_07+v0_07,v1_05=d06*v1_06+v0_06,
425  v1_04=d05*v1_05+v0_05,v1_03=d04*v1_04+v0_04,
426  v1_02=d03*v1_03+v0_03,v1_01=d02*v1_02+v0_02,
427  v1_00=d01*v1_01+v0_01;
428  p[11+ 0]=2*w[ 0]*( v1_00);
429  p[11+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
430  p[11+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
431  p[11+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
432  p[11+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
433  p[11+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
434  p[11+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
435  p[11+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
436  p[11+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
437  p[11+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09* 1);
438  p[11+10]=2*w[10]*(u1_10 );
439  if(d>1) {
440  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
441  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
442  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
443  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09;
444  const double v2_07=d08* 2+2*v1_08,v2_06=d07*v2_07+2*v1_07,
445  v2_05=d06*v2_06+2*v1_06,v2_04=d05*v2_05+2*v1_05,
446  v2_03=d04*v2_04+2*v1_04,v2_02=d03*v2_03+2*v1_03,
447  v2_01=d02*v2_02+2*v1_02,v2_00=d01*v2_01+2*v1_01;
448  p[2*11+ 0]=4*w[ 0]*( + 1*v2_00);
449  p[2*11+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
450  p[2*11+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
451  p[2*11+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
452  p[2*11+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
453  p[2*11+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
454  p[2*11+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
455  p[2*11+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
456  p[2*11+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08* 2);
457  p[2*11+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09* 1 );
458  p[2*11+10]=4*w[10]*(u2_10* 1 );
459  }
460  }
461 }
462 
463 static const double gllz_12[ 5] = {
464  0.94489927222288222340758013830321871361125655195003,
465  0.81927932164400667834864158171690266069046665790364,
466  0.6328761530318606776624048544436558582438437454015,
467  0.39953094096534893226434979156696690052774803279531,
468  0.13655293285492755486406185573969389689841411128206
469 };
470 
471 static void gll_lag_12(double *restrict p, double *restrict w,
472  unsigned n, int d, double xh)
473 {
474  const double x = xh*2;
475  const double d00=x+2 ,d01=x+2*gllz_12[ 0],d02=x+2*gllz_12[ 1],
476  d03=x+2*gllz_12[ 2],d04=x+2*gllz_12[ 3],d05=x+2*gllz_12[ 4],
477  d06=x-2*gllz_12[ 4],d07=x-2*gllz_12[ 3],d08=x-2*gllz_12[ 2],
478  d09=x-2*gllz_12[ 1],d10=x-2*gllz_12[ 0],d11=x-2 ;
479  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
480  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
481  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
482  u0_10=u0_09*d09,u0_11=u0_10*d10;
483  const double v0_10=d11* 1,v0_09=d10*v0_10,v0_08=d09*v0_09,
484  v0_07=d08*v0_08,v0_06=d07*v0_07,v0_05=d06*v0_06,
485  v0_04=d05*v0_05,v0_03=d04*v0_04,v0_02=d03*v0_03,
486  v0_01=d02*v0_02,v0_00=d01*v0_01;
487  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
488  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
489  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
490  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11* 1;
491  if(d>0) {
492  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
493  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
494  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
495  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
496  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10;
497  const double v1_09=d10* 1+v0_10,v1_08=d09*v1_09+v0_09,
498  v1_07=d08*v1_08+v0_08,v1_06=d07*v1_07+v0_07,
499  v1_05=d06*v1_06+v0_06,v1_04=d05*v1_05+v0_05,
500  v1_03=d04*v1_04+v0_04,v1_02=d03*v1_03+v0_03,
501  v1_01=d02*v1_02+v0_02,v1_00=d01*v1_01+v0_01;
502  p[12+ 0]=2*w[ 0]*( v1_00);
503  p[12+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
504  p[12+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
505  p[12+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
506  p[12+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
507  p[12+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
508  p[12+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
509  p[12+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
510  p[12+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
511  p[12+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
512  p[12+10]=2*w[10]*(u1_10*v0_10+u0_10* 1);
513  p[12+11]=2*w[11]*(u1_11 );
514  if(d>1) {
515  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
516  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
517  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
518  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
519  u2_11=u2_10*d10+2*u1_10;
520  const double v2_08=d09* 2+2*v1_09,v2_07=d08*v2_08+2*v1_08,
521  v2_06=d07*v2_07+2*v1_07,v2_05=d06*v2_06+2*v1_06,
522  v2_04=d05*v2_05+2*v1_05,v2_03=d04*v2_04+2*v1_04,
523  v2_02=d03*v2_03+2*v1_03,v2_01=d02*v2_02+2*v1_02,
524  v2_00=d01*v2_01+2*v1_01;
525  p[2*12+ 0]=4*w[ 0]*( + 1*v2_00);
526  p[2*12+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
527  p[2*12+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
528  p[2*12+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
529  p[2*12+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
530  p[2*12+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
531  p[2*12+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
532  p[2*12+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
533  p[2*12+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
534  p[2*12+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09* 2);
535  p[2*12+10]=4*w[10]*(u2_10*v0_10+2*u1_10* 1 );
536  p[2*12+11]=4*w[11]*(u2_11* 1 );
537  }
538  }
539 }
540 
541 static const double gllz_13[ 5] = {
542  0.95330984664216391189690546475544915162650788869736,
543  0.84634756465187231686592560709875335957803665971441,
544  0.68618846908175742607275903956635555292917619812438,
545  0.48290982109133620174693723363693362077219326211859,
546  0.24928693010623999256867370037422698148881131249298
547 };
548 
549 static void gll_lag_13(double *restrict p, double *restrict w,
550  unsigned n, int d, double xh)
551 {
552  const double x = xh*2;
553  const double d00=x+2 ,d01=x+2*gllz_13[ 0],d02=x+2*gllz_13[ 1],
554  d03=x+2*gllz_13[ 2],d04=x+2*gllz_13[ 3],d05=x+2*gllz_13[ 4],
555  d06=x ,d07=x-2*gllz_13[ 4],d08=x-2*gllz_13[ 3],
556  d09=x-2*gllz_13[ 2],d10=x-2*gllz_13[ 1],d11=x-2*gllz_13[ 0],
557  d12=x-2 ;
558  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
559  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
560  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
561  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11;
562  const double v0_11=d12* 1,v0_10=d11*v0_11,v0_09=d10*v0_10,
563  v0_08=d09*v0_09,v0_07=d08*v0_08,v0_06=d07*v0_07,
564  v0_05=d06*v0_06,v0_04=d05*v0_05,v0_03=d04*v0_04,
565  v0_02=d03*v0_03,v0_01=d02*v0_02,v0_00=d01*v0_01;
566  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
567  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
568  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
569  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
570  p[12]=w[12]*u0_12* 1;
571  if(d>0) {
572  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
573  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
574  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
575  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
576  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
577  u1_12=u1_11*d11+u0_11;
578  const double v1_10=d11* 1+v0_11,v1_09=d10*v1_10+v0_10,
579  v1_08=d09*v1_09+v0_09,v1_07=d08*v1_08+v0_08,
580  v1_06=d07*v1_07+v0_07,v1_05=d06*v1_06+v0_06,
581  v1_04=d05*v1_05+v0_05,v1_03=d04*v1_04+v0_04,
582  v1_02=d03*v1_03+v0_03,v1_01=d02*v1_02+v0_02,
583  v1_00=d01*v1_01+v0_01;
584  p[13+ 0]=2*w[ 0]*( v1_00);
585  p[13+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
586  p[13+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
587  p[13+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
588  p[13+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
589  p[13+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
590  p[13+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
591  p[13+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
592  p[13+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
593  p[13+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
594  p[13+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
595  p[13+11]=2*w[11]*(u1_11*v0_11+u0_11* 1);
596  p[13+12]=2*w[12]*(u1_12 );
597  if(d>1) {
598  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
599  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
600  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
601  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
602  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11;
603  const double v2_09=d10* 2+2*v1_10,v2_08=d09*v2_09+2*v1_09,
604  v2_07=d08*v2_08+2*v1_08,v2_06=d07*v2_07+2*v1_07,
605  v2_05=d06*v2_06+2*v1_06,v2_04=d05*v2_05+2*v1_05,
606  v2_03=d04*v2_04+2*v1_04,v2_02=d03*v2_03+2*v1_03,
607  v2_01=d02*v2_02+2*v1_02,v2_00=d01*v2_01+2*v1_01;
608  p[2*13+ 0]=4*w[ 0]*( + 1*v2_00);
609  p[2*13+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
610  p[2*13+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
611  p[2*13+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
612  p[2*13+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
613  p[2*13+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
614  p[2*13+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
615  p[2*13+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
616  p[2*13+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
617  p[2*13+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
618  p[2*13+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10* 2);
619  p[2*13+11]=4*w[11]*(u2_11*v0_11+2*u1_11* 1 );
620  p[2*13+12]=4*w[12]*(u2_12* 1 );
621  }
622  }
623 }
624 
625 static const double gllz_14[ 6] = {
626  0.95993504526726090135510016201542438906639151857265,
627  0.86780105383034725100022020290826421324987235309444,
628  0.72886859909132614058467240052088159565733953169432,
629  0.55063940292864705531662270585908063446213831955391,
630  0.34272401334271284504390340364167464483311353414031,
631  0.11633186888370386765877670973616016794150904425628
632 };
633 
634 static void gll_lag_14(double *restrict p, double *restrict w,
635  unsigned n, int d, double xh)
636 {
637  const double x = xh*2;
638  const double d00=x+2 ,d01=x+2*gllz_14[ 0],d02=x+2*gllz_14[ 1],
639  d03=x+2*gllz_14[ 2],d04=x+2*gllz_14[ 3],d05=x+2*gllz_14[ 4],
640  d06=x+2*gllz_14[ 5],d07=x-2*gllz_14[ 5],d08=x-2*gllz_14[ 4],
641  d09=x-2*gllz_14[ 3],d10=x-2*gllz_14[ 2],d11=x-2*gllz_14[ 1],
642  d12=x-2*gllz_14[ 0],d13=x-2 ;
643  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
644  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
645  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
646  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11,
647  u0_13=u0_12*d12;
648  const double v0_12=d13* 1,v0_11=d12*v0_12,v0_10=d11*v0_11,
649  v0_09=d10*v0_10,v0_08=d09*v0_09,v0_07=d08*v0_08,
650  v0_06=d07*v0_07,v0_05=d06*v0_06,v0_04=d05*v0_05,
651  v0_03=d04*v0_04,v0_02=d03*v0_03,v0_01=d02*v0_02,
652  v0_00=d01*v0_01;
653  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
654  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
655  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
656  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
657  p[12]=w[12]*u0_12*v0_12; p[13]=w[13]*u0_13* 1;
658  if(d>0) {
659  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
660  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
661  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
662  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
663  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
664  u1_12=u1_11*d11+u0_11,u1_13=u1_12*d12+u0_12;
665  const double v1_11=d12* 1+v0_12,v1_10=d11*v1_11+v0_11,
666  v1_09=d10*v1_10+v0_10,v1_08=d09*v1_09+v0_09,
667  v1_07=d08*v1_08+v0_08,v1_06=d07*v1_07+v0_07,
668  v1_05=d06*v1_06+v0_06,v1_04=d05*v1_05+v0_05,
669  v1_03=d04*v1_04+v0_04,v1_02=d03*v1_03+v0_03,
670  v1_01=d02*v1_02+v0_02,v1_00=d01*v1_01+v0_01;
671  p[14+ 0]=2*w[ 0]*( v1_00);
672  p[14+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
673  p[14+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
674  p[14+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
675  p[14+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
676  p[14+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
677  p[14+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
678  p[14+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
679  p[14+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
680  p[14+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
681  p[14+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
682  p[14+11]=2*w[11]*(u1_11*v0_11+u0_11*v1_11);
683  p[14+12]=2*w[12]*(u1_12*v0_12+u0_12* 1);
684  p[14+13]=2*w[13]*(u1_13 );
685  if(d>1) {
686  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
687  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
688  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
689  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
690  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11,
691  u2_13=u2_12*d12+2*u1_12;
692  const double v2_10=d11* 2+2*v1_11,v2_09=d10*v2_10+2*v1_10,
693  v2_08=d09*v2_09+2*v1_09,v2_07=d08*v2_08+2*v1_08,
694  v2_06=d07*v2_07+2*v1_07,v2_05=d06*v2_06+2*v1_06,
695  v2_04=d05*v2_05+2*v1_05,v2_03=d04*v2_04+2*v1_04,
696  v2_02=d03*v2_03+2*v1_03,v2_01=d02*v2_02+2*v1_02,
697  v2_00=d01*v2_01+2*v1_01;
698  p[2*14+ 0]=4*w[ 0]*( + 1*v2_00);
699  p[2*14+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
700  p[2*14+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
701  p[2*14+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
702  p[2*14+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
703  p[2*14+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
704  p[2*14+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
705  p[2*14+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
706  p[2*14+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
707  p[2*14+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
708  p[2*14+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10*v2_10);
709  p[2*14+11]=4*w[11]*(u2_11*v0_11+2*u1_11*v1_11+u0_11* 2);
710  p[2*14+12]=4*w[12]*(u2_12*v0_12+2*u1_12* 1 );
711  p[2*14+13]=4*w[13]*(u2_13* 1 );
712  }
713  }
714 }
715 
716 static const double gllz_15[ 6] = {
717  0.96524592650383857279585139206960117770765013599709,
718  0.88508204422297629882540163148222965198871408520748,
719  0.76351968995181520070411847597629161817736852031529,
720  0.60625320546984571112352993863673350717973103375992,
721  0.42063805471367248092189693873858041298433820549243,
722  0.21535395536379423822567944627291771265215790120304
723 };
724 
725 static void gll_lag_15(double *restrict p, double *restrict w,
726  unsigned n, int d, double xh)
727 {
728  const double x = xh*2;
729  const double d00=x+2 ,d01=x+2*gllz_15[ 0],d02=x+2*gllz_15[ 1],
730  d03=x+2*gllz_15[ 2],d04=x+2*gllz_15[ 3],d05=x+2*gllz_15[ 4],
731  d06=x+2*gllz_15[ 5],d07=x ,d08=x-2*gllz_15[ 5],
732  d09=x-2*gllz_15[ 4],d10=x-2*gllz_15[ 3],d11=x-2*gllz_15[ 2],
733  d12=x-2*gllz_15[ 1],d13=x-2*gllz_15[ 0],d14=x-2 ;
734  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
735  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
736  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
737  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11,
738  u0_13=u0_12*d12,u0_14=u0_13*d13;
739  const double v0_13=d14* 1,v0_12=d13*v0_13,v0_11=d12*v0_12,
740  v0_10=d11*v0_11,v0_09=d10*v0_10,v0_08=d09*v0_09,
741  v0_07=d08*v0_08,v0_06=d07*v0_07,v0_05=d06*v0_06,
742  v0_04=d05*v0_05,v0_03=d04*v0_04,v0_02=d03*v0_03,
743  v0_01=d02*v0_02,v0_00=d01*v0_01;
744  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
745  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
746  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
747  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
748  p[12]=w[12]*u0_12*v0_12; p[13]=w[13]*u0_13*v0_13; p[14]=w[14]*u0_14* 1;
749  if(d>0) {
750  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
751  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
752  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
753  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
754  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
755  u1_12=u1_11*d11+u0_11,u1_13=u1_12*d12+u0_12,
756  u1_14=u1_13*d13+u0_13;
757  const double v1_12=d13* 1+v0_13,v1_11=d12*v1_12+v0_12,
758  v1_10=d11*v1_11+v0_11,v1_09=d10*v1_10+v0_10,
759  v1_08=d09*v1_09+v0_09,v1_07=d08*v1_08+v0_08,
760  v1_06=d07*v1_07+v0_07,v1_05=d06*v1_06+v0_06,
761  v1_04=d05*v1_05+v0_05,v1_03=d04*v1_04+v0_04,
762  v1_02=d03*v1_03+v0_03,v1_01=d02*v1_02+v0_02,
763  v1_00=d01*v1_01+v0_01;
764  p[15+ 0]=2*w[ 0]*( v1_00);
765  p[15+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
766  p[15+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
767  p[15+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
768  p[15+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
769  p[15+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
770  p[15+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
771  p[15+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
772  p[15+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
773  p[15+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
774  p[15+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
775  p[15+11]=2*w[11]*(u1_11*v0_11+u0_11*v1_11);
776  p[15+12]=2*w[12]*(u1_12*v0_12+u0_12*v1_12);
777  p[15+13]=2*w[13]*(u1_13*v0_13+u0_13* 1);
778  p[15+14]=2*w[14]*(u1_14 );
779  if(d>1) {
780  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
781  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
782  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
783  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
784  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11,
785  u2_13=u2_12*d12+2*u1_12,u2_14=u2_13*d13+2*u1_13;
786  const double v2_11=d12* 2+2*v1_12,v2_10=d11*v2_11+2*v1_11,
787  v2_09=d10*v2_10+2*v1_10,v2_08=d09*v2_09+2*v1_09,
788  v2_07=d08*v2_08+2*v1_08,v2_06=d07*v2_07+2*v1_07,
789  v2_05=d06*v2_06+2*v1_06,v2_04=d05*v2_05+2*v1_05,
790  v2_03=d04*v2_04+2*v1_04,v2_02=d03*v2_03+2*v1_03,
791  v2_01=d02*v2_02+2*v1_02,v2_00=d01*v2_01+2*v1_01;
792  p[2*15+ 0]=4*w[ 0]*( + 1*v2_00);
793  p[2*15+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
794  p[2*15+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
795  p[2*15+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
796  p[2*15+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
797  p[2*15+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
798  p[2*15+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
799  p[2*15+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
800  p[2*15+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
801  p[2*15+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
802  p[2*15+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10*v2_10);
803  p[2*15+11]=4*w[11]*(u2_11*v0_11+2*u1_11*v1_11+u0_11*v2_11);
804  p[2*15+12]=4*w[12]*(u2_12*v0_12+2*u1_12*v1_12+u0_12* 2);
805  p[2*15+13]=4*w[13]*(u2_13*v0_13+2*u1_13* 1 );
806  p[2*15+14]=4*w[14]*(u2_14* 1 );
807  }
808  }
809 }
810 
811 static const double gllz_16[ 7] = {
812  0.96956804627021793295224273836745924138899074650383,
813  0.89920053309347209299462826151984947674999760904514,
814  0.7920082918618150639310882709631457058080738279802,
815  0.65238870288249308946788321964058148032155801282957,
816  0.48605942188713761178189078584687469688897730429825,
817  0.29983046890076320809835345472230064781546097690778,
818  0.10132627352194944784303300504591776253324091440019
819 };
820 
821 static void gll_lag_16(double *restrict p, double *restrict w,
822  unsigned n, int d, double xh)
823 {
824  const double x = xh*2;
825  const double d00=x+2 ,d01=x+2*gllz_16[ 0],d02=x+2*gllz_16[ 1],
826  d03=x+2*gllz_16[ 2],d04=x+2*gllz_16[ 3],d05=x+2*gllz_16[ 4],
827  d06=x+2*gllz_16[ 5],d07=x+2*gllz_16[ 6],d08=x-2*gllz_16[ 6],
828  d09=x-2*gllz_16[ 5],d10=x-2*gllz_16[ 4],d11=x-2*gllz_16[ 3],
829  d12=x-2*gllz_16[ 2],d13=x-2*gllz_16[ 1],d14=x-2*gllz_16[ 0],
830  d15=x-2 ;
831  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
832  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
833  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
834  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11,
835  u0_13=u0_12*d12,u0_14=u0_13*d13,u0_15=u0_14*d14;
836  const double v0_14=d15* 1,v0_13=d14*v0_14,v0_12=d13*v0_13,
837  v0_11=d12*v0_12,v0_10=d11*v0_11,v0_09=d10*v0_10,
838  v0_08=d09*v0_09,v0_07=d08*v0_08,v0_06=d07*v0_07,
839  v0_05=d06*v0_06,v0_04=d05*v0_05,v0_03=d04*v0_04,
840  v0_02=d03*v0_03,v0_01=d02*v0_02,v0_00=d01*v0_01;
841  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
842  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
843  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
844  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
845  p[12]=w[12]*u0_12*v0_12; p[13]=w[13]*u0_13*v0_13; p[14]=w[14]*u0_14*v0_14;
846  p[15]=w[15]*u0_15* 1;
847  if(d>0) {
848  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
849  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
850  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
851  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
852  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
853  u1_12=u1_11*d11+u0_11,u1_13=u1_12*d12+u0_12,
854  u1_14=u1_13*d13+u0_13,u1_15=u1_14*d14+u0_14;
855  const double v1_13=d14* 1+v0_14,v1_12=d13*v1_13+v0_13,
856  v1_11=d12*v1_12+v0_12,v1_10=d11*v1_11+v0_11,
857  v1_09=d10*v1_10+v0_10,v1_08=d09*v1_09+v0_09,
858  v1_07=d08*v1_08+v0_08,v1_06=d07*v1_07+v0_07,
859  v1_05=d06*v1_06+v0_06,v1_04=d05*v1_05+v0_05,
860  v1_03=d04*v1_04+v0_04,v1_02=d03*v1_03+v0_03,
861  v1_01=d02*v1_02+v0_02,v1_00=d01*v1_01+v0_01;
862  p[16+ 0]=2*w[ 0]*( v1_00);
863  p[16+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
864  p[16+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
865  p[16+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
866  p[16+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
867  p[16+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
868  p[16+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
869  p[16+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
870  p[16+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
871  p[16+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
872  p[16+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
873  p[16+11]=2*w[11]*(u1_11*v0_11+u0_11*v1_11);
874  p[16+12]=2*w[12]*(u1_12*v0_12+u0_12*v1_12);
875  p[16+13]=2*w[13]*(u1_13*v0_13+u0_13*v1_13);
876  p[16+14]=2*w[14]*(u1_14*v0_14+u0_14* 1);
877  p[16+15]=2*w[15]*(u1_15 );
878  if(d>1) {
879  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
880  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
881  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
882  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
883  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11,
884  u2_13=u2_12*d12+2*u1_12,u2_14=u2_13*d13+2*u1_13,
885  u2_15=u2_14*d14+2*u1_14;
886  const double v2_12=d13* 2+2*v1_13,v2_11=d12*v2_12+2*v1_12,
887  v2_10=d11*v2_11+2*v1_11,v2_09=d10*v2_10+2*v1_10,
888  v2_08=d09*v2_09+2*v1_09,v2_07=d08*v2_08+2*v1_08,
889  v2_06=d07*v2_07+2*v1_07,v2_05=d06*v2_06+2*v1_06,
890  v2_04=d05*v2_05+2*v1_05,v2_03=d04*v2_04+2*v1_04,
891  v2_02=d03*v2_03+2*v1_03,v2_01=d02*v2_02+2*v1_02,
892  v2_00=d01*v2_01+2*v1_01;
893  p[2*16+ 0]=4*w[ 0]*( + 1*v2_00);
894  p[2*16+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
895  p[2*16+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
896  p[2*16+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
897  p[2*16+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
898  p[2*16+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
899  p[2*16+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
900  p[2*16+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
901  p[2*16+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
902  p[2*16+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
903  p[2*16+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10*v2_10);
904  p[2*16+11]=4*w[11]*(u2_11*v0_11+2*u1_11*v1_11+u0_11*v2_11);
905  p[2*16+12]=4*w[12]*(u2_12*v0_12+2*u1_12*v1_12+u0_12*v2_12);
906  p[2*16+13]=4*w[13]*(u2_13*v0_13+2*u1_13*v1_13+u0_13* 2);
907  p[2*16+14]=4*w[14]*(u2_14*v0_14+2*u1_14* 1 );
908  p[2*16+15]=4*w[15]*(u2_15* 1 );
909  }
910  }
911 }
912 
913 static const double gllz_17[ 7] = {
914  0.97313217663141831415697950187372143058895914912251,
915  0.91087999591557359562380250639772646753087945186873,
916  0.81569625122177030710675055323752665471640239706712,
917  0.69102898062768470539491935737245329680641306219042,
918  0.54138539933010153912373340750406325167514664796483,
919  0.37217443356547704190723468073525781255981731440028,
920  0.1895119735183173883042630147531139713449924229225
921 };
922 
923 static void gll_lag_17(double *restrict p, double *restrict w,
924  unsigned n, int d, double xh)
925 {
926  const double x = xh*2;
927  const double d00=x+2 ,d01=x+2*gllz_17[ 0],d02=x+2*gllz_17[ 1],
928  d03=x+2*gllz_17[ 2],d04=x+2*gllz_17[ 3],d05=x+2*gllz_17[ 4],
929  d06=x+2*gllz_17[ 5],d07=x+2*gllz_17[ 6],d08=x ,
930  d09=x-2*gllz_17[ 6],d10=x-2*gllz_17[ 5],d11=x-2*gllz_17[ 4],
931  d12=x-2*gllz_17[ 3],d13=x-2*gllz_17[ 2],d14=x-2*gllz_17[ 1],
932  d15=x-2*gllz_17[ 0],d16=x-2 ;
933  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
934  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
935  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
936  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11,
937  u0_13=u0_12*d12,u0_14=u0_13*d13,u0_15=u0_14*d14,
938  u0_16=u0_15*d15;
939  const double v0_15=d16* 1,v0_14=d15*v0_15,v0_13=d14*v0_14,
940  v0_12=d13*v0_13,v0_11=d12*v0_12,v0_10=d11*v0_11,
941  v0_09=d10*v0_10,v0_08=d09*v0_09,v0_07=d08*v0_08,
942  v0_06=d07*v0_07,v0_05=d06*v0_06,v0_04=d05*v0_05,
943  v0_03=d04*v0_04,v0_02=d03*v0_03,v0_01=d02*v0_02,
944  v0_00=d01*v0_01;
945  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
946  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
947  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
948  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
949  p[12]=w[12]*u0_12*v0_12; p[13]=w[13]*u0_13*v0_13; p[14]=w[14]*u0_14*v0_14;
950  p[15]=w[15]*u0_15*v0_15; p[16]=w[16]*u0_16* 1;
951  if(d>0) {
952  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
953  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
954  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
955  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
956  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
957  u1_12=u1_11*d11+u0_11,u1_13=u1_12*d12+u0_12,
958  u1_14=u1_13*d13+u0_13,u1_15=u1_14*d14+u0_14,
959  u1_16=u1_15*d15+u0_15;
960  const double v1_14=d15* 1+v0_15,v1_13=d14*v1_14+v0_14,
961  v1_12=d13*v1_13+v0_13,v1_11=d12*v1_12+v0_12,
962  v1_10=d11*v1_11+v0_11,v1_09=d10*v1_10+v0_10,
963  v1_08=d09*v1_09+v0_09,v1_07=d08*v1_08+v0_08,
964  v1_06=d07*v1_07+v0_07,v1_05=d06*v1_06+v0_06,
965  v1_04=d05*v1_05+v0_05,v1_03=d04*v1_04+v0_04,
966  v1_02=d03*v1_03+v0_03,v1_01=d02*v1_02+v0_02,
967  v1_00=d01*v1_01+v0_01;
968  p[17+ 0]=2*w[ 0]*( v1_00);
969  p[17+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
970  p[17+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
971  p[17+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
972  p[17+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
973  p[17+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
974  p[17+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
975  p[17+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
976  p[17+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
977  p[17+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
978  p[17+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
979  p[17+11]=2*w[11]*(u1_11*v0_11+u0_11*v1_11);
980  p[17+12]=2*w[12]*(u1_12*v0_12+u0_12*v1_12);
981  p[17+13]=2*w[13]*(u1_13*v0_13+u0_13*v1_13);
982  p[17+14]=2*w[14]*(u1_14*v0_14+u0_14*v1_14);
983  p[17+15]=2*w[15]*(u1_15*v0_15+u0_15* 1);
984  p[17+16]=2*w[16]*(u1_16 );
985  if(d>1) {
986  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
987  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
988  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
989  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
990  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11,
991  u2_13=u2_12*d12+2*u1_12,u2_14=u2_13*d13+2*u1_13,
992  u2_15=u2_14*d14+2*u1_14,u2_16=u2_15*d15+2*u1_15;
993  const double v2_13=d14* 2+2*v1_14,v2_12=d13*v2_13+2*v1_13,
994  v2_11=d12*v2_12+2*v1_12,v2_10=d11*v2_11+2*v1_11,
995  v2_09=d10*v2_10+2*v1_10,v2_08=d09*v2_09+2*v1_09,
996  v2_07=d08*v2_08+2*v1_08,v2_06=d07*v2_07+2*v1_07,
997  v2_05=d06*v2_06+2*v1_06,v2_04=d05*v2_05+2*v1_05,
998  v2_03=d04*v2_04+2*v1_04,v2_02=d03*v2_03+2*v1_03,
999  v2_01=d02*v2_02+2*v1_02,v2_00=d01*v2_01+2*v1_01;
1000  p[2*17+ 0]=4*w[ 0]*( + 1*v2_00);
1001  p[2*17+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
1002  p[2*17+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
1003  p[2*17+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
1004  p[2*17+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
1005  p[2*17+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
1006  p[2*17+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
1007  p[2*17+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
1008  p[2*17+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
1009  p[2*17+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
1010  p[2*17+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10*v2_10);
1011  p[2*17+11]=4*w[11]*(u2_11*v0_11+2*u1_11*v1_11+u0_11*v2_11);
1012  p[2*17+12]=4*w[12]*(u2_12*v0_12+2*u1_12*v1_12+u0_12*v2_12);
1013  p[2*17+13]=4*w[13]*(u2_13*v0_13+2*u1_13*v1_13+u0_13*v2_13);
1014  p[2*17+14]=4*w[14]*(u2_14*v0_14+2*u1_14*v1_14+u0_14* 2);
1015  p[2*17+15]=4*w[15]*(u2_15*v0_15+2*u1_15* 1 );
1016  p[2*17+16]=4*w[16]*(u2_16* 1 );
1017  }
1018  }
1019 }
1020 
1021 static const double gllz_18[ 8] = {
1022  0.97610555741219854286451892434170006676181344271919,
1023  0.92064918534753387383785462543127742356235348618904,
1024  0.83559353521809021371364636232793725743367075916582,
1025  0.72367932928324268130621036530207067914952520415476,
1026  0.58850483431866176117353589319355946900083678931622,
1027  0.43441503691212397534228713674067479584975844516369,
1028  0.26636265287828098416766533202559594206513618931826,
1029  0.089749093484652111022645010088561734960603901041125
1030 };
1031 
1032 static void gll_lag_18(double *restrict p, double *restrict w,
1033  unsigned n, int d, double xh)
1034 {
1035  const double x = xh*2;
1036  const double d00=x+2 ,d01=x+2*gllz_18[ 0],d02=x+2*gllz_18[ 1],
1037  d03=x+2*gllz_18[ 2],d04=x+2*gllz_18[ 3],d05=x+2*gllz_18[ 4],
1038  d06=x+2*gllz_18[ 5],d07=x+2*gllz_18[ 6],d08=x+2*gllz_18[ 7],
1039  d09=x-2*gllz_18[ 7],d10=x-2*gllz_18[ 6],d11=x-2*gllz_18[ 5],
1040  d12=x-2*gllz_18[ 4],d13=x-2*gllz_18[ 3],d14=x-2*gllz_18[ 2],
1041  d15=x-2*gllz_18[ 1],d16=x-2*gllz_18[ 0],d17=x-2 ;
1042  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
1043  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
1044  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
1045  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11,
1046  u0_13=u0_12*d12,u0_14=u0_13*d13,u0_15=u0_14*d14,
1047  u0_16=u0_15*d15,u0_17=u0_16*d16;
1048  const double v0_16=d17* 1,v0_15=d16*v0_16,v0_14=d15*v0_15,
1049  v0_13=d14*v0_14,v0_12=d13*v0_13,v0_11=d12*v0_12,
1050  v0_10=d11*v0_11,v0_09=d10*v0_10,v0_08=d09*v0_09,
1051  v0_07=d08*v0_08,v0_06=d07*v0_07,v0_05=d06*v0_06,
1052  v0_04=d05*v0_05,v0_03=d04*v0_04,v0_02=d03*v0_03,
1053  v0_01=d02*v0_02,v0_00=d01*v0_01;
1054  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
1055  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
1056  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
1057  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
1058  p[12]=w[12]*u0_12*v0_12; p[13]=w[13]*u0_13*v0_13; p[14]=w[14]*u0_14*v0_14;
1059  p[15]=w[15]*u0_15*v0_15; p[16]=w[16]*u0_16*v0_16; p[17]=w[17]*u0_17* 1;
1060  if(d>0) {
1061  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
1062  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
1063  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
1064  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
1065  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
1066  u1_12=u1_11*d11+u0_11,u1_13=u1_12*d12+u0_12,
1067  u1_14=u1_13*d13+u0_13,u1_15=u1_14*d14+u0_14,
1068  u1_16=u1_15*d15+u0_15,u1_17=u1_16*d16+u0_16;
1069  const double v1_15=d16* 1+v0_16,v1_14=d15*v1_15+v0_15,
1070  v1_13=d14*v1_14+v0_14,v1_12=d13*v1_13+v0_13,
1071  v1_11=d12*v1_12+v0_12,v1_10=d11*v1_11+v0_11,
1072  v1_09=d10*v1_10+v0_10,v1_08=d09*v1_09+v0_09,
1073  v1_07=d08*v1_08+v0_08,v1_06=d07*v1_07+v0_07,
1074  v1_05=d06*v1_06+v0_06,v1_04=d05*v1_05+v0_05,
1075  v1_03=d04*v1_04+v0_04,v1_02=d03*v1_03+v0_03,
1076  v1_01=d02*v1_02+v0_02,v1_00=d01*v1_01+v0_01;
1077  p[18+ 0]=2*w[ 0]*( v1_00);
1078  p[18+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
1079  p[18+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
1080  p[18+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
1081  p[18+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
1082  p[18+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
1083  p[18+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
1084  p[18+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
1085  p[18+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
1086  p[18+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
1087  p[18+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
1088  p[18+11]=2*w[11]*(u1_11*v0_11+u0_11*v1_11);
1089  p[18+12]=2*w[12]*(u1_12*v0_12+u0_12*v1_12);
1090  p[18+13]=2*w[13]*(u1_13*v0_13+u0_13*v1_13);
1091  p[18+14]=2*w[14]*(u1_14*v0_14+u0_14*v1_14);
1092  p[18+15]=2*w[15]*(u1_15*v0_15+u0_15*v1_15);
1093  p[18+16]=2*w[16]*(u1_16*v0_16+u0_16* 1);
1094  p[18+17]=2*w[17]*(u1_17 );
1095  if(d>1) {
1096  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
1097  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
1098  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
1099  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
1100  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11,
1101  u2_13=u2_12*d12+2*u1_12,u2_14=u2_13*d13+2*u1_13,
1102  u2_15=u2_14*d14+2*u1_14,u2_16=u2_15*d15+2*u1_15,
1103  u2_17=u2_16*d16+2*u1_16;
1104  const double v2_14=d15* 2+2*v1_15,v2_13=d14*v2_14+2*v1_14,
1105  v2_12=d13*v2_13+2*v1_13,v2_11=d12*v2_12+2*v1_12,
1106  v2_10=d11*v2_11+2*v1_11,v2_09=d10*v2_10+2*v1_10,
1107  v2_08=d09*v2_09+2*v1_09,v2_07=d08*v2_08+2*v1_08,
1108  v2_06=d07*v2_07+2*v1_07,v2_05=d06*v2_06+2*v1_06,
1109  v2_04=d05*v2_05+2*v1_05,v2_03=d04*v2_04+2*v1_04,
1110  v2_02=d03*v2_03+2*v1_03,v2_01=d02*v2_02+2*v1_02,
1111  v2_00=d01*v2_01+2*v1_01;
1112  p[2*18+ 0]=4*w[ 0]*( + 1*v2_00);
1113  p[2*18+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
1114  p[2*18+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
1115  p[2*18+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
1116  p[2*18+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
1117  p[2*18+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
1118  p[2*18+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
1119  p[2*18+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
1120  p[2*18+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
1121  p[2*18+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
1122  p[2*18+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10*v2_10);
1123  p[2*18+11]=4*w[11]*(u2_11*v0_11+2*u1_11*v1_11+u0_11*v2_11);
1124  p[2*18+12]=4*w[12]*(u2_12*v0_12+2*u1_12*v1_12+u0_12*v2_12);
1125  p[2*18+13]=4*w[13]*(u2_13*v0_13+2*u1_13*v1_13+u0_13*v2_13);
1126  p[2*18+14]=4*w[14]*(u2_14*v0_14+2*u1_14*v1_14+u0_14*v2_14);
1127  p[2*18+15]=4*w[15]*(u2_15*v0_15+2*u1_15*v1_15+u0_15* 2);
1128  p[2*18+16]=4*w[16]*(u2_16*v0_16+2*u1_16* 1 );
1129  p[2*18+17]=4*w[17]*(u2_17* 1 );
1130  }
1131  }
1132 }
1133 
1134 static const double gllz_19[ 8] = {
1135  0.97861176622208009515263406311022256281427733781081,
1136  0.92890152815258624371794025879654861245016818225195,
1137  0.85246057779664609308595597004106262523709538083887,
1138  0.7514942025526130141636374896339440404036593556658,
1139  0.62890813726522049776683230622873254706861115718956,
1140  0.48822928568071350277790963762492336977121559965148,
1141  0.33350484782449861029850010384492701192296337547773,
1142  0.16918602340928157137515415344488042375289555076585
1143 };
1144 
1145 static void gll_lag_19(double *restrict p, double *restrict w,
1146  unsigned n, int d, double xh)
1147 {
1148  const double x = xh*2;
1149  const double d00=x+2 ,d01=x+2*gllz_19[ 0],d02=x+2*gllz_19[ 1],
1150  d03=x+2*gllz_19[ 2],d04=x+2*gllz_19[ 3],d05=x+2*gllz_19[ 4],
1151  d06=x+2*gllz_19[ 5],d07=x+2*gllz_19[ 6],d08=x+2*gllz_19[ 7],
1152  d09=x ,d10=x-2*gllz_19[ 7],d11=x-2*gllz_19[ 6],
1153  d12=x-2*gllz_19[ 5],d13=x-2*gllz_19[ 4],d14=x-2*gllz_19[ 3],
1154  d15=x-2*gllz_19[ 2],d16=x-2*gllz_19[ 1],d17=x-2*gllz_19[ 0],
1155  d18=x-2 ;
1156  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
1157  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
1158  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
1159  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11,
1160  u0_13=u0_12*d12,u0_14=u0_13*d13,u0_15=u0_14*d14,
1161  u0_16=u0_15*d15,u0_17=u0_16*d16,u0_18=u0_17*d17;
1162  const double v0_17=d18* 1,v0_16=d17*v0_17,v0_15=d16*v0_16,
1163  v0_14=d15*v0_15,v0_13=d14*v0_14,v0_12=d13*v0_13,
1164  v0_11=d12*v0_12,v0_10=d11*v0_11,v0_09=d10*v0_10,
1165  v0_08=d09*v0_09,v0_07=d08*v0_08,v0_06=d07*v0_07,
1166  v0_05=d06*v0_06,v0_04=d05*v0_05,v0_03=d04*v0_04,
1167  v0_02=d03*v0_03,v0_01=d02*v0_02,v0_00=d01*v0_01;
1168  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
1169  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
1170  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
1171  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
1172  p[12]=w[12]*u0_12*v0_12; p[13]=w[13]*u0_13*v0_13; p[14]=w[14]*u0_14*v0_14;
1173  p[15]=w[15]*u0_15*v0_15; p[16]=w[16]*u0_16*v0_16; p[17]=w[17]*u0_17*v0_17;
1174  p[18]=w[18]*u0_18* 1;
1175  if(d>0) {
1176  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
1177  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
1178  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
1179  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
1180  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
1181  u1_12=u1_11*d11+u0_11,u1_13=u1_12*d12+u0_12,
1182  u1_14=u1_13*d13+u0_13,u1_15=u1_14*d14+u0_14,
1183  u1_16=u1_15*d15+u0_15,u1_17=u1_16*d16+u0_16,
1184  u1_18=u1_17*d17+u0_17;
1185  const double v1_16=d17* 1+v0_17,v1_15=d16*v1_16+v0_16,
1186  v1_14=d15*v1_15+v0_15,v1_13=d14*v1_14+v0_14,
1187  v1_12=d13*v1_13+v0_13,v1_11=d12*v1_12+v0_12,
1188  v1_10=d11*v1_11+v0_11,v1_09=d10*v1_10+v0_10,
1189  v1_08=d09*v1_09+v0_09,v1_07=d08*v1_08+v0_08,
1190  v1_06=d07*v1_07+v0_07,v1_05=d06*v1_06+v0_06,
1191  v1_04=d05*v1_05+v0_05,v1_03=d04*v1_04+v0_04,
1192  v1_02=d03*v1_03+v0_03,v1_01=d02*v1_02+v0_02,
1193  v1_00=d01*v1_01+v0_01;
1194  p[19+ 0]=2*w[ 0]*( v1_00);
1195  p[19+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
1196  p[19+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
1197  p[19+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
1198  p[19+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
1199  p[19+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
1200  p[19+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
1201  p[19+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
1202  p[19+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
1203  p[19+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
1204  p[19+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
1205  p[19+11]=2*w[11]*(u1_11*v0_11+u0_11*v1_11);
1206  p[19+12]=2*w[12]*(u1_12*v0_12+u0_12*v1_12);
1207  p[19+13]=2*w[13]*(u1_13*v0_13+u0_13*v1_13);
1208  p[19+14]=2*w[14]*(u1_14*v0_14+u0_14*v1_14);
1209  p[19+15]=2*w[15]*(u1_15*v0_15+u0_15*v1_15);
1210  p[19+16]=2*w[16]*(u1_16*v0_16+u0_16*v1_16);
1211  p[19+17]=2*w[17]*(u1_17*v0_17+u0_17* 1);
1212  p[19+18]=2*w[18]*(u1_18 );
1213  if(d>1) {
1214  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
1215  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
1216  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
1217  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
1218  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11,
1219  u2_13=u2_12*d12+2*u1_12,u2_14=u2_13*d13+2*u1_13,
1220  u2_15=u2_14*d14+2*u1_14,u2_16=u2_15*d15+2*u1_15,
1221  u2_17=u2_16*d16+2*u1_16,u2_18=u2_17*d17+2*u1_17;
1222  const double v2_15=d16* 2+2*v1_16,v2_14=d15*v2_15+2*v1_15,
1223  v2_13=d14*v2_14+2*v1_14,v2_12=d13*v2_13+2*v1_13,
1224  v2_11=d12*v2_12+2*v1_12,v2_10=d11*v2_11+2*v1_11,
1225  v2_09=d10*v2_10+2*v1_10,v2_08=d09*v2_09+2*v1_09,
1226  v2_07=d08*v2_08+2*v1_08,v2_06=d07*v2_07+2*v1_07,
1227  v2_05=d06*v2_06+2*v1_06,v2_04=d05*v2_05+2*v1_05,
1228  v2_03=d04*v2_04+2*v1_04,v2_02=d03*v2_03+2*v1_03,
1229  v2_01=d02*v2_02+2*v1_02,v2_00=d01*v2_01+2*v1_01;
1230  p[2*19+ 0]=4*w[ 0]*( + 1*v2_00);
1231  p[2*19+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
1232  p[2*19+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
1233  p[2*19+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
1234  p[2*19+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
1235  p[2*19+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
1236  p[2*19+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
1237  p[2*19+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
1238  p[2*19+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
1239  p[2*19+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
1240  p[2*19+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10*v2_10);
1241  p[2*19+11]=4*w[11]*(u2_11*v0_11+2*u1_11*v1_11+u0_11*v2_11);
1242  p[2*19+12]=4*w[12]*(u2_12*v0_12+2*u1_12*v1_12+u0_12*v2_12);
1243  p[2*19+13]=4*w[13]*(u2_13*v0_13+2*u1_13*v1_13+u0_13*v2_13);
1244  p[2*19+14]=4*w[14]*(u2_14*v0_14+2*u1_14*v1_14+u0_14*v2_14);
1245  p[2*19+15]=4*w[15]*(u2_15*v0_15+2*u1_15*v1_15+u0_15*v2_15);
1246  p[2*19+16]=4*w[16]*(u2_16*v0_16+2*u1_16*v1_16+u0_16* 2);
1247  p[2*19+17]=4*w[17]*(u2_17*v0_17+2*u1_17* 1 );
1248  p[2*19+18]=4*w[18]*(u2_18* 1 );
1249  }
1250  }
1251 }
1252 
1253 static const double gllz_20[ 9] = {
1254  0.98074370489391417192544643858423091522991062312625,
1255  0.93593449881266543571618158493062692991557383318105,
1256  0.86687797808995014130984721461628521396291128831699,
1257  0.77536826095205587041431752759469134337272185947653,
1258  0.66377640229031128984640332297115885247574574199149,
1259  0.53499286403188626164813596182898398300685156913752,
1260  0.39235318371390929938647470381582436666520332929891,
1261  0.23955170592298649518240135692708807194151780992738,
1262  0.080545937238821837975944518159554463022392870092908
1263 };
1264 
1265 static void gll_lag_20(double *restrict p, double *restrict w,
1266  unsigned n, int d, double xh)
1267 {
1268  const double x = xh*2;
1269  const double d00=x+2 ,d01=x+2*gllz_20[ 0],d02=x+2*gllz_20[ 1],
1270  d03=x+2*gllz_20[ 2],d04=x+2*gllz_20[ 3],d05=x+2*gllz_20[ 4],
1271  d06=x+2*gllz_20[ 5],d07=x+2*gllz_20[ 6],d08=x+2*gllz_20[ 7],
1272  d09=x+2*gllz_20[ 8],d10=x-2*gllz_20[ 8],d11=x-2*gllz_20[ 7],
1273  d12=x-2*gllz_20[ 6],d13=x-2*gllz_20[ 5],d14=x-2*gllz_20[ 4],
1274  d15=x-2*gllz_20[ 3],d16=x-2*gllz_20[ 2],d17=x-2*gllz_20[ 1],
1275  d18=x-2*gllz_20[ 0],d19=x-2 ;
1276  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
1277  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
1278  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
1279  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11,
1280  u0_13=u0_12*d12,u0_14=u0_13*d13,u0_15=u0_14*d14,
1281  u0_16=u0_15*d15,u0_17=u0_16*d16,u0_18=u0_17*d17,
1282  u0_19=u0_18*d18;
1283  const double v0_18=d19* 1,v0_17=d18*v0_18,v0_16=d17*v0_17,
1284  v0_15=d16*v0_16,v0_14=d15*v0_15,v0_13=d14*v0_14,
1285  v0_12=d13*v0_13,v0_11=d12*v0_12,v0_10=d11*v0_11,
1286  v0_09=d10*v0_10,v0_08=d09*v0_09,v0_07=d08*v0_08,
1287  v0_06=d07*v0_07,v0_05=d06*v0_06,v0_04=d05*v0_05,
1288  v0_03=d04*v0_04,v0_02=d03*v0_03,v0_01=d02*v0_02,
1289  v0_00=d01*v0_01;
1290  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
1291  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
1292  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
1293  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
1294  p[12]=w[12]*u0_12*v0_12; p[13]=w[13]*u0_13*v0_13; p[14]=w[14]*u0_14*v0_14;
1295  p[15]=w[15]*u0_15*v0_15; p[16]=w[16]*u0_16*v0_16; p[17]=w[17]*u0_17*v0_17;
1296  p[18]=w[18]*u0_18*v0_18; p[19]=w[19]*u0_19* 1;
1297  if(d>0) {
1298  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
1299  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
1300  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
1301  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
1302  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
1303  u1_12=u1_11*d11+u0_11,u1_13=u1_12*d12+u0_12,
1304  u1_14=u1_13*d13+u0_13,u1_15=u1_14*d14+u0_14,
1305  u1_16=u1_15*d15+u0_15,u1_17=u1_16*d16+u0_16,
1306  u1_18=u1_17*d17+u0_17,u1_19=u1_18*d18+u0_18;
1307  const double v1_17=d18* 1+v0_18,v1_16=d17*v1_17+v0_17,
1308  v1_15=d16*v1_16+v0_16,v1_14=d15*v1_15+v0_15,
1309  v1_13=d14*v1_14+v0_14,v1_12=d13*v1_13+v0_13,
1310  v1_11=d12*v1_12+v0_12,v1_10=d11*v1_11+v0_11,
1311  v1_09=d10*v1_10+v0_10,v1_08=d09*v1_09+v0_09,
1312  v1_07=d08*v1_08+v0_08,v1_06=d07*v1_07+v0_07,
1313  v1_05=d06*v1_06+v0_06,v1_04=d05*v1_05+v0_05,
1314  v1_03=d04*v1_04+v0_04,v1_02=d03*v1_03+v0_03,
1315  v1_01=d02*v1_02+v0_02,v1_00=d01*v1_01+v0_01;
1316  p[20+ 0]=2*w[ 0]*( v1_00);
1317  p[20+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
1318  p[20+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
1319  p[20+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
1320  p[20+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
1321  p[20+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
1322  p[20+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
1323  p[20+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
1324  p[20+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
1325  p[20+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
1326  p[20+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
1327  p[20+11]=2*w[11]*(u1_11*v0_11+u0_11*v1_11);
1328  p[20+12]=2*w[12]*(u1_12*v0_12+u0_12*v1_12);
1329  p[20+13]=2*w[13]*(u1_13*v0_13+u0_13*v1_13);
1330  p[20+14]=2*w[14]*(u1_14*v0_14+u0_14*v1_14);
1331  p[20+15]=2*w[15]*(u1_15*v0_15+u0_15*v1_15);
1332  p[20+16]=2*w[16]*(u1_16*v0_16+u0_16*v1_16);
1333  p[20+17]=2*w[17]*(u1_17*v0_17+u0_17*v1_17);
1334  p[20+18]=2*w[18]*(u1_18*v0_18+u0_18* 1);
1335  p[20+19]=2*w[19]*(u1_19 );
1336  if(d>1) {
1337  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
1338  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
1339  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
1340  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
1341  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11,
1342  u2_13=u2_12*d12+2*u1_12,u2_14=u2_13*d13+2*u1_13,
1343  u2_15=u2_14*d14+2*u1_14,u2_16=u2_15*d15+2*u1_15,
1344  u2_17=u2_16*d16+2*u1_16,u2_18=u2_17*d17+2*u1_17,
1345  u2_19=u2_18*d18+2*u1_18;
1346  const double v2_16=d17* 2+2*v1_17,v2_15=d16*v2_16+2*v1_16,
1347  v2_14=d15*v2_15+2*v1_15,v2_13=d14*v2_14+2*v1_14,
1348  v2_12=d13*v2_13+2*v1_13,v2_11=d12*v2_12+2*v1_12,
1349  v2_10=d11*v2_11+2*v1_11,v2_09=d10*v2_10+2*v1_10,
1350  v2_08=d09*v2_09+2*v1_09,v2_07=d08*v2_08+2*v1_08,
1351  v2_06=d07*v2_07+2*v1_07,v2_05=d06*v2_06+2*v1_06,
1352  v2_04=d05*v2_05+2*v1_05,v2_03=d04*v2_04+2*v1_04,
1353  v2_02=d03*v2_03+2*v1_03,v2_01=d02*v2_02+2*v1_02,
1354  v2_00=d01*v2_01+2*v1_01;
1355  p[2*20+ 0]=4*w[ 0]*( + 1*v2_00);
1356  p[2*20+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
1357  p[2*20+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
1358  p[2*20+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
1359  p[2*20+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
1360  p[2*20+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
1361  p[2*20+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
1362  p[2*20+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
1363  p[2*20+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
1364  p[2*20+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
1365  p[2*20+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10*v2_10);
1366  p[2*20+11]=4*w[11]*(u2_11*v0_11+2*u1_11*v1_11+u0_11*v2_11);
1367  p[2*20+12]=4*w[12]*(u2_12*v0_12+2*u1_12*v1_12+u0_12*v2_12);
1368  p[2*20+13]=4*w[13]*(u2_13*v0_13+2*u1_13*v1_13+u0_13*v2_13);
1369  p[2*20+14]=4*w[14]*(u2_14*v0_14+2*u1_14*v1_14+u0_14*v2_14);
1370  p[2*20+15]=4*w[15]*(u2_15*v0_15+2*u1_15*v1_15+u0_15*v2_15);
1371  p[2*20+16]=4*w[16]*(u2_16*v0_16+2*u1_16*v1_16+u0_16*v2_16);
1372  p[2*20+17]=4*w[17]*(u2_17*v0_17+2*u1_17*v1_17+u0_17* 2);
1373  p[2*20+18]=4*w[18]*(u2_18*v0_18+2*u1_18* 1 );
1374  p[2*20+19]=4*w[19]*(u2_19* 1 );
1375  }
1376  }
1377 }
1378 
1379 static const double gllz_21[ 9] = {
1380  0.98257229660454802823448127655540587685917158823641,
1381  0.94197629695974553429610265066143517664965087404401,
1382  0.8792947553235904644511535963049440477105815515092,
1383  0.79600192607771240474431258966035863909041966054978,
1384  0.69405102606222323262731639319466662875771600610585,
1385  0.57583196026183068692702187033808528733577300855848,
1386  0.44411578327900210119451634960735128473505748656706,
1387  0.30198985650876488727535186785875223202107103406039,
1388  0.15278551580218546600635832848566943551774899331328
1389 };
1390 
1391 static void gll_lag_21(double *restrict p, double *restrict w,
1392  unsigned n, int d, double xh)
1393 {
1394  const double x = xh*2;
1395  const double d00=x+2 ,d01=x+2*gllz_21[ 0],d02=x+2*gllz_21[ 1],
1396  d03=x+2*gllz_21[ 2],d04=x+2*gllz_21[ 3],d05=x+2*gllz_21[ 4],
1397  d06=x+2*gllz_21[ 5],d07=x+2*gllz_21[ 6],d08=x+2*gllz_21[ 7],
1398  d09=x+2*gllz_21[ 8],d10=x ,d11=x-2*gllz_21[ 8],
1399  d12=x-2*gllz_21[ 7],d13=x-2*gllz_21[ 6],d14=x-2*gllz_21[ 5],
1400  d15=x-2*gllz_21[ 4],d16=x-2*gllz_21[ 3],d17=x-2*gllz_21[ 2],
1401  d18=x-2*gllz_21[ 1],d19=x-2*gllz_21[ 0],d20=x-2 ;
1402  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
1403  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
1404  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
1405  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11,
1406  u0_13=u0_12*d12,u0_14=u0_13*d13,u0_15=u0_14*d14,
1407  u0_16=u0_15*d15,u0_17=u0_16*d16,u0_18=u0_17*d17,
1408  u0_19=u0_18*d18,u0_20=u0_19*d19;
1409  const double v0_19=d20* 1,v0_18=d19*v0_19,v0_17=d18*v0_18,
1410  v0_16=d17*v0_17,v0_15=d16*v0_16,v0_14=d15*v0_15,
1411  v0_13=d14*v0_14,v0_12=d13*v0_13,v0_11=d12*v0_12,
1412  v0_10=d11*v0_11,v0_09=d10*v0_10,v0_08=d09*v0_09,
1413  v0_07=d08*v0_08,v0_06=d07*v0_07,v0_05=d06*v0_06,
1414  v0_04=d05*v0_05,v0_03=d04*v0_04,v0_02=d03*v0_03,
1415  v0_01=d02*v0_02,v0_00=d01*v0_01;
1416  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
1417  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
1418  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
1419  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
1420  p[12]=w[12]*u0_12*v0_12; p[13]=w[13]*u0_13*v0_13; p[14]=w[14]*u0_14*v0_14;
1421  p[15]=w[15]*u0_15*v0_15; p[16]=w[16]*u0_16*v0_16; p[17]=w[17]*u0_17*v0_17;
1422  p[18]=w[18]*u0_18*v0_18; p[19]=w[19]*u0_19*v0_19; p[20]=w[20]*u0_20* 1;
1423  if(d>0) {
1424  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
1425  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
1426  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
1427  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
1428  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
1429  u1_12=u1_11*d11+u0_11,u1_13=u1_12*d12+u0_12,
1430  u1_14=u1_13*d13+u0_13,u1_15=u1_14*d14+u0_14,
1431  u1_16=u1_15*d15+u0_15,u1_17=u1_16*d16+u0_16,
1432  u1_18=u1_17*d17+u0_17,u1_19=u1_18*d18+u0_18,
1433  u1_20=u1_19*d19+u0_19;
1434  const double v1_18=d19* 1+v0_19,v1_17=d18*v1_18+v0_18,
1435  v1_16=d17*v1_17+v0_17,v1_15=d16*v1_16+v0_16,
1436  v1_14=d15*v1_15+v0_15,v1_13=d14*v1_14+v0_14,
1437  v1_12=d13*v1_13+v0_13,v1_11=d12*v1_12+v0_12,
1438  v1_10=d11*v1_11+v0_11,v1_09=d10*v1_10+v0_10,
1439  v1_08=d09*v1_09+v0_09,v1_07=d08*v1_08+v0_08,
1440  v1_06=d07*v1_07+v0_07,v1_05=d06*v1_06+v0_06,
1441  v1_04=d05*v1_05+v0_05,v1_03=d04*v1_04+v0_04,
1442  v1_02=d03*v1_03+v0_03,v1_01=d02*v1_02+v0_02,
1443  v1_00=d01*v1_01+v0_01;
1444  p[21+ 0]=2*w[ 0]*( v1_00);
1445  p[21+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
1446  p[21+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
1447  p[21+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
1448  p[21+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
1449  p[21+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
1450  p[21+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
1451  p[21+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
1452  p[21+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
1453  p[21+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
1454  p[21+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
1455  p[21+11]=2*w[11]*(u1_11*v0_11+u0_11*v1_11);
1456  p[21+12]=2*w[12]*(u1_12*v0_12+u0_12*v1_12);
1457  p[21+13]=2*w[13]*(u1_13*v0_13+u0_13*v1_13);
1458  p[21+14]=2*w[14]*(u1_14*v0_14+u0_14*v1_14);
1459  p[21+15]=2*w[15]*(u1_15*v0_15+u0_15*v1_15);
1460  p[21+16]=2*w[16]*(u1_16*v0_16+u0_16*v1_16);
1461  p[21+17]=2*w[17]*(u1_17*v0_17+u0_17*v1_17);
1462  p[21+18]=2*w[18]*(u1_18*v0_18+u0_18*v1_18);
1463  p[21+19]=2*w[19]*(u1_19*v0_19+u0_19* 1);
1464  p[21+20]=2*w[20]*(u1_20 );
1465  if(d>1) {
1466  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
1467  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
1468  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
1469  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
1470  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11,
1471  u2_13=u2_12*d12+2*u1_12,u2_14=u2_13*d13+2*u1_13,
1472  u2_15=u2_14*d14+2*u1_14,u2_16=u2_15*d15+2*u1_15,
1473  u2_17=u2_16*d16+2*u1_16,u2_18=u2_17*d17+2*u1_17,
1474  u2_19=u2_18*d18+2*u1_18,u2_20=u2_19*d19+2*u1_19;
1475  const double v2_17=d18* 2+2*v1_18,v2_16=d17*v2_17+2*v1_17,
1476  v2_15=d16*v2_16+2*v1_16,v2_14=d15*v2_15+2*v1_15,
1477  v2_13=d14*v2_14+2*v1_14,v2_12=d13*v2_13+2*v1_13,
1478  v2_11=d12*v2_12+2*v1_12,v2_10=d11*v2_11+2*v1_11,
1479  v2_09=d10*v2_10+2*v1_10,v2_08=d09*v2_09+2*v1_09,
1480  v2_07=d08*v2_08+2*v1_08,v2_06=d07*v2_07+2*v1_07,
1481  v2_05=d06*v2_06+2*v1_06,v2_04=d05*v2_05+2*v1_05,
1482  v2_03=d04*v2_04+2*v1_04,v2_02=d03*v2_03+2*v1_03,
1483  v2_01=d02*v2_02+2*v1_02,v2_00=d01*v2_01+2*v1_01;
1484  p[2*21+ 0]=4*w[ 0]*( + 1*v2_00);
1485  p[2*21+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
1486  p[2*21+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
1487  p[2*21+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
1488  p[2*21+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
1489  p[2*21+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
1490  p[2*21+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
1491  p[2*21+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
1492  p[2*21+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
1493  p[2*21+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
1494  p[2*21+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10*v2_10);
1495  p[2*21+11]=4*w[11]*(u2_11*v0_11+2*u1_11*v1_11+u0_11*v2_11);
1496  p[2*21+12]=4*w[12]*(u2_12*v0_12+2*u1_12*v1_12+u0_12*v2_12);
1497  p[2*21+13]=4*w[13]*(u2_13*v0_13+2*u1_13*v1_13+u0_13*v2_13);
1498  p[2*21+14]=4*w[14]*(u2_14*v0_14+2*u1_14*v1_14+u0_14*v2_14);
1499  p[2*21+15]=4*w[15]*(u2_15*v0_15+2*u1_15*v1_15+u0_15*v2_15);
1500  p[2*21+16]=4*w[16]*(u2_16*v0_16+2*u1_16*v1_16+u0_16*v2_16);
1501  p[2*21+17]=4*w[17]*(u2_17*v0_17+2*u1_17*v1_17+u0_17*v2_17);
1502  p[2*21+18]=4*w[18]*(u2_18*v0_18+2*u1_18*v1_18+u0_18* 2);
1503  p[2*21+19]=4*w[19]*(u2_19*v0_19+2*u1_19* 1 );
1504  p[2*21+20]=4*w[20]*(u2_20* 1 );
1505  }
1506  }
1507 }
1508 
1509 static const double gllz_22[10] = {
1510  0.98415243845764617655228962221207029660551353611952,
1511  0.94720428399922868052421376661572950991206204534136,
1512  0.89006229019090447052965782577908679019953408284715,
1513  0.8139489276119211360454418480561350424386685149071,
1514  0.7204872399612021581198818963984657585933454261195,
1515  0.6116694382842589712262116058699265993454403046077,
1516  0.48981487518990234980875123568327004167127163579515,
1517  0.35752071013891953806095728024017912928330710394294,
1518  0.21760658515928504178795509346539276327500669401419,
1519  0.073054540010898334761088790464107356192779236333516
1520 };
1521 
1522 static void gll_lag_22(double *restrict p, double *restrict w,
1523  unsigned n, int d, double xh)
1524 {
1525  const double x = xh*2;
1526  const double d00=x+2 ,d01=x+2*gllz_22[ 0],d02=x+2*gllz_22[ 1],
1527  d03=x+2*gllz_22[ 2],d04=x+2*gllz_22[ 3],d05=x+2*gllz_22[ 4],
1528  d06=x+2*gllz_22[ 5],d07=x+2*gllz_22[ 6],d08=x+2*gllz_22[ 7],
1529  d09=x+2*gllz_22[ 8],d10=x+2*gllz_22[ 9],d11=x-2*gllz_22[ 9],
1530  d12=x-2*gllz_22[ 8],d13=x-2*gllz_22[ 7],d14=x-2*gllz_22[ 6],
1531  d15=x-2*gllz_22[ 5],d16=x-2*gllz_22[ 4],d17=x-2*gllz_22[ 3],
1532  d18=x-2*gllz_22[ 2],d19=x-2*gllz_22[ 1],d20=x-2*gllz_22[ 0],
1533  d21=x-2 ;
1534  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
1535  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
1536  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
1537  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11,
1538  u0_13=u0_12*d12,u0_14=u0_13*d13,u0_15=u0_14*d14,
1539  u0_16=u0_15*d15,u0_17=u0_16*d16,u0_18=u0_17*d17,
1540  u0_19=u0_18*d18,u0_20=u0_19*d19,u0_21=u0_20*d20;
1541  const double v0_20=d21* 1,v0_19=d20*v0_20,v0_18=d19*v0_19,
1542  v0_17=d18*v0_18,v0_16=d17*v0_17,v0_15=d16*v0_16,
1543  v0_14=d15*v0_15,v0_13=d14*v0_14,v0_12=d13*v0_13,
1544  v0_11=d12*v0_12,v0_10=d11*v0_11,v0_09=d10*v0_10,
1545  v0_08=d09*v0_09,v0_07=d08*v0_08,v0_06=d07*v0_07,
1546  v0_05=d06*v0_06,v0_04=d05*v0_05,v0_03=d04*v0_04,
1547  v0_02=d03*v0_03,v0_01=d02*v0_02,v0_00=d01*v0_01;
1548  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
1549  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
1550  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
1551  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
1552  p[12]=w[12]*u0_12*v0_12; p[13]=w[13]*u0_13*v0_13; p[14]=w[14]*u0_14*v0_14;
1553  p[15]=w[15]*u0_15*v0_15; p[16]=w[16]*u0_16*v0_16; p[17]=w[17]*u0_17*v0_17;
1554  p[18]=w[18]*u0_18*v0_18; p[19]=w[19]*u0_19*v0_19; p[20]=w[20]*u0_20*v0_20;
1555  p[21]=w[21]*u0_21* 1;
1556  if(d>0) {
1557  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
1558  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
1559  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
1560  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
1561  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
1562  u1_12=u1_11*d11+u0_11,u1_13=u1_12*d12+u0_12,
1563  u1_14=u1_13*d13+u0_13,u1_15=u1_14*d14+u0_14,
1564  u1_16=u1_15*d15+u0_15,u1_17=u1_16*d16+u0_16,
1565  u1_18=u1_17*d17+u0_17,u1_19=u1_18*d18+u0_18,
1566  u1_20=u1_19*d19+u0_19,u1_21=u1_20*d20+u0_20;
1567  const double v1_19=d20* 1+v0_20,v1_18=d19*v1_19+v0_19,
1568  v1_17=d18*v1_18+v0_18,v1_16=d17*v1_17+v0_17,
1569  v1_15=d16*v1_16+v0_16,v1_14=d15*v1_15+v0_15,
1570  v1_13=d14*v1_14+v0_14,v1_12=d13*v1_13+v0_13,
1571  v1_11=d12*v1_12+v0_12,v1_10=d11*v1_11+v0_11,
1572  v1_09=d10*v1_10+v0_10,v1_08=d09*v1_09+v0_09,
1573  v1_07=d08*v1_08+v0_08,v1_06=d07*v1_07+v0_07,
1574  v1_05=d06*v1_06+v0_06,v1_04=d05*v1_05+v0_05,
1575  v1_03=d04*v1_04+v0_04,v1_02=d03*v1_03+v0_03,
1576  v1_01=d02*v1_02+v0_02,v1_00=d01*v1_01+v0_01;
1577  p[22+ 0]=2*w[ 0]*( v1_00);
1578  p[22+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
1579  p[22+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
1580  p[22+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
1581  p[22+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
1582  p[22+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
1583  p[22+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
1584  p[22+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
1585  p[22+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
1586  p[22+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
1587  p[22+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
1588  p[22+11]=2*w[11]*(u1_11*v0_11+u0_11*v1_11);
1589  p[22+12]=2*w[12]*(u1_12*v0_12+u0_12*v1_12);
1590  p[22+13]=2*w[13]*(u1_13*v0_13+u0_13*v1_13);
1591  p[22+14]=2*w[14]*(u1_14*v0_14+u0_14*v1_14);
1592  p[22+15]=2*w[15]*(u1_15*v0_15+u0_15*v1_15);
1593  p[22+16]=2*w[16]*(u1_16*v0_16+u0_16*v1_16);
1594  p[22+17]=2*w[17]*(u1_17*v0_17+u0_17*v1_17);
1595  p[22+18]=2*w[18]*(u1_18*v0_18+u0_18*v1_18);
1596  p[22+19]=2*w[19]*(u1_19*v0_19+u0_19*v1_19);
1597  p[22+20]=2*w[20]*(u1_20*v0_20+u0_20* 1);
1598  p[22+21]=2*w[21]*(u1_21 );
1599  if(d>1) {
1600  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
1601  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
1602  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
1603  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
1604  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11,
1605  u2_13=u2_12*d12+2*u1_12,u2_14=u2_13*d13+2*u1_13,
1606  u2_15=u2_14*d14+2*u1_14,u2_16=u2_15*d15+2*u1_15,
1607  u2_17=u2_16*d16+2*u1_16,u2_18=u2_17*d17+2*u1_17,
1608  u2_19=u2_18*d18+2*u1_18,u2_20=u2_19*d19+2*u1_19,
1609  u2_21=u2_20*d20+2*u1_20;
1610  const double v2_18=d19* 2+2*v1_19,v2_17=d18*v2_18+2*v1_18,
1611  v2_16=d17*v2_17+2*v1_17,v2_15=d16*v2_16+2*v1_16,
1612  v2_14=d15*v2_15+2*v1_15,v2_13=d14*v2_14+2*v1_14,
1613  v2_12=d13*v2_13+2*v1_13,v2_11=d12*v2_12+2*v1_12,
1614  v2_10=d11*v2_11+2*v1_11,v2_09=d10*v2_10+2*v1_10,
1615  v2_08=d09*v2_09+2*v1_09,v2_07=d08*v2_08+2*v1_08,
1616  v2_06=d07*v2_07+2*v1_07,v2_05=d06*v2_06+2*v1_06,
1617  v2_04=d05*v2_05+2*v1_05,v2_03=d04*v2_04+2*v1_04,
1618  v2_02=d03*v2_03+2*v1_03,v2_01=d02*v2_02+2*v1_02,
1619  v2_00=d01*v2_01+2*v1_01;
1620  p[2*22+ 0]=4*w[ 0]*( + 1*v2_00);
1621  p[2*22+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
1622  p[2*22+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
1623  p[2*22+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
1624  p[2*22+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
1625  p[2*22+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
1626  p[2*22+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
1627  p[2*22+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
1628  p[2*22+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
1629  p[2*22+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
1630  p[2*22+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10*v2_10);
1631  p[2*22+11]=4*w[11]*(u2_11*v0_11+2*u1_11*v1_11+u0_11*v2_11);
1632  p[2*22+12]=4*w[12]*(u2_12*v0_12+2*u1_12*v1_12+u0_12*v2_12);
1633  p[2*22+13]=4*w[13]*(u2_13*v0_13+2*u1_13*v1_13+u0_13*v2_13);
1634  p[2*22+14]=4*w[14]*(u2_14*v0_14+2*u1_14*v1_14+u0_14*v2_14);
1635  p[2*22+15]=4*w[15]*(u2_15*v0_15+2*u1_15*v1_15+u0_15*v2_15);
1636  p[2*22+16]=4*w[16]*(u2_16*v0_16+2*u1_16*v1_16+u0_16*v2_16);
1637  p[2*22+17]=4*w[17]*(u2_17*v0_17+2*u1_17*v1_17+u0_17*v2_17);
1638  p[2*22+18]=4*w[18]*(u2_18*v0_18+2*u1_18*v1_18+u0_18*v2_18);
1639  p[2*22+19]=4*w[19]*(u2_19*v0_19+2*u1_19*v1_19+u0_19* 2);
1640  p[2*22+20]=4*w[20]*(u2_20*v0_20+2*u1_20* 1 );
1641  p[2*22+21]=4*w[21]*(u2_21* 1 );
1642  }
1643  }
1644 }
1645 
1646 static const double gllz_23[10] = {
1647  0.98552715587873257808146276673809909902061079213965,
1648  0.9517579557107102041356396798514291558483519254488,
1649  0.89945855804034501095016032034736715791179834813929,
1650  0.82965109665128588622320061929000488459851188301333,
1651  0.74369504117206068394516354306699679128721922895386,
1652  0.6432636444601362084761455336027687438913118818023,
1653  0.53031177113684416813011532015229981113034651492734,
1654  0.40703793791447482919595048821509563955195372399417,
1655  0.27584154894579306710687763267913520417319110660942,
1656  0.13927620404066839859186261298276693390854445717444
1657 };
1658 
1659 static void gll_lag_23(double *restrict p, double *restrict w,
1660  unsigned n, int d, double xh)
1661 {
1662  const double x = xh*2;
1663  const double d00=x+2 ,d01=x+2*gllz_23[ 0],d02=x+2*gllz_23[ 1],
1664  d03=x+2*gllz_23[ 2],d04=x+2*gllz_23[ 3],d05=x+2*gllz_23[ 4],
1665  d06=x+2*gllz_23[ 5],d07=x+2*gllz_23[ 6],d08=x+2*gllz_23[ 7],
1666  d09=x+2*gllz_23[ 8],d10=x+2*gllz_23[ 9],d11=x ,
1667  d12=x-2*gllz_23[ 9],d13=x-2*gllz_23[ 8],d14=x-2*gllz_23[ 7],
1668  d15=x-2*gllz_23[ 6],d16=x-2*gllz_23[ 5],d17=x-2*gllz_23[ 4],
1669  d18=x-2*gllz_23[ 3],d19=x-2*gllz_23[ 2],d20=x-2*gllz_23[ 1],
1670  d21=x-2*gllz_23[ 0],d22=x-2 ;
1671  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
1672  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
1673  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
1674  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11,
1675  u0_13=u0_12*d12,u0_14=u0_13*d13,u0_15=u0_14*d14,
1676  u0_16=u0_15*d15,u0_17=u0_16*d16,u0_18=u0_17*d17,
1677  u0_19=u0_18*d18,u0_20=u0_19*d19,u0_21=u0_20*d20,
1678  u0_22=u0_21*d21;
1679  const double v0_21=d22* 1,v0_20=d21*v0_21,v0_19=d20*v0_20,
1680  v0_18=d19*v0_19,v0_17=d18*v0_18,v0_16=d17*v0_17,
1681  v0_15=d16*v0_16,v0_14=d15*v0_15,v0_13=d14*v0_14,
1682  v0_12=d13*v0_13,v0_11=d12*v0_12,v0_10=d11*v0_11,
1683  v0_09=d10*v0_10,v0_08=d09*v0_09,v0_07=d08*v0_08,
1684  v0_06=d07*v0_07,v0_05=d06*v0_06,v0_04=d05*v0_05,
1685  v0_03=d04*v0_04,v0_02=d03*v0_03,v0_01=d02*v0_02,
1686  v0_00=d01*v0_01;
1687  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
1688  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
1689  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
1690  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
1691  p[12]=w[12]*u0_12*v0_12; p[13]=w[13]*u0_13*v0_13; p[14]=w[14]*u0_14*v0_14;
1692  p[15]=w[15]*u0_15*v0_15; p[16]=w[16]*u0_16*v0_16; p[17]=w[17]*u0_17*v0_17;
1693  p[18]=w[18]*u0_18*v0_18; p[19]=w[19]*u0_19*v0_19; p[20]=w[20]*u0_20*v0_20;
1694  p[21]=w[21]*u0_21*v0_21; p[22]=w[22]*u0_22* 1;
1695  if(d>0) {
1696  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
1697  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
1698  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
1699  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
1700  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
1701  u1_12=u1_11*d11+u0_11,u1_13=u1_12*d12+u0_12,
1702  u1_14=u1_13*d13+u0_13,u1_15=u1_14*d14+u0_14,
1703  u1_16=u1_15*d15+u0_15,u1_17=u1_16*d16+u0_16,
1704  u1_18=u1_17*d17+u0_17,u1_19=u1_18*d18+u0_18,
1705  u1_20=u1_19*d19+u0_19,u1_21=u1_20*d20+u0_20,
1706  u1_22=u1_21*d21+u0_21;
1707  const double v1_20=d21* 1+v0_21,v1_19=d20*v1_20+v0_20,
1708  v1_18=d19*v1_19+v0_19,v1_17=d18*v1_18+v0_18,
1709  v1_16=d17*v1_17+v0_17,v1_15=d16*v1_16+v0_16,
1710  v1_14=d15*v1_15+v0_15,v1_13=d14*v1_14+v0_14,
1711  v1_12=d13*v1_13+v0_13,v1_11=d12*v1_12+v0_12,
1712  v1_10=d11*v1_11+v0_11,v1_09=d10*v1_10+v0_10,
1713  v1_08=d09*v1_09+v0_09,v1_07=d08*v1_08+v0_08,
1714  v1_06=d07*v1_07+v0_07,v1_05=d06*v1_06+v0_06,
1715  v1_04=d05*v1_05+v0_05,v1_03=d04*v1_04+v0_04,
1716  v1_02=d03*v1_03+v0_03,v1_01=d02*v1_02+v0_02,
1717  v1_00=d01*v1_01+v0_01;
1718  p[23+ 0]=2*w[ 0]*( v1_00);
1719  p[23+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
1720  p[23+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
1721  p[23+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
1722  p[23+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
1723  p[23+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
1724  p[23+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
1725  p[23+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
1726  p[23+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
1727  p[23+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
1728  p[23+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
1729  p[23+11]=2*w[11]*(u1_11*v0_11+u0_11*v1_11);
1730  p[23+12]=2*w[12]*(u1_12*v0_12+u0_12*v1_12);
1731  p[23+13]=2*w[13]*(u1_13*v0_13+u0_13*v1_13);
1732  p[23+14]=2*w[14]*(u1_14*v0_14+u0_14*v1_14);
1733  p[23+15]=2*w[15]*(u1_15*v0_15+u0_15*v1_15);
1734  p[23+16]=2*w[16]*(u1_16*v0_16+u0_16*v1_16);
1735  p[23+17]=2*w[17]*(u1_17*v0_17+u0_17*v1_17);
1736  p[23+18]=2*w[18]*(u1_18*v0_18+u0_18*v1_18);
1737  p[23+19]=2*w[19]*(u1_19*v0_19+u0_19*v1_19);
1738  p[23+20]=2*w[20]*(u1_20*v0_20+u0_20*v1_20);
1739  p[23+21]=2*w[21]*(u1_21*v0_21+u0_21* 1);
1740  p[23+22]=2*w[22]*(u1_22 );
1741  if(d>1) {
1742  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
1743  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
1744  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
1745  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
1746  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11,
1747  u2_13=u2_12*d12+2*u1_12,u2_14=u2_13*d13+2*u1_13,
1748  u2_15=u2_14*d14+2*u1_14,u2_16=u2_15*d15+2*u1_15,
1749  u2_17=u2_16*d16+2*u1_16,u2_18=u2_17*d17+2*u1_17,
1750  u2_19=u2_18*d18+2*u1_18,u2_20=u2_19*d19+2*u1_19,
1751  u2_21=u2_20*d20+2*u1_20,u2_22=u2_21*d21+2*u1_21;
1752  const double v2_19=d20* 2+2*v1_20,v2_18=d19*v2_19+2*v1_19,
1753  v2_17=d18*v2_18+2*v1_18,v2_16=d17*v2_17+2*v1_17,
1754  v2_15=d16*v2_16+2*v1_16,v2_14=d15*v2_15+2*v1_15,
1755  v2_13=d14*v2_14+2*v1_14,v2_12=d13*v2_13+2*v1_13,
1756  v2_11=d12*v2_12+2*v1_12,v2_10=d11*v2_11+2*v1_11,
1757  v2_09=d10*v2_10+2*v1_10,v2_08=d09*v2_09+2*v1_09,
1758  v2_07=d08*v2_08+2*v1_08,v2_06=d07*v2_07+2*v1_07,
1759  v2_05=d06*v2_06+2*v1_06,v2_04=d05*v2_05+2*v1_05,
1760  v2_03=d04*v2_04+2*v1_04,v2_02=d03*v2_03+2*v1_03,
1761  v2_01=d02*v2_02+2*v1_02,v2_00=d01*v2_01+2*v1_01;
1762  p[2*23+ 0]=4*w[ 0]*( + 1*v2_00);
1763  p[2*23+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
1764  p[2*23+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
1765  p[2*23+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
1766  p[2*23+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
1767  p[2*23+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
1768  p[2*23+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
1769  p[2*23+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
1770  p[2*23+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
1771  p[2*23+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
1772  p[2*23+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10*v2_10);
1773  p[2*23+11]=4*w[11]*(u2_11*v0_11+2*u1_11*v1_11+u0_11*v2_11);
1774  p[2*23+12]=4*w[12]*(u2_12*v0_12+2*u1_12*v1_12+u0_12*v2_12);
1775  p[2*23+13]=4*w[13]*(u2_13*v0_13+2*u1_13*v1_13+u0_13*v2_13);
1776  p[2*23+14]=4*w[14]*(u2_14*v0_14+2*u1_14*v1_14+u0_14*v2_14);
1777  p[2*23+15]=4*w[15]*(u2_15*v0_15+2*u1_15*v1_15+u0_15*v2_15);
1778  p[2*23+16]=4*w[16]*(u2_16*v0_16+2*u1_16*v1_16+u0_16*v2_16);
1779  p[2*23+17]=4*w[17]*(u2_17*v0_17+2*u1_17*v1_17+u0_17*v2_17);
1780  p[2*23+18]=4*w[18]*(u2_18*v0_18+2*u1_18*v1_18+u0_18*v2_18);
1781  p[2*23+19]=4*w[19]*(u2_19*v0_19+2*u1_19*v1_19+u0_19*v2_19);
1782  p[2*23+20]=4*w[20]*(u2_20*v0_20+2*u1_20*v1_20+u0_20* 2);
1783  p[2*23+21]=4*w[21]*(u2_21*v0_21+2*u1_21* 1 );
1784  p[2*23+22]=4*w[22]*(u2_22* 1 );
1785  }
1786  }
1787 }
1788 
1789 static const double gllz_24[11] = {
1790  0.9867305535051608835530867381544749753719197924133,
1791  0.95574822092988635802697713055064483107073304295574,
1792  0.90770567511350652199515299646620774920842011387828,
1793  0.84346407015487204062330503742334228584107610081033,
1794  0.7641704824204933077873752809522936513210604492369,
1795  0.67124010526412869983566485818700675657402328894643,
1796  0.56633135797929531218940954454228377043889499712648,
1797  0.45131637321432261824821849156962244882308821831249,
1798  0.3282476133755109120333891793596093437011778687727,
1799  0.19932125339083266723657253912499073081187559142148,
1800  0.066837993737228578113641808391677309796223208917628
1801 };
1802 
1803 static void gll_lag_24(double *restrict p, double *restrict w,
1804  unsigned n, int d, double xh)
1805 {
1806  const double x = xh*2;
1807  const double d00=x+2 ,d01=x+2*gllz_24[ 0],d02=x+2*gllz_24[ 1],
1808  d03=x+2*gllz_24[ 2],d04=x+2*gllz_24[ 3],d05=x+2*gllz_24[ 4],
1809  d06=x+2*gllz_24[ 5],d07=x+2*gllz_24[ 6],d08=x+2*gllz_24[ 7],
1810  d09=x+2*gllz_24[ 8],d10=x+2*gllz_24[ 9],d11=x+2*gllz_24[10],
1811  d12=x-2*gllz_24[10],d13=x-2*gllz_24[ 9],d14=x-2*gllz_24[ 8],
1812  d15=x-2*gllz_24[ 7],d16=x-2*gllz_24[ 6],d17=x-2*gllz_24[ 5],
1813  d18=x-2*gllz_24[ 4],d19=x-2*gllz_24[ 3],d20=x-2*gllz_24[ 2],
1814  d21=x-2*gllz_24[ 1],d22=x-2*gllz_24[ 0],d23=x-2 ;
1815  const double u0_01= 1*d00,u0_02=u0_01*d01,u0_03=u0_02*d02,
1816  u0_04=u0_03*d03,u0_05=u0_04*d04,u0_06=u0_05*d05,
1817  u0_07=u0_06*d06,u0_08=u0_07*d07,u0_09=u0_08*d08,
1818  u0_10=u0_09*d09,u0_11=u0_10*d10,u0_12=u0_11*d11,
1819  u0_13=u0_12*d12,u0_14=u0_13*d13,u0_15=u0_14*d14,
1820  u0_16=u0_15*d15,u0_17=u0_16*d16,u0_18=u0_17*d17,
1821  u0_19=u0_18*d18,u0_20=u0_19*d19,u0_21=u0_20*d20,
1822  u0_22=u0_21*d21,u0_23=u0_22*d22;
1823  const double v0_22=d23* 1,v0_21=d22*v0_22,v0_20=d21*v0_21,
1824  v0_19=d20*v0_20,v0_18=d19*v0_19,v0_17=d18*v0_18,
1825  v0_16=d17*v0_17,v0_15=d16*v0_16,v0_14=d15*v0_15,
1826  v0_13=d14*v0_14,v0_12=d13*v0_13,v0_11=d12*v0_12,
1827  v0_10=d11*v0_11,v0_09=d10*v0_10,v0_08=d09*v0_09,
1828  v0_07=d08*v0_08,v0_06=d07*v0_07,v0_05=d06*v0_06,
1829  v0_04=d05*v0_05,v0_03=d04*v0_04,v0_02=d03*v0_03,
1830  v0_01=d02*v0_02,v0_00=d01*v0_01;
1831  p[ 0]=w[ 0]* 1*v0_00; p[ 1]=w[ 1]*u0_01*v0_01; p[ 2]=w[ 2]*u0_02*v0_02;
1832  p[ 3]=w[ 3]*u0_03*v0_03; p[ 4]=w[ 4]*u0_04*v0_04; p[ 5]=w[ 5]*u0_05*v0_05;
1833  p[ 6]=w[ 6]*u0_06*v0_06; p[ 7]=w[ 7]*u0_07*v0_07; p[ 8]=w[ 8]*u0_08*v0_08;
1834  p[ 9]=w[ 9]*u0_09*v0_09; p[10]=w[10]*u0_10*v0_10; p[11]=w[11]*u0_11*v0_11;
1835  p[12]=w[12]*u0_12*v0_12; p[13]=w[13]*u0_13*v0_13; p[14]=w[14]*u0_14*v0_14;
1836  p[15]=w[15]*u0_15*v0_15; p[16]=w[16]*u0_16*v0_16; p[17]=w[17]*u0_17*v0_17;
1837  p[18]=w[18]*u0_18*v0_18; p[19]=w[19]*u0_19*v0_19; p[20]=w[20]*u0_20*v0_20;
1838  p[21]=w[21]*u0_21*v0_21; p[22]=w[22]*u0_22*v0_22; p[23]=w[23]*u0_23* 1;
1839  if(d>0) {
1840  const double u1_02= 1*d01+u0_01,u1_03=u1_02*d02+u0_02,
1841  u1_04=u1_03*d03+u0_03,u1_05=u1_04*d04+u0_04,
1842  u1_06=u1_05*d05+u0_05,u1_07=u1_06*d06+u0_06,
1843  u1_08=u1_07*d07+u0_07,u1_09=u1_08*d08+u0_08,
1844  u1_10=u1_09*d09+u0_09,u1_11=u1_10*d10+u0_10,
1845  u1_12=u1_11*d11+u0_11,u1_13=u1_12*d12+u0_12,
1846  u1_14=u1_13*d13+u0_13,u1_15=u1_14*d14+u0_14,
1847  u1_16=u1_15*d15+u0_15,u1_17=u1_16*d16+u0_16,
1848  u1_18=u1_17*d17+u0_17,u1_19=u1_18*d18+u0_18,
1849  u1_20=u1_19*d19+u0_19,u1_21=u1_20*d20+u0_20,
1850  u1_22=u1_21*d21+u0_21,u1_23=u1_22*d22+u0_22;
1851  const double v1_21=d22* 1+v0_22,v1_20=d21*v1_21+v0_21,
1852  v1_19=d20*v1_20+v0_20,v1_18=d19*v1_19+v0_19,
1853  v1_17=d18*v1_18+v0_18,v1_16=d17*v1_17+v0_17,
1854  v1_15=d16*v1_16+v0_16,v1_14=d15*v1_15+v0_15,
1855  v1_13=d14*v1_14+v0_14,v1_12=d13*v1_13+v0_13,
1856  v1_11=d12*v1_12+v0_12,v1_10=d11*v1_11+v0_11,
1857  v1_09=d10*v1_10+v0_10,v1_08=d09*v1_09+v0_09,
1858  v1_07=d08*v1_08+v0_08,v1_06=d07*v1_07+v0_07,
1859  v1_05=d06*v1_06+v0_06,v1_04=d05*v1_05+v0_05,
1860  v1_03=d04*v1_04+v0_04,v1_02=d03*v1_03+v0_03,
1861  v1_01=d02*v1_02+v0_02,v1_00=d01*v1_01+v0_01;
1862  p[24+ 0]=2*w[ 0]*( v1_00);
1863  p[24+ 1]=2*w[ 1]*( 1*v0_01+u0_01*v1_01);
1864  p[24+ 2]=2*w[ 2]*(u1_02*v0_02+u0_02*v1_02);
1865  p[24+ 3]=2*w[ 3]*(u1_03*v0_03+u0_03*v1_03);
1866  p[24+ 4]=2*w[ 4]*(u1_04*v0_04+u0_04*v1_04);
1867  p[24+ 5]=2*w[ 5]*(u1_05*v0_05+u0_05*v1_05);
1868  p[24+ 6]=2*w[ 6]*(u1_06*v0_06+u0_06*v1_06);
1869  p[24+ 7]=2*w[ 7]*(u1_07*v0_07+u0_07*v1_07);
1870  p[24+ 8]=2*w[ 8]*(u1_08*v0_08+u0_08*v1_08);
1871  p[24+ 9]=2*w[ 9]*(u1_09*v0_09+u0_09*v1_09);
1872  p[24+10]=2*w[10]*(u1_10*v0_10+u0_10*v1_10);
1873  p[24+11]=2*w[11]*(u1_11*v0_11+u0_11*v1_11);
1874  p[24+12]=2*w[12]*(u1_12*v0_12+u0_12*v1_12);
1875  p[24+13]=2*w[13]*(u1_13*v0_13+u0_13*v1_13);
1876  p[24+14]=2*w[14]*(u1_14*v0_14+u0_14*v1_14);
1877  p[24+15]=2*w[15]*(u1_15*v0_15+u0_15*v1_15);
1878  p[24+16]=2*w[16]*(u1_16*v0_16+u0_16*v1_16);
1879  p[24+17]=2*w[17]*(u1_17*v0_17+u0_17*v1_17);
1880  p[24+18]=2*w[18]*(u1_18*v0_18+u0_18*v1_18);
1881  p[24+19]=2*w[19]*(u1_19*v0_19+u0_19*v1_19);
1882  p[24+20]=2*w[20]*(u1_20*v0_20+u0_20*v1_20);
1883  p[24+21]=2*w[21]*(u1_21*v0_21+u0_21*v1_21);
1884  p[24+22]=2*w[22]*(u1_22*v0_22+u0_22* 1);
1885  p[24+23]=2*w[23]*(u1_23 );
1886  if(d>1) {
1887  const double u2_03= 2*d02+2*u1_02,u2_04=u2_03*d03+2*u1_03,
1888  u2_05=u2_04*d04+2*u1_04,u2_06=u2_05*d05+2*u1_05,
1889  u2_07=u2_06*d06+2*u1_06,u2_08=u2_07*d07+2*u1_07,
1890  u2_09=u2_08*d08+2*u1_08,u2_10=u2_09*d09+2*u1_09,
1891  u2_11=u2_10*d10+2*u1_10,u2_12=u2_11*d11+2*u1_11,
1892  u2_13=u2_12*d12+2*u1_12,u2_14=u2_13*d13+2*u1_13,
1893  u2_15=u2_14*d14+2*u1_14,u2_16=u2_15*d15+2*u1_15,
1894  u2_17=u2_16*d16+2*u1_16,u2_18=u2_17*d17+2*u1_17,
1895  u2_19=u2_18*d18+2*u1_18,u2_20=u2_19*d19+2*u1_19,
1896  u2_21=u2_20*d20+2*u1_20,u2_22=u2_21*d21+2*u1_21,
1897  u2_23=u2_22*d22+2*u1_22;
1898  const double v2_20=d21* 2+2*v1_21,v2_19=d20*v2_20+2*v1_20,
1899  v2_18=d19*v2_19+2*v1_19,v2_17=d18*v2_18+2*v1_18,
1900  v2_16=d17*v2_17+2*v1_17,v2_15=d16*v2_16+2*v1_16,
1901  v2_14=d15*v2_15+2*v1_15,v2_13=d14*v2_14+2*v1_14,
1902  v2_12=d13*v2_13+2*v1_13,v2_11=d12*v2_12+2*v1_12,
1903  v2_10=d11*v2_11+2*v1_11,v2_09=d10*v2_10+2*v1_10,
1904  v2_08=d09*v2_09+2*v1_09,v2_07=d08*v2_08+2*v1_08,
1905  v2_06=d07*v2_07+2*v1_07,v2_05=d06*v2_06+2*v1_06,
1906  v2_04=d05*v2_05+2*v1_05,v2_03=d04*v2_04+2*v1_04,
1907  v2_02=d03*v2_03+2*v1_03,v2_01=d02*v2_02+2*v1_02,
1908  v2_00=d01*v2_01+2*v1_01;
1909  p[2*24+ 0]=4*w[ 0]*( + 1*v2_00);
1910  p[2*24+ 1]=4*w[ 1]*( +2* 1*v1_01+u0_01*v2_01);
1911  p[2*24+ 2]=4*w[ 2]*( 2*v0_02+2*u1_02*v1_02+u0_02*v2_02);
1912  p[2*24+ 3]=4*w[ 3]*(u2_03*v0_03+2*u1_03*v1_03+u0_03*v2_03);
1913  p[2*24+ 4]=4*w[ 4]*(u2_04*v0_04+2*u1_04*v1_04+u0_04*v2_04);
1914  p[2*24+ 5]=4*w[ 5]*(u2_05*v0_05+2*u1_05*v1_05+u0_05*v2_05);
1915  p[2*24+ 6]=4*w[ 6]*(u2_06*v0_06+2*u1_06*v1_06+u0_06*v2_06);
1916  p[2*24+ 7]=4*w[ 7]*(u2_07*v0_07+2*u1_07*v1_07+u0_07*v2_07);
1917  p[2*24+ 8]=4*w[ 8]*(u2_08*v0_08+2*u1_08*v1_08+u0_08*v2_08);
1918  p[2*24+ 9]=4*w[ 9]*(u2_09*v0_09+2*u1_09*v1_09+u0_09*v2_09);
1919  p[2*24+10]=4*w[10]*(u2_10*v0_10+2*u1_10*v1_10+u0_10*v2_10);
1920  p[2*24+11]=4*w[11]*(u2_11*v0_11+2*u1_11*v1_11+u0_11*v2_11);
1921  p[2*24+12]=4*w[12]*(u2_12*v0_12+2*u1_12*v1_12+u0_12*v2_12);
1922  p[2*24+13]=4*w[13]*(u2_13*v0_13+2*u1_13*v1_13+u0_13*v2_13);
1923  p[2*24+14]=4*w[14]*(u2_14*v0_14+2*u1_14*v1_14+u0_14*v2_14);
1924  p[2*24+15]=4*w[15]*(u2_15*v0_15+2*u1_15*v1_15+u0_15*v2_15);
1925  p[2*24+16]=4*w[16]*(u2_16*v0_16+2*u1_16*v1_16+u0_16*v2_16);
1926  p[2*24+17]=4*w[17]*(u2_17*v0_17+2*u1_17*v1_17+u0_17*v2_17);
1927  p[2*24+18]=4*w[18]*(u2_18*v0_18+2*u1_18*v1_18+u0_18*v2_18);
1928  p[2*24+19]=4*w[19]*(u2_19*v0_19+2*u1_19*v1_19+u0_19*v2_19);
1929  p[2*24+20]=4*w[20]*(u2_20*v0_20+2*u1_20*v1_20+u0_20*v2_20);
1930  p[2*24+21]=4*w[21]*(u2_21*v0_21+2*u1_21*v1_21+u0_21* 2);
1931  p[2*24+22]=4*w[22]*(u2_22*v0_22+2*u1_22* 1 );
1932  p[2*24+23]=4*w[23]*(u2_23* 1 );
1933  }
1934  }
1935 }
1936 
1937 static const double *const gllz_table[21] = {
1941 };
1942 
1943 static lagrange_fun *const gll_lag_table[23] = {
1948 };
1949 
static const double gllz_12[5]
Definition: poly_imp.h:463
static void gll_lag_07(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:163
static const double gllz_05[1]
Definition: poly_imp.h:77
static void gll_lag_18(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:1032
static const double gllz_19[8]
Definition: poly_imp.h:1134
static const double gllz_24[11]
Definition: poly_imp.h:1789
static void gll_lag_24(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:1803
void lagrange_fun(double *restrict p, double *restrict data, unsigned n, int d, double x)
Definition: poly.c:20
static const double gllz_14[6]
Definition: poly_imp.h:625
static void gll_lag_22(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:1522
static void gll_lag_20(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:1265
static void gll_lag_23(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:1659
n
Definition: xxt_test.m:73
static const double gllz_18[8]
Definition: poly_imp.h:1021
static void gll_lag_11(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:397
static void gll_lag_19(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:1145
static void gll_lag_09(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:269
#define x
static void gll_lag_05(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:81
static const double *const gllz_table[21]
Definition: poly_imp.h:1937
static void gll_lag_17(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:923
static void gll_lag_10(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:330
static const double gllz_16[7]
Definition: poly_imp.h:811
static void gll_lag_14(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:634
static const double gllz_07[2]
Definition: poly_imp.h:158
p
Definition: xxt_test2.m:1
static void gll_lag_02(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:5
static void gll_lag_15(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:725
static void gll_lag_08(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:213
static lagrange_fun *const gll_lag_table[23]
Definition: poly_imp.h:1943
static const double gllz_06[2]
Definition: poly_imp.h:115
static void gll_lag_21(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:1391
static const double gllz_20[9]
Definition: poly_imp.h:1253
static const double gllz_22[10]
Definition: poly_imp.h:1509
#define restrict
Definition: c99.h:11
static const double gllz_04[1]
Definition: poly_imp.h:45
static const double gllz_13[5]
Definition: poly_imp.h:541
static void gll_lag_06(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:120
static const double gllz_15[6]
Definition: poly_imp.h:716
static const double gllz_11[4]
Definition: poly_imp.h:390
static void gll_lag_16(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:821
static const double gllz_21[9]
Definition: poly_imp.h:1379
static const double gllz_08[3]
Definition: poly_imp.h:207
static const double gllz_09[3]
Definition: poly_imp.h:263
static void gll_lag_04(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:49
static const double gllz_17[7]
Definition: poly_imp.h:913
static void gll_lag_03(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:23
static void gll_lag_13(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:549
static void gll_lag_12(double *restrict p, double *restrict w, unsigned n, int d, double xh)
Definition: poly_imp.h:471
static const double gllz_23[10]
Definition: poly_imp.h:1646
static const double gllz_10[4]
Definition: poly_imp.h:323