function [ a, b, c, d, w ] = rule08 ( )

%*****************************************************************************80
%
%% rule08() returns the rule of precision 8.
%
%  Discussion:
%
%    The data is given for the reference tetrahedron
%    with vertices (0,0,0), (1,0,0), (0,1,0), (0,0,1).
%
%    We suppose we are given a tetrahedron T with vertices A, B, C, D.
%    We call a rule with n points, returning barycentric coordinates
%    a, b, c, d, and weights w.  Then the integral I of f(x,y,z) over T is 
%    approximated by Q as follows:
%
%    (x,y,z) = a(1:n) * A + b(1:n) * B + c(1:n) * C + d(1:n * D
%    Q = area(T) * sum ( 1 <= i <= n ) w(i) * f(x(i),y(i),z(i)) 
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    24 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:
%
%    a(n), b(n), c(n), d(n): the barycentric coordinates of quadrature points.
%
%    w(n): the quadrature weights, which sum to 1.
%
  a = [ ...
      0.10795272496221086644, ...
      0.10795272496221086644, ...
      0.67614182511336751169, ...
      0.10795272496221086644, ...
      0.18510948778258656811, ...
      0.18510948778258656811, ...
      0.44467153665224029568, ...
      0.18510948778258656811, ...
      0.04231654368476728267, ...
      0.04231654368476728267, ...
      0.87305036894569809647, ...
      0.04231654368476728267, ...
      0.31418170912403897699, ...
      0.31418170912403897699, ...
      0.05745487262788301353, ...
      0.31418170912403897699, ...
      0.43559132858383020626, ...
      0.06440867141616979374, ...
      0.43559132858383020626, ...
      0.43559132858383020626, ...
      0.06440867141616979374, ...
      0.06440867141616979374, ...
      0.71746406342630830721, ...
      0.71746406342630830721, ...
      0.02143393012713057377, ...
      0.23966807631943054524, ...
      0.02143393012713057377, ...
      0.02143393012713057377, ...
      0.23966807631943054524, ...
      0.02143393012713057377, ...
      0.02143393012713057377, ...
      0.02143393012713057377, ...
      0.23966807631943054524, ...
      0.71746406342630830721, ...
      0.58379737830214439853, ...
      0.58379737830214439853, ...
      0.20413933387602911651, ...
      0.00792395394579736845, ...
      0.20413933387602911651, ...
      0.20413933387602911651, ...
      0.00792395394579736845, ...
      0.20413933387602911651, ...
      0.20413933387602911651, ...
      0.20413933387602911651, ...
      0.00792395394579736845, ...
      0.58379737830214439853 ];

  b = [ ...
      0.10795272496221086644, ...
      0.67614182511336751169, ...
      0.10795272496221086644, ...
      0.10795272496221086644, ...
      0.18510948778258656811, ...
      0.44467153665224029568, ...
      0.18510948778258656811, ...
      0.18510948778258656811, ...
      0.04231654368476728267, ...
      0.87305036894569809647, ...
      0.04231654368476728267, ...
      0.04231654368476728267, ...
      0.31418170912403897699, ...
      0.05745487262788301353, ...
      0.31418170912403897699, ...
      0.31418170912403897699, ...
      0.06440867141616979374, ...
      0.43559132858383020626, ...
      0.43559132858383020626, ...
      0.06440867141616979374, ...
      0.43559132858383020626, ...
      0.06440867141616979374, ...
      0.02143393012713057377, ...
      0.02143393012713057377, ...
      0.02143393012713057377, ...
      0.71746406342630830721, ...
      0.23966807631943054524, ...
      0.71746406342630830721, ...
      0.02143393012713057377, ...
      0.23966807631943054524, ...
      0.02143393012713057377, ...
      0.71746406342630830721, ...
      0.02143393012713057377, ...
      0.23966807631943054524, ...
      0.20413933387602911651, ...
      0.20413933387602911651, ...
      0.20413933387602911651, ...
      0.58379737830214439853, ...
      0.00792395394579736845, ...
      0.58379737830214439853, ...
      0.20413933387602911651, ...
      0.00792395394579736845, ...
      0.20413933387602911651, ...
      0.58379737830214439853, ...
      0.20413933387602911651, ...
      0.00792395394579736845 ];

  c = [ ...
      0.67614182511336751169, ...
      0.10795272496221086644, ...
      0.10795272496221086644, ...
      0.10795272496221086644, ...
      0.44467153665224029568, ...
      0.18510948778258656811, ...
      0.18510948778258656811, ...
      0.18510948778258656811, ...
      0.87305036894569809647, ...
      0.04231654368476728267, ...
      0.04231654368476728267, ...
      0.04231654368476728267, ...
      0.05745487262788301353, ...
      0.31418170912403897699, ...
      0.31418170912403897699, ...
      0.31418170912403897699, ...
      0.06440867141616979374, ...
      0.06440867141616979374, ...
      0.06440867141616979374, ...
      0.43559132858383020626, ...
      0.43559132858383020626, ...
      0.43559132858383020626, ...
      0.23966807631943054524, ...
      0.02143393012713057377, ...
      0.71746406342630830721, ...
      0.02143393012713057377, ...
      0.71746406342630830721, ...
      0.02143393012713057377, ...
      0.71746406342630830721, ...
      0.02143393012713057377, ...
      0.23966807631943054524, ...
      0.23966807631943054524, ...
      0.02143393012713057377, ...
      0.02143393012713057377, ...
      0.00792395394579736845, ...
      0.20413933387602911651, ...
      0.58379737830214439853, ...
      0.20413933387602911651, ...
      0.58379737830214439853, ...
      0.20413933387602911651, ...
      0.58379737830214439853, ...
      0.20413933387602911651, ...
      0.00792395394579736845, ...
      0.00792395394579736845, ...
      0.20413933387602911651, ...
      0.20413933387602911651 ];

  d = [ ...
      0.10795272496221075542, ...
      0.10795272496221075542, ...
      0.10795272496221075542, ...
      0.67614182511336740067, ...
      0.18510948778258667913, ...
      0.18510948778258662362, ...
      0.18510948778258662362, ...
      0.44467153665224040671, ...
      0.04231654368476744921, ...
      0.04231654368476739370, ...
      0.04231654368476733818, ...
      0.87305036894569831851, ...
      0.31418170912403903250, ...
      0.31418170912403897699, ...
      0.31418170912403908801, ...
      0.05745487262788306904, ...
      0.43559132858383020626, ...
      0.43559132858383020626, ...
      0.06440867141616979374, ...
      0.06440867141616979374, ...
      0.06440867141616979374, ...
      0.43559132858383020626, ...
      0.02143393012713057377, ...
      0.23966807631943054524, ...
      0.23966807631943054524, ...
      0.02143393012713057377, ...
      0.02143393012713057377, ...
      0.23966807631943054524, ...
      0.02143393012713057377, ...
      0.71746406342630830721, ...
      0.71746406342630830721, ...
      0.02143393012713057377, ...
      0.71746406342630830721, ...
      0.02143393012713057377, ...
      0.20413933387602911651, ...
      0.00792395394579736845, ...
      0.00792395394579736845, ...
      0.20413933387602911651, ...
      0.20413933387602911651, ...
      0.00792395394579736845, ...
      0.20413933387602911651, ...
      0.58379737830214439853, ...
      0.58379737830214439853, ...
      0.20413933387602911651, ...
      0.58379737830214439853, ...
      0.20413933387602911651 ];

  w = [ ...
      0.02642665090840883024, ...
      0.02642665090840883024, ...
      0.02642665090840883024, ...
      0.02642665090840883024, ...
      0.05203174756373853127, ...
      0.05203174756373853127, ...
      0.05203174756373853127, ...
      0.05203174756373853127, ...
      0.00752525615354019892, ...
      0.00752525615354019892, ...
      0.00752525615354019892, ...
      0.00752525615354019892, ...
      0.04176378285693489734, ...
      0.04176378285693489734, ...
      0.04176378285693489734, ...
      0.04176378285693489734, ...
      0.03628093026130882470, ...
      0.03628093026130882470, ...
      0.03628093026130882470, ...
      0.03628093026130882470, ...
      0.03628093026130882470, ...
      0.03628093026130882470, ...
      0.00715690289084443265, ...
      0.00715690289084443265, ...
      0.00715690289084443265, ...
      0.00715690289084443265, ...
      0.00715690289084443265, ...
      0.00715690289084443265, ...
      0.00715690289084443265, ...
      0.00715690289084443265, ...
      0.00715690289084443265, ...
      0.00715690289084443265, ...
      0.00715690289084443265, ...
      0.00715690289084443265, ...
      0.01545348615096033516, ...
      0.01545348615096033516, ...
      0.01545348615096033516, ...
      0.01545348615096033516, ...
      0.01545348615096033516, ...
      0.01545348615096033516, ...
      0.01545348615096033516, ...
      0.01545348615096033516, ...
      0.01545348615096033516, ...
      0.01545348615096033516, ...
      0.01545348615096033516, ...
      0.01545348615096033516 ];

  return
end
