function [ a, b, c, w ] = rule20 ( )

%*****************************************************************************80
%
%% rule20() returns the rule of precision 20.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    09 June 2023
%
%  Author:
%
%    John Burkardt
%
%  Reference:
%
%    Hong Xiao, Zydrunas Gimbutas,
%    A numerical algorithm for the construction of efficient
%    quadrature rules in two and higher dimensions, 
%    Computers and Mathematics with Applications,
%    Volume 59, 2010, pages 663-676.
%
%  Output:
%
%    real a(n), b(n), c(n): the barycentric coordinates of quadrature points.
%
%    real w(n): the quadrature weights.
%
  a = [ ...
          0.1862949977445409, ...
          0.6274100045109180, ...
          0.1862949977445411, ...
          0.0373108805988846, ...
          0.9253782388022305, ...
          0.0373108805988850, ...
          0.4762456115404990, ...
          0.4762456115404990, ...
          0.0475087769190019, ...
          0.0640905856084340, ...
          0.9310544767839422, ...
          0.0048549376076240, ...
          0.9310544767839422, ...
          0.0640905856084341, ...
          0.0048549376076235, ...
          0.2156070573900944, ...
          0.6781657378896355, ...
          0.1062272047202701, ...
          0.6781657378896355, ...
          0.2156070573900943, ...
          0.1062272047202699, ...
          0.4455510569559248, ...
          0.4455510569559248, ...
          0.1088978860881503, ...
          0.1591337076570672, ...
          0.8332955118382362, ...
          0.0075707805046966, ...
          0.8332955118382362, ...
          0.1591337076570672, ...
          0.0075707805046964, ...
          0.3178601238357719, ...
          0.5423318041724280, ...
          0.1398080719918000, ...
          0.5423318041724280, ...
          0.3178601238357719, ...
          0.1398080719917999, ...
          0.2545792676733390, ...
          0.4908414646533217, ...
          0.2545792676733392, ...
          0.3333333333333333, ...
          0.1985181322287882, ...
          0.7549215028635475, ...
          0.0465603649076644, ...
          0.7549215028635474, ...
          0.1985181322287882, ...
          0.0465603649076642, ...
          0.3934253478170998, ...
          0.3934253478170998, ...
          0.2131493043658002, ...
          0.0999522962881386, ...
          0.8616840189364867, ...
          0.0383636847753748, ...
          0.8616840189364866, ...
          0.0999522962881387, ...
          0.0383636847753744, ...
          0.4200237588162241, ...
          0.5701446928909734, ...
          0.0098315482928025, ...
          0.5701446928909734, ...
          0.4200237588162241, ...
          0.0098315482928025, ...
          0.3331348173095874, ...
          0.6118777035474257, ...
          0.0549874791429869, ...
          0.6118777035474257, ...
          0.3331348173095874, ...
          0.0549874791429867, ...
          0.2805814114236652, ...
          0.7086813757203236, ...
          0.0107372128560111, ...
          0.7086813757203237, ...
          0.2805814114236653, ...
          0.0107372128560110, ...
          0.0109761410283976, ...
          0.9780477179432044, ...
          0.0109761410283981, ...
          0.1093835967117145, ...
          0.7812328065765708, ...
          0.1093835967117148 ];

  b = [ ...
          0.1862949977445411, ...
          0.1862949977445409, ...
          0.6274100045109182, ...
          0.0373108805988849, ...
          0.0373108805988846, ...
          0.9253782388022306, ...
          0.0475087769190020, ...
          0.4762456115404990, ...
          0.4762456115404993, ...
          0.0048549376076238, ...
          0.0640905856084340, ...
          0.9310544767839423, ...
          0.0048549376076238, ...
          0.9310544767839423, ...
          0.0640905856084343, ...
          0.1062272047202701, ...
          0.2156070573900944, ...
          0.6781657378896357, ...
          0.1062272047202701, ...
          0.6781657378896357, ...
          0.2156070573900946, ...
          0.1088978860881504, ...
          0.4455510569559249, ...
          0.4455510569559250, ...
          0.0075707805046966, ...
          0.1591337076570672, ...
          0.8332955118382365, ...
          0.0075707805046966, ...
          0.8332955118382364, ...
          0.1591337076570676, ...
          0.1398080719918000, ...
          0.3178601238357721, ...
          0.5423318041724282, ...
          0.1398080719918000, ...
          0.5423318041724282, ...
          0.3178601238357722, ...
          0.2545792676733392, ...
          0.2545792676733392, ...
          0.4908414646533218, ...
          0.3333333333333334, ...
          0.0465603649076644, ...
          0.1985181322287882, ...
          0.7549215028635476, ...
          0.0465603649076644, ...
          0.7549215028635476, ...
          0.1985181322287885, ...
          0.2131493043658003, ...
          0.3934253478171000, ...
          0.3934253478171000, ...
          0.0383636847753747, ...
          0.0999522962881386, ...
          0.8616840189364868, ...
          0.0383636847753747, ...
          0.8616840189364868, ...
          0.0999522962881389, ...
          0.0098315482928026, ...
          0.4200237588162241, ...
          0.5701446928909736, ...
          0.0098315482928026, ...
          0.5701446928909735, ...
          0.4200237588162243, ...
          0.0549874791429869, ...
          0.3331348173095875, ...
          0.6118777035474259, ...
          0.0549874791429869, ...
          0.6118777035474258, ...
          0.3331348173095877, ...
          0.0107372128560111, ...
          0.2805814114236653, ...
          0.7086813757203239, ...
          0.0107372128560111, ...
          0.7086813757203237, ...
          0.2805814114236655, ...
          0.0109761410283979, ...
          0.0109761410283976, ...
          0.9780477179432047, ...
          0.1093835967117148, ...
          0.1093835967117145, ...
          0.7812328065765709 ];

  c = [ ...
          0.6274100045109180, ...
          0.1862949977445411, ...
          0.1862949977445406, ...
          0.9253782388022306, ...
          0.0373108805988850, ...
          0.0373108805988843, ...
          0.4762456115404990, ...
          0.0475087769190020, ...
          0.4762456115404988, ...
          0.9310544767839422, ...
          0.0048549376076238, ...
          0.0640905856084338, ...
          0.0640905856084340, ...
          0.0048549376076236, ...
          0.9310544767839422, ...
          0.6781657378896355, ...
          0.1062272047202700, ...
          0.2156070573900941, ...
          0.2156070573900944, ...
          0.1062272047202699, ...
          0.6781657378896354, ...
          0.4455510569559248, ...
          0.1088978860881503, ...
          0.4455510569559247, ...
          0.8332955118382361, ...
          0.0075707805046965, ...
          0.1591337076570670, ...
          0.1591337076570672, ...
          0.0075707805046964, ...
          0.8332955118382360, ...
          0.5423318041724281, ...
          0.1398080719918000, ...
          0.3178601238357718, ...
          0.3178601238357720, ...
          0.1398080719917999, ...
          0.5423318041724279, ...
          0.4908414646533217, ...
          0.2545792676733392, ...
          0.2545792676733390, ...
          0.3333333333333333, ...
          0.7549215028635475, ...
          0.0465603649076643, ...
          0.1985181322287879, ...
          0.1985181322287882, ...
          0.0465603649076641, ...
          0.7549215028635474, ...
          0.3934253478170998, ...
          0.2131493043658002, ...
          0.3934253478170998, ...
          0.8616840189364867, ...
          0.0383636847753747, ...
          0.0999522962881384, ...
          0.0999522962881387, ...
          0.0383636847753744, ...
          0.8616840189364866, ...
          0.5701446928909732, ...
          0.0098315482928025, ...
          0.4200237588162239, ...
          0.4200237588162241, ...
          0.0098315482928024, ...
          0.5701446928909732, ...
          0.6118777035474258, ...
          0.0549874791429869, ...
          0.3331348173095873, ...
          0.3331348173095875, ...
          0.0549874791429869, ...
          0.6118777035474255, ...
          0.7086813757203236, ...
          0.0107372128560111, ...
          0.2805814114236650, ...
          0.2805814114236652, ...
          0.0107372128560109, ...
          0.7086813757203236, ...
          0.9780477179432044, ...
          0.0109761410283980, ...
          0.0109761410283972, ...
          0.7812328065765708, ...
          0.1093835967117147, ...
          0.1093835967117144 ];

  w = [ ...
          0.0183469259485058, ...
          0.0183469259485058, ...
          0.0183469259485058, ...
          0.0043225508213312, ...
          0.0043225508213312, ...
          0.0043225508213312, ...
          0.0142036506068169, ...
          0.0142036506068169, ...
          0.0142036506068169, ...
          0.0022597392042517, ...
          0.0022597392042517, ...
          0.0022597392042517, ...
          0.0022597392042517, ...
          0.0022597392042517, ...
          0.0022597392042517, ...
          0.0154452156441985, ...
          0.0154452156441985, ...
          0.0154452156441985, ...
          0.0154452156441985, ...
          0.0154452156441985, ...
          0.0154452156441985, ...
          0.0189047998664649, ...
          0.0189047998664649, ...
          0.0189047998664649, ...
          0.0044057948371170, ...
          0.0044057948371170, ...
          0.0044057948371170, ...
          0.0044057948371170, ...
          0.0044057948371170, ...
          0.0044057948371170, ...
          0.0233834914636555, ...
          0.0233834914636555, ...
          0.0233834914636555, ...
          0.0233834914636555, ...
          0.0233834914636555, ...
          0.0233834914636555, ...
          0.0281664026150405, ...
          0.0281664026150405, ...
          0.0281664026150405, ...
          0.0278202214029062, ...
          0.0119727971579094, ...
          0.0119727971579094, ...
          0.0119727971579094, ...
          0.0119727971579094, ...
          0.0119727971579094, ...
          0.0119727971579094, ...
          0.0275761012581409, ...
          0.0275761012581409, ...
          0.0275761012581409, ...
          0.0082914230552277, ...
          0.0082914230552277, ...
          0.0082914230552277, ...
          0.0082914230552277, ...
          0.0082914230552277, ...
          0.0082914230552277, ...
          0.0073913630005106, ...
          0.0073913630005106, ...
          0.0073913630005106, ...
          0.0073913630005106, ...
          0.0073913630005106, ...
          0.0073913630005106, ...
          0.0173344511344387, ...
          0.0173344511344387, ...
          0.0173344511344387, ...
          0.0173344511344387, ...
          0.0173344511344387, ...
          0.0173344511344387, ...
          0.0071564004769154, ...
          0.0071564004769154, ...
          0.0071564004769154, ...
          0.0071564004769154, ...
          0.0071564004769154, ...
          0.0071564004769154, ...
          0.0015976815821332, ...
          0.0015976815821332, ...
          0.0015976815821332, ...
          0.0156604615521491, ...
          0.0156604615521491, ...
          0.0156604615521491 ];

  return
end
