// strucures to define elliptical shape parameters
typedef struct
{
    double major;
    double minor;
    double theta;
}
EllipseAxes;

typedef struct
{
    double x2;
    double y2;
    double xy;
}
EllipseMoments;

typedef struct
{
    double sx;
    double sy;
    double sxy;
}
EllipseShape;

// conversions between elliptical shape representations
EllipseAxes EllipseMomentsToAxes (EllipseMoments moments);
EllipseShape EllipseAxesToShape (EllipseAxes axes);
EllipseAxes EllipseShapeToAxes (EllipseShape shape);

