Class P_to_H_map


Code: hyperbolic/P_to_H.mpl

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

Field: a_H::RR1

Field: a_P::RR1

Field: degree::posint = 20

The degree of polynomials used for approximate power series.

Field: d::RR1

This is the number $d$ that enters into the formula for the schwarzian derivative of $p^{-1}$

Field: test_point::CC
Field: ap_H::RR1
Field: am_H::RR1
Field: v_HS::table

Table containing the points $\psi^{-1}(v_{Hi})$

Field: v_PS::table

Table containing the points $\phi(v_{Pi})$

Field: c_HS::table

Table containing the curves $\psi^{-1}(c_{Hi}(t))$

Field: c_PS::table

Table containing the curves $\phi(c_{Pi}(t))$

Field: psi::procedure
Field: psi_inv::procedure
Field: phi::procedure
Field: phi_inv::procedure
Field: c::RR1

The coefficient of $z$ in $p_1^{-1}(z)$

Field: num_charts::integer = 0
Field: charts::table
Field: zero_chart::P_to_H_chart
Field: unit_chart::P_to_H_chart
Field: test_chart::P_to_H_chart
Field: err::RR1
Field: errs::table
Field: p1_inv::procedure
Field: p1::procedure
Method: set_a_H(a::RR0)::RR1

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


Method: set_a_P(a::RR0,d_)::void

Set the a_H field and perform associated bookkeeping.


Method: add_chart(z0::CC)::P_to_H_chart

Create and add a new chart centred at z0


Method: add_charts(n::posint := 2)::void

Create and add $2n+1$ new charts. Of these, one is centred at the origin, $n$ are centred at equally spaced points between $0$ and $i$, and $n$ are centred at equally spaed points between $0$ and test_point.


Method: set_d(d::RR1)::RR1

This sets the d field, then sets the M fields of all charts based on that, then calculates c and a_H and p1_inv as described in the text. It returns an error term, which should be zero if we have the correct value of d.


Method: find_p1_inv(tol := 2,gap := 2)::void

This calls the set_d method repeatedly with different values of d, searching for the value that makes the set_d error term equal to zero. It also sets the fields c, a_H and p1_inv.


Method: set_p1()::void

This sets the p1 field based on the p1_inv field.


Method: p1_coeff_plot()::plot

This generates a plot of the logs of the absolute values of the coefficients of the power series for $p_1(z)$


Method: p1_inv_coeff_plot()

This generates a plot of the logs of the absolute values of the coefficients of the power series for $p^{-1}_1(z)$