% This picture represents the group structure of the points of an elliptic
% curve
\begin{tikzpicture}[yscale=.7]
  % The axis
  \draw[->] (-3,    0) -- (3.5,   0);
  \draw[->] ( 0, -3.2) -- (  0, 3.2);

  \clip(-3., -3.2) rectangle (3.5, 3.2);

  % The curve
  \draw[thick, smooth, samples=100, domain=-2.6712:0.5950] 
    plot(\x, {sqrt((\x)^(3)-5.9*(\x)+3.3)});
  \draw[thick, smooth, samples=100, domain=2.0762:3.5] 
    plot(\x, {sqrt((\x)^(3)-5.9*(\x)+3.3)});
  \draw[thick, smooth, samples=100, domain=-2.6712:0.5950] 
    plot(\x, {0-sqrt((\x)^(3)-5.9*(\x)+3.3)});
  \draw[thick, smooth, samples=100, domain=2.0762:3.5] 
    plot(\x, {0-sqrt((\x)^(3)-5.9*(\x)+3.3)});

  % The intersection lines
  \draw[thick, color=violet] (     -3, 1.2218) -- (    3.5, 2.5105);
  \draw[thick, color=violet] (-2.5534,   -3.2) -- (-2.5534,    3.2);

  % The intersection points
  \filldraw (                  0,  1.8165902124584950) circle (1.0pt);
  \filldraw ( 2.5927223574355067,  2.3306137033629240) circle (1.0pt);
  \filldraw (-2.5534168046838945,  1.3103592942448403) circle (1.0pt);
  \filldraw (-2.5534168046838945, -1.3103592942526257) circle (1.0pt);

  % The labels
  \draw ( 0,  2.2346057845515620) node[right]{$P$};
  \draw ( 3,  2.6354835353265860) node {$Q$};
  \draw (-2, -1.0195783099751021) node {$P+Q$};
\end{tikzpicture}
