function [ a, b, c, w ] = rule31 ( )

%*****************************************************************************80
%
%% rule31() returns the rule of precision 31.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    09 June 2023
%
%  Author:
%
%    John Burkardt
%
%  Reference:
%
%    Hong Xiao, Zydrunas Gimbutas,
%    A numerical algorithm for the construction of efficient
%    quadrature rules in two and higher dimensions, 
%    Computers and Mathematics with Applications,
%    Volume 59, 2010, pages 663-676.
%
%  Output:
%
%    real a(n), b(n), c(n): the barycentric coordinates of quadrature points.
%
%    real w(n): the quadrature weights.
%
  a = [ ...
          0.3333333333333333, ...
          0.4861524679130598, ...
          0.4861524679130598, ...
          0.0276950641738803, ...
          0.1390906284720946, ...
          0.7542396906638279, ...
          0.1066696808640776, ...
          0.7542396906638279, ...
          0.1390906284720947, ...
          0.1066696808640773, ...
          0.4195880808642605, ...
          0.4195880808642605, ...
          0.1608238382714789, ...
          0.1972331307896530, ...
          0.7995057135466186, ...
          0.0032611556637284, ...
          0.7995057135466186, ...
          0.1972331307896531, ...
          0.0032611556637281, ...
          0.2385241509843100, ...
          0.7483360311752862, ...
          0.0131398178404037, ...
          0.7483360311752864, ...
          0.2385241509843100, ...
          0.0131398178404035, ...
          0.0792067965066985, ...
          0.8415864069866026, ...
          0.0792067965066989, ...
          0.0297507293859900, ...
          0.9679050494853231, ...
          0.0023442211286871, ...
          0.9679050494853232, ...
          0.0297507293859901, ...
          0.0023442211286867, ...
          0.0177313492497139, ...
          0.9645373015005718, ...
          0.0177313492497143, ...
          0.3957839332968854, ...
          0.6022546663332196, ...
          0.0019614003698950, ...
          0.6022546663332196, ...
          0.3957839332968854, ...
          0.0019614003698949, ...
          0.3516800587760809, ...
          0.4956833754486993, ...
          0.1526365657752197, ...
          0.4956833754486993, ...
          0.3516800587760809, ...
          0.1526365657752196, ...
          0.2024821942617583, ...
          0.6840925273907388, ...
          0.1134252783475029, ...
          0.6840925273907387, ...
          0.2024821942617585, ...
          0.1134252783475028, ...
          0.4225539552222151, ...
          0.5229246603331018, ...
          0.0545213844446831, ...
          0.5229246603331018, ...
          0.4225539552222151, ...
          0.0545213844446831, ...
          0.1246805088474440, ...
          0.8147145619917838, ...
          0.0606049291607723, ...
          0.8147145619917838, ...
          0.1246805088474441, ...
          0.0606049291607719, ...
          0.2555462364028573, ...
          0.7068648114396249, ...
          0.0375889521575178, ...
          0.7068648114396250, ...
          0.2555462364028574, ...
          0.0375889521575175, ...
          0.0745031299353863, ...
          0.9211105398945520, ...
          0.0043863301700618, ...
          0.9211105398945520, ...
          0.0745031299353864, ...
          0.0043863301700614, ...
          0.4168072755236505, ...
          0.5659193101514124, ...
          0.0172734143249371, ...
          0.5659193101514123, ...
          0.4168072755236506, ...
          0.0172734143249370, ...
          0.1928717230061985, ...
          0.7445502549794906, ...
          0.0625780220143110, ...
          0.7445502549794907, ...
          0.1928717230061984, ...
          0.0625780220143108, ...
          0.0473478189395525, ...
          0.9342442340291646, ...
          0.0184079470312831, ...
          0.9342442340291646, ...
          0.0473478189395526, ...
          0.0184079470312826, ...
          0.2184364967909280, ...
          0.5631270064181437, ...
          0.2184364967909281, ...
          0.1724507871838860, ...
          0.6550984256322278, ...
          0.1724507871838863, ...
          0.0510951808223813, ...
          0.8978096383552372, ...
          0.0510951808223817, ...
          0.3419050053475277, ...
          0.6151917857097009, ...
          0.0429032089427714, ...
          0.6151917857097009, ...
          0.3419050053475278, ...
          0.0429032089427713, ...
          0.3258139530575097, ...
          0.6609969631634746, ...
          0.0131890837790157, ...
          0.6609969631634747, ...
          0.3258139530575097, ...
          0.0131890837790155, ...
          0.2894259487571373, ...
          0.7093771696121531, ...
          0.0011968816307096, ...
          0.7093771696121531, ...
          0.2894259487571372, ...
          0.0011968816307094, ...
          0.2987897956760133, ...
          0.4820774428938099, ...
          0.2191327614301768, ...
          0.4820774428938098, ...
          0.2987897956760134, ...
          0.2191327614301767, ...
          0.2744757477427950, ...
          0.6443943606878740, ...
          0.0811298915693310, ...
          0.6443943606878740, ...
          0.2744757477427950, ...
          0.0811298915693308, ...
          0.3532298738914156, ...
          0.5514920116265676, ...
          0.0952781144820168, ...
          0.5514920116265676, ...
          0.3532298738914156, ...
          0.0952781144820166, ...
          0.4977486206264703, ...
          0.4977486206264703, ...
          0.0045027587470594, ...
          0.2663678824750718, ...
          0.5867434095228163, ...
          0.1468887080021118, ...
          0.5867434095228162, ...
          0.2663678824750718, ...
          0.1468887080021118, ...
          0.3851684692456800, ...
          0.3851684692456801, ...
          0.2296630615086398, ...
          0.2974914903679928, ...
          0.4050170192640142, ...
          0.2974914903679928, ...
          0.0960481521010511, ...
          0.8764212178203614, ...
          0.0275306300785876, ...
          0.8764212178203614, ...
          0.0960481521010512, ...
          0.0275306300785873, ...
          0.0050828094627277, ...
          0.9898343810745441, ...
          0.0050828094627282, ...
          0.1674078247783561, ...
          0.8067170670017056, ...
          0.0258751082199382, ...
          0.8067170670017058, ...
          0.1674078247783561, ...
          0.0258751082199379, ...
          0.4503409417390182, ...
          0.4503409417390182, ...
          0.0993181165219635, ...
          0.1306776337702883, ...
          0.8635250475449717, ...
          0.0057973186847399, ...
          0.8635250475449718, ...
          0.1306776337702885, ...
          0.0057973186847396 ];

  b = [ ...
          0.3333333333333334, ...
          0.0276950641738804, ...
          0.4861524679130599, ...
          0.4861524679130600, ...
          0.1066696808640776, ...
          0.1390906284720946, ...
          0.7542396906638279, ...
          0.1066696808640776, ...
          0.7542396906638279, ...
          0.1390906284720949, ...
          0.1608238382714791, ...
          0.4195880808642605, ...
          0.4195880808642607, ...
          0.0032611556637283, ...
          0.1972331307896530, ...
          0.7995057135466188, ...
          0.0032611556637283, ...
          0.7995057135466188, ...
          0.1972331307896533, ...
          0.0131398178404037, ...
          0.2385241509843100, ...
          0.7483360311752866, ...
          0.0131398178404037, ...
          0.7483360311752866, ...
          0.2385241509843103, ...
          0.0792067965066988, ...
          0.0792067965066985, ...
          0.8415864069866028, ...
          0.0023442211286869, ...
          0.0297507293859899, ...
          0.9679050494853232, ...
          0.0023442211286869, ...
          0.9679050494853232, ...
          0.0297507293859903, ...
          0.0177313492497142, ...
          0.0177313492497139, ...
          0.9645373015005720, ...
          0.0019614003698950, ...
          0.3957839332968854, ...
          0.6022546663332198, ...
          0.0019614003698950, ...
          0.6022546663332197, ...
          0.3957839332968856, ...
          0.1526365657752198, ...
          0.3516800587760810, ...
          0.4956833754486996, ...
          0.1526365657752198, ...
          0.4956833754486994, ...
          0.3516800587760812, ...
          0.1134252783475029, ...
          0.2024821942617584, ...
          0.6840925273907389, ...
          0.1134252783475029, ...
          0.6840925273907389, ...
          0.2024821942617586, ...
          0.0545213844446831, ...
          0.4225539552222151, ...
          0.5229246603331020, ...
          0.0545213844446831, ...
          0.5229246603331019, ...
          0.4225539552222153, ...
          0.0606049291607722, ...
          0.1246805088474439, ...
          0.8147145619917839, ...
          0.0606049291607722, ...
          0.8147145619917839, ...
          0.1246805088474443, ...
          0.0375889521575178, ...
          0.2555462364028573, ...
          0.7068648114396252, ...
          0.0375889521575178, ...
          0.7068648114396251, ...
          0.2555462364028576, ...
          0.0043863301700617, ...
          0.0745031299353863, ...
          0.9211105398945522, ...
          0.0043863301700617, ...
          0.9211105398945522, ...
          0.0745031299353866, ...
          0.0172734143249371, ...
          0.4168072755236506, ...
          0.5659193101514125, ...
          0.0172734143249371, ...
          0.5659193101514124, ...
          0.4168072755236508, ...
          0.0625780220143109, ...
          0.1928717230061985, ...
          0.7445502549794908, ...
          0.0625780220143109, ...
          0.7445502549794908, ...
          0.1928717230061987, ...
          0.0184079470312829, ...
          0.0473478189395524, ...
          0.9342442340291647, ...
          0.0184079470312829, ...
          0.9342442340291647, ...
          0.0473478189395528, ...
          0.2184364967909282, ...
          0.2184364967909281, ...
          0.5631270064181439, ...
          0.1724507871838862, ...
          0.1724507871838861, ...
          0.6550984256322279, ...
          0.0510951808223816, ...
          0.0510951808223813, ...
          0.8978096383552373, ...
          0.0429032089427714, ...
          0.3419050053475277, ...
          0.6151917857097011, ...
          0.0429032089427714, ...
          0.6151917857097009, ...
          0.3419050053475279, ...
          0.0131890837790157, ...
          0.3258139530575097, ...
          0.6609969631634748, ...
          0.0131890837790157, ...
          0.6609969631634748, ...
          0.3258139530575100, ...
          0.0011968816307096, ...
          0.2894259487571373, ...
          0.7093771696121534, ...
          0.0011968816307096, ...
          0.7093771696121534, ...
          0.2894259487571375, ...
          0.2191327614301768, ...
          0.2987897956760134, ...
          0.4820774428938099, ...
          0.2191327614301768, ...
          0.4820774428938099, ...
          0.2987897956760135, ...
          0.0811298915693310, ...
          0.2744757477427950, ...
          0.6443943606878743, ...
          0.0811298915693310, ...
          0.6443943606878741, ...
          0.2744757477427952, ...
          0.0952781144820168, ...
          0.3532298738914157, ...
          0.5514920116265677, ...
          0.0952781144820168, ...
          0.5514920116265677, ...
          0.3532298738914159, ...
          0.0045027587470595, ...
          0.4977486206264704, ...
          0.4977486206264705, ...
          0.1468887080021119, ...
          0.2663678824750718, ...
          0.5867434095228166, ...
          0.1468887080021119, ...
          0.5867434095228163, ...
          0.2663678824750720, ...
          0.2296630615086399, ...
          0.3851684692456802, ...
          0.3851684692456802, ...
          0.2974914903679930, ...
          0.2974914903679929, ...
          0.4050170192640143, ...
          0.0275306300785875, ...
          0.0960481521010511, ...
          0.8764212178203615, ...
          0.0275306300785875, ...
          0.8764212178203615, ...
          0.0960481521010514, ...
          0.0050828094627280, ...
          0.0050828094627277, ...
          0.9898343810745442, ...
          0.0258751082199382, ...
          0.1674078247783561, ...
          0.8067170670017060, ...
          0.0258751082199382, ...
          0.8067170670017060, ...
          0.1674078247783564, ...
          0.0993181165219637, ...
          0.4503409417390183, ...
          0.4503409417390184, ...
          0.0057973186847398, ...
          0.1306776337702883, ...
          0.8635250475449719, ...
          0.0057973186847398, ...
          0.8635250475449719, ...
          0.1306776337702887 ];

  c = [ ...
          0.3333333333333333, ...
          0.4861524679130598, ...
          0.0276950641738803, ...
          0.4861524679130597, ...
          0.7542396906638279, ...
          0.1066696808640775, ...
          0.1390906284720944, ...
          0.1390906284720945, ...
          0.1066696808640774, ...
          0.7542396906638278, ...
          0.4195880808642605, ...
          0.1608238382714790, ...
          0.4195880808642604, ...
          0.7995057135466186, ...
          0.0032611556637284, ...
          0.1972331307896529, ...
          0.1972331307896531, ...
          0.0032611556637281, ...
          0.7995057135466186, ...
          0.7483360311752864, ...
          0.0131398178404037, ...
          0.2385241509843098, ...
          0.2385241509843100, ...
          0.0131398178404035, ...
          0.7483360311752864, ...
          0.8415864069866027, ...
          0.0792067965066989, ...
          0.0792067965066983, ...
          0.9679050494853231, ...
          0.0023442211286870, ...
          0.0297507293859898, ...
          0.0297507293859899, ...
          0.0023442211286867, ...
          0.9679050494853230, ...
          0.9645373015005719, ...
          0.0177313492497143, ...
          0.0177313492497136, ...
          0.6022546663332197, ...
          0.0019614003698950, ...
          0.3957839332968852, ...
          0.3957839332968854, ...
          0.0019614003698950, ...
          0.6022546663332196, ...
          0.4956833754486993, ...
          0.1526365657752197, ...
          0.3516800587760808, ...
          0.3516800587760809, ...
          0.1526365657752197, ...
          0.4956833754486992, ...
          0.6840925273907388, ...
          0.1134252783475028, ...
          0.2024821942617582, ...
          0.2024821942617584, ...
          0.1134252783475026, ...
          0.6840925273907387, ...
          0.5229246603331018, ...
          0.0545213844446831, ...
          0.4225539552222149, ...
          0.4225539552222151, ...
          0.0545213844446830, ...
          0.5229246603331017, ...
          0.8147145619917838, ...
          0.0606049291607722, ...
          0.1246805088474437, ...
          0.1246805088474440, ...
          0.0606049291607720, ...
          0.8147145619917837, ...
          0.7068648114396249, ...
          0.0375889521575178, ...
          0.2555462364028570, ...
          0.2555462364028572, ...
          0.0375889521575176, ...
          0.7068648114396248, ...
          0.9211105398945520, ...
          0.0043863301700617, ...
          0.0745031299353861, ...
          0.0745031299353863, ...
          0.0043863301700614, ...
          0.9211105398945519, ...
          0.5659193101514124, ...
          0.0172734143249370, ...
          0.4168072755236504, ...
          0.4168072755236506, ...
          0.0172734143249370, ...
          0.5659193101514122, ...
          0.7445502549794906, ...
          0.0625780220143110, ...
          0.1928717230061983, ...
          0.1928717230061984, ...
          0.0625780220143107, ...
          0.7445502549794906, ...
          0.9342442340291647, ...
          0.0184079470312830, ...
          0.0473478189395523, ...
          0.0473478189395525, ...
          0.0184079470312827, ...
          0.9342442340291645, ...
          0.5631270064181437, ...
          0.2184364967909282, ...
          0.2184364967909279, ...
          0.6550984256322278, ...
          0.1724507871838862, ...
          0.1724507871838858, ...
          0.8978096383552372, ...
          0.0510951808223815, ...
          0.0510951808223811, ...
          0.6151917857097009, ...
          0.0429032089427714, ...
          0.3419050053475274, ...
          0.3419050053475277, ...
          0.0429032089427713, ...
          0.6151917857097007, ...
          0.6609969631634746, ...
          0.0131890837790157, ...
          0.3258139530575095, ...
          0.3258139530575096, ...
          0.0131890837790155, ...
          0.6609969631634744, ...
          0.7093771696121530, ...
          0.0011968816307096, ...
          0.2894259487571371, ...
          0.2894259487571373, ...
          0.0011968816307094, ...
          0.7093771696121531, ...
          0.4820774428938099, ...
          0.2191327614301767, ...
          0.2987897956760133, ...
          0.2987897956760133, ...
          0.2191327614301767, ...
          0.4820774428938098, ...
          0.6443943606878740, ...
          0.0811298915693309, ...
          0.2744757477427947, ...
          0.2744757477427950, ...
          0.0811298915693308, ...
          0.6443943606878739, ...
          0.5514920116265676, ...
          0.0952781144820167, ...
          0.3532298738914156, ...
          0.3532298738914156, ...
          0.0952781144820166, ...
          0.5514920116265676, ...
          0.4977486206264702, ...
          0.0045027587470594, ...
          0.4977486206264701, ...
          0.5867434095228163, ...
          0.1468887080021118, ...
          0.2663678824750716, ...
          0.2663678824750719, ...
          0.1468887080021118, ...
          0.5867434095228162, ...
          0.3851684692456800, ...
          0.2296630615086398, ...
          0.3851684692456800, ...
          0.4050170192640142, ...
          0.2974914903679929, ...
          0.2974914903679928, ...
          0.8764212178203614, ...
          0.0275306300785875, ...
          0.0960481521010509, ...
          0.0960481521010511, ...
          0.0275306300785872, ...
          0.8764212178203613, ...
          0.9898343810745441, ...
          0.0050828094627281, ...
          0.0050828094627275, ...
          0.8067170670017058, ...
          0.0258751082199383, ...
          0.1674078247783558, ...
          0.1674078247783561, ...
          0.0258751082199379, ...
          0.8067170670017056, ...
          0.4503409417390182, ...
          0.0993181165219635, ...
          0.4503409417390181, ...
          0.8635250475449718, ...
          0.0057973186847400, ...
          0.1306776337702881, ...
          0.1306776337702883, ...
          0.0057973186847396, ...
          0.8635250475449716 ];

  w = [ ...
          0.0083431208138864, ...
          0.0040439883965194, ...
          0.0040439883965194, ...
          0.0040439883965194, ...
          0.0058062932483637, ...
          0.0058062932483637, ...
          0.0058062932483637, ...
          0.0058062932483637, ...
          0.0058062932483637, ...
          0.0058062932483637, ...
          0.0088430826430883, ...
          0.0088430826430883, ...
          0.0088430826430883, ...
          0.0012838516987697, ...
          0.0012838516987697, ...
          0.0012838516987697, ...
          0.0012838516987697, ...
          0.0012838516987697, ...
          0.0012838516987697, ...
          0.0028265142759277, ...
          0.0028265142759277, ...
          0.0028265142759277, ...
          0.0028265142759277, ...
          0.0028265142759277, ...
          0.0028265142759277, ...
          0.0042237298511032, ...
          0.0042237298511032, ...
          0.0042237298511032, ...
          0.0005055090468723, ...
          0.0005055090468723, ...
          0.0005055090468723, ...
          0.0005055090468723, ...
          0.0005055090468723, ...
          0.0005055090468723, ...
          0.0009868661450271, ...
          0.0009868661450271, ...
          0.0009868661450271, ...
          0.0013026954489735, ...
          0.0013026954489735, ...
          0.0013026954489735, ...
          0.0013026954489735, ...
          0.0013026954489735, ...
          0.0013026954489735, ...
          0.0101925794443413, ...
          0.0101925794443413, ...
          0.0101925794443413, ...
          0.0101925794443413, ...
          0.0101925794443413, ...
          0.0101925794443413, ...
          0.0078668704957381, ...
          0.0078668704957381, ...
          0.0078668704957381, ...
          0.0078668704957381, ...
          0.0078668704957381, ...
          0.0078668704957381, ...
          0.0071208092414188, ...
          0.0071208092414188, ...
          0.0071208092414188, ...
          0.0071208092414188, ...
          0.0071208092414188, ...
          0.0071208092414188, ...
          0.0049641144765077, ...
          0.0049641144765077, ...
          0.0049641144765077, ...
          0.0049641144765077, ...
          0.0049641144765077, ...
          0.0049641144765077, ...
          0.0054364374730136, ...
          0.0054364374730136, ...
          0.0054364374730136, ...
          0.0054364374730136, ...
          0.0054364374730136, ...
          0.0054364374730136, ...
          0.0011525829400843, ...
          0.0011525829400843, ...
          0.0011525829400843, ...
          0.0011525829400843, ...
          0.0011525829400843, ...
          0.0011525829400843, ...
          0.0041783326918215, ...
          0.0041783326918215, ...
          0.0041783326918215, ...
          0.0041783326918215, ...
          0.0041783326918215, ...
          0.0041783326918215, ...
          0.0063624230528669, ...
          0.0063624230528669, ...
          0.0063624230528669, ...
          0.0063624230528669, ...
          0.0063624230528669, ...
          0.0063624230528669, ...
          0.0018127692882839, ...
          0.0018127692882839, ...
          0.0018127692882839, ...
          0.0018127692882839, ...
          0.0018127692882839, ...
          0.0018127692882839, ...
          0.0112370035080132, ...
          0.0112370035080132, ...
          0.0112370035080132, ...
          0.0095591959667284, ...
          0.0095591959667284, ...
          0.0095591959667284, ...
          0.0032590866501858, ...
          0.0032590866501858, ...
          0.0032590866501858, ...
          0.0066899592450456, ...
          0.0066899592450456, ...
          0.0066899592450456, ...
          0.0066899592450456, ...
          0.0066899592450456, ...
          0.0066899592450456, ...
          0.0036397134849474, ...
          0.0036397134849474, ...
          0.0036397134849474, ...
          0.0036397134849474, ...
          0.0036397134849474, ...
          0.0036397134849474, ...
          0.0009293703376931, ...
          0.0009293703376931, ...
          0.0009293703376931, ...
          0.0009293703376931, ...
          0.0009293703376931, ...
          0.0009293703376931, ...
          0.0128955867879842, ...
          0.0128955867879842, ...
          0.0128955867879842, ...
          0.0128955867879842, ...
          0.0128955867879842, ...
          0.0128955867879842, ...
          0.0084758977171366, ...
          0.0084758977171366, ...
          0.0084758977171366, ...
          0.0084758977171366, ...
          0.0084758977171366, ...
          0.0084758977171366, ...
          0.0096222755316967, ...
          0.0096222755316967, ...
          0.0096222755316967, ...
          0.0096222755316967, ...
          0.0096222755316967, ...
          0.0096222755316967, ...
          0.0023276606420564, ...
          0.0023276606420564, ...
          0.0023276606420564, ...
          0.0115996690313856, ...
          0.0115996690313856, ...
          0.0115996690313856, ...
          0.0115996690313856, ...
          0.0115996690313856, ...
          0.0115996690313856, ...
          0.0137393951965683, ...
          0.0137393951965683, ...
          0.0137393951965683, ...
          0.0123590405093469, ...
          0.0123590405093469, ...
          0.0123590405093469, ...
          0.0036665867049268, ...
          0.0036665867049268, ...
          0.0036665867049268, ...
          0.0036665867049268, ...
          0.0036665867049268, ...
          0.0036665867049268, ...
          0.0003444013792726, ...
          0.0003444013792726, ...
          0.0003444013792726, ...
          0.0044453379912524, ...
          0.0044453379912524, ...
          0.0044453379912524, ...
          0.0044453379912524, ...
          0.0044453379912524, ...
          0.0044453379912524, ...
          0.0104339772957806, ...
          0.0104339772957806, ...
          0.0104339772957806, ...
          0.0018212527841225, ...
          0.0018212527841225, ...
          0.0018212527841225, ...
          0.0018212527841225, ...
          0.0018212527841225, ...
          0.0018212527841225 ];

  return
end
