function [ x, w ] = rule19 ( n )

%*****************************************************************************80
%
%% rule19() returns the rule of degree 19.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    07 July 2014
%
%  Author:
%
%    Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas.
%    This MATLAB version by 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.
%
%  Input:
%
%    integer N, the number of nodes.
%
%  Output:
%
%    real X(2,N), the coordinates of the nodes.
%
%    real W(N), the weights.
%
  xs = [ ...
    -.9734386316165470,0.9744990929036832, ...
    0.9734386316165472,-.9744990929036830, ...
    -.3841574585766744,0.9670641778942685, ...
    0.3841574585766745,-.9670641778942685, ...
    0.2986734938364671,0.9905525689050123, ...
    -.2986734938364670,-.9905525689050123, ...
    -.7396581737067777,0.9869464369033261, ...
    0.7396581737067779,-.9869464369033261, ...
    -.1425244970455050,0.9733021904515969, ...
    0.1425244970455051,-.9733021904515969, ...
    0.7650240374639232,0.9804863471920530, ...
    -.7650240374639230,-.9804863471920530, ...
    -.7599006633708002,0.7279453517455540, ...
    0.7599006633708002,-.7279453517455540, ...
    -.1192987760526789,-.2637912058730560E-02, ...
    0.1192987760526789,0.2637912058730575E-02, ...
    -.8850504442537889,0.9022234232868145, ...
    0.8850504442537889,-.9022234232868145, ...
    0.5304174652462883,0.9125489607085608, ...
    -.5304174652462881,-.9125489607085608, ...
    -.2858528945041368,0.2941600854694212, ...
    0.2858528945041368,-.2941600854694212, ...
    -.5671850101113227,0.8836081660895880, ...
    0.5671850101113227,-.8836081660895880, ...
    0.3174295148500719,0.7293427112089215, ...
    -.3174295148500718,-.7293427112089215, ...
    -.2492430513869149,0.7672563284436533, ...
    0.2492430513869150,-.7672563284436533, ...
    -.5087793568494521,0.5623738439118215, ...
    0.5087793568494521,-.5623738439118215, ...
    0.7335719396414396E-01,0.8930925855397183, ...
    -.7335719396414385E-01,-.8930925855397183, ...
    0.8350775723842838E-02,0.5392457387102469, ...
    -.8350775723842772E-02,-.5392457387102469 ];
  ys = [ ...
    -.9744990929036833,-.9734386316165471, ...
    0.9744990929036831,0.9734386316165473, ...
    -.9670641778942685,-.3841574585766744, ...
    0.9670641778942685,0.3841574585766745, ...
    -.9905525689050123,0.2986734938364670, ...
    0.9905525689050123,-.2986734938364669, ...
    -.9869464369033261,-.7396581737067778, ...
    0.9869464369033261,0.7396581737067780, ...
    -.9733021904515969,-.1425244970455050, ...
    0.9733021904515969,0.1425244970455051, ...
    -.9804863471920530,0.7650240374639231, ...
    0.9804863471920530,-.7650240374639229, ...
    -.7279453517455540,-.7599006633708002, ...
    0.7279453517455540,0.7599006633708002, ...
    0.2637912058730553E-02,-.1192987760526789, ...
    -.2637912058730568E-02,0.1192987760526789, ...
    -.9022234232868145,-.8850504442537889, ...
    0.9022234232868145,0.8850504442537889, ...
    -.9125489607085608,0.5304174652462882, ...
    0.9125489607085608,-.5304174652462880, ...
    -.2941600854694212,-.2858528945041368, ...
    0.2941600854694212,0.2858528945041368, ...
    -.8836081660895880,-.5671850101113227, ...
    0.8836081660895880,0.5671850101113227, ...
    -.7293427112089215,0.3174295148500719, ...
    0.7293427112089215,-.3174295148500718, ...
    -.7672563284436533,-.2492430513869149, ...
    0.7672563284436533,0.2492430513869150, ...
    -.5623738439118215,-.5087793568494521, ...
    0.5623738439118215,0.5087793568494521, ...
    -.8930925855397183,0.7335719396414390E-01, ...
    0.8930925855397183,-.7335719396414379E-01, ...
    -.5392457387102469,0.8350775723842805E-02, ...
    0.5392457387102469,-.8350775723842739E-02 ];
  ws = [ ...
    0.4076118519980060E-02,0.4076118519980060E-02, ...
    0.4076118519980060E-02,0.4076118519980060E-02, ...
    0.1627326938099484E-01,0.1627326938099484E-01, ...
    0.1627326938099484E-01,0.1627326938099484E-01, ...
    0.1254157952509427E-01,0.1254157952509427E-01, ...
    0.1254157952509427E-01,0.1254157952509427E-01, ...
    0.1028929333936017E-01,0.1028929333936017E-01, ...
    0.1028929333936017E-01,0.1028929333936017E-01, ...
    0.1475928282295525E-01,0.1475928282295525E-01, ...
    0.1475928282295525E-01,0.1475928282295525E-01, ...
    0.1207323692393111E-01,0.1207323692393111E-01, ...
    0.1207323692393111E-01,0.1207323692393111E-01, ...
    0.4619184040692218E-01,0.4619184040692218E-01, ...
    0.4619184040692218E-01,0.4619184040692218E-01, ...
    0.3696173437828049E-01,0.3696173437828049E-01, ...
    0.3696173437828049E-01,0.3696173437828049E-01, ...
    0.2018069481193246E-01,0.2018069481193246E-01, ...
    0.2018069481193246E-01,0.2018069481193246E-01, ...
    0.3738944032940469E-01,0.3738944032940469E-01, ...
    0.3738944032940469E-01,0.3738944032940469E-01, ...
    0.9821701539315209E-01,0.9821701539315209E-01, ...
    0.9821701539315209E-01,0.9821701539315209E-01, ...
    0.3844110871724747E-01,0.3844110871724747E-01, ...
    0.3844110871724747E-01,0.3844110871724747E-01, ...
    0.7127049386881731E-01,0.7127049386881731E-01, ...
    0.7127049386881731E-01,0.7127049386881731E-01, ...
    0.6966749913838975E-01,0.6966749913838975E-01, ...
    0.6966749913838975E-01,0.6966749913838975E-01, ...
    0.7715964130310782E-01,0.7715964130310782E-01, ...
    0.7715964130310782E-01,0.7715964130310782E-01, ...
    0.4598470092336809E-01,0.4598470092336809E-01, ...
    0.4598470092336809E-01,0.4598470092336809E-01, ...
    0.9562983140360957E-01,0.9562983140360957E-01, ...
    0.9562983140360957E-01,0.9562983140360957E-01 ];

  x(1,1:n) = xs(1:n);
  x(2,1:n) = ys(1:n);
  w(1:n) = ws(1:n);

  return
end
