function [ edge_pointer, edge_data, xy ] = grf_example ( node_num, edge_num )

%*****************************************************************************80
%
%% GRF_EXAMPLE sets up a GRF example.
%
%  Discussion:
%
%    The example is known as the Coxeter graph.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    12 January 2009
%
%  Author:
%
%    John Burkardt
%
%  Reference:
%
%    Stephen Skiena,
%    Implementing Discrete Mathematics,
%    Combinatorics and Graph Theory with Mathematica,
%    Addison-Wesley, 1990.
%
%  Input:
%
%    integer NODE_NUM, the number of nodes.
%
%    integer EDGE_NUM, the number of edges.
%
%  Output:
%
%    integer EDGE_POINTER(NODE_NUM+1), pointers to
%    the beginning of edge data for each node.
%
%    integer EDGE_DATA(EDGE_NUM), the edge data.
%
%    real XY(2,NODE_NUM), the node coordinates.
%
  edge_pointer = [ ...
    1,  4,  7, 10, 13, 16, 19, 22, 25, 28, ...
   31, 34, 37, 40, 43, 46, 49, 52, 55, 58, ...
   61, 64, 67, 70, 73, 76, 79, 82, 85 ]';

  edge_data = [ ...
     8,   2,   3, ...
    14,   1,   5, ...
     9,   4,   1, ...
    10,   7,   3, ...
    13,   2,   6, ...
    12,   5,   7, ...
    11,   6,   4, ...
    25,  20,   1, ...
    24,  21,   3, ...
    23,  15,   4, ...
    22,  16,   7, ...
    28,  17,   6, ...
    27,  18,   5, ...
    26,  19,   2, ...
    10,  18,  19, ...
    11,  19,  20, ...
    12,  21,  20, ...
    13,  15,  21, ...
    14,  16,  15, ...
     8,  17,  16, ...
     9,  18,  17, ...
    11,  27,  24, ...
    10,  28,  25, ...
     9,  26,  22, ...
     8,  23,  27, ...
    14,  24,  28, ...
    13,  25,  22, ...
    12,  26,  23 ]';

  xy = [ ...
    0.412,   0.984; ...
    0.494,   0.984; ...
    0.366,   0.926; ...
    0.388,   0.862; ...
    0.546,   0.926; ...
    0.518,   0.860; ...
    0.458,   0.818; ...
    0.152,   0.684; ...
    0.264,   0.682; ...
    0.354,   0.680; ...
    0.458,   0.670; ...
    0.554,   0.672; ...
    0.658,   0.668; ...
    0.774,   0.692; ...
    0.164,   0.450; ...
    0.228,   0.448; ...
    0.274,   0.390; ...
    0.242,   0.330; ...
    0.194,   0.278; ...
    0.146,   0.328; ...
    0.102,   0.390; ...
    0.668,   0.472; ...
    0.638,   0.416; ...
    0.656,   0.334; ...
    0.714,   0.270; ...
    0.798,   0.326; ...
    0.830,   0.408; ...
    0.754,   0.466 ]';

  return
end
