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

%*****************************************************************************80
%
%% rule19() returns the quadrilateral rule of precision 19.
%
%  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.8571721297863971, ...
          0.5000000000000000, ...
          0.1428278702136029, ...
          0.5000000000000000, ...
          0.6328360260604818, ...
          0.5000000000000000, ...
          0.3671639739395182, ...
          0.5000000000000000, ...
          0.9822171346289836, ...
          0.5000000000000000, ...
          0.0177828653710164, ...
          0.5000000000000000, ...
          0.9016898647338425, ...
          0.9016898647338425, ...
          0.0983101352661575, ...
          0.0983101352661575, ...
          0.9960827029485674, ...
          0.9960827029485674, ...
          0.0039172970514326, ...
          0.0039172970514326, ...
          0.9647248013998047, ...
          0.9647248013998047, ...
          0.0352751986001953, ...
          0.0352751986001953, ...
          0.7551391286846717, ...
          0.6333201572972811, ...
          0.7551391286846717, ...
          0.3666798427027189, ...
          0.2448608713153283, ...
          0.6333201572972811, ...
          0.2448608713153283, ...
          0.3666798427027189, ...
          0.6953671028876249, ...
          0.9939464665708677, ...
          0.6953671028876249, ...
          0.0060535334291323, ...
          0.3046328971123751, ...
          0.9939464665708677, ...
          0.3046328971123751, ...
          0.0060535334291323, ...
          0.8585839606548726, ...
          0.7562459386080489, ...
          0.8585839606548726, ...
          0.2437540613919512, ...
          0.1414160393451274, ...
          0.7562459386080489, ...
          0.1414160393451274, ...
          0.2437540613919512, ...
          0.6327200039056480, ...
          0.9344512170772521, ...
          0.6327200039056480, ...
          0.0655487829227479, ...
          0.3672799960943520, ...
          0.9344512170772521, ...
          0.3672799960943520, ...
          0.0655487829227479, ...
          0.8100176993466282, ...
          0.9631514779035646, ...
          0.8100176993466282, ...
          0.0368485220964354, ...
          0.1899823006533718, ...
          0.9631514779035646, ...
          0.1899823006533718, ...
          0.0368485220964354, ...
          0.9008357923592984, ...
          0.9942232653419869, ...
          0.9008357923592984, ...
          0.0057767346580131, ...
          0.0991642076407016, ...
          0.9942232653419869, ...
          0.0991642076407016, ...
          0.0057767346580131 ];

  y = [ ...
          0.5000000000000000, ...
          0.8571721297863971, ...
          0.5000000000000000, ...
          0.1428278702136029, ...
          0.5000000000000000, ...
          0.6328360260604818, ...
          0.5000000000000000, ...
          0.3671639739395182, ...
          0.5000000000000000, ...
          0.9822171346289836, ...
          0.5000000000000000, ...
          0.0177828653710164, ...
          0.9016898647338425, ...
          0.0983101352661575, ...
          0.9016898647338425, ...
          0.0983101352661575, ...
          0.9960827029485674, ...
          0.0039172970514326, ...
          0.9960827029485674, ...
          0.0039172970514326, ...
          0.9647248013998047, ...
          0.0352751986001953, ...
          0.9647248013998047, ...
          0.0352751986001953, ...
          0.6333201572972811, ...
          0.7551391286846717, ...
          0.3666798427027189, ...
          0.7551391286846717, ...
          0.6333201572972811, ...
          0.2448608713153283, ...
          0.3666798427027189, ...
          0.2448608713153283, ...
          0.9939464665708677, ...
          0.6953671028876249, ...
          0.0060535334291323, ...
          0.6953671028876249, ...
          0.9939464665708677, ...
          0.3046328971123751, ...
          0.0060535334291323, ...
          0.3046328971123751, ...
          0.7562459386080489, ...
          0.8585839606548726, ...
          0.2437540613919512, ...
          0.8585839606548726, ...
          0.7562459386080489, ...
          0.1414160393451274, ...
          0.2437540613919512, ...
          0.1414160393451274, ...
          0.9344512170772521, ...
          0.6327200039056480, ...
          0.0655487829227479, ...
          0.6327200039056480, ...
          0.9344512170772521, ...
          0.3672799960943520, ...
          0.0655487829227479, ...
          0.3672799960943520, ...
          0.9631514779035646, ...
          0.8100176993466282, ...
          0.0368485220964354, ...
          0.8100176993466282, ...
          0.9631514779035646, ...
          0.1899823006533718, ...
          0.0368485220964354, ...
          0.1899823006533718, ...
          0.9942232653419869, ...
          0.9008357923592984, ...
          0.0057767346580131, ...
          0.9008357923592984, ...
          0.9942232653419869, ...
          0.0991642076407016, ...
          0.0057767346580131, ...
          0.0991642076407016 ];

  w = [ ...
          0.0244343411732072, ...
          0.0244343411732072, ...
          0.0244343411732072, ...
          0.0244343411732072, ...
          0.0348269032306206, ...
          0.0348269032306206, ...
          0.0348269032306206, ...
          0.0348269032306206, ...
          0.0087173958729720, ...
          0.0087173958729720, ...
          0.0087173958729720, ...
          0.0087173958729720, ...
          0.0119511367906989, ...
          0.0119511367906989, ...
          0.0119511367906989, ...
          0.0119511367906989, ...
          0.0004044287944779, ...
          0.0004044287944779, ...
          0.0004044287944779, ...
          0.0004044287944779, ...
          0.0043602620085889, ...
          0.0043602620085889, ...
          0.0043602620085889, ...
          0.0043602620085889, ...
          0.0294314582100140, ...
          0.0294314582100140, ...
          0.0294314582100140, ...
          0.0294314582100140, ...
          0.0294314582100140, ...
          0.0294314582100140, ...
          0.0294314582100140, ...
          0.0294314582100140, ...
          0.0040448944029145, ...
          0.0040448944029145, ...
          0.0040448944029145, ...
          0.0040448944029145, ...
          0.0040448944029145, ...
          0.0040448944029145, ...
          0.0040448944029145, ...
          0.0040448944029145, ...
          0.0207116547458512, ...
          0.0207116547458512, ...
          0.0207116547458512, ...
          0.0207116547458512, ...
          0.0207116547458512, ...
          0.0207116547458512, ...
          0.0207116547458512, ...
          0.0207116547458512, ...
          0.0162472703731490, ...
          0.0162472703731490, ...
          0.0162472703731490, ...
          0.0162472703731490, ...
          0.0162472703731490, ...
          0.0162472703731490, ...
          0.0162472703731490, ...
          0.0162472703731490, ...
          0.0097451380991026, ...
          0.0097451380991026, ...
          0.0097451380991026, ...
          0.0097451380991026, ...
          0.0097451380991026, ...
          0.0097451380991026, ...
          0.0097451380991026, ...
          0.0097451380991026, ...
          0.0024723502336859, ...
          0.0024723502336859, ...
          0.0024723502336859, ...
          0.0024723502336859, ...
          0.0024723502336859, ...
          0.0024723502336859, ...
          0.0024723502336859, ...
          0.0024723502336859 ];

  return
end
