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

%*****************************************************************************80
%
%% rule06() returns the prism rule of precision 6.
%
%  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.1652032650280925, ...
          0.6695934699438151, ...
          0.1652032650280925, ...
          0.0204732696122569, ...
          0.9590534607754861, ...
          0.0204732696122569, ...
          0.4661116655901595, ...
          0.0677766688196810, ...
          0.4661116655901595, ...
          0.4661116655901595, ...
          0.0677766688196810, ...
          0.4661116655901595, ...
          0.2025738967252308, ...
          0.7627467408337223, ...
          0.0346793624410470, ...
          0.7627467408337223, ...
          0.0346793624410470, ...
          0.2025738967252308, ...
          0.2025738967252308, ...
          0.7627467408337223, ...
          0.0346793624410470, ...
          0.7627467408337223, ...
          0.0346793624410470, ...
          0.2025738967252308 ];

  y = [ ...
          0.3333333333333334, ...
          0.3333333333333334, ...
          0.3333333333333334, ...
          0.3333333333333334, ...
          0.6695934699438151, ...
          0.1652032650280925, ...
          0.1652032650280925, ...
          0.9590534607754861, ...
          0.0204732696122569, ...
          0.0204732696122569, ...
          0.0677766688196810, ...
          0.4661116655901595, ...
          0.4661116655901595, ...
          0.0677766688196810, ...
          0.4661116655901595, ...
          0.4661116655901595, ...
          0.7627467408337223, ...
          0.2025738967252308, ...
          0.7627467408337223, ...
          0.0346793624410470, ...
          0.2025738967252308, ...
          0.0346793624410470, ...
          0.7627467408337223, ...
          0.2025738967252308, ...
          0.7627467408337223, ...
          0.0346793624410470, ...
          0.2025738967252308, ...
          0.0346793624410470 ];

  z = [ ...
          0.2366886475975126, ...
          0.7633113524024874, ...
          0.0045818495903776, ...
          0.9954181504096224, ...
          0.5000000000000000, ...
          0.5000000000000000, ...
          0.5000000000000000, ...
          0.5000000000000000, ...
          0.5000000000000000, ...
          0.5000000000000000, ...
          0.2591629325578062, ...
          0.2591629325578062, ...
          0.2591629325578062, ...
          0.7408370674421938, ...
          0.7408370674421938, ...
          0.7408370674421938, ...
          0.0953571033720836, ...
          0.0953571033720836, ...
          0.0953571033720836, ...
          0.0953571033720836, ...
          0.0953571033720836, ...
          0.0953571033720836, ...
          0.9046428966279163, ...
          0.9046428966279163, ...
          0.9046428966279163, ...
          0.9046428966279163, ...
          0.9046428966279163, ...
          0.9046428966279163 ];

  w = [ ...
          0.0556732835230563, ...
          0.0556732835230563, ...
          0.0345990273435311, ...
          0.0345990273435311, ...
          0.0779570037033338, ...
          0.0779570037033338, ...
          0.0779570037033338, ...
          0.0125366338096741, ...
          0.0125366338096741, ...
          0.0125366338096741, ...
          0.0490126400515205, ...
          0.0490126400515205, ...
          0.0490126400515205, ...
          0.0490126400515205, ...
          0.0490126400515205, ...
          0.0490126400515205, ...
          0.0211582187848898, ...
          0.0211582187848898, ...
          0.0211582187848898, ...
          0.0211582187848898, ...
          0.0211582187848898, ...
          0.0211582187848898, ...
          0.0211582187848898, ...
          0.0211582187848898, ...
          0.0211582187848898, ...
          0.0211582187848898, ...
          0.0211582187848898, ...
          0.0211582187848898 ];

  return
end
