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

%*****************************************************************************80
%
%% rule09() returns the pyramid quadrature rule of precision 9.
%
%  Discussion:
%
%    The unit pyramid with square base is the region
%
%      -1 <= X <= 1
%      -1 <= Y <= 1
%       0 <= Z <= 1.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    14 April 2023
%
%  Author:
%
%    John Burkardt
%
%  Reference:
%
%    Jan Jaskowiec, Natarajan Sukumar,
%    High order symmetric cubature rules for tetrahedra and pyramids,
%    International Journal for Numerical Methods in Engineering,
%    Volume 122, Number 1, pages 148-171, 24 August 2020.
%
%  Output:
%
%    x(n), y(n), z(n): the coordinates of quadrature points.
%
%    w(n): the quadrature weights.
%
  x = [ ...
      0.00000000000000000000, ...
      0.00000000000000000000, ...
      0.21993584526338003093, ...
      0.00000000000000000000, ...
     -0.21993584526338003093, ...
      0.00000000000000000000, ...
      0.25580155737930071469, ...
      0.00000000000000000000, ...
     -0.25580155737930071469, ...
      0.00000000000000000000, ...
      0.87392422284165005575, ...
      0.00000000000000000000, ...
     -0.87392422284165005575, ...
      0.00000000000000000000, ...
      0.62069706482035569284, ...
      0.00000000000000000000, ...
     -0.62069706482035569284, ...
      0.00000000000000000000, ...
      0.48088720239801563405, ...
      0.00000000000000000000, ...
     -0.48088720239801563405, ...
      0.00000000000000000000, ...
      0.54766337559892563913, ...
      0.00000000000000000000, ...
     -0.54766337559892563913, ...
      0.00000000000000000000, ...
      0.31716782120661740629, ...
     -0.31716782120661740629, ...
      0.31716782120661740629, ...
     -0.31716782120661740629, ...
      0.58114214633277661015, ...
     -0.58114214633277661015, ...
      0.58114214633277661015, ...
     -0.58114214633277661015, ...
      0.52308134436113074006, ...
     -0.52308134436113074006, ...
      0.52308134436113074006, ...
     -0.52308134436113074006, ...
      0.87278863855859856180, ...
     -0.87278863855859856180, ...
      0.87278863855859856180, ...
     -0.87278863855859856180, ...
      0.27447830261314615230, ...
     -0.27447830261314615230, ...
      0.27447830261314615230, ...
     -0.27447830261314615230, ...
      0.45787401929460586070, ...
      0.76874559686548982196, ...
     -0.45787401929460586070, ...
      0.76874559686548982196, ...
      0.45787401929460586070, ...
     -0.76874559686548982196, ...
     -0.45787401929460586070, ...
     -0.76874559686548982196, ...
      0.52945920866195028687, ...
      0.86516329503292388470, ...
     -0.52945920866195028687, ...
      0.86516329503292388470, ...
      0.52945920866195028687, ...
     -0.86516329503292388470, ...
     -0.52945920866195028687, ...
     -0.86516329503292388470 ];

  y = [ ...
      0.00000000000000000000, ...
      0.00000000000000000000, ...
      0.00000000000000000000, ...
      0.21993584526338003093, ...
      0.00000000000000000000, ...
     -0.21993584526338003093, ...
      0.00000000000000000000, ...
      0.25580155737930071469, ...
      0.00000000000000000000, ...
     -0.25580155737930071469, ...
      0.00000000000000000000, ...
      0.87392422284165005575, ...
      0.00000000000000000000, ...
     -0.87392422284165005575, ...
      0.00000000000000000000, ...
      0.62069706482035569284, ...
      0.00000000000000000000, ...
     -0.62069706482035569284, ...
      0.00000000000000000000, ...
      0.48088720239801563405, ...
      0.00000000000000000000, ...
     -0.48088720239801563405, ...
      0.00000000000000000000, ...
      0.54766337559892563913, ...
      0.00000000000000000000, ...
     -0.54766337559892563913, ...
      0.31716782120661740629, ...
      0.31716782120661740629, ...
     -0.31716782120661740629, ...
     -0.31716782120661740629, ...
      0.58114214633277661015, ...
      0.58114214633277661015, ...
     -0.58114214633277661015, ...
     -0.58114214633277661015, ...
      0.52308134436113074006, ...
      0.52308134436113074006, ...
     -0.52308134436113074006, ...
     -0.52308134436113074006, ...
      0.87278863855859856180, ...
      0.87278863855859856180, ...
     -0.87278863855859856180, ...
     -0.87278863855859856180, ...
      0.27447830261314615230, ...
      0.27447830261314615230, ...
     -0.27447830261314615230, ...
     -0.27447830261314615230, ...
      0.76874559686548982196, ...
      0.45787401929460586070, ...
      0.76874559686548982196, ...
     -0.45787401929460586070, ...
     -0.76874559686548982196, ...
      0.45787401929460586070, ...
     -0.76874559686548982196, ...
     -0.45787401929460586070, ...
      0.86516329503292388470, ...
      0.52945920866195028687, ...
      0.86516329503292388470, ...
     -0.52945920866195028687, ...
     -0.86516329503292388470, ...
      0.52945920866195028687, ...
     -0.86516329503292388470, ...
     -0.52945920866195028687 ];

  z = [ ...
      0.90338060334285785746, ...
      0.56496444359597119966, ...
      0.74856124635194676298, ...
      0.74856124635194676298, ...
      0.74856124635194676298, ...
      0.74856124635194676298, ...
      0.13469976629555441283, ...
      0.13469976629555441283, ...
      0.13469976629555441283, ...
      0.13469976629555441283, ...
      0.05467616134251215843, ...
      0.05467616134251215843, ...
      0.05467616134251215843, ...
      0.05467616134251215843, ...
      0.18946269484050054510, ...
      0.18946269484050054510, ...
      0.18946269484050054510, ...
      0.18946269484050054510, ...
      0.02248423582708249449, ...
      0.02248423582708249449, ...
      0.02248423582708249449, ...
      0.02248423582708249449, ...
      0.41340822589276282617, ...
      0.41340822589276282617, ...
      0.41340822589276282617, ...
      0.41340822589276282617, ...
      0.55077233639120526387, ...
      0.55077233639120526387, ...
      0.55077233639120526387, ...
      0.55077233639120526387, ...
      0.31914147555912980581, ...
      0.31914147555912980581, ...
      0.31914147555912980581, ...
      0.31914147555912980581, ...
      0.08935238781868591607, ...
      0.08935238781868591607, ...
      0.08935238781868591607, ...
      0.08935238781868591607, ...
      0.06151583405729108001, ...
      0.06151583405729108001, ...
      0.06151583405729108001, ...
      0.06151583405729108001, ...
      0.32642198515966086569, ...
      0.32642198515966086569, ...
      0.32642198515966086569, ...
      0.32642198515966086569, ...
      0.17557242043675652665, ...
      0.17557242043675652665, ...
      0.17557242043675652665, ...
      0.17557242043675652665, ...
      0.17557242043675652665, ...
      0.17557242043675652665, ...
      0.17557242043675652665, ...
      0.17557242043675652665, ...
      0.01570840570495662947, ...
      0.01570840570495662947, ...
      0.01570840570495662947, ...
      0.01570840570495662947, ...
      0.01570840570495662947, ...
      0.01570840570495662947, ...
      0.01570840570495662947, ...
      0.01570840570495662947 ];

  w = [ ...
      0.00351798245822128233, ...
      0.04216520928063208912, ...
      0.00852104325745563912, ...
      0.00852104325745563912, ...
      0.00852104325745563912, ...
      0.00852104325745563912, ...
      0.02087072229798967934, ...
      0.02087072229798967934, ...
      0.02087072229798967934, ...
      0.02087072229798967934, ...
      0.01073969585101612438, ...
      0.01073969585101612438, ...
      0.01073969585101612438, ...
      0.01073969585101612438, ...
      0.02521321637389669496, ...
      0.02521321637389669496, ...
      0.02521321637389669496, ...
      0.02521321637389669496, ...
      0.01961258547003659133, ...
      0.01961258547003659133, ...
      0.01961258547003659133, ...
      0.01961258547003659133, ...
      0.01643323197880764905, ...
      0.01643323197880764905, ...
      0.01643323197880764905, ...
      0.01643323197880764905, ...
      0.01830589291063876300, ...
      0.01830589291063876300, ...
      0.01830589291063876300, ...
      0.01830589291063876300, ...
      0.01130841811263377274, ...
      0.01130841811263377274, ...
      0.01130841811263377274, ...
      0.01130841811263377274, ...
      0.02507245299443831496, ...
      0.02507245299443831496, ...
      0.02507245299443831496, ...
      0.02507245299443831496, ...
      0.00441940990434765493, ...
      0.00441940990434765493, ...
      0.00441940990434765493, ...
      0.00441940990434765493, ...
      0.04065272607298718588, ...
      0.04065272607298718588, ...
      0.04065272607298718588, ...
      0.04065272607298718588, ...
      0.01219793270502279002, ...
      0.01219793270502279002, ...
      0.01219793270502279002, ...
      0.01219793270502279002, ...
      0.01219793270502279002, ...
      0.01219793270502279002, ...
      0.01219793270502279002, ...
      0.01219793270502279002, ...
      0.00651697071549649839, ...
      0.00651697071549649839, ...
      0.00651697071549649839, ...
      0.00651697071549649839, ...
      0.00651697071549649839, ...
      0.00651697071549649839, ...
      0.00651697071549649839, ...
      0.00651697071549649839 ];

  return
end
