function [ x, y, z, w ] = rule08 ( )

%*****************************************************************************80
%
%% rule08() returns the prism rule of precision 8.
%
%  Discussion:
%
%    We suppose we are given a triangular prism P with vertices
%    (1,0,0), (0,1,0), (0,0,0),
%    (1,0,1), (0,1,1), (0,0,1),
%    We call a rule with n points, returning coordinates
%    x, y, z, and weights w.  Then the integral I of f(x,y,z) over P is 
%    approximated by Q as follows:
%
%    Q = volume(P) * sum ( 1 <= i <= n ) w(i) * f(x(i),y(i),z(i)) 
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    27 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 x(n), y(n), z(n): the coordinates of quadrature points.
%
%    real w(n): the quadrature weights, which sum to 1.
%
  x = [ ...
          0.3333333333333334, ...
          0.3333333333333334, ...
          0.3333333333333334, ...
          0.3333333333333334, ...
          0.0534123509369072, ...
          0.8931752981261858, ...
          0.0534123509369072, ...
          0.4600889628137106, ...
          0.0798220743725788, ...
          0.4600889628137106, ...
          0.4585690687909513, ...
          0.0828618624180973, ...
          0.4585690687909513, ...
          0.4585690687909513, ...
          0.0828618624180973, ...
          0.4585690687909513, ...
          0.1740616079243704, ...
          0.6518767841512592, ...
          0.1740616079243704, ...
          0.1740616079243704, ...
          0.6518767841512592, ...
          0.1740616079243704, ...
          0.0472387858397694, ...
          0.9055224283204613, ...
          0.0472387858397694, ...
          0.0472387858397694, ...
          0.9055224283204613, ...
          0.0472387858397694, ...
          0.1597492639425890, ...
          0.6805014721148220, ...
          0.1597492639425890, ...
          0.1597492639425890, ...
          0.6805014721148220, ...
          0.1597492639425890, ...
          0.2628138006912410, ...
          0.7285980718010000, ...
          0.0085881275077590, ...
          0.7285980718010000, ...
          0.0085881275077590, ...
          0.2628138006912410, ...
          0.2628138006912410, ...
          0.7285980718010000, ...
          0.0085881275077590, ...
          0.7285980718010000, ...
          0.0085881275077590, ...
          0.2628138006912410 ];

  y = [ ...
          0.3333333333333334, ...
          0.3333333333333334, ...
          0.3333333333333334, ...
          0.3333333333333334, ...
          0.8931752981261858, ...
          0.0534123509369072, ...
          0.0534123509369072, ...
          0.0798220743725788, ...
          0.4600889628137106, ...
          0.4600889628137106, ...
          0.0828618624180973, ...
          0.4585690687909513, ...
          0.4585690687909513, ...
          0.0828618624180973, ...
          0.4585690687909513, ...
          0.4585690687909513, ...
          0.6518767841512592, ...
          0.1740616079243704, ...
          0.1740616079243704, ...
          0.6518767841512592, ...
          0.1740616079243704, ...
          0.1740616079243704, ...
          0.9055224283204613, ...
          0.0472387858397694, ...
          0.0472387858397694, ...
          0.9055224283204613, ...
          0.0472387858397694, ...
          0.0472387858397694, ...
          0.6805014721148220, ...
          0.1597492639425890, ...
          0.1597492639425890, ...
          0.6805014721148220, ...
          0.1597492639425890, ...
          0.1597492639425890, ...
          0.7285980718010000, ...
          0.2628138006912410, ...
          0.7285980718010000, ...
          0.0085881275077590, ...
          0.2628138006912410, ...
          0.0085881275077590, ...
          0.7285980718010000, ...
          0.2628138006912410, ...
          0.7285980718010000, ...
          0.0085881275077590, ...
          0.2628138006912410, ...
          0.0085881275077590 ];

  z = [ ...
          0.3877830669470047, ...
          0.6122169330529953, ...
          0.1590872792145671, ...
          0.8409127207854329, ...
          0.5000000000000000, ...
          0.5000000000000000, ...
          0.5000000000000000, ...
          0.5000000000000000, ...
          0.5000000000000000, ...
          0.5000000000000000, ...
          0.0619020449998729, ...
          0.0619020449998729, ...
          0.0619020449998729, ...
          0.9380979550001272, ...
          0.9380979550001272, ...
          0.9380979550001272, ...
          0.2969578853227048, ...
          0.2969578853227048, ...
          0.2969578853227048, ...
          0.7030421146772952, ...
          0.7030421146772952, ...
          0.7030421146772952, ...
          0.0855922784706599, ...
          0.0855922784706599, ...
          0.0855922784706599, ...
          0.9144077215293400, ...
          0.9144077215293400, ...
          0.9144077215293400, ...
          0.0170674167296728, ...
          0.0170674167296728, ...
          0.0170674167296728, ...
          0.9829325832703272, ...
          0.9829325832703272, ...
          0.9829325832703272, ...
          0.2113248654051871, ...
          0.2113248654051871, ...
          0.2113248654051871, ...
          0.2113248654051871, ...
          0.2113248654051871, ...
          0.2113248654051871, ...
          0.7886751345948129, ...
          0.7886751345948129, ...
          0.7886751345948129, ...
          0.7886751345948129, ...
          0.7886751345948129, ...
          0.7886751345948129 ];

  w = [ ...
          0.0207349366428555, ...
          0.0207349366428555, ...
          0.0510894271121815, ...
          0.0510894271121815, ...
          0.0181522487841497, ...
          0.0181522487841497, ...
          0.0181522487841497, ...
          0.0526997449065072, ...
          0.0526997449065072, ...
          0.0526997449065072, ...
          0.0210865092935865, ...
          0.0210865092935865, ...
          0.0210865092935865, ...
          0.0210865092935865, ...
          0.0210865092935865, ...
          0.0210865092935865, ...
          0.0406292626589893, ...
          0.0406292626589893, ...
          0.0406292626589893, ...
          0.0406292626589893, ...
          0.0406292626589893, ...
          0.0406292626589893, ...
          0.0071453577535386, ...
          0.0071453577535386, ...
          0.0071453577535386, ...
          0.0071453577535386, ...
          0.0071453577535386, ...
          0.0071453577535386, ...
          0.0111430273484653, ...
          0.0111430273484653, ...
          0.0111430273484653, ...
          0.0111430273484653, ...
          0.0111430273484653, ...
          0.0111430273484653, ...
          0.0136475290908731, ...
          0.0136475290908731, ...
          0.0136475290908731, ...
          0.0136475290908731, ...
          0.0136475290908731, ...
          0.0136475290908731, ...
          0.0136475290908731, ...
          0.0136475290908731, ...
          0.0136475290908731, ...
          0.0136475290908731, ...
          0.0136475290908731, ...
          0.0136475290908731 ];

  return
end
