function lambert_w_test02 ( )

%*****************************************************************************80
%
%% lambert_w_test02() repeats the test with a vector argument.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    19 June 2023
%
%  Author:
%
%    John Burkardt.
%
  fprintf ( 1, '\n' );
  fprintf ( 1, 'lambert_w_test02():\n' );
  fprintf ( 1, '  Repeat test, using a single call with vector argument.\n' );
  fprintf ( 1, '\n' );
  fprintf ( 1, '      X           Stored value       lambert_w(X)       lambertw(X)\n' );
  fprintf ( 1, '\n' );

  X = [ ...
   -0.036787944117144, ...
   -0.073575888234288, ...
   -0.110363832351433, ...
   -0.147151776468577, ...
   -0.183939720585721, ...
   -0.220727664702865, ...
   -0.257515608820010, ...
   -0.294303552937154, ...
   -0.331091497054298, ...
   -0.367879441171442, ...
   -0.331091497054298, ...
   -0.294303552937154, ...
   -0.257515608820010, ...
   -0.220727664702865, ...
   -0.183939720585721, ...
   -0.147151776468577, ...
   -0.110363832351433, ...
   -0.073575888234288, ...
   -0.036787944117144, ...
    0.0000000000000000E+00, ...
    0.5000000000000000E+00, ...
    0.1000000000000000E+01, ...
    0.1500000000000000E+01, ...
    0.2000000000000000E+01, ...
    0.2500000000000000E+01, ...
    0.2718281828459045E+01, ...
    0.3000000000000000E+01, ...
    0.3500000000000000E+01, ...
    0.4000000000000000E+01, ...
    0.4500000000000000E+01, ...
    0.5000000000000000E+01, ...
    0.5500000000000000E+01, ...
    0.6000000000000000E+01, ...
    0.6500000000000000E+01, ...
    0.7000000000000000E+01, ...
    0.7500000000000000E+01, ...
    0.8000000000000000E+01, ...
    0.1000000000000000E+02, ...
    0.1000000000000000E+03, ...
    0.1000000000000000E+04, ...
    0.1000000000000000E+07 ];

  FX1 = [ ...
   -4.889720169867429, ...
   -3.994308347002122, ...
   -3.439216483280204, ...
   -3.022313245324657, ...
   -2.678346990016661, ...
   -2.376421342062887, ...
   -2.097349210703492, ...
   -1.824388309032984, ...
   -1.531811608389612, ...
   -1.000000000000000, ...
   -0.608341284733432, ...
   -0.471671909743522, ...
   -0.374493134019498, ...
   -0.297083462446424, ...
   -0.231960952986534, ...
   -0.175356500529299, ...
   -0.125066982982524, ...
   -0.079678160511477, ...
   -0.038221241746799, ...
    0.0000000000000000E+00, ...
    0.3517337112491958E+00, ...
    0.5671432904097839E+00, ...
    0.7258613577662263E+00, ...
    0.8526055020137255E+00, ...
    0.9585863567287029E+00, ...
    0.1000000000000000E+01, ...
    0.1049908894964040E+01, ...
    0.1130289326974136E+01, ...
    0.1202167873197043E+01, ...
    0.1267237814307435E+01, ...
    0.1326724665242200E+01, ...
    0.1381545379445041E+01, ...
    0.1432404775898300E+01, ...
    0.1479856830173851E+01, ...
    0.1524345204984144E+01, ...
    0.1566230953782388E+01, ...
    0.1605811996320178E+01, ...
    0.1745528002740699E+01, ...
    0.3385630140290050E+01, ...
    0.5249602852401596E+01, ...
    0.1138335808614005E+02 ];

  B = [ ...
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ...
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0, ...
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0, ...
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0, ...
     0 ];

  FX2 = lambert_w ( X, B, 0 );

  FX3 = lambertw ( B, X );

  for i = 1 : numel ( X )
    fprintf ( 1, '  %12.6g  %25.16f  %25.16f  %25.16f\n', ...
      X(i), FX1(i), FX2(i), FX3(i) );
  end

  return
end
