Transformation d’une CL de produits de polynômes de Tchebychev en x et y en polynôme classique
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R8), | intent(in), | dimension(1:(deg_x+1)*(deg_y+1)) | :: | var |
coefficients du produits de polynômes de Tchebychev |
|
real(kind=R8), | intent(out), | dimension(1:(deg_x+1)*(deg_y+1)) | :: | coeff_m |
coefficients du polynôme classique en x et y |
|
integer(kind=I4), | intent(in) | :: | deg_x |
degré du polynôme en x |
||
integer(kind=I4), | intent(in) | :: | deg_y |
degré du polynôme en y |
subroutine coeff_poly_tcheby_xy_vers_poly_monome(var, coeff_m, deg_x, deg_y) !! Transformation d'une CL de produits de polynômes de Tchebychev en x et y en polynôme classique implicit none integer(kind=I4), intent(in ) :: deg_x !! *degré du polynôme en x* integer(kind=I4), intent(in ) :: deg_y !! *degré du polynôme en y* real(kind=R8), intent(in ), dimension(1:(deg_x+1)*(deg_y+1)) :: var !! *coefficients du produits de polynômes de Tchebychev* real(kind=R8), intent(out), dimension(1:(deg_x+1)*(deg_y+1)) :: coeff_m !! *coefficients du polynôme classique en x et y* integer(kind=I4) :: i, j, ij real(kind=R8), dimension(0:deg_x, 0:deg_y) :: tab_poly__m, tab_coeff_m coeff_m(1:(deg_x+1)*(deg_y+1)) = 0._R8 tab_poly__m(0:deg_x, 0:deg_y) = 0._R8 ij = 0 do j = 0, deg_y do i = 0, deg_x ij = ij +1 call coeff_tcheby_xy_vers_monome(tab_coeff_m(0:i, 0:j), deg_x=i, deg_y=j) tab_coeff_m(0:i, 0:j) = var(ij)*tab_coeff_m(0:i, 0:j) tab_poly__m(0:i, 0:j) = tab_poly__m(0:i, 0:j) +tab_coeff_m(0:i, 0:j) enddo enddo ij = 0 do j = 0, deg_y do i = 0, deg_x ij = ij +1 coeff_m(ij) = tab_poly__m(i, j) enddo enddo return endsubroutine coeff_poly_tcheby_xy_vers_poly_monome