Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Classes | Macros | Typedefs | Functions
poly_test2.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <float.h>
#include "c99.h"
#include "types.h"
#include "name.h"
#include "fail.h"
#include "mem.h"
#include "poly.h"
#include "rdtsc.h"
+ Include dependency graph for poly_test2.c:

Go to the source code of this file.

Classes

struct  ref_lagrange_data
 

Macros

#define N   32
 
#define REPEAT   1000000
 
#define USE_HW_COUNTER   1
 
#define EPS   (128*DBL_EPSILON)
 
#define cosr   cos
 
#define fabsr   fabs
 
#define PI   3.1415926535897932384626433832795028841971693993751058209749445923
 
#define TIME(t, repeat, what)
 

Typedefs

typedef double real
 

Functions

static int not_same (double a, double b)
 
static real legendre (int n, real x)
 
static real legendre_d1 (int n, real x)
 
static real legendre_d2 (int n, real x)
 
static void ref_gauss_nodes (real *z, int n)
 
static void lobatto_nodes_aux (real *z, int n)
 
static void ref_lobatto_nodes (real *z, int n)
 
static void ref_gauss_weights (const real *z, real *w, int n)
 
static void ref_lobatto_weights (const real *z, real *w, int n)
 
static void ref_lagrange_0 (ref_lagrange_data *p, real x)
 
static void ref_lagrange_1 (ref_lagrange_data *p, real x)
 
static void ref_lagrange_2 (ref_lagrange_data *p, real x)
 
static void ref_lagrange_2u (ref_lagrange_data *p)
 
static void ref_lagrange_setup (ref_lagrange_data *p, const real *z, unsigned n)
 
void ref_lagrange_free (ref_lagrange_data *p)
 
int main ()
 

Macro Definition Documentation

#define cosr   cos

Definition at line 33 of file poly_test2.c.

Referenced by lobatto_nodes_aux(), and ref_gauss_nodes().

#define EPS   (128*DBL_EPSILON)

Definition at line 24 of file poly_test2.c.

Referenced by lobatto_nodes_aux(), not_same(), and ref_gauss_nodes().

#define fabsr   fabs

Definition at line 34 of file poly_test2.c.

Referenced by lobatto_nodes_aux(), and ref_gauss_nodes().

#define N   32

Definition at line 14 of file poly_test2.c.

Referenced by main().

#define PI   3.1415926535897932384626433832795028841971693993751058209749445923

Definition at line 35 of file poly_test2.c.

Referenced by lobatto_nodes_aux(), and ref_gauss_nodes().

#define REPEAT   1000000

Definition at line 15 of file poly_test2.c.

Referenced by main().

#define TIME (   t,
  repeat,
  what 
)
Value:
do { \
for(r=repeat;r;--r) { what; } \
tic = getticks(); \
for(r=repeat;r;--r) { what; } \
toc = getticks(); \
t = toc-tic; \
} while(0)

Referenced by main().

#define USE_HW_COUNTER   1

Definition at line 17 of file poly_test2.c.

Typedef Documentation

typedef double real

Definition at line 32 of file poly_test2.c.

Function Documentation

static real legendre ( int  n,
real  x 
)
static

Definition at line 38 of file poly_test2.c.

References i, n, p, and x.

Referenced by ref_gauss_nodes(), ref_gauss_weights(), and ref_lobatto_weights().

+ Here is the caller graph for this function:

static real legendre_d1 ( int  n,
real  x 
)
static

Definition at line 51 of file poly_test2.c.

References i, n, p, and x.

Referenced by lobatto_nodes_aux(), and ref_gauss_nodes().

+ Here is the caller graph for this function:

static real legendre_d2 ( int  n,
real  x 
)
static

Definition at line 64 of file poly_test2.c.

References i, n, p, and x.

Referenced by lobatto_nodes_aux().

+ Here is the caller graph for this function:

static void lobatto_nodes_aux ( real z,
int  n 
)
static

Definition at line 93 of file poly_test2.c.

References cosr, EPS, fabsr, i, legendre_d1(), legendre_d2(), n, np, PI, and x.

Referenced by ref_lobatto_nodes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int main ( )

Definition at line 229 of file poly_test2.c.

References ref_lagrange_data::D, ref_lagrange_data::D2, gauss_nodes, gauss_quad, gll_lag_setup, gll_lag_size, i, ref_lagrange_data::J, lagrange_setup, lagrange_size, lobatto_quad, N, n, not_same(), p, ref_gauss_nodes(), ref_gauss_weights(), ref_lagrange_0(), ref_lagrange_1(), ref_lagrange_2u(), ref_lagrange_free(), ref_lagrange_setup(), ref_lobatto_nodes(), ref_lobatto_weights(), REPEAT, TIME, tmalloc, uint, x, z, and zr.

+ Here is the call graph for this function:

static int not_same ( double  a,
double  b 
)
static

Definition at line 26 of file poly_test2.c.

References EPS.

Referenced by main().

+ Here is the caller graph for this function:

static void ref_gauss_nodes ( real z,
int  n 
)
static

Definition at line 77 of file poly_test2.c.

References cosr, EPS, fabsr, i, legendre(), legendre_d1(), n, PI, and x.

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ref_gauss_weights ( const real z,
real w,
int  n 
)
static

Definition at line 115 of file poly_test2.c.

References i, legendre(), and n.

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ref_lagrange_0 ( ref_lagrange_data p,
real  x 
)
static

Definition at line 144 of file poly_test2.c.

References ref_lagrange_data::d, i, ref_lagrange_data::J, n, ref_lagrange_data::n, ref_lagrange_data::u0, ref_lagrange_data::v0, ref_lagrange_data::w, and ref_lagrange_data::z.

Referenced by main().

+ Here is the caller graph for this function:

static void ref_lagrange_1 ( ref_lagrange_data p,
real  x 
)
static

Definition at line 153 of file poly_test2.c.

References ref_lagrange_data::D, ref_lagrange_data::d, i, ref_lagrange_data::J, n, ref_lagrange_data::n, ref_lagrange_data::u0, ref_lagrange_data::u1, ref_lagrange_data::v0, ref_lagrange_data::v1, ref_lagrange_data::w, and ref_lagrange_data::z.

Referenced by main().

+ Here is the caller graph for this function:

static void ref_lagrange_2 ( ref_lagrange_data p,
real  x 
)
static

Definition at line 168 of file poly_test2.c.

References ref_lagrange_data::D, ref_lagrange_data::d, ref_lagrange_data::D2, i, ref_lagrange_data::J, n, ref_lagrange_data::n, ref_lagrange_data::u0, ref_lagrange_data::u1, ref_lagrange_data::u2, ref_lagrange_data::v0, ref_lagrange_data::v1, ref_lagrange_data::v2, ref_lagrange_data::w, and ref_lagrange_data::z.

Referenced by ref_lagrange_setup().

+ Here is the caller graph for this function:

static void ref_lagrange_2u ( ref_lagrange_data p)
static

Definition at line 186 of file poly_test2.c.

References ref_lagrange_data::d, ref_lagrange_data::D2, i, n, ref_lagrange_data::n, ref_lagrange_data::u0, ref_lagrange_data::u1, ref_lagrange_data::u2, ref_lagrange_data::v0, ref_lagrange_data::v1, ref_lagrange_data::v2, and ref_lagrange_data::w.

Referenced by main().

+ Here is the caller graph for this function:

void ref_lagrange_free ( ref_lagrange_data p)

Definition at line 222 of file poly_test2.c.

References ref_lagrange_data::w.

Referenced by main().

+ Here is the caller graph for this function:

static void ref_lagrange_setup ( ref_lagrange_data p,
const real z,
unsigned  n 
)
static

Definition at line 197 of file poly_test2.c.

References ref_lagrange_data::D, ref_lagrange_data::d, ref_lagrange_data::D2, ref_lagrange_data::D2_z0, ref_lagrange_data::D2_zn, ref_lagrange_data::D_z0, ref_lagrange_data::D_zn, i, ref_lagrange_data::J, ref_lagrange_data::J_z0, ref_lagrange_data::J_zn, n, ref_lagrange_data::n, ref_lagrange_2(), tmalloc, ref_lagrange_data::u0, ref_lagrange_data::u1, ref_lagrange_data::u2, ref_lagrange_data::v0, ref_lagrange_data::v1, ref_lagrange_data::v2, ref_lagrange_data::w, z, and ref_lagrange_data::z.

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ref_lobatto_nodes ( real z,
int  n 
)
static

Definition at line 109 of file poly_test2.c.

References lobatto_nodes_aux().

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ref_lobatto_weights ( const real z,
real w,
int  n 
)
static

Definition at line 125 of file poly_test2.c.

References i, legendre(), and n.

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function: