function [ x, y, w ] = rule17 ( )

%*****************************************************************************80
%
%% rule17() returns the quadrilateral rule of precision 17.
%
%  Discussion:
%
%    We suppose we are given a quadrilateral Quad with vertices
%    (0,0), (1,0), (1,1), (0,1),
%    We call a rule with n points, returning coordinates
%    x, y, and weights w.  Then the integral I of f(x,y,z) over Quad is 
%    approximated by Q as follows:
%
%    Q = area(Quad) * sum ( 1 <= i <= n ) w(i) * f(x(i),y(i)) 
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    29 April 2023
%
%  Author:
%
%    John Burkardt
%
%  Reference:
%
%    Freddie Witherden, Peter Vincent,
%    On the identification of symmetric quadrature rules for finite element methods,
%    Computers and Mathematics with Applications,
%    Volume 69, pages 1232-1241, 2015.
%
%  Output:
%
%    real x(n), y(n): the coordinates of quadrature points.
%
%    real w(n): the quadrature weights, which sum to 1.
%
  x = [ ...
          0.7725214936045741, ...
          0.5000000000000000, ...
          0.2274785063954258, ...
          0.5000000000000000, ...
          0.9587485941095766, ...
          0.5000000000000000, ...
          0.0412514058904234, ...
          0.5000000000000000, ...
          0.5962771213070235, ...
          0.5962771213070235, ...
          0.4037228786929766, ...
          0.4037228786929766, ...
          0.9356643423477216, ...
          0.9356643423477216, ...
          0.0643356576522784, ...
          0.0643356576522784, ...
          0.8471940450447754, ...
          0.8471940450447754, ...
          0.1528059549552246, ...
          0.1528059549552246, ...
          0.7288414964415777, ...
          0.7288414964415777, ...
          0.2711585035584222, ...
          0.2711585035584222, ...
          0.9846021280457544, ...
          0.9846021280457544, ...
          0.0153978719542456, ...
          0.0153978719542456, ...
          0.8810441380400991, ...
          0.6397388833575961, ...
          0.8810441380400991, ...
          0.3602611166424039, ...
          0.1189558619599009, ...
          0.6397388833575961, ...
          0.1189558619599009, ...
          0.3602611166424039, ...
          0.9536971760991118, ...
          0.7734493352071550, ...
          0.9536971760991118, ...
          0.2265506647928450, ...
          0.0463028239008882, ...
          0.7734493352071550, ...
          0.0463028239008882, ...
          0.2265506647928450, ...
          0.8806243332195414, ...
          0.9918939857507747, ...
          0.8806243332195414, ...
          0.0081060142492252, ...
          0.1193756667804586, ...
          0.9918939857507747, ...
          0.1193756667804586, ...
          0.0081060142492252, ...
          0.9935473535223840, ...
          0.6514037408944306, ...
          0.9935473535223840, ...
          0.3485962591055693, ...
          0.0064526464776161, ...
          0.6514037408944306, ...
          0.0064526464776161, ...
          0.3485962591055693 ];

  y = [ ...
          0.5000000000000000, ...
          0.7725214936045741, ...
          0.5000000000000000, ...
          0.2274785063954258, ...
          0.5000000000000000, ...
          0.9587485941095766, ...
          0.5000000000000000, ...
          0.0412514058904234, ...
          0.5962771213070235, ...
          0.4037228786929766, ...
          0.5962771213070235, ...
          0.4037228786929766, ...
          0.9356643423477216, ...
          0.0643356576522784, ...
          0.9356643423477216, ...
          0.0643356576522784, ...
          0.8471940450447754, ...
          0.1528059549552246, ...
          0.8471940450447754, ...
          0.1528059549552246, ...
          0.7288414964415777, ...
          0.2711585035584222, ...
          0.7288414964415777, ...
          0.2711585035584222, ...
          0.9846021280457544, ...
          0.0153978719542456, ...
          0.9846021280457544, ...
          0.0153978719542456, ...
          0.6397388833575961, ...
          0.8810441380400991, ...
          0.3602611166424039, ...
          0.8810441380400991, ...
          0.6397388833575961, ...
          0.1189558619599009, ...
          0.3602611166424039, ...
          0.1189558619599009, ...
          0.7734493352071550, ...
          0.9536971760991118, ...
          0.2265506647928450, ...
          0.9536971760991118, ...
          0.7734493352071550, ...
          0.0463028239008882, ...
          0.2265506647928450, ...
          0.0463028239008882, ...
          0.9918939857507747, ...
          0.8806243332195414, ...
          0.0081060142492252, ...
          0.8806243332195414, ...
          0.9918939857507747, ...
          0.1193756667804586, ...
          0.0081060142492252, ...
          0.1193756667804586, ...
          0.6514037408944306, ...
          0.9935473535223840, ...
          0.3485962591055693, ...
          0.9935473535223840, ...
          0.6514037408944306, ...
          0.0064526464776161, ...
          0.3485962591055693, ...
          0.0064526464776161 ];

  w = [ ...
          0.0347010944218050, ...
          0.0347010944218050, ...
          0.0347010944218050, ...
          0.0347010944218050, ...
          0.0163369559518662, ...
          0.0163369559518662, ...
          0.0163369559518662, ...
          0.0163369559518662, ...
          0.0357141049055499, ...
          0.0357141049055499, ...
          0.0357141049055499, ...
          0.0357141049055499, ...
          0.0091789771213129, ...
          0.0091789771213129, ...
          0.0091789771213129, ...
          0.0091789771213129, ...
          0.0215639249095360, ...
          0.0215639249095360, ...
          0.0215639249095360, ...
          0.0215639249095360, ...
          0.0336390683029792, ...
          0.0336390683029792, ...
          0.0336390683029792, ...
          0.0336390683029792, ...
          0.0019139083537275, ...
          0.0019139083537275, ...
          0.0019139083537275, ...
          0.0019139083537275, ...
          0.0257941811962338, ...
          0.0257941811962338, ...
          0.0257941811962338, ...
          0.0257941811962338, ...
          0.0257941811962338, ...
          0.0257941811962338, ...
          0.0257941811962338, ...
          0.0257941811962338, ...
          0.0137066000593229, ...
          0.0137066000593229, ...
          0.0137066000593229, ...
          0.0137066000593229, ...
          0.0137066000593229, ...
          0.0137066000593229, ...
          0.0137066000593229, ...
          0.0137066000593229, ...
          0.0037799525970642, ...
          0.0037799525970642, ...
          0.0037799525970642, ...
          0.0037799525970642, ...
          0.0037799525970642, ...
          0.0037799525970642, ...
          0.0037799525970642, ...
          0.0037799525970642, ...
          0.0051952491639908, ...
          0.0051952491639908, ...
          0.0051952491639908, ...
          0.0051952491639908, ...
          0.0051952491639908, ...
          0.0051952491639908, ...
          0.0051952491639908, ...
          0.0051952491639908 ];

  return
end
