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

%*****************************************************************************80
%
%% rule10() returns the rule of precision 10.
%
%  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.0320553732169435, ...
      0.9358892535661130, ...
      0.0320553732169435, ...
      0.1421611010565644, ...
      0.7156777978868712, ...
      0.1421611010565644, ...
      0.3218129952888354, ...
      0.5300541189273440, ...
      0.1481328857838206, ...
      0.5300541189273440, ...
      0.1481328857838206, ...
      0.3218129952888354, ...
      0.0296198894887298, ...
      0.6012333286834592, ...
      0.3691467818278110, ...
      0.6012333286834592, ...
      0.3691467818278110, ...
      0.0296198894887298, ...
      0.0283676653399385, ...
      0.8079306009228790, ...
      0.1637017337371825, ...
      0.8079306009228790, ...
      0.1637017337371825, ...
      0.0283676653399385 ];

  y = [ ...
      0.3333333333333334, ...
      0.9358892535661130, ...
      0.0320553732169435, ...
      0.0320553732169435, ...
      0.7156777978868712, ...
      0.1421611010565644, ...
      0.1421611010565644, ...
      0.5300541189273440, ...
      0.3218129952888354, ...
      0.5300541189273440, ...
      0.1481328857838206, ...
      0.3218129952888354, ...
      0.1481328857838206, ...
      0.6012333286834592, ...
      0.0296198894887298, ...
      0.6012333286834592, ...
      0.3691467818278110, ...
      0.0296198894887298, ...
      0.3691467818278110, ...
      0.8079306009228790, ...
      0.0283676653399385, ...
      0.8079306009228790, ...
      0.1637017337371825, ...
      0.0283676653399385, ...
      0.1637017337371825 ];

  z = [ ...
      0.3333333333333333, ...
      0.0320553732169435, ...
      0.0320553732169435, ...
      0.9358892535661130, ...
      0.1421611010565643, ...
      0.1421611010565644, ...
      0.7156777978868711, ...
      0.1481328857838206, ...
      0.1481328857838206, ...
      0.3218129952888354, ...
      0.3218129952888354, ...
      0.5300541189273440, ...
      0.5300541189273440, ...
      0.3691467818278109, ...
      0.3691467818278110, ...
      0.0296198894887297, ...
      0.0296198894887297, ...
      0.6012333286834592, ...
      0.6012333286834591, ...
      0.1637017337371824, ...
      0.1637017337371825, ...
      0.0283676653399385, ...
      0.0283676653399385, ...
      0.8079306009228790, ...
      0.8079306009228790 ];

  w = [ ...
      0.0408716645731430, ...
      0.0066764844065748, ...
      0.0066764844065748, ...
      0.0066764844065748, ...
      0.0229789818023724, ...
      0.0229789818023724, ...
      0.0229789818023724, ...
      0.0319524531982120, ...
      0.0319524531982120, ...
      0.0319524531982120, ...
      0.0319524531982120, ...
      0.0319524531982120, ...
      0.0319524531982120, ...
      0.0170923240814797, ...
      0.0170923240814797, ...
      0.0170923240814797, ...
      0.0170923240814797, ...
      0.0170923240814797, ...
      0.0170923240814797, ...
      0.0126488788536442, ...
      0.0126488788536442, ...
      0.0126488788536442, ...
      0.0126488788536442, ...
      0.0126488788536442, ...
      0.0126488788536442 ];
%
%  The weights should sum to 1, not 1/2!
%
  w = w * 2.0;

  return
end
