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

%*****************************************************************************80
%
%% rule07() returns the rule of precision 7.
%
%  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.25000000000000000000, ...
      0.31570114977820279423, ...
      0.31570114977820279423, ...
      0.05289655066539161732, ...
      0.31570114977820279423, ...
      0.05048982259839635001, ...
      0.44951017740160364999, ...
      0.05048982259839635001, ...
      0.05048982259839635001, ...
      0.44951017740160364999, ...
      0.44951017740160364999, ...
      0.57517163758699996201, ...
      0.57517163758699996201, ...
      0.18883383102600104220, ...
      0.04716070036099789808, ...
      0.18883383102600104220, ...
      0.18883383102600104220, ...
      0.04716070036099789808, ...
      0.18883383102600104220, ...
      0.18883383102600104220, ...
      0.18883383102600104220, ...
      0.04716070036099789808, ...
      0.57517163758699996201, ...
      0.81083024109854862083, ...
      0.81083024109854862083, ...
      0.02126547254148325461, ...
      0.14663881381848492547, ...
      0.02126547254148325461, ...
      0.02126547254148325461, ...
      0.14663881381848492547, ...
      0.02126547254148325461, ...
      0.02126547254148325461, ...
      0.02126547254148325461, ...
      0.14663881381848492547, ...
      0.81083024109854862083 ];

  b = [ ...
      0.25000000000000000000, ...
      0.31570114977820279423, ...
      0.05289655066539161732, ...
      0.31570114977820279423, ...
      0.31570114977820279423, ...
      0.44951017740160364999, ...
      0.05048982259839635001, ...
      0.05048982259839635001, ...
      0.44951017740160364999, ...
      0.05048982259839635001, ...
      0.44951017740160364999, ...
      0.18883383102600104220, ...
      0.18883383102600104220, ...
      0.18883383102600104220, ...
      0.57517163758699996201, ...
      0.04716070036099789808, ...
      0.57517163758699996201, ...
      0.18883383102600104220, ...
      0.04716070036099789808, ...
      0.18883383102600104220, ...
      0.57517163758699996201, ...
      0.18883383102600104220, ...
      0.04716070036099789808, ...
      0.02126547254148325461, ...
      0.02126547254148325461, ...
      0.02126547254148325461, ...
      0.81083024109854862083, ...
      0.14663881381848492547, ...
      0.81083024109854862083, ...
      0.02126547254148325461, ...
      0.14663881381848492547, ...
      0.02126547254148325461, ...
      0.81083024109854862083, ...
      0.02126547254148325461, ...
      0.14663881381848492547 ];

  c = [ ...
      0.25000000000000000000, ...
      0.05289655066539161732, ...
      0.31570114977820279423, ...
      0.31570114977820279423, ...
      0.31570114977820279423, ...
      0.44951017740160364999, ...
      0.44951017740160364999, ...
      0.44951017740160364999, ...
      0.05048982259839635001, ...
      0.05048982259839635001, ...
      0.05048982259839635001, ...
      0.04716070036099789808, ...
      0.18883383102600104220, ...
      0.57517163758699996201, ...
      0.18883383102600104220, ...
      0.57517163758699996201, ...
      0.18883383102600104220, ...
      0.57517163758699996201, ...
      0.18883383102600104220, ...
      0.04716070036099789808, ...
      0.04716070036099789808, ...
      0.18883383102600104220, ...
      0.18883383102600104220, ...
      0.14663881381848492547, ...
      0.02126547254148325461, ...
      0.81083024109854862083, ...
      0.02126547254148325461, ...
      0.81083024109854862083, ...
      0.02126547254148325461, ...
      0.81083024109854862083, ...
      0.02126547254148325461, ...
      0.14663881381848492547, ...
      0.14663881381848492547, ...
      0.02126547254148325461, ...
      0.02126547254148325461 ];

  d = [ ...
      0.25000000000000000000, ...
      0.31570114977820284974, ...
      0.31570114977820290525, ...
      0.31570114977820290525, ...
      0.05289655066539167283, ...
      0.05048982259839635001, ...
      0.05048982259839629450, ...
      0.44951017740160376102, ...
      0.44951017740160364999, ...
      0.44951017740160359448, ...
      0.05048982259839629450, ...
      0.18883383102600109771, ...
      0.04716070036099795360, ...
      0.04716070036099795360, ...
      0.18883383102600104220, ...
      0.18883383102600115322, ...
      0.04716070036099795360, ...
      0.18883383102600104220, ...
      0.57517163758700007303, ...
      0.57517163758699996201, ...
      0.18883383102600109771, ...
      0.57517163758699996201, ...
      0.18883383102600109771, ...
      0.02126547254148319910, ...
      0.14663881381848486996, ...
      0.14663881381848486996, ...
      0.02126547254148325461, ...
      0.02126547254148314359, ...
      0.14663881381848486996, ...
      0.02126547254148325461, ...
      0.81083024109854850980, ...
      0.81083024109854862083, ...
      0.02126547254148319910, ...
      0.81083024109854862083, ...
      0.02126547254148319910 ];

  w = [ ...
      0.09548528946413084584, ...
      0.04232958120996702794, ...
      0.04232958120996702794, ...
      0.04232958120996702794, ...
      0.04232958120996702794, ...
      0.03189692783285758004, ...
      0.03189692783285758004, ...
      0.03189692783285758004, ...
      0.03189692783285758004, ...
      0.03189692783285758004, ...
      0.03189692783285758004, ...
      0.03720713072833461976, ...
      0.03720713072833461976, ...
      0.03720713072833461976, ...
      0.03720713072833461976, ...
      0.03720713072833461976, ...
      0.03720713072833461976, ...
      0.03720713072833461976, ...
      0.03720713072833461976, ...
      0.03720713072833461976, ...
      0.03720713072833461976, ...
      0.03720713072833461976, ...
      0.03720713072833461976, ...
      0.00811077082990334201, ...
      0.00811077082990334201, ...
      0.00811077082990334201, ...
      0.00811077082990334201, ...
      0.00811077082990334201, ...
      0.00811077082990334201, ...
      0.00811077082990334201, ...
      0.00811077082990334201, ...
      0.00811077082990334201, ...
      0.00811077082990334201, ...
      0.00811077082990334201, ...
      0.00811077082990334201 ];

  return
end
