# EllipseSampling.jl

EllipseSampling.jl is a lightweight package for generating points on the boundary defined by an 2D ellipse built around Julia implementations of two functions by John D. Cook. It handles cases where the ellipse has been rotated and/or translated, and where either of the x and y axes is the major or minor axis. It provides methods (`generate_N_equally_spaced_points`

) and (`generate_N_clustered_points`

) to generate N equally-spaced points and clustered points respectively on the ellipse's boundary as well as a method (`generate_perimeter_point`

) to sample singular points uniformly on the boundary. Resultantly, any distribution defined on [0, 1] can be used to sample points. Calculation of the arc length and circumference of an ellipse uses Elliptic.jl.

This package's creation was motivated by the need to sample points on the boundary defined by an elliptical approximation of the log-likelihood function around the maximum likelihood estimate of a mechanistic model at a particular confidence level. Resultantly, it also provides a method (`EllipseSampling.calculate_ellipse_parameters`

) to convert the matrix representation of this approximation into the parameters of the equivalent ellipse. Points can then be sampled from this ellipse.

To get started with the package see Quick Start.

A deeper dive into the user interface and internal library can be found in User Interface and Internal Library, respectively.

## Getting Started: Installation And First Steps

To install the package, use the following command inside the Julia REPL:

```
using Pkg
Pkg.add("EllipseSampling")
```

To load the package, use the command:

`using EllipseSampling`