elliptic_nome_by_epsilon_17 Function

private elemental function elliptic_nome_by_epsilon_17(pw01_eps, pw04_eps) result(q)

Calculate the elliptic nome using the Horner's method and the following polynomial:

Arguments

Type IntentOptional Attributes Name
real(kind=real128), intent(in) :: pw01_eps

auxiliary parameter

real(kind=real128), intent(in) :: pw04_eps

Return Value real(kind=real128)

elliptic nome


Calls

proc~~elliptic_nome_by_epsilon_17~2~~CallsGraph proc~elliptic_nome_by_epsilon_17~2 elliptic_nome_by_epsilon_17 proc~elliptic_nome_by_epsilon_17_horner~2 elliptic_nome_by_epsilon_17_horner proc~elliptic_nome_by_epsilon_17~2->proc~elliptic_nome_by_epsilon_17_horner~2 proc~elliptic_nome_by_epsilon_13_horner~2 elliptic_nome_by_epsilon_13_horner proc~elliptic_nome_by_epsilon_17_horner~2->proc~elliptic_nome_by_epsilon_13_horner~2 proc~elliptic_nome_by_epsilon_09_horner~2 elliptic_nome_by_epsilon_09_horner proc~elliptic_nome_by_epsilon_13_horner~2->proc~elliptic_nome_by_epsilon_09_horner~2 proc~elliptic_nome_by_epsilon_05_horner~2 elliptic_nome_by_epsilon_05_horner proc~elliptic_nome_by_epsilon_09_horner~2->proc~elliptic_nome_by_epsilon_05_horner~2

Called by

proc~~elliptic_nome_by_epsilon_17~2~~CalledByGraph proc~elliptic_nome_by_epsilon_17~2 elliptic_nome_by_epsilon_17 proc~elliptic_nome_17_real128 elliptic_nome_17_real128 proc~elliptic_nome_17_real128->proc~elliptic_nome_by_epsilon_17~2 proc~elliptic_nome_auto_real128 elliptic_nome_auto_real128 proc~elliptic_nome_auto_real128->proc~elliptic_nome_by_epsilon_17~2 interface~elliptic_nome_17 elliptic_nome_17 interface~elliptic_nome_17->proc~elliptic_nome_17_real128 interface~elliptic_nome_auto elliptic_nome_auto interface~elliptic_nome_auto->proc~elliptic_nome_auto_real128

Source Code

    elemental function elliptic_nome_by_epsilon_17(pw01_eps, pw04_eps) result(q)
        !! Calculate the elliptic nome \( q \) using
        !! the Horner's method and
        !! the following polynomial:
        !! $$
        !! \begin{align*}
        !! q(\varepsilon) &:=        \varepsilon
        !!             \\ & +    2 { \varepsilon }^{  5 }
        !!             \\ & +   15 { \varepsilon }^{  9 }
        !!             \\ & +  150 { \varepsilon }^{ 13 }
        !!             \\ & + 1707 { \varepsilon }^{ 17 }
        !! \end{align*}
        !! $$

        real(real128), intent(in) :: pw01_eps !! auxiliary parameter \( \varepsilon \)

        real(real128), intent(in) :: pw04_eps !! \( { \varepsilon }^{ 4 } \)



        real(real128) :: q !! elliptic nome \( q \)



        q = &!
            elliptic_nome_by_epsilon_17_horner( &!
                pw01_eps = pw01_eps , &!
                pw04_eps = pw04_eps , &!
                pre_step = c_17       &!
            )

    end function elliptic_nome_by_epsilon_17