function [ x, y, z, w ] = rule09 ( )

%*****************************************************************************80
%
%% rule09() returns the rule of precision 9.
%
%  Discussion:
%
%    The data is given for the following triangle:
%
%     (0,1) 
%       |   \ 
%       |    \ 
%       |     \ 
%       |      \ 
%     (0,0)----(1,0)
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    23 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), z(n): the barycentric coordinates of quadrature points.
%
%    real w(n): the quadrature weights.
%
  x = [ ...
      0.3333333333333334, ...
      0.4370895914929366, ...
      0.1258208170141267, ...
      0.4370895914929366, ...
      0.1882035356190327, ...
      0.6235929287619345, ...
      0.1882035356190327, ...
      0.4896825191987376, ...
      0.0206349616025248, ...
      0.4896825191987376, ...
      0.0447295133944527, ...
      0.9105409732110945, ...
      0.0447295133944527, ...
      0.0368384120547363, ...
      0.7411985987844980, ...
      0.2219629891607657, ...
      0.7411985987844980, ...
      0.2219629891607657, ...
      0.0368384120547363 ];

  y = [ ...
      0.3333333333333334, ...
      0.1258208170141267, ...
      0.4370895914929366, ...
      0.4370895914929366, ...
      0.6235929287619345, ...
      0.1882035356190327, ...
      0.1882035356190327, ...
      0.0206349616025248, ...
      0.4896825191987376, ...
      0.4896825191987376, ...
      0.9105409732110945, ...
      0.0447295133944527, ...
      0.0447295133944527, ...
      0.7411985987844980, ...
      0.0368384120547363, ...
      0.7411985987844980, ...
      0.2219629891607657, ...
      0.0368384120547363, ...
      0.2219629891607657 ];

  z = [ ...
      0.3333333333333333, ...
      0.4370895914929366, ...
      0.4370895914929366, ...
      0.1258208170141267, ...
      0.1882035356190327, ...
      0.1882035356190327, ...
      0.6235929287619344, ...
      0.4896825191987376, ...
      0.4896825191987376, ...
      0.0206349616025248, ...
      0.0447295133944527, ...
      0.0447295133944528, ...
      0.9105409732110945, ...
      0.2219629891607657, ...
      0.2219629891607657, ...
      0.0368384120547363, ...
      0.0368384120547363, ...
      0.7411985987844980, ...
      0.7411985987844980 ];

  w = [ ...
      0.0485678981413994, ...
      0.0389137705023871, ...
      0.0389137705023871, ...
      0.0389137705023871, ...
      0.0398238694636051, ...
      0.0398238694636051, ...
      0.0398238694636051, ...
      0.0156673501135695, ...
      0.0156673501135695, ...
      0.0156673501135695, ...
      0.0127888378293490, ...
      0.0127888378293490, ...
      0.0127888378293490, ...
      0.0216417696886447, ...
      0.0216417696886447, ...
      0.0216417696886447, ...
      0.0216417696886447, ...
      0.0216417696886447, ...
      0.0216417696886447 ];
%
%  The weights should sum to 1, not 1/2!
%
  w = w * 2.0;

  return
end
