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

%*****************************************************************************80
%
%% rule12() returns the pyramid quadrature rule of precision 12.
%
%  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:
%
%    15 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.00000000000000000000, ...
      0.61752408228797095457, ...
      0.00000000000000000000, ...
     -0.61752408228797095457, ...
      0.00000000000000000000, ...
      0.95383417813475923630, ...
      0.00000000000000000000, ...
     -0.95383417813475923630, ...
      0.00000000000000000000, ...
      0.59503005801385822071, ...
      0.00000000000000000000, ...
     -0.59503005801385822071, ...
      0.00000000000000000000, ...
      0.43539359820232903520, ...
      0.00000000000000000000, ...
     -0.43539359820232903520, ...
      0.00000000000000000000, ...
      0.13291355561208040292, ...
      0.00000000000000000000, ...
     -0.13291355561208040292, ...
      0.00000000000000000000, ...
      0.79714363482446959353, ...
      0.00000000000000000000, ...
     -0.79714363482446959353, ...
      0.00000000000000000000, ...
      0.31078295049399401462, ...
      0.00000000000000000000, ...
     -0.31078295049399401462, ...
      0.00000000000000000000, ...
      0.46896896703369211901, ...
      0.00000000000000000000, ...
     -0.46896896703369211901, ...
      0.00000000000000000000, ...
      0.06329314929065793516, ...
      0.00000000000000000000, ...
     -0.06329314929065793516, ...
      0.00000000000000000000, ...
      0.11694124473665239161, ...
     -0.11694124473665239161, ...
      0.11694124473665239161, ...
     -0.11694124473665239161, ...
      0.47710850655214198657, ...
     -0.47710850655214198657, ...
      0.47710850655214198657, ...
     -0.47710850655214198657, ...
      0.34796735400888462175, ...
     -0.34796735400888462175, ...
      0.34796735400888462175, ...
     -0.34796735400888462175, ...
      0.21748093989891267852, ...
     -0.21748093989891267852, ...
      0.21748093989891267852, ...
     -0.21748093989891267852, ...
      0.67426207541025851011, ...
     -0.67426207541025851011, ...
      0.67426207541025851011, ...
     -0.67426207541025851011, ...
      0.65415312577816908668, ...
     -0.65415312577816908668, ...
      0.65415312577816908668, ...
     -0.65415312577816908668, ...
      0.26043868995957136780, ...
     -0.26043868995957136780, ...
      0.26043868995957136780, ...
     -0.26043868995957136780, ...
      0.27442107868377230151, ...
     -0.27442107868377230151, ...
      0.27442107868377230151, ...
     -0.27442107868377230151, ...
      0.51259022737109982693, ...
     -0.51259022737109982693, ...
      0.51259022737109982693, ...
     -0.51259022737109982693, ...
      0.86878873539049084052, ...
     -0.86878873539049084052, ...
      0.86878873539049084052, ...
     -0.86878873539049084052, ...
      0.71181681800308360675, ...
     -0.71181681800308360675, ...
      0.71181681800308360675, ...
     -0.71181681800308360675, ...
      0.36754569532388259301, ...
     -0.36754569532388259301, ...
      0.36754569532388259301, ...
     -0.36754569532388259301, ...
      0.84896937482456835689, ...
      0.51203646317203110883, ...
     -0.84896937482456835689, ...
      0.51203646317203110883, ...
      0.84896937482456835689, ...
     -0.51203646317203110883, ...
     -0.84896937482456835689, ...
     -0.51203646317203110883, ...
      0.97385403135997028468, ...
      0.74670340940557777820, ...
     -0.97385403135997028468, ...
      0.74670340940557777820, ...
      0.97385403135997028468, ...
     -0.74670340940557777820, ...
     -0.97385403135997028468, ...
     -0.74670340940557777820, ...
      0.32302405518012644592, ...
      0.62555613253804132068, ...
     -0.32302405518012644592, ...
      0.62555613253804132068, ...
      0.32302405518012644592, ...
     -0.62555613253804132068, ...
     -0.32302405518012644592, ...
     -0.62555613253804132068, ...
      0.19450076345283720536, ...
      0.69805959364273262313, ...
     -0.19450076345283720536, ...
      0.69805959364273262313, ...
      0.19450076345283720536, ...
     -0.69805959364273262313, ...
     -0.19450076345283720536, ...
     -0.69805959364273262313, ...
      0.32894885387189143344, ...
      0.85383152896625225114, ...
     -0.32894885387189143344, ...
      0.85383152896625225114, ...
      0.32894885387189143344, ...
     -0.85383152896625225114, ...
     -0.32894885387189143344, ...
     -0.85383152896625225114 ];

  y = [ ...
      0.00000000000000000000, ...
      0.00000000000000000000, ...
      0.00000000000000000000, ...
      0.00000000000000000000, ...
      0.61752408228797095457, ...
      0.00000000000000000000, ...
     -0.61752408228797095457, ...
      0.00000000000000000000, ...
      0.95383417813475923630, ...
      0.00000000000000000000, ...
     -0.95383417813475923630, ...
      0.00000000000000000000, ...
      0.59503005801385822071, ...
      0.00000000000000000000, ...
     -0.59503005801385822071, ...
      0.00000000000000000000, ...
      0.43539359820232903520, ...
      0.00000000000000000000, ...
     -0.43539359820232903520, ...
      0.00000000000000000000, ...
      0.13291355561208040292, ...
      0.00000000000000000000, ...
     -0.13291355561208040292, ...
      0.00000000000000000000, ...
      0.79714363482446959353, ...
      0.00000000000000000000, ...
     -0.79714363482446959353, ...
      0.00000000000000000000, ...
      0.31078295049399401462, ...
      0.00000000000000000000, ...
     -0.31078295049399401462, ...
      0.00000000000000000000, ...
      0.46896896703369211901, ...
      0.00000000000000000000, ...
     -0.46896896703369211901, ...
      0.00000000000000000000, ...
      0.06329314929065793516, ...
      0.00000000000000000000, ...
     -0.06329314929065793516, ...
      0.11694124473665239161, ...
      0.11694124473665239161, ...
     -0.11694124473665239161, ...
     -0.11694124473665239161, ...
      0.47710850655214198657, ...
      0.47710850655214198657, ...
     -0.47710850655214198657, ...
     -0.47710850655214198657, ...
      0.34796735400888462175, ...
      0.34796735400888462175, ...
     -0.34796735400888462175, ...
     -0.34796735400888462175, ...
      0.21748093989891267852, ...
      0.21748093989891267852, ...
     -0.21748093989891267852, ...
     -0.21748093989891267852, ...
      0.67426207541025851011, ...
      0.67426207541025851011, ...
     -0.67426207541025851011, ...
     -0.67426207541025851011, ...
      0.65415312577816908668, ...
      0.65415312577816908668, ...
     -0.65415312577816908668, ...
     -0.65415312577816908668, ...
      0.26043868995957136780, ...
      0.26043868995957136780, ...
     -0.26043868995957136780, ...
     -0.26043868995957136780, ...
      0.27442107868377230151, ...
      0.27442107868377230151, ...
     -0.27442107868377230151, ...
     -0.27442107868377230151, ...
      0.51259022737109982693, ...
      0.51259022737109982693, ...
     -0.51259022737109982693, ...
     -0.51259022737109982693, ...
      0.86878873539049084052, ...
      0.86878873539049084052, ...
     -0.86878873539049084052, ...
     -0.86878873539049084052, ...
      0.71181681800308360675, ...
      0.71181681800308360675, ...
     -0.71181681800308360675, ...
     -0.71181681800308360675, ...
      0.36754569532388259301, ...
      0.36754569532388259301, ...
     -0.36754569532388259301, ...
     -0.36754569532388259301, ...
      0.51203646317203110883, ...
      0.84896937482456835689, ...
      0.51203646317203110883, ...
     -0.84896937482456835689, ...
     -0.51203646317203110883, ...
      0.84896937482456835689, ...
     -0.51203646317203110883, ...
     -0.84896937482456835689, ...
      0.74670340940557777820, ...
      0.97385403135997028468, ...
      0.74670340940557777820, ...
     -0.97385403135997028468, ...
     -0.74670340940557777820, ...
      0.97385403135997028468, ...
     -0.74670340940557777820, ...
     -0.97385403135997028468, ...
      0.62555613253804132068, ...
      0.32302405518012644592, ...
      0.62555613253804132068, ...
     -0.32302405518012644592, ...
     -0.62555613253804132068, ...
      0.32302405518012644592, ...
     -0.62555613253804132068, ...
     -0.32302405518012644592, ...
      0.69805959364273262313, ...
      0.19450076345283720536, ...
      0.69805959364273262313, ...
     -0.19450076345283720536, ...
     -0.69805959364273262313, ...
      0.19450076345283720536, ...
     -0.69805959364273262313, ...
     -0.19450076345283720536, ...
      0.85383152896625225114, ...
      0.32894885387189143344, ...
      0.85383152896625225114, ...
     -0.32894885387189143344, ...
     -0.85383152896625225114, ...
      0.32894885387189143344, ...
     -0.85383152896625225114, ...
     -0.32894885387189143344 ];

  z = [ ...
      0.45700700424071905026, ...
      0.96248480104808953328, ...
      0.02656531684537740551, ...
      0.00537472082577391923, ...
      0.00537472082577391923, ...
      0.00537472082577391923, ...
      0.00537472082577391923, ...
      0.03942123626649530338, ...
      0.03942123626649530338, ...
      0.03942123626649530338, ...
      0.03942123626649530338, ...
      0.07619184421748394220, ...
      0.07619184421748394220, ...
      0.07619184421748394220, ...
      0.07619184421748394220, ...
      0.52461875533620183631, ...
      0.52461875533620183631, ...
      0.52461875533620183631, ...
      0.52461875533620183631, ...
      0.83871994031142604875, ...
      0.83871994031142604875, ...
      0.83871994031142604875, ...
      0.83871994031142604875, ...
      0.20075189777897944898, ...
      0.20075189777897944898, ...
      0.20075189777897944898, ...
      0.20075189777897944898, ...
      0.68265469105314702247, ...
      0.68265469105314702247, ...
      0.68265469105314702247, ...
      0.68265469105314702247, ...
      0.31713382467521444852, ...
      0.31713382467521444852, ...
      0.31713382467521444852, ...
      0.31713382467521444852, ...
      0.12709629034671870995, ...
      0.12709629034671870995, ...
      0.12709629034671870995, ...
      0.12709629034671870995, ...
      0.67124174294922867023, ...
      0.67124174294922867023, ...
      0.67124174294922867023, ...
      0.67124174294922867023, ...
      0.45862802718642248223, ...
      0.45862802718642248223, ...
      0.45862802718642248223, ...
      0.45862802718642248223, ...
      0.11938890613701966248, ...
      0.11938890613701966248, ...
      0.11938890613701966248, ...
      0.11938890613701966248, ...
      0.25741784866521960629, ...
      0.25741784866521960629, ...
      0.25741784866521960629, ...
      0.25741784866521960629, ...
      0.02260502558938975656, ...
      0.02260502558938975656, ...
      0.02260502558938975656, ...
      0.02260502558938975656, ...
      0.08746307755558260788, ...
      0.08746307755558260788, ...
      0.08746307755558260788, ...
      0.08746307755558260788, ...
      0.67140164127972612462, ...
      0.67140164127972612462, ...
      0.67140164127972612462, ...
      0.67140164127972612462, ...
      0.47604255048878973966, ...
      0.47604255048878973966, ...
      0.47604255048878973966, ...
      0.47604255048878973966, ...
      0.22777955815540271156, ...
      0.22777955815540271156, ...
      0.22777955815540271156, ...
      0.22777955815540271156, ...
      0.05850272176027389998, ...
      0.05850272176027389998, ...
      0.05850272176027389998, ...
      0.05850272176027389998, ...
      0.22053995731942055425, ...
      0.22053995731942055425, ...
      0.22053995731942055425, ...
      0.22053995731942055425, ...
      0.02548724290196442005, ...
      0.02548724290196442005, ...
      0.02548724290196442005, ...
      0.02548724290196442005, ...
      0.11145836537804799937, ...
      0.11145836537804799937, ...
      0.11145836537804799937, ...
      0.11145836537804799937, ...
      0.11145836537804799937, ...
      0.11145836537804799937, ...
      0.11145836537804799937, ...
      0.11145836537804799937, ...
      0.00339220824679912656, ...
      0.00339220824679912656, ...
      0.00339220824679912656, ...
      0.00339220824679912656, ...
      0.00339220824679912656, ...
      0.00339220824679912656, ...
      0.00339220824679912656, ...
      0.00339220824679912656, ...
      0.32725151644051669875, ...
      0.32725151644051669875, ...
      0.32725151644051669875, ...
      0.32725151644051669875, ...
      0.32725151644051669875, ...
      0.32725151644051669875, ...
      0.32725151644051669875, ...
      0.32725151644051669875, ...
      0.14805166861898322317, ...
      0.14805166861898322317, ...
      0.14805166861898322317, ...
      0.14805166861898322317, ...
      0.14805166861898322317, ...
      0.14805166861898322317, ...
      0.14805166861898322317, ...
      0.14805166861898322317, ...
      0.02487563023274973195, ...
      0.02487563023274973195, ...
      0.02487563023274973195, ...
      0.02487563023274973195, ...
      0.02487563023274973195, ...
      0.02487563023274973195, ...
      0.02487563023274973195, ...
      0.02487563023274973195 ];

  w = [ ...
      0.02715854620871203245, ...
      0.00043531424244899530, ...
      0.01391222140872406220, ...
      0.00387288146649252939, ...
      0.00387288146649252939, ...
      0.00387288146649252939, ...
      0.00387288146649252939, ...
      0.00217967971593618394, ...
      0.00217967971593618394, ...
      0.00217967971593618394, ...
      0.00217967971593618394, ...
      0.01267133485574918096, ...
      0.01267133485574918096, ...
      0.01267133485574918096, ...
      0.01267133485574918096, ...
      0.00873464163035380693, ...
      0.00873464163035380693, ...
      0.00873464163035380693, ...
      0.00873464163035380693, ...
      0.00289146731615850605, ...
      0.00289146731615850605, ...
      0.00289146731615850605, ...
      0.00289146731615850605, ...
      0.00336686848511522736, ...
      0.00336686848511522736, ...
      0.00336686848511522736, ...
      0.00336686848511522736, ...
      0.00147603803134411875, ...
      0.00147603803134411875, ...
      0.00147603803134411875, ...
      0.00147603803134411875, ...
      0.01998444773599242219, ...
      0.01998444773599242219, ...
      0.01998444773599242219, ...
      0.01998444773599242219, ...
      0.00618927170644437228, ...
      0.00618927170644437228, ...
      0.00618927170644437228, ...
      0.00618927170644437228, ...
      0.00820078705478863301, ...
      0.00820078705478863301, ...
      0.00820078705478863301, ...
      0.00820078705478863301, ...
      0.00509651546458162342, ...
      0.00509651546458162342, ...
      0.00509651546458162342, ...
      0.00509651546458162342, ...
      0.01739298850473944280, ...
      0.01739298850473944280, ...
      0.01739298850473944280, ...
      0.01739298850473944280, ...
      0.01948797782027694020, ...
      0.01948797782027694020, ...
      0.01948797782027694020, ...
      0.01948797782027694020, ...
      0.00538896243467025700, ...
      0.00538896243467025700, ...
      0.00538896243467025700, ...
      0.00538896243467025700, ...
      0.00676911731451347500, ...
      0.00676911731451347500, ...
      0.00676911731451347500, ...
      0.00676911731451347500, ...
      0.00467587609366508332, ...
      0.00467587609366508332, ...
      0.00467587609366508332, ...
      0.00467587609366508332, ...
      0.01838172037009152757, ...
      0.01838172037009152757, ...
      0.01838172037009152757, ...
      0.01838172037009152757, ...
      0.01407964506457294943, ...
      0.01407964506457294943, ...
      0.01407964506457294943, ...
      0.01407964506457294943, ...
      0.00283370063460703292, ...
      0.00283370063460703292, ...
      0.00283370063460703292, ...
      0.00283370063460703292, ...
      0.00479137222817773486, ...
      0.00479137222817773486, ...
      0.00479137222817773486, ...
      0.00479137222817773486, ...
      0.00990680633819146332, ...
      0.00990680633819146332, ...
      0.00990680633819146332, ...
      0.00990680633819146332, ...
      0.00535574363023301383, ...
      0.00535574363023301383, ...
      0.00535574363023301383, ...
      0.00535574363023301383, ...
      0.00535574363023301383, ...
      0.00535574363023301383, ...
      0.00535574363023301383, ...
      0.00535574363023301383, ...
      0.00081681851071822213, ...
      0.00081681851071822213, ...
      0.00081681851071822213, ...
      0.00081681851071822213, ...
      0.00081681851071822213, ...
      0.00081681851071822213, ...
      0.00081681851071822213, ...
      0.00081681851071822213, ...
      0.00854175372189276694, ...
      0.00854175372189276694, ...
      0.00854175372189276694, ...
      0.00854175372189276694, ...
      0.00854175372189276694, ...
      0.00854175372189276694, ...
      0.00854175372189276694, ...
      0.00854175372189276694, ...
      0.01018769584471248754, ...
      0.01018769584471248754, ...
      0.01018769584471248754, ...
      0.01018769584471248754, ...
      0.01018769584471248754, ...
      0.01018769584471248754, ...
      0.01018769584471248754, ...
      0.01018769584471248754, ...
      0.00572367792672661812, ...
      0.00572367792672661812, ...
      0.00572367792672661812, ...
      0.00572367792672661812, ...
      0.00572367792672661812, ...
      0.00572367792672661812, ...
      0.00572367792672661812, ...
      0.00572367792672661812 ];

  return
end
