/* -*-ePiX-*- */
#include "epix.h"
using namespace ePiX;

const double alpha(0.5);

P f(double x)
{
  double u(x/alpha);
  return P(x, 1.25*x*(1 - u)*(1 + u));
}

int main()
{
  picture(P(-1, -1), P(1, 1), "2 x 2in");

  begin();
  double ht(0.7), wd(0.4);
  P pP(0,0), pP1(f(wd)), pQ(0, ht), pQ1(wd, ht), pR(0, -ht), pR1(wd, -ht),
    dX(2,0);

  bold();

  rect(P(-1,-1), P(1,1));
  rect(pR, pQ1);
  line(P(0,-1), P(0,1));

  plot(f, 0, wd, 40);

  label(pP,  P(2,-2), "$P$", r);
  label(pP1, dX, "$P'$", r);

  label(pQ, -dX, "$Q$", l);
  label(pQ1, dX, "$Q'$", r);

  label(pR, -dX, "$R$", l);
  label(pR1, dX, "$R'$", r);

  label(pP, -dX, "$(a, b)$", l);

  tikz_format();
  end();
}
