/* -*-ePiX-*- */
#include "epix.h"
using namespace ePiX;
void displ(const P& tail, const P& head)
{
  P mid(0.5*(tail + head));
  arrow(tail, mid);
  line(mid, head);
}

int main()
{
  picture(P(-2, -2), P(3, 2), "4 x 3.2in");

  begin();
  arrow_inset(0.5);
  arrow_ratio(2);
  arrow_width(2);

  P pO(0,0), p0(1, 0.5), p1(0.375, 0.75), p2(0.8, -1), p3(-1.25, -0.75),
    p4(1.5, 1.75), p5(0.5, -0.25),
    pP(p0), pQ(pP + p1), pR(pQ + p2), pS(pR + p3), pT(pS + p4), pU(pT + p5);

  bold();
  displ(pO, pP);
  displ(pP, pQ);
  displ(pQ, pR);
  displ(pR, pS);
  displ(pS, pT);
  displ(pT, pU);

  line(pO, P(xmax(),0));
  line(pO, P(0,ymax()));

  line(pO, p1);
  line(pO, p2);
  line(pO, p3);
  line(pO, p4);
  line(pO, p5);

  label(pO, P(-2,-4), "$O$", b);
  label(pP, P(2,-2), "$P$", br);
  label(pQ, P(2, 2), "$Q$", tr);
  label(pR, P(2, 0), "$R$", r);
  label(pS, P(0,-4), "$S$", b);
  label(pT, P(0, 2), "$T$", t);
  label(pU, P(2, 0), "$U$", r);

  label(p1, P(2, 2), "$P'$", tr);
  label(p2, P(2,-2), "$P''$", br);
  label(p3, P(-2,-2), "$P'''$", bl);
  label(p4, P(2, 2), "$P^{(\\text{iv})}$", tr);
  label(p5, P(2,-2), "$P^{(\\text{v})}$", r);

  tikz_format();
  end();
}
