23char sx2_1d_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Non_class_members/Operators/sx2_1d.C,v 1.6 2015/03/05 08:49:32 j_novak Exp $" ;
63#include "type_parite.h"
79 void _sx_1d_r_legp(
int,
double* ,
double *) ;
80 void _sx_1d_r_legi(
int,
double* ,
double *) ;
87void _sx2_1d_pas_prevu(
int nr,
double* tb,
double *res) {
88 cout <<
"sx2 pas prevu..." << tb <<
" " << res << endl ;
89 cout <<
"nr : " << nr << endl ;
99void _sx2_1d_identite(
int nr,
double*tb ,
double *res) {
100 for (
int i=0 ; i<nr ; i++)
109void _sx2_1d_r_chebp(
int nr,
double* tb,
double *xo)
118 somp = 4 * sgn * (nr-1) * tb[nr-1] ;
119 somn = 2 * sgn * tb[nr-1] ;
120 xo[nr-2] = somp - 2*(nr-2)*somn ;
121 for (
int i = nr-3 ; i >= 0 ; i-- ) {
123 somp += 4 * (i+1) * sgn * tb[i+1] ;
124 somn += 2 * sgn * tb[i+1] ;
125 xo[i] = somp - 2*i * somn ;
127 for (
int i=0 ; i<nr ; i+=2) {
139void _sx2_1d_r_chebi(
int nr,
double* tb,
double *xo)
145 somp = 2 * sgn * (2*(nr-1)+1) * tb[nr-1] ;
146 somn = 2 * sgn * tb[nr-1] ;
147 xo[nr-2] = somp - (2*(nr-2)+1)*somn ;
148 for (
int i = nr-3 ; i >= 0 ; i-- ) {
150 somp += 2 * (2*(i+1)+1) * sgn * tb[i+1] ;
151 somn += 2 * sgn * tb[i+1] ;
152 xo[i] = somp - (2*i+1) * somn ;
154 for (
int i=0 ; i<nr ; i+=2) {
163void _sxm12_1d_r_chebu(
int nr,
double* tb,
double *xo) {
166 sxm1_1d_cheb(nr, tb) ;
167 sxm1_1d_cheb(nr, tb) ;
168 for (
int i=0 ; i<nr ; i++)
176void _sx2_1d_r_legp(
int nr,
double* tb,
double *xo)
179 double* interm =
new double[nr] ;
180 _sx_1d_r_legp(nr, tb, interm) ;
181 _sx_1d_r_legi(nr, interm, xo) ;
191void _sx2_1d_r_legi(
int nr,
double* tb,
double *xo)
194 double* interm =
new double[nr] ;
195 _sx_1d_r_legi(nr, tb, interm) ;
196 _sx_1d_r_legp(nr, interm, xo) ;
204void sx2_1d(
int nr,
double **tb,
int base_r)
208static void (*sx2_1d[
MAX_BASE])(int,
double *,
double*) ;
215 sx2_1d[i] = _sx2_1d_pas_prevu ;
227 double *result =
new double[nr] ;
228 sx2_1d[base_r](nr, *tb, result) ;
#define R_LEGP
base de Legendre paire (rare) seulement
#define MAX_BASE
Nombre max. de bases differentes.
#define R_CHEBU
base de Chebychev ordinaire (fin), dev. en 1/r
#define R_LEGI
base de Legendre impaire (rare) seulement
#define R_CHEBI
base de Cheb. impaire (rare) seulement
#define R_LEG
base de Legendre ordinaire (fin)
#define TRA_R
Translation en R, used for a bitwise shift (in hex)
#define R_CHEB
base de Chebychev ordinaire (fin)
#define R_CHEBP
base de Cheb. paire (rare) seulement