# Period Matrix Functions

Since the period matrices that are computed for Riemann surfaces describe the analytic Jacobian of the associated algebraic curve, several functions from Section [Analytic Jacobians of Hyperelliptic Curves](../../ArithmeticGeometry/HyperellipticCurves/analytic.md#seccrvanjac) “Analytic Jacobians of Hyperelliptic Curves” can be applied as well. In particular, if $\tau_1, \tau_2$ denote small and $\Omega_1, \Omega_2$ denote big period matrices corresponding to genus $g$ Riemann surfaces, the following intrinsics apply:

**(i)**
`AnalyticHomomorphism` ($\tau_1$, $\tau_2$)

**(ii)**
`IsIsomorphicSmallPeriodMatrices` ($\tau_1$, $\tau_2$)

**(iii)**
`IsIsomorphicBigPeriodMatrices` ($\Omega_1$, $\Omega_2$)

**(iv)**
`IsIsogenousPeriodMatrices` ($\Omega_1$, $\Omega_2$)

Moreover, the endomorphism ring of a big period matrix $\Omega$ can be computed by using the intrinsic

**(v)**
`EndomorphismRing`($\Omega$)

Finally, the evaluation of the multidimensional theta function associated to a small period matrix $\tau$ with characteristic $p$ (a $(2g \times 1)$-matrix) and at a $z$ (a $(g \times 1)$-matrix) is performed by the intrinsic:

**(vi)**
`Theta(p, z, \tau)`

## `Example: Iso Small Pm 1 (ex-7d1774)`

For a hyperelliptic curve we may obtain period matrices in three different ways now:

```magma
> C<I> := ComplexField(100);
> Cx<x> := PolynomialRing(C);
> f := BernoulliPolynomial(10);
> A := AnalyticJacobian(Evaluate(f, x));
> X := RiemannSurface(f, 2 : Precision := 100);
> Qxy<x,y> := PolynomialRing(Rationals(), 2);
> Y := RiemannSurface(y^2 - Evaluate(f, x) : Precision := 100);
> IsIsomorphicSmallPeriodMatrices(SmallPeriodMatrix(A), SmallPeriodMatrix(Y));
true
[ 0  0  0  0  0  0  1 -1]
[ 0  1 -1 -1  0  1 -1  0]
[ 0 -1 -1 -1  0  0  0  0]
[-1 -1 -1 -1 -1  0  0  0]
[ 0  0  0  1  0  0  0  0]
[ 0  0  1  1  0  0  0  0]
[ 0  0  1  1  1 -1  0  0]
[ 1  1  1  1  0  0  0  0]
> IsIsomorphicSmallPeriodMatrices(SmallPeriodMatrix(X), SmallPeriodMatrix(Y));
true
[ 1 -1  0  0  0 -1  0  0]
[ 1  0  1  1  0  0  1  1]
[ 1  0  0  0  0  0  1 -1]
[ 0  0  1  0  1  1  0  0]
[-1  1  0  0  0  0  0  0]
[-1  0 -1 -1  0  0 -1  0]
[-1  0 -1  0  0  0 -1  0]
[-1  0  0  0  0  0  0  0]

```
