23char val_dern_1d_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Non_class_members/Operators/val_dern_1d.C,v 1.2 2014/10/13 08:53:27 j_novak Exp $" ;
40#include "type_parite.h"
56double val1_dern_1d(
int n,
const Tbl& tb,
int base_r)
64 assert (tb.get_ndim() == 1) ;
65 int nr = tb.get_dim(0) ;
69 int n_ini = ( (base_r ==
R_CHEBP) || (base_r ==
R_CHEBI) ) ? n / 2 : n ;
71 double *tbi = &tb.t[n_ini] ;
72 for (
int i=n_ini; i<nr; i++) {
75 if (base_r ==
R_CHEBP) ii *= 2 ;
76 if (base_r ==
R_CHEBI) ii = 2*i + 1 ;
77 for (
int j=0; j<n; j++)
78 fact *=
double(ii*ii - j*j)/double(2*j + 1) ;
79 resu += fact * (*tbi) ;
86double valm1_dern_1d(
int n,
const Tbl& tb,
int base_r)
94 assert (tb.get_ndim() == 1) ;
95 int nr = tb.get_dim(0) ;
104 fac = (n%2 == 0 ? 1 : -1) ;
108 fac = (n%2 == 0 ? -1 : 1) ;
117 double *tbi = &tb.t[n_ini] ;
119 for (
int i=n_ini; i<nr; i++) {
122 if (base_r ==
R_CHEBP) ii *= 2 ;
123 if (base_r ==
R_CHEBI) ii = 2*i + 1 ;
124 for (
int j=0; j<n; j++)
125 fact *=
double(ii*ii - j*j)/double(2*j + 1) ;
126 resu += fact * (*tbi) ;
#define R_CHEBU
base de Chebychev ordinaire (fin), dev. en 1/r
#define R_CHEBI
base de Cheb. impaire (rare) seulement
#define R_CHEB
base de Chebychev ordinaire (fin)
#define R_CHEBP
base de Cheb. paire (rare) seulement