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

%*****************************************************************************80
%
%% rule15() returns the rule of precision 15.
%
%  Discussion:
%
%    The data is given for the following triangle:
%
%     (0,1) 
%       |   \ 
%       |    \ 
%       |     \ 
%       |      \ 
%     (0,0)----(1,0)
%
%    We suppose we are given a triangle T with vertices A, B, C.
%    We call a rule with n points, returning barycentric coordinates
%    a, b, c, and weights w.  Then the integral I of f(x,y) over T is 
%    approximated by Q as follows:
%
%    (x,y) = a(1:n) * A + b(1:n) * B + c(1:n) * C
%    Q = area(T) * sum ( 1 <= i <= n ) w(i) * f(x(i),y(i)) 
%
%  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 a(n), b(n), c(n): the barycentric coordinates of quadrature points.
%
%    real w(n): the quadrature weights, which sum to 1.
%
  a = [ ...
      0.3333333333333334, ...
      0.4053622141339755, ...
      0.1892755717320491, ...
      0.4053622141339755, ...
      0.0701735528999860, ...
      0.8596528942000279, ...
      0.0701735528999860, ...
      0.4741706814380198, ...
      0.0516586371239604, ...
      0.4741706814380198, ...
      0.2263787134203496, ...
      0.5472425731593008, ...
      0.2263787134203496, ...
      0.4949969567691262, ...
      0.0100060864617476, ...
      0.4949969567691262, ...
      0.0158117262509886, ...
      0.9683765474980227, ...
      0.0158117262509886, ...
      0.0183761123856811, ...
      0.6669756448018681, ...
      0.3146482428124509, ...
      0.6669756448018681, ...
      0.3146482428124509, ...
      0.0183761123856811, ...
      0.0091392370373084, ...
      0.9199121577262361, ...
      0.0709486052364555, ...
      0.9199121577262361, ...
      0.0709486052364555, ...
      0.0091392370373084, ...
      0.1905355894763939, ...
      0.7152223569314506, ...
      0.0942420535921554, ...
      0.7152223569314506, ...
      0.0942420535921554, ...
      0.1905355894763939, ...
      0.1680686452224144, ...
      0.8132926410494192, ...
      0.0186387137281664, ...
      0.8132926410494192, ...
      0.0186387137281664, ...
      0.1680686452224144, ...
      0.3389506114752772, ...
      0.5652526648771142, ...
      0.0957967236476086, ...
      0.5652526648771142, ...
      0.0957967236476086, ...
      0.3389506114752772 ];

  b = [ ...
      0.3333333333333334, ...
      0.1892755717320491, ...
      0.4053622141339755, ...
      0.4053622141339755, ...
      0.8596528942000279, ...
      0.0701735528999860, ...
      0.0701735528999860, ...
      0.0516586371239604, ...
      0.4741706814380198, ...
      0.4741706814380198, ...
      0.5472425731593008, ...
      0.2263787134203496, ...
      0.2263787134203496, ...
      0.0100060864617476, ...
      0.4949969567691262, ...
      0.4949969567691262, ...
      0.9683765474980227, ...
      0.0158117262509886, ...
      0.0158117262509886, ...
      0.6669756448018681, ...
      0.0183761123856811, ...
      0.6669756448018681, ...
      0.3146482428124509, ...
      0.0183761123856811, ...
      0.3146482428124509, ...
      0.9199121577262361, ...
      0.0091392370373084, ...
      0.9199121577262361, ...
      0.0709486052364555, ...
      0.0091392370373084, ...
      0.0709486052364555, ...
      0.7152223569314506, ...
      0.1905355894763939, ...
      0.7152223569314506, ...
      0.0942420535921554, ...
      0.1905355894763939, ...
      0.0942420535921554, ...
      0.8132926410494192, ...
      0.1680686452224144, ...
      0.8132926410494192, ...
      0.0186387137281664, ...
      0.1680686452224144, ...
      0.0186387137281664, ...
      0.5652526648771142, ...
      0.3389506114752772, ...
      0.5652526648771142, ...
      0.0957967236476086, ...
      0.3389506114752772, ...
      0.0957967236476086 ];

  c = [ ...
      0.3333333333333333, ...
      0.4053622141339755, ...
      0.4053622141339754, ...
      0.1892755717320491, ...
      0.0701735528999861, ...
      0.0701735528999861, ...
      0.8596528942000279, ...
      0.4741706814380198, ...
      0.4741706814380198, ...
      0.0516586371239605, ...
      0.2263787134203495, ...
      0.2263787134203496, ...
      0.5472425731593007, ...
      0.4949969567691263, ...
      0.4949969567691262, ...
      0.0100060864617477, ...
      0.0158117262509886, ...
      0.0158117262509886, ...
      0.9683765474980226, ...
      0.3146482428124507, ...
      0.3146482428124508, ...
      0.0183761123856810, ...
      0.0183761123856810, ...
      0.6669756448018680, ...
      0.6669756448018680, ...
      0.0709486052364554, ...
      0.0709486052364555, ...
      0.0091392370373083, ...
      0.0091392370373083, ...
      0.9199121577262361, ...
      0.9199121577262360, ...
      0.0942420535921554, ...
      0.0942420535921554, ...
      0.1905355894763940, ...
      0.1905355894763940, ...
      0.7152223569314508, ...
      0.7152223569314506, ...
      0.0186387137281664, ...
      0.0186387137281664, ...
      0.1680686452224144, ...
      0.1680686452224144, ...
      0.8132926410494192, ...
      0.8132926410494192, ...
      0.0957967236476086, ...
      0.0957967236476086, ...
      0.3389506114752772, ...
      0.3389506114752772, ...
      0.5652526648771142, ...
      0.5652526648771142 ];

  w = [ ...
      0.0443353873821841, ...
      0.0427137815714606, ...
      0.0427137815714606, ...
      0.0427137815714606, ...
      0.0164447375626252, ...
      0.0164447375626252, ...
      0.0164447375626252, ...
      0.0173961480007634, ...
      0.0173961480007634, ...
      0.0173961480007634, ...
      0.0467833617287096, ...
      0.0467833617287096, ...
      0.0467833617287096, ...
      0.0095738461824601, ...
      0.0095738461824601, ...
      0.0095738461824601, ...
      0.0029607746379054, ...
      0.0029607746379054, ...
      0.0029607746379054, ...
      0.0156025728305760, ...
      0.0156025728305760, ...
      0.0156025728305760, ...
      0.0156025728305760, ...
      0.0156025728305760, ...
      0.0156025728305760, ...
      0.0040298533720181, ...
      0.0040298533720181, ...
      0.0040298533720181, ...
      0.0040298533720181, ...
      0.0040298533720181, ...
      0.0040298533720181, ...
      0.0287205869252013, ...
      0.0287205869252013, ...
      0.0287205869252013, ...
      0.0287205869252013, ...
      0.0287205869252013, ...
      0.0287205869252013, ...
      0.0116726211815758, ...
      0.0116726211815758, ...
      0.0116726211815758, ...
      0.0116726211815758, ...
      0.0116726211815758, ...
      0.0116726211815758, ...
      0.0313154762849693, ...
      0.0313154762849693, ...
      0.0313154762849693, ...
      0.0313154762849693, ...
      0.0313154762849693, ...
      0.0313154762849693 ];

  return
end
