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

%*****************************************************************************80
%
%% rule09() returns the rule of precision 9.
%
%  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.4896825191987376, ...
          0.4896825191987376, ...
          0.0206349616025247, ...
          0.3333333333333333, ...
          0.1882035356190326, ...
          0.6235929287619344, ...
          0.1882035356190329, ...
          0.2219629891607657, ...
          0.7411985987844980, ...
          0.0368384120547364, ...
          0.7411985987844980, ...
          0.2219629891607658, ...
          0.0368384120547361, ...
          0.4370895914929366, ...
          0.4370895914929366, ...
          0.1258208170141267, ...
          0.0447295133944526, ...
          0.9105409732110945, ...
          0.0447295133944530 ];

  b = [ ...
          0.0206349616025248, ...
          0.4896825191987377, ...
          0.4896825191987378, ...
          0.3333333333333334, ...
          0.1882035356190329, ...
          0.1882035356190327, ...
          0.6235929287619346, ...
          0.0368384120547363, ...
          0.2219629891607657, ...
          0.7411985987844981, ...
          0.0368384120547363, ...
          0.7411985987844981, ...
          0.2219629891607660, ...
          0.1258208170141268, ...
          0.4370895914929367, ...
          0.4370895914929368, ...
          0.0447295133944529, ...
          0.0447295133944525, ...
          0.9105409732110946 ];

  c = [ ...
          0.4896825191987376, ...
          0.0206349616025246, ...
          0.4896825191987374, ...
          0.3333333333333333, ...
          0.6235929287619345, ...
          0.1882035356190329, ...
          0.1882035356190325, ...
          0.7411985987844980, ...
          0.0368384120547363, ...
          0.2219629891607655, ...
          0.2219629891607657, ...
          0.0368384120547361, ...
          0.7411985987844979, ...
          0.4370895914929366, ...
          0.1258208170141267, ...
          0.4370895914929366, ...
          0.9105409732110946, ...
          0.0447295133944530, ...
          0.0447295133944524 ];

  w = [ ...
          0.0313347002271391, ...
          0.0313347002271391, ...
          0.0313347002271391, ...
          0.0971357962827989, ...
          0.0796477389272103, ...
          0.0796477389272103, ...
          0.0796477389272103, ...
          0.0432835393772894, ...
          0.0432835393772894, ...
          0.0432835393772894, ...
          0.0432835393772894, ...
          0.0432835393772894, ...
          0.0432835393772894, ...
          0.0778275410047743, ...
          0.0778275410047743, ...
          0.0778275410047743, ...
          0.0255776756586980, ...
          0.0255776756586980, ...
          0.0255776756586980 ];

  return
end
