23char sxpun_1d_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Non_class_members/Operators/sxpun_1d.C,v 1.8 2014/10/13 08:53:27 j_novak Exp $" ;
63#include "type_parite.h"
84void _sxpun_1d_pas_prevu(
int nr,
double* tb,
double *res) {
85 cout <<
"sxpun pas prevu..." << endl ;
86 cout <<
" valeurs: " << tb <<
" " << res << endl ;
87 cout <<
"nr : " << nr << endl ;
98void _sxpun_1d_r_cheb (
int nr,
double* tb,
double *xo)
104 xo[nr-2] = 2*(tb[nr-1]-xo[nr-1]) ;
106 for (
int i=nr-3 ; i>0 ; i--)
107 xo[i] = 2*tb[i+1]-2*xo[i+1]-xo[i+2] ;
110 for (
int i=0 ; i<nr ; i++)
116 xo[0] = tb[0]-xo[1]/2.-somme ;
124void _sxpun_1d_r_jaco02 (
int nr,
double* tb,
double* xo)
129 for (
int i = 0 ; i < nr-1 ; i++) {
131 for (
int j = i+1 ; j < nr ; j++) {
132 int signe = ((j-1-i)%2 == 0 ? 1 : -1) ;
133 somme += signe*((j+1)*(j+2)/double((i+1)*(i+2))-(i+1)*(i+2)/double((j+1)*(j+2)))*tb[j] ;
135 xo[i] = (2*i+3)/
double(4)*somme ;
144void sxpun_1d(
int nr,
double **tb,
int base_r)
148static void (*sxpun_1d[
MAX_BASE])(int,
double *,
double *) ;
155 sxpun_1d[i] = _sxpun_1d_pas_prevu ;
162 double *result =
new double[nr] ;
163 sxpun_1d[base_r](nr, *tb, result) ;
#define MAX_BASE
Nombre max. de bases differentes.
#define R_JACO02
base de Jacobi(0,2) ordinaire (finjac)
#define TRA_R
Translation en R, used for a bitwise shift (in hex)
#define R_CHEB
base de Chebychev ordinaire (fin)