Main Page   File List   File Members  

polylib.h

Go to the documentation of this file.
00001 /*
00002  *  LIBRARY ROUTINES FOR POLYNOMIAL CALCULUS AND INTERPOLATION
00003  */
00004 
00005 #ifndef PLYLIB_H  
00006 #define PLYLIB_H
00007 
00008 #ifdef __cplusplus
00009 namespace polylib {
00010 #endif
00011 
00012 /*-----------------------------------------------------------------------
00013                          M A I N     R O U T I N E S
00014   -----------------------------------------------------------------------*/
00015 
00016 /* Points and weights */
00017 
00018 void   zwgj    (double *, double *, int , double , double);
00019 void   zwgrjm  (double *, double *, int , double , double);
00020 void   zwgrjp  (double *, double *, int , double , double);
00021 void   zwglj   (double *, double *, int , double , double);
00022 
00023 /* Derivative operators */
00024 
00025 void   Dgj     (double *, double *, double *, int, double, double);
00026 void   Dgrjm   (double *, double *, double *, int, double, double);
00027 void   Dgrjp   (double *, double *, double *, int, double, double);
00028 void   Dglj    (double *, double *, double *, int, double, double);
00029 
00030 /* Lagrangian interpolants */
00031 
00032 double hgj     (int, double, double *, int, double, double);
00033 double hgrjm   (int, double, double *, int, double, double);
00034 double hgrjp   (int, double, double *, int, double, double);
00035 double hglj    (int, double, double *, int, double, double);
00036 
00037 /* Interpolation operators */
00038 
00039 void  Imgj  (double*, double*, double*, int, int, double, double);
00040 void  Imgrjm(double*, double*, double*, int, int, double, double);
00041 void  Imgrjp(double*, double*, double*, int, int, double, double);
00042 void  Imglj (double*, double*, double*, int, int, double, double);
00043 
00044 /* Polynomial functions */
00045 void jacobfd (int, double *, double *, double *, int , double, double);
00046 void jacobd  (int, double *, double *,  int , double, double);
00047 
00048 /*-----------------------------------------------------------------------
00049                          M A C R O S
00050   -----------------------------------------------------------------------*/
00051 
00052 /* Points and weights */
00053 
00054 #define  zwgl(  z,w,np)   zwgj  (z,w,np,0.0,0.0);
00055 #define  zwgrlm(z,w,np)   zwgrjm(z,w,np,0.0,0.0);
00056 #define  zwgrlp(z,w,np)   zwgrjp(z,w,np,0.0,0.0);
00057 #define  zwgll( z,w,np)   zwglj (z,w,np,0.0,0.0);
00058 
00059 #define  zwgc(  z,w,np)   zwgj  (z,w,np,-0.5,-0.5);
00060 #define  zwgrcm(z,w,np)   zwgrjm(z,w,np,-0.5,-0.5);
00061 #define  zwgrcp(z,w,np)   zwgrjp(z,w,np,-0.5,-0.5);
00062 #define  zwglc( z,w,np)   zwglj (z,w,np,-0.5,-0.5);
00063 
00064 /* Derivative operators */
00065 
00066 #define Dgl(  d,dt,z,np)  Dgj  (*d,*dt,z,np,0.0,0.0);
00067 #define Dgrlm(d,dt,z,np)  Dgrjm(*d,*dt,z,np,0.0,0.0);
00068 #define Dgrlp(d,dt,z,np)  Dgrjp(*d,*dt,z,np,0.0,0.0);
00069 #define Dgll( d,dt,z,np)  Dglj (*d,*dt,z,np,0.0,0.0);
00070 
00071 #define Dgc(  d,dt,z,np)  Dgj  (*d,*dt,z,np,-0.5,-0.5);
00072 #define Dgrcm(d,dt,z,np)  Dgrjm(*d,*dt,z,np,-0.5,-0.5);
00073 #define Dgrcp(d,dt,z,np)  Dgrjp(*d,*dt,z,np,-0.5,-0.5);
00074 #define Dglc( d,dt,z,np)  Dglj (*d,*dt,z,np,-0.5,-0.5);
00075 
00076 /* Lagrangian interpolants */
00077 
00078 #define hgl(   i,z,zgj ,np) hgj ( i,z,zgj ,np,0.0,0.0);
00079 #define hgrlm(i,z,zgrj,np)  hgrjm(i,z,zgrj,np,0.0,0.0);
00080 #define hgrlp(i,z,zgrj,np)  hgrjp(i,z,zgrj,np,0.0,0.0);
00081 #define hgll( i,z,zglj,np)  hglj (i,z,zglj,np,0.0,0.0);
00082 
00083 #define hgc( i,z,zgj ,np)  hgj(  i,z,zgj ,np,-0.5,-0.5);
00084 #define hgrc(i,z,zgrj,np)  hgrjm(i,z,zgrj,np,-0.5,-0.5);
00085 #define hglc(i,z,zglj,np)  hglj( i,z,zglj,np,-0.5,-0.5);
00086 
00087 /* Interpolation operators */
00088 
00089 #define Imgl(  im,zgl ,zm,nz,mz) Imgj  (im,zgl ,zm,nz,mz,0.0,0.0)
00090 #define Imgrlm(im,zgrl,zm,nz,mz) Imgrjm(im,zgrl,zm,nz,mz,0.0,0.0)
00091 #define Imgrlp(im,zgrl,zm,nz,mz) Imgrjp(im,zgrl,zm,nz,mz,0.0,0.0)
00092 #define Imgll( im,zgll,zm,nz,mz) Imglj (im,zgll,zm,nz,mz,0.0,0.0)
00093 
00094 #define Imgc(  im,zgl ,zm,nz,mz) Imgj  (im,zgl ,zm,nz,mz,-0.5,-0.5)
00095 #define Imgrcm(im,zgrl,zm,nz,mz) Imgrjm(im,zgrl,zm,nz,mz,-0.5,-0.5)
00096 #define Imgrcp(im,zgrl,zm,nz,mz) Imgrjp(im,zgrl,zm,nz,mz,-0.5,-0.5)
00097 #define Imglc( im,zgll,zm,nz,mz) Imglj (im,zgll,zm,nz,mz,-0.5,-0.5)
00098 
00099 
00100 /* Macro for previous compatibility with Nektar */
00101 #define zwgrj(z,w,np,alpha,beta)      zwgrjm (z,w,np,alpha,beta)
00102 #define zwgrl(z,w,np)                 zwgrjm (z,w,np,0.0,0.0);
00103 #define hgrj(i,z,zgrj,np,alpha,beta)  hgrjm  (i,z,zgrj,np,alpha,beta) 
00104 #define hgrl(i,z,zgrj,np)             hgrjm(i,z,zgrj,np,0.0,0.0);
00105 
00106 #define jacobf(np,z,p ,n,alpha,beta) jacobfd(np,z,p,NULL ,n,alpha,beta)
00107 
00108 #define igjm( im,zgl, zm,nz,mz,alpha,beta) Imgj  (*im,zgl ,zm,nz,mz,alpha,beta)
00109 #define igrjm(im,zgrl,zm,nz,mz,alpha,beta) Imgrjm(*im,zgrl,zm,nz,mz,alpha,beta)
00110 #define igljm(im,zgll,zm,nz,mz,alpha,beta) Imglj (*im,zgll,zm,nz,mz,alpha,beta)
00111 
00112 #define iglm( im,zgl ,zm,nz,mz)     Imgj  (*im,zgl ,zm,nz,mz,0.0,0.0)
00113 #define igrlm(im,zgrl,zm,nz,mz)     Imgrjm(*im,zgrl,zm,nz,mz,0.0,0.0)
00114 #define igllm(im,zgll,zm,nz,mz)     Imglj (*im,zgll,zm,nz,mz,0.0,0.0)
00115 
00116 #define dgj( d,dt,z,np,alpha,beta) Dgj  (*d,*dt,z,np,alpha,beta)    
00117 #define dgrj(d,dt,z,np,alpha,beta) Dgrjm(*d,*dt,z,np,alpha,beta)    
00118 #define dglj(d,dt,z,np,alpha,beta) Dglj (*d,*dt,z,np,alpha,beta)    
00119 
00120 #define dgll(d,dt,z,np)            Dglj (*d,*dt,z,np,0.0,0.0);
00121 #define dgrl(d,dt,z,np)            Dgrjm(*d,*dt,z,np,0.0,0.0);
00122 
00123 #ifdef __cplusplus
00124 } // end of namespace
00125 #endif
00126 
00127 #endif          /* END OF POLYLIB.H DECLARATIONS */
00128 
00129 
00130 
00131 
00132 
00133 
00134 
00135 
00136 

Generated on Sun Jul 13 22:18:36 2003 for Polylib by doxygen1.3