Class H_to_P_map


Code: hyperbolic/H_to_P.mpl

An instance of this class encapsulates data about a cromulent isomorphism $HX(a_H) \to PX(a_P)$ for some specific numerical values of $a_H$ and $a_P$

Field: a_H::numeric

This should be set by the set_a_H method.

Field: a_P::numeric

This will be calculated by the find_p1 method, and should not be set directly.

Field: v_HS::table

As in Definition defn-schwarz-phi

Field: v_PS::table

As in Definition defn-schwarz-phi

Field: c_HS::table

As in Definition defn-schwarz-phi

Field: c_PS::table

As in Definition defn-schwarz-phi

Field: psi

As in Definition defn-schwarz-phi. This is set up so that if X is an instance of the present class, the required syntax is X["psi"](z).

Field: psi_inv

As in Definition defn-schwarz-phi, with the same kind of syntax as for psi

Field: phi

As in Definition defn-schwarz-phi, with the same kind of syntax as for psi

Field: phi_inv

As in Definition defn-schwarz-phi, with the same kind of syntax as for psi

Field: samples::list(CC0)

This is a list of points lying in $\psi^{-1}((C_3\cup C_5)\cap F_{16})$. These should be sent by $p_1$ to the unit circle, and the find_p1 method will try to choose the coefficients of $p_1$ to make this true. This should be set by the make_samples method.

Field: num_samples::posint = 200

Number of sample points. This should be significantly larger than the poly_deg field. It should be set by the make_samples method.

Field: errs::list

The list of differences $|p_1(z)|^2-1$, as $z$ runs through the sample points.

Field: err::RR0

The maximum absolute value of the above errors.

Field: poly_deg::posint = 20

Number of degrees of freedom when choosing $p_1$. It should be set by the set_poly_deg method.

Field: a::list(RR0)

This is a list of coefficients (of length equal to poly_deg) which determines the approximating function $p_1$. In more detail, we have $p_1=p_{10}+a_1p_{11}(z)+a_2p_{12}(z)+a_3p_{13}(z)+(sum_{i>3}a_iz^{2*i-8})p_{14}(z)$ for certain fixed functions $p_{1k}(z)$.

Field: p1

A rational function of $z$ which approximates the map $p_1\:\Delta\to\C$.

Field: p1_series

A Taylor series for $p_1$.

Field: p10

An auxiliary polynomial.

Field: p11

An auxiliary polynomial.

Field: p12

An auxiliary polynomial.

Field: p13

An auxiliary rational function.

Field: p14

An auxiliary polynomial.

Field: p1_inv

A polynomial approximation to the compositional inverse of $p_1$.

Field: S_p1_inv

A polynomial approximation to the schwarzian derivative of $p_1^{-1}$.

Field: d

A constant such that the schwarzian derivative of $p_1^{-1}$ is S0_p1_inv + d * S1_p1_inv

Field: schwarzian_errs::list

A list of differences between the coefficients of $S(p_1^{-1})$ and S0_p1_inv + d * S1_p1_inv

Field: m_series

A Taylor series for the function $m(z)$ such that $\omega_0=m(z) dz$.

Field: p_series

A Taylor series for $p(z)$.

Field: mp_series

A Taylor series for $m(z)p(z)$.

Method: set_a_H(a::RR1)::RR1

Set the a_H field and perform associated bookkeeping.


Method: set_a_P(a::RR1)::RR1

Set the a_P field and perform associated bookkeeping. Normally one should only use the set_a_H method directly; then other code will calculate an appropriate value for a_P and call the set_a_P method.


Method: set_poly_deg(d::posint)::void

Set the poly_deg field and perform associated bookkeeping.


Method: fix_a()::void

Truncate or extend the a field to ensure that it has the right length.


Method: set_p_aux()::void

Set the auxiliary functions p11 to p15. These are all odd polynomials with real coefficients and vanishing derivatives at $\psi^{-1}(v_0)$ and $\psi^{-1}(v_{11})$. The polynomials p11 and p12 vanish at $\psi^{-1}(v_0)$ and $\psi^{-1}(v_3)$, and take the values $1$ and $i$ respectively at $\psi^{-1}(v_{11})$. The polynomial p13 sends $\psi^{-1}(v_i)$ to $\phi(v_i)$ for $i\in\{0,3,6,11\}$, whereas p14 sends all these points to zero. The polynomials p11, p12 and p13 have degree $13$, whereas p14 has degree $15$, with linear term $z$. These properties charecterise the polynomials uniquely.


Method: p(z::CC0)::CC0

This calculates the function $p=\phi^{-1}\circ p_1\circ\psi$


Method: p_piecewise(z::CC0)::CC0

This also calculates $p(z)$, but it uses the equivariance properties of $p_1$ so we only need to calculate $p_1(w)$ when $w$ is small


Method: m(z0::CC0)::CC0

This calculates the function $m(z)$ such that $p^*(\omega_0)=m(z) dz$


Method: m_piecewise(z0::CC0)::CC0

This also calculates $m(z)$, but it uses the equivariance properties of $p_1$ so we only need to calculate $p_1(w)$ when $w$ is small


Method: find_m_series(radius::RR0,num_samples::posint,poly_deg::posint)

This finds a power series approximation to $m(z)$


Method: find_mp_series(radius::RR0,num_samples::posint,poly_deg::posint)

This finds a power series approximation to $m(z)p(z)$


Method: find_p_series(radius::RR0,num_samples::posint,poly_deg::posint)

This finds a power series approximation to $p(z)$


Method: make_samples(num_samples_)::void

Calculate a list of sample points. We have used equally spaced points, but Chebyshev spacing might be better.


Method: find_p1(num_steps::posint := 2)::void

This method searches for a polynomial p1 of the required form, which sends the sample points as close as possible to the unit circle.


Method: set_p1_inv()::void

This sets the fields p1_inv, S_p1_inv and d based on the p1 field.


Method: p1_plot()::plot

Generates a plot of p1(F16), which should just be the first quadrant of the unit disc


Method: v11_plot(eps := 2)::plot

Generates a plot of the behaviour of $p_1$ near $v_{11}$


Method: err_plot()::plot

This generates a plot showing the errors stored in the errs field.


Method: a_plot()::plot

This generates a plot showing the logs of the absolute values of the coefficients in the a field, which determine the approximating function $p_1$


Method: p1_coeff_plot()::plot

This generates a plot showing the logs of the absolute values of the coefficients in the Taylor expansion of $p_1(z)$


Method: p1_inv_coeff_plot()

This generates a plot showing the logs of the absolute values of the coefficients in the Taylor expansion of $p_1^{-1}(z)$


Method: schwarzian_err_plot()

This generates a plot showing the logs of the absolute values of the errors stored in the schwarzian_errs field.


Method: m_plot(radius,num_points)

This generates a plot showing the curve $m(r e^{it})$, where $r$ is the radius argument.


Method: m_plot_tikz(radius,num_points,scale)

This generates a tikzpicture environment showing the curve $m(r e^{it})$, where $r$ is the radius argument.


Method: check()