119 double *z, *w, *
p, sum = 0, alpha,
beta, *d, *dt;
130 printf(
"Begin checking Gauss integration\n");
141 for (n = 2; n < 2 * np - 1; ++n)
144 sum =
ddot(np, w, 1,
p, 1);
146 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
148 alpha,
beta, np, n, sum);
154 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
157 printf(
"Finished checking Gauss Integration\n");
162 printf(
"Begin checking Gauss Radau Integration\n");
172 for (n = 2; n < 2 * np - 2; ++n)
175 sum =
ddot(np, w, 1,
p, 1);
177 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
179 alpha,
beta, np, n, sum);
185 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
188 printf(
"Finished checking Gauss Radau (z=-1) Integration\n");
193 printf(
"Begin checking Gauss Radau Integration\n");
203 for (n = 2; n < 2 * np - 2; ++n)
206 sum =
ddot(np, w, 1,
p, 1);
208 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
210 alpha,
beta, np, n, sum);
216 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
219 printf(
"Finished checking Gauss Radau (z=1) Integration\n");
222 #if GAUSS_LOBATTO_INT
224 printf(
"Begin checking Gauss Lobatto integration\n");
235 for (n = 2; n < 2 * np - 3; ++n)
238 sum =
ddot(np, w, 1,
p, 1);
240 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
242 alpha,
beta, np, n, sum);
248 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
251 printf(
"Finished checking Gauss Lobatto Integration\n");
255 printf(
"Begin checking differentiation through Gauss points\n");
266 for (n = 2; n < np - 1; ++n)
270 for (i = 0; i < np; ++i)
273 for (i = 0; i < np; ++i)
274 sum += fabs(
ddot(np, d + i * np, 1,
p, 1) -
275 n * pow(z[i], n - 1));
278 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
280 alpha,
beta, np, n, sum);
285 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
288 printf(
"Finished checking Gauss Jacobi differentiation\n");
291 #if GAUSS_RADAUM_DIFF
292 printf(
"Begin checking differentiation through Gauss Radau points\n");
303 for (n = 2; n < np - 1; ++n)
306 for (i = 0; i < np; ++i)
309 for (i = 0; i < np; ++i)
310 sum += fabs(
ddot(np, d + i * np, 1,
p, 1) -
311 n * pow(z[i], n - 1));
314 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
316 alpha,
beta, np, n, sum);
321 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
324 printf(
"Finished checking Gauss Radau (z=-1) differentiation\n");
327 #if GAUSS_RADAUP_DIFF
328 printf(
"Begin checking differentiation through Gauss Radau (z=1) points\n");
339 for (n = 2; n < np - 1; ++n)
342 for (i = 0; i < np; ++i)
345 for (i = 0; i < np; ++i)
346 sum += fabs(
ddot(np, d + i * np, 1,
p, 1) -
347 n * pow(z[i], n - 1));
350 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
352 alpha,
beta, np, n, sum);
357 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
360 printf(
"Finished checking Gauss Radau (z=1) differentiation\n");
363 #if GAUSS_LOBATTO_DIFF
364 printf(
"Begin checking differentiation through Gauss Lobatto points\n");
375 for (n = 2; n < np - 1; ++n)
378 for (i = 0; i < np; ++i)
381 for (i = 0; i < np; ++i)
382 sum += fabs(
ddot(np, d + i * np, 1,
p, 1) -
383 n * pow(z[i], n - 1));
386 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
388 alpha,
beta, np, n, sum);
393 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
396 printf(
"Finished checking Gauss Lobatto differentiation\n");
401 printf(
"Begin checking interpolation through Gauss points\n");
412 for (n = 2; n < np - 1; ++n)
414 for (i = 0; i < np; ++i)
416 w[i] = 2.0 * i / (double)(np - 1) - 1.0;
421 for (i = 0; i < np; ++i)
423 fabs(
ddot(np, d + i * np, 1,
p, 1) - pow(w[i], n));
426 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
428 alpha,
beta, np, n, sum);
433 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
436 printf(
"Finished checking Gauss Jacobi interpolation\n");
439 #if GAUSS_RADAUM_INTERP
440 printf(
"Begin checking Interpolation through Gauss Radau (z=-1) points\n");
451 for (n = 2; n < np - 1; ++n)
453 for (i = 0; i < np; ++i)
455 w[i] = 2.0 * i / (double)(np - 1) - 1.0;
460 for (i = 0; i < np; ++i)
462 fabs(
ddot(np, d + i * np, 1,
p, 1) - pow(w[i], n));
465 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
467 alpha,
beta, np, n, sum);
472 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
475 printf(
"Finished checking Gauss Radua Jacobi (z=-1) interpolation\n");
477 #if GAUSS_RADAUP_INTERP
478 printf(
"Begin checking Interpolation through Gauss Radau (z=1) points\n");
489 for (n = 2; n < np - 1; ++n)
491 for (i = 0; i < np; ++i)
493 w[i] = 2.0 * i / (double)(np - 1) - 1.0;
498 for (i = 0; i < np; ++i)
500 fabs(
ddot(np, d + i * np, 1,
p, 1) - pow(w[i], n));
503 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
505 alpha,
beta, np, n, sum);
510 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
513 printf(
"Finished checking Gauss Radau (z=1) interpolation\n");
516 #if GAUSS_LOBATTO_INTERP
517 printf(
"Begin checking Interpolation through Gauss Lobatto points\n");
528 for (n = 2; n < np - 1; ++n)
530 for (i = 0; i < np; ++i)
532 w[i] = 2.0 * i / (double)(np - 1) - 1.0;
537 for (i = 0; i < np; ++i)
539 fabs(
ddot(np, d + i * np, 1,
p, 1) - pow(w[i], n));
542 printf(
"alpha = %lf, beta = %lf, np = %d, n = %d "
544 alpha,
beta, np, n, sum);
549 printf(
"finished checking all beta values for alpha = %lf\n", alpha);
552 printf(
"Finished checking Gauss Lobatto interploation\n");
double * dvector(int, int)
int test_gamma_fraction()
double ddot(int, double *, int, double *, int)
@ beta
Gauss Radau pinned at x=-1,.
void Dgj(double *D, const double *z, const int np, const double alpha, const double beta)
Compute the Derivative Matrix and its transpose associated with the Gauss-Jacobi zeros.
void zwgrjm(double *z, double *w, const int np, const double alpha, const double beta)
Gauss-Radau-Jacobi zeros and weights with end point at z=-1.
void zwgrjp(double *z, double *w, const int np, const double alpha, const double beta)
Gauss-Radau-Jacobi zeros and weights with end point at z=1.
void Dglj(double *D, const double *z, const int np, const double alpha, const double beta)
Compute the Derivative Matrix associated with the Gauss-Lobatto-Jacobi zeros.
void Imgrjp(double *im, const double *zgrj, const double *zm, const int nz, const int mz, const double alpha, const double beta)
Interpolation Operator from Gauss-Radau-Jacobi points (including z=1) to an arbitrary distrubtion at ...
void zwglj(double *z, double *w, const int np, const double alpha, const double beta)
Gauss-Lobatto-Jacobi zeros and weights with end point at z=-1,1.
void zwgj(double *z, double *w, const int np, const double alpha, const double beta)
Gauss-Jacobi zeros and weights.
void Imgj(double *im, const double *zgj, const double *zm, const int nz, const int mz, const double alpha, const double beta)
Interpolation Operator from Gauss-Jacobi points to an arbitrary distribution at points zm.
void Imgrjm(double *im, const double *zgrj, const double *zm, const int nz, const int mz, const double alpha, const double beta)
Interpolation Operator from Gauss-Radau-Jacobi points (including z=-1) to an arbitrary distrubtion at...
void Dgrjm(double *D, const double *z, const int np, const double alpha, const double beta)
Compute the Derivative Matrix and its transpose associated with the Gauss-Radau-Jacobi zeros with a z...
void Dgrjp(double *D, const double *z, const int np, const double alpha, const double beta)
Compute the Derivative Matrix associated with the Gauss-Radau-Jacobi zeros with a zero at z=1.
void Imglj(double *im, const double *zglj, const double *zm, const int nz, const int mz, const double alpha, const double beta)
Interpolation Operator from Gauss-Lobatto-Jacobi points to an arbitrary distrubtion at points zm.
void jacobfd(const int np, const double *z, double *poly_in, double *polyd, const int n, const double alpha, const double beta)
Routine to calculate Jacobi polynomials, , and their first derivative, .