# unimodular: Unimodular matrices In elliptic: Weierstrass and Jacobi Elliptic Functions

## Description

Systematically generates unimodular matrices; numerical verfication of a function's unimodularness

## Usage

 ```1 2``` ```unimodular(n) unimodularity(n,o, FUN, ...) ```

## Arguments

 `n` Maximum size of entries of matrices `o` Two element vector `FUN` Function whose unimodularity is to be checked `...` Further arguments passed to `FUN`

## Details

Here, a ‘unimodular’ matrix is of size 2x2, with integer entries and a determinant of unity.

## Value

Function `unimodular()` returns an array `a` of dimension `c(2,2,u)` (where `u` is a complicated function of `n`). Thus 3-slices of `a` (that is, `a[,,i]`) are unimodular.

Function `unimodularity()` returns the result of applying `FUN()` to the unimodular transformations of `o`. The function returns a vector of length `dim(unimodular(n))[3]`; if `FUN()` is unimodular and roundoff is neglected, all elements of the vector should be identical.

## Note

In function `as.primitive()`, a ‘unimodular’ may have determinant minus one.

## Author(s)

Robin K. S. Hankin

`as.primitive`
 ```1 2 3 4``` ```unimodular(3) o <- c(1,1i) plot(abs(unimodularity(3,o,FUN=g2.fun,maxiter=100)-g2.fun(o))) ```