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

%*****************************************************************************80
%
%% rule12() returns the rule of precision 12.
%
%  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.2714625070149260, ...
          0.4570749859701477, ...
          0.2714625070149261, ...
          0.1092578276593542, ...
          0.7814843446812912, ...
          0.1092578276593545, ...
          0.4401116486585931, ...
          0.4401116486585931, ...
          0.1197767026828138, ...
          0.2554542286385173, ...
          0.6282497516835561, ...
          0.1162960196779266, ...
          0.6282497516835561, ...
          0.2554542286385174, ...
          0.1162960196779265, ...
          0.1272797172335894, ...
          0.8513377925102400, ...
          0.0213824902561707, ...
          0.8513377925102400, ...
          0.1272797172335894, ...
          0.0213824902561704, ...
          0.2916556797383409, ...
          0.6853101639063919, ...
          0.0230341563552672, ...
          0.6853101639063919, ...
          0.2916556797383410, ...
          0.0230341563552670, ...
          0.4882037509455415, ...
          0.4882037509455415, ...
          0.0235924981089169, ...
          0.0246463634363355, ...
          0.9507072731273287, ...
          0.0246463634363359 ];

  b = [ ...
          0.2714625070149262, ...
          0.2714625070149261, ...
          0.4570749859701479, ...
          0.1092578276593545, ...
          0.1092578276593542, ...
          0.7814843446812915, ...
          0.1197767026828138, ...
          0.4401116486585931, ...
          0.4401116486585933, ...
          0.1162960196779266, ...
          0.2554542286385174, ...
          0.6282497516835562, ...
          0.1162960196779266, ...
          0.6282497516835562, ...
          0.2554542286385176, ...
          0.0213824902561706, ...
          0.1272797172335893, ...
          0.8513377925102402, ...
          0.0213824902561706, ...
          0.8513377925102402, ...
          0.1272797172335897, ...
          0.0230341563552672, ...
          0.2916556797383410, ...
          0.6853101639063921, ...
          0.0230341563552672, ...
          0.6853101639063920, ...
          0.2916556797383412, ...
          0.0235924981089169, ...
          0.4882037509455416, ...
          0.4882037509455417, ...
          0.0246463634363358, ...
          0.0246463634363355, ...
          0.9507072731273288 ];

  c = [ ...
          0.4570749859701478, ...
          0.2714625070149261, ...
          0.2714625070149260, ...
          0.7814843446812914, ...
          0.1092578276593545, ...
          0.1092578276593540, ...
          0.4401116486585931, ...
          0.1197767026828138, ...
          0.4401116486585929, ...
          0.6282497516835560, ...
          0.1162960196779265, ...
          0.2554542286385172, ...
          0.2554542286385172, ...
          0.1162960196779265, ...
          0.6282497516835559, ...
          0.8513377925102400, ...
          0.0213824902561707, ...
          0.1272797172335890, ...
          0.1272797172335894, ...
          0.0213824902561704, ...
          0.8513377925102400, ...
          0.6853101639063919, ...
          0.0230341563552671, ...
          0.2916556797383407, ...
          0.2916556797383409, ...
          0.0230341563552671, ...
          0.6853101639063917, ...
          0.4882037509455416, ...
          0.0235924981089169, ...
          0.4882037509455414, ...
          0.9507072731273288, ...
          0.0246463634363358, ...
          0.0246463634363353 ];

  w = [ ...
          0.0625412131959027, ...
          0.0625412131959027, ...
          0.0625412131959027, ...
          0.0284860520688775, ...
          0.0284860520688775, ...
          0.0284860520688775, ...
          0.0499183349280609, ...
          0.0499183349280609, ...
          0.0499183349280609, ...
          0.0432273636594142, ...
          0.0432273636594142, ...
          0.0432273636594142, ...
          0.0432273636594142, ...
          0.0432273636594142, ...
          0.0432273636594142, ...
          0.0150836775765114, ...
          0.0150836775765114, ...
          0.0150836775765114, ...
          0.0150836775765114, ...
          0.0150836775765114, ...
          0.0150836775765114, ...
          0.0217835850386075, ...
          0.0217835850386075, ...
          0.0217835850386075, ...
          0.0217835850386075, ...
          0.0217835850386075, ...
          0.0217835850386075, ...
          0.0242668380814520, ...
          0.0242668380814520, ...
          0.0242668380814520, ...
          0.0079316425099736, ...
          0.0079316425099736, ...
          0.0079316425099736 ];

  return
end
