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

%*****************************************************************************80
%
%% rule16() returns the rule of precision 16.
%
%  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.4137694858270852, ...
          0.5765655597692547, ...
          0.0096649544036603, ...
          0.5765655597692546, ...
          0.4137694858270852, ...
          0.0096649544036602, ...
          0.3041794482294797, ...
          0.6655146084153339, ...
          0.0303059433551864, ...
          0.6655146084153339, ...
          0.3041794482294798, ...
          0.0303059433551863, ...
          0.0666744722402382, ...
          0.8666510555195234, ...
          0.0666744722402385, ...
          0.0896090890227058, ...
          0.8995779382011904, ...
          0.0108129727761038, ...
          0.8995779382011904, ...
          0.0896090890227059, ...
          0.0108129727761035, ...
          0.2966153724003829, ...
          0.5967314670634685, ...
          0.1066531605361485, ...
          0.5967314670634686, ...
          0.2966153724003830, ...
          0.1066531605361483, ...
          0.2413216807013783, ...
          0.5173566385972432, ...
          0.2413216807013784, ...
          0.4127980959552237, ...
          0.4127980959552237, ...
          0.1744038080895526, ...
          0.1697633551502897, ...
          0.7788823295056971, ...
          0.0513543153440132, ...
          0.7788823295056972, ...
          0.1697633551502898, ...
          0.0513543153440130, ...
          0.1500637365870350, ...
          0.6998725268259297, ...
          0.1500637365870353, ...
          0.2140487799258473, ...
          0.7822542773667971, ...
          0.0036969427073556, ...
          0.7822542773667971, ...
          0.2140487799258473, ...
          0.0036969427073554, ...
          0.4695480309966850, ...
          0.4695480309966850, ...
          0.0609039380066300, ...
          0.3333333333333333, ...
          0.0170416294057183, ...
          0.9659167411885631, ...
          0.0170416294057187 ];

  b = [ ...
          0.0096649544036603, ...
          0.4137694858270852, ...
          0.5765655597692547, ...
          0.0096649544036603, ...
          0.5765655597692547, ...
          0.4137694858270854, ...
          0.0303059433551864, ...
          0.3041794482294797, ...
          0.6655146084153342, ...
          0.0303059433551864, ...
          0.6655146084153339, ...
          0.3041794482294800, ...
          0.0666744722402385, ...
          0.0666744722402381, ...
          0.8666510555195236, ...
          0.0108129727761038, ...
          0.0896090890227058, ...
          0.8995779382011906, ...
          0.0108129727761038, ...
          0.8995779382011906, ...
          0.0896090890227062, ...
          0.1066531605361485, ...
          0.2966153724003830, ...
          0.5967314670634687, ...
          0.1066531605361485, ...
          0.5967314670634686, ...
          0.2966153724003832, ...
          0.2413216807013785, ...
          0.2413216807013784, ...
          0.5173566385972433, ...
          0.1744038080895527, ...
          0.4127980959552238, ...
          0.4127980959552238, ...
          0.0513543153440131, ...
          0.1697633551502898, ...
          0.7788823295056972, ...
          0.0513543153440131, ...
          0.7788823295056971, ...
          0.1697633551502900, ...
          0.1500637365870353, ...
          0.1500637365870350, ...
          0.6998725268259298, ...
          0.0036969427073556, ...
          0.2140487799258473, ...
          0.7822542773667974, ...
          0.0036969427073556, ...
          0.7822542773667972, ...
          0.2140487799258476, ...
          0.0609039380066301, ...
          0.4695480309966850, ...
          0.4695480309966852, ...
          0.3333333333333334, ...
          0.0170416294057186, ...
          0.0170416294057182, ...
          0.9659167411885633 ];

  c = [ ...
          0.5765655597692546, ...
          0.0096649544036601, ...
          0.4137694858270851, ...
          0.4137694858270851, ...
          0.0096649544036601, ...
          0.5765655597692544, ...
          0.6655146084153339, ...
          0.0303059433551863, ...
          0.3041794482294794, ...
          0.3041794482294797, ...
          0.0303059433551863, ...
          0.6655146084153338, ...
          0.8666510555195234, ...
          0.0666744722402385, ...
          0.0666744722402378, ...
          0.8995779382011905, ...
          0.0108129727761038, ...
          0.0896090890227056, ...
          0.0896090890227059, ...
          0.0108129727761035, ...
          0.8995779382011904, ...
          0.5967314670634686, ...
          0.1066531605361485, ...
          0.2966153724003828, ...
          0.2966153724003829, ...
          0.1066531605361484, ...
          0.5967314670634685, ...
          0.5173566385972432, ...
          0.2413216807013784, ...
          0.2413216807013782, ...
          0.4127980959552237, ...
          0.1744038080895526, ...
          0.4127980959552236, ...
          0.7788823295056971, ...
          0.0513543153440131, ...
          0.1697633551502895, ...
          0.1697633551502896, ...
          0.0513543153440131, ...
          0.7788823295056969, ...
          0.6998725268259297, ...
          0.1500637365870353, ...
          0.1500637365870349, ...
          0.7822542773667971, ...
          0.0036969427073556, ...
          0.2140487799258469, ...
          0.2140487799258473, ...
          0.0036969427073555, ...
          0.7822542773667970, ...
          0.4695480309966850, ...
          0.0609039380066300, ...
          0.4695480309966847, ...
          0.3333333333333333, ...
          0.9659167411885632, ...
          0.0170416294057187, ...
          0.0170416294057180 ];

  w = [ ...
          0.0081822105532221, ...
          0.0081822105532221, ...
          0.0081822105532221, ...
          0.0081822105532221, ...
          0.0081822105532221, ...
          0.0081822105532221, ...
          0.0139836071246536, ...
          0.0139836071246536, ...
          0.0139836071246536, ...
          0.0139836071246536, ...
          0.0139836071246536, ...
          0.0139836071246536, ...
          0.0124254255955610, ...
          0.0124254255955610, ...
          0.0124254255955610, ...
          0.0057518699704972, ...
          0.0057518699704972, ...
          0.0057518699704972, ...
          0.0057518699704972, ...
          0.0057518699704972, ...
          0.0057518699704972, ...
          0.0316460616819832, ...
          0.0316460616819832, ...
          0.0316460616819832, ...
          0.0316460616819832, ...
          0.0316460616819832, ...
          0.0316460616819832, ...
          0.0411840410697925, ...
          0.0411840410697925, ...
          0.0411840410697925, ...
          0.0409852197868154, ...
          0.0409852197868154, ...
          0.0409852197868154, ...
          0.0176530810471033, ...
          0.0176530810471033, ...
          0.0176530810471033, ...
          0.0176530810471033, ...
          0.0176530810471033, ...
          0.0176530810471033, ...
          0.0287834967027489, ...
          0.0287834967027489, ...
          0.0287834967027489, ...
          0.0046146906397291, ...
          0.0046146906397291, ...
          0.0046146906397291, ...
          0.0046146906397291, ...
          0.0046146906397291, ...
          0.0046146906397291, ...
          0.0270936694677105, ...
          0.0270936694677105, ...
          0.0270936694677105, ...
          0.0462279103141913, ...
          0.0037891352382642, ...
          0.0037891352382642, ...
          0.0037891352382642 ];

  return
end
