LORENE
int1d_chebi.C
1/*
2 * Copyright (c) 2005 Jerome Novak
3 *
4 * This file is part of LORENE.
5 *
6 * LORENE is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * LORENE is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with LORENE; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 */
21
22
23char int1d_chebi_C[] = "$Header: /cvsroot/Lorene/C++/Source/Non_class_members/Operators/int1d_chebi.C,v 1.4 2014/10/13 08:53:23 j_novak Exp $" ;
24
25/*
26 * Calcul de l'integrale
27 *
28 * int_0^1 f(x) dx (1)
29 *
30 * pour une fonction f(x) paire donnee par ses coefficients de Tchebyshev
31 *
32 * f(x) = som_{i=0}^{nr-1} c_i T_{2i+1}(x) (2)
33 *
34 * Entree:
35 * ------
36 * int nr : Nombre de coefficients de Tchebyshev dans le
37 * developpement (2)
38 * const double* cf : Tableau des nr coefficients c_i de la fonction
39 * definis par (2). Le stokage doit etre le suivant
40 * cf[i] = c_i 0 <= i <= nr - 1
41 * L'espace memoire correspondant au pointeur cf doit
42 * etre de taille au moins nr et doit avoir ete
43 * alloue avant l'appel a la routine
44 *
45 * Sortie (valeur de retour) :
46 * ------
47 * double int1d_chebi : Valeur de l'integrale (1)
48 *
49 */
50
51/*
52 * $Id: int1d_chebi.C,v 1.4 2014/10/13 08:53:23 j_novak Exp $
53 * $Log: int1d_chebi.C,v $
54 * Revision 1.4 2014/10/13 08:53:23 j_novak
55 * Lorene classes and functions now belong to the namespace Lorene.
56 *
57 * Revision 1.3 2005/11/02 15:08:18 j_novak
58 * Minor change to prevent warning message.
59 *
60 * Revision 1.2 2005/05/13 13:22:33 j_novak
61 * *** empty log message ***
62 *
63 * Revision 1.1 2005/05/13 08:51:02 j_novak
64 * Added the function int1d_chebi.
65 *
66 *
67 * $Header: /cvsroot/Lorene/C++/Source/Non_class_members/Operators/int1d_chebi.C,v 1.4 2014/10/13 08:53:23 j_novak Exp $
68 *
69 */
70
71namespace Lorene {
72
73//*****************************************************************************
74
75double int1d_chebi(int nr, const double* cf){
76
77 double som = 0. ;
78 const double* cc = cf ;
79
80 for (int i=0; i<nr-2 ; i+=2) {
81 som += (cc[0] - cc[1] ) / double(2*i + 2) ;
82 cc += 2 ;
83 }
84
85 if (nr%2 == 0) som += (*cc) / double(2*nr - 2) ;
86
87 return som ;
88
89}
90}
Lorene prototypes.
Definition app_hor.h:64