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

%*****************************************************************************80
%
%% rule20() returns the rule of precision 20.
%
%  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.2545792676733391, ...
      0.4908414646533218, ...
      0.2545792676733391, ...
      0.0109761410283978, ...
      0.9780477179432046, ...
      0.0109761410283978, ...
      0.1093835967117146, ...
      0.7812328065765708, ...
      0.1093835967117146, ...
      0.1862949977445409, ...
      0.6274100045109181, ...
      0.1862949977445409, ...
      0.4455510569559248, ...
      0.1088978860881504, ...
      0.4455510569559248, ...
      0.0373108805988847, ...
      0.9253782388022307, ...
      0.0373108805988847, ...
      0.3934253478170999, ...
      0.2131493043658003, ...
      0.3934253478170999, ...
      0.4762456115404990, ...
      0.0475087769190020, ...
      0.4762456115404990, ...
      0.0075707805046965, ...
      0.8332955118382362, ...
      0.1591337076570672, ...
      0.8332955118382362, ...
      0.1591337076570672, ...
      0.0075707805046965, ...
      0.0465603649076643, ...
      0.7549215028635474, ...
      0.1985181322287882, ...
      0.7549215028635474, ...
      0.1985181322287882, ...
      0.0465603649076643, ...
      0.0640905856084341, ...
      0.9310544767839422, ...
      0.0048549376076237, ...
      0.9310544767839422, ...
      0.0048549376076237, ...
      0.0640905856084341, ...
      0.0549874791429868, ...
      0.6118777035474257, ...
      0.3331348173095875, ...
      0.6118777035474257, ...
      0.3331348173095875, ...
      0.0549874791429868, ...
      0.0999522962881387, ...
      0.8616840189364867, ...
      0.0383636847753746, ...
      0.8616840189364867, ...
      0.0383636847753746, ...
      0.0999522962881387, ...
      0.1062272047202700, ...
      0.6781657378896355, ...
      0.2156070573900944, ...
      0.6781657378896355, ...
      0.2156070573900944, ...
      0.1062272047202700, ...
      0.4200237588162241, ...
      0.5701446928909734, ...
      0.0098315482928026, ...
      0.5701446928909734, ...
      0.0098315482928026, ...
      0.4200237588162241, ...
      0.3178601238357720, ...
      0.5423318041724281, ...
      0.1398080719917999, ...
      0.5423318041724281, ...
      0.1398080719917999, ...
      0.3178601238357720, ...
      0.0107372128560111, ...
      0.7086813757203236, ...
      0.2805814114236652, ...
      0.7086813757203236, ...
      0.2805814114236652, ...
      0.0107372128560111 ];

  y = [ ...
      0.3333333333333334, ...
      0.4908414646533218, ...
      0.2545792676733391, ...
      0.2545792676733391, ...
      0.9780477179432046, ...
      0.0109761410283978, ...
      0.0109761410283978, ...
      0.7812328065765708, ...
      0.1093835967117146, ...
      0.1093835967117146, ...
      0.6274100045109181, ...
      0.1862949977445409, ...
      0.1862949977445409, ...
      0.1088978860881504, ...
      0.4455510569559248, ...
      0.4455510569559248, ...
      0.9253782388022307, ...
      0.0373108805988847, ...
      0.0373108805988847, ...
      0.2131493043658003, ...
      0.3934253478170999, ...
      0.3934253478170999, ...
      0.0475087769190020, ...
      0.4762456115404990, ...
      0.4762456115404990, ...
      0.8332955118382362, ...
      0.0075707805046965, ...
      0.8332955118382362, ...
      0.1591337076570672, ...
      0.0075707805046965, ...
      0.1591337076570672, ...
      0.7549215028635474, ...
      0.0465603649076643, ...
      0.7549215028635474, ...
      0.1985181322287882, ...
      0.0465603649076643, ...
      0.1985181322287882, ...
      0.9310544767839422, ...
      0.0640905856084341, ...
      0.9310544767839422, ...
      0.0048549376076237, ...
      0.0640905856084341, ...
      0.0048549376076237, ...
      0.6118777035474257, ...
      0.0549874791429868, ...
      0.6118777035474257, ...
      0.3331348173095875, ...
      0.0549874791429868, ...
      0.3331348173095875, ...
      0.8616840189364867, ...
      0.0999522962881387, ...
      0.8616840189364867, ...
      0.0383636847753746, ...
      0.0999522962881387, ...
      0.0383636847753746, ...
      0.6781657378896355, ...
      0.1062272047202700, ...
      0.6781657378896355, ...
      0.2156070573900944, ...
      0.1062272047202700, ...
      0.2156070573900944, ...
      0.5701446928909734, ...
      0.4200237588162241, ...
      0.5701446928909734, ...
      0.0098315482928026, ...
      0.4200237588162241, ...
      0.0098315482928026, ...
      0.5423318041724281, ...
      0.3178601238357720, ...
      0.5423318041724281, ...
      0.1398080719917999, ...
      0.3178601238357720, ...
      0.1398080719917999, ...
      0.7086813757203236, ...
      0.0107372128560111, ...
      0.7086813757203236, ...
      0.2805814114236652, ...
      0.0107372128560111, ...
      0.2805814114236652 ];

  z = [ ...
      0.3333333333333333, ...
      0.2545792676733390, ...
      0.2545792676733391, ...
      0.4908414646533217, ...
      0.0109761410283977, ...
      0.0109761410283977, ...
      0.9780477179432046, ...
      0.1093835967117146, ...
      0.1093835967117146, ...
      0.7812328065765708, ...
      0.1862949977445409, ...
      0.1862949977445409, ...
      0.6274100045109181, ...
      0.4455510569559248, ...
      0.4455510569559248, ...
      0.1088978860881504, ...
      0.0373108805988847, ...
      0.0373108805988846, ...
      0.9253782388022307, ...
      0.3934253478170998, ...
      0.3934253478170999, ...
      0.2131493043658002, ...
      0.4762456115404991, ...
      0.4762456115404991, ...
      0.0475087769190021, ...
      0.1591337076570672, ...
      0.1591337076570672, ...
      0.0075707805046965, ...
      0.0075707805046965, ...
      0.8332955118382362, ...
      0.8332955118382362, ...
      0.1985181322287883, ...
      0.1985181322287883, ...
      0.0465603649076645, ...
      0.0465603649076644, ...
      0.7549215028635476, ...
      0.7549215028635476, ...
      0.0048549376076238, ...
      0.0048549376076238, ...
      0.0640905856084342, ...
      0.0640905856084341, ...
      0.9310544767839423, ...
      0.9310544767839422, ...
      0.3331348173095876, ...
      0.3331348173095875, ...
      0.0549874791429869, ...
      0.0549874791429869, ...
      0.6118777035474257, ...
      0.6118777035474258, ...
      0.0383636847753746, ...
      0.0383636847753746, ...
      0.0999522962881387, ...
      0.0999522962881387, ...
      0.8616840189364867, ...
      0.8616840189364867, ...
      0.2156070573900944, ...
      0.2156070573900944, ...
      0.1062272047202701, ...
      0.1062272047202701, ...
      0.6781657378896356, ...
      0.6781657378896355, ...
      0.0098315482928025, ...
      0.0098315482928025, ...
      0.4200237588162240, ...
      0.4200237588162241, ...
      0.5701446928909732, ...
      0.5701446928909732, ...
      0.1398080719917999, ...
      0.1398080719917999, ...
      0.3178601238357720, ...
      0.3178601238357720, ...
      0.5423318041724281, ...
      0.5423318041724281, ...
      0.2805814114236653, ...
      0.2805814114236653, ...
      0.0107372128560111, ...
      0.0107372128560111, ...
      0.7086813757203236, ...
      0.7086813757203237 ];

  w = [ ...
      0.0139101107014531, ...
      0.0140832013075202, ...
      0.0140832013075202, ...
      0.0140832013075202, ...
      0.0007988407910666, ...
      0.0007988407910666, ...
      0.0007988407910666, ...
      0.0078302307760745, ...
      0.0078302307760745, ...
      0.0078302307760745, ...
      0.0091734629742529, ...
      0.0091734629742529, ...
      0.0091734629742529, ...
      0.0094523999332324, ...
      0.0094523999332324, ...
      0.0094523999332324, ...
      0.0021612754106656, ...
      0.0021612754106656, ...
      0.0021612754106656, ...
      0.0137880506290705, ...
      0.0137880506290705, ...
      0.0137880506290705, ...
      0.0071018253034084, ...
      0.0071018253034084, ...
      0.0071018253034084, ...
      0.0022028974185585, ...
      0.0022028974185585, ...
      0.0022028974185585, ...
      0.0022028974185585, ...
      0.0022028974185585, ...
      0.0022028974185585, ...
      0.0059863985789547, ...
      0.0059863985789547, ...
      0.0059863985789547, ...
      0.0059863985789547, ...
      0.0059863985789547, ...
      0.0059863985789547, ...
      0.0011298696021259, ...
      0.0011298696021259, ...
      0.0011298696021259, ...
      0.0011298696021259, ...
      0.0011298696021259, ...
      0.0011298696021259, ...
      0.0086672255672193, ...
      0.0086672255672193, ...
      0.0086672255672193, ...
      0.0086672255672193, ...
      0.0086672255672193, ...
      0.0086672255672193, ...
      0.0041457115276139, ...
      0.0041457115276139, ...
      0.0041457115276139, ...
      0.0041457115276139, ...
      0.0041457115276139, ...
      0.0041457115276139, ...
      0.0077226078220992, ...
      0.0077226078220992, ...
      0.0077226078220992, ...
      0.0077226078220992, ...
      0.0077226078220992, ...
      0.0077226078220992, ...
      0.0036956815002553, ...
      0.0036956815002553, ...
      0.0036956815002553, ...
      0.0036956815002553, ...
      0.0036956815002553, ...
      0.0036956815002553, ...
      0.0116917457318277, ...
      0.0116917457318277, ...
      0.0116917457318277, ...
      0.0116917457318277, ...
      0.0116917457318277, ...
      0.0116917457318277, ...
      0.0035782002384577, ...
      0.0035782002384577, ...
      0.0035782002384577, ...
      0.0035782002384577, ...
      0.0035782002384577, ...
      0.0035782002384577 ];
%
%  The weights should sum to 1, not 1/2!
%
  w = w * 2.0;

  return
end
