88 (
double* ti,
const int nr,
const int nt,
const int np,
const double x,
97 double* cheb =
new double [nr] ;
100 for (i=2; i<nr; i++) {
101 cheb[i] = 2*x* cheb[i-1] - cheb[i-2] ;
105 for (j=0 ; j<nt ; j++) {
108 for (i=0 ; i<nr ; i++) {
109 *po += (*pi) * cheb[i] ;
123 for (k=2 ; k<np+1 ; k+=2) {
124 for (j=0 ; j<nt ; j++) {
127 for (i=0 ; i<nr ; i++) {
128 *po += (*pi) * cheb[i] ;
150 void som_r_chebu_symy
151 (
double* ti,
const int nr,
const int nt,
const int np,
const double x,
double* trtp) {
159 double* cheb =
new double [nr] ;
162 for (i=2; i<nr; i++) {
163 cheb[i] = 2*x* cheb[i-1] - cheb[i-2] ;
167 for (j=0 ; j<nt ; j++) {
170 for (i=0 ; i<nr ; i++) {
171 *po += (*pi) * cheb[i] ;
185 for (k=2 ; k<np+1 ; k+=2) {
186 for (j=0 ; j<nt ; j++) {
189 for (i=0 ; i<nr ; i++) {
190 *po += (*pi) * cheb[i] ;
211 void som_r_chebpim_p_symy
212 (
double* ti,
const int nr,
const int nt,
const int np,
const double x,
double* trtp) {
220 double* cheb =
new double [2*nr] ;
223 for (i=2 ; i<2*nr ; i++) {
224 cheb[i] = 2*x* cheb[i-1] - cheb[i-2] ;
229 for (j=0 ; j<nt ; j++) {
232 for (i=0 ; i<nr ; i++) {
233 *po += (*pi) * cheb[2*i] ;
247 for (k=2 ; k<np+1 ; k+=2) {
249 for (j=0 ; j<nt ; j++) {
252 for (i=0 ; i<nr ; i++) {
253 *po += (*pi) * cheb[2*i + m] ;
274 void som_r_chebpim_i_symy
275 (
double* ti,
const int nr,
const int nt,
const int np,
const double x,
double* trtp) {
283 double* cheb =
new double [2*nr] ;
286 for (i=2 ; i<2*nr ; i++) {
287 cheb[i] = 2*x* cheb[i-1] - cheb[i-2] ;
292 for (j=0 ; j<nt ; j++) {
295 for (i=0 ; i<nr ; i++) {
296 *po += (*pi) * cheb[2*i+1] ;
310 for (k=2 ; k<np+1 ; k+=2) {
312 for (j=0 ; j<nt ; j++) {
315 for (i=0 ; i<nr ; i++) {
316 *po += (*pi) * cheb[2*i + 1 - m] ;
343 void som_tet_cossin_cp_symy
344 (
double* ti,
const int nt,
const int np,
345 const double tet,
double* to) {
353 double* cossin =
new double [2*nt] ;
354 for (j=0 ; j<2*nt ; j +=2) {
355 cossin[j] =
cos(j * tet) ;
356 cossin[j+1] =
sin((j+1) * tet) ;
361 for (j=0 ; j<nt ; j++) {
362 *po += (*pi) * cossin[2*j] ;
374 for (k=2 ; k<np+1 ; k+=2) {
377 for (j=0 ; j<nt ; j++) {
378 *po += (*pi) * cossin[2*j + m] ;
398 void som_tet_cossin_ci_symy
399 (
double* ti,
const int nt,
const int np,
400 const double tet,
double* to) {
408 double* cossin =
new double [2*nt] ;
409 for (j=0 ; j<2*nt ; j +=2) {
410 cossin[j] =
cos((j+1) * tet) ;
411 cossin[j+1] =
sin(j * tet) ;
416 for (j=0 ; j<nt ; j++) {
417 *po += (*pi) * cossin[2*j] ;
429 for (k=2 ; k<np+1 ; k+=2) {
432 for (j=0 ; j<nt ; j++) {
433 *po += (*pi) * cossin[2*j + m] ;
454 void som_phi_cossin_symy
455 (
double* ti,
const int np,
const double phi,
double* xo) {
460 for (
int k=2 ; k<np-1 ; k +=2 ) {
462 *xo += ti[k] *
cos(m * phi) ;
464 *xo += ti[np] *
cos(np/2 * phi) ;
Cmp cos(const Cmp &)
Cosine.
Cmp sin(const Cmp &)
Sine.