changeset 26295:12f26c02643b

maint: merge stable to default.
author Rik <rik@octave.org>
date Sun, 23 Dec 2018 12:36:23 -0800
parents cfa0429b7d5a (current diff) 3c5863948bb3 (diff)
children a7616edfaa34
files
diffstat 20 files changed, 217 insertions(+), 149 deletions(-) [+]
line wrap: on
line diff
--- a/CITATION	Fri Dec 21 16:44:03 2018 -0500
+++ b/CITATION	Sun Dec 23 12:36:23 2018 -0800
@@ -1,17 +1,17 @@
 To cite GNU Octave in publications use:
 
-  John W. Eaton, David Bateman, Søren Hauberg, Rik Wehbring (2018).
-  GNU Octave version 4.4.1 manual: a high-level interactive language for
+  John W. Eaton, David Bateman, Søren Hauberg, Rik Wehbring (2019).
+  GNU Octave version 5.1.0 manual: a high-level interactive language for
   numerical computations.
-  URL https://www.gnu.org/software/octave/doc/v4.4.1/
+  URL https://www.gnu.org/software/octave/doc/v5.1.0/
 
 A BibTeX entry for LaTeX users is:
 
   @manual{,
-    title     = {{GNU Octave} version 4.4.0 manual: a high-level interactive language for numerical computations},
+    title     = {{GNU Octave} version 5.1.0 manual: a high-level interactive language for numerical computations},
     author    = {John W. Eaton and David Bateman and S{\o}ren Hauberg and Rik Wehbring},
-    year      = {2018},
-    url       = {https://www.gnu.org/software/octave/doc/v4.4.1/},
+    year      = {2019},
+    url       = {https://www.gnu.org/software/octave/doc/v5.1.0/},
   }
 
 We have invested a lot of time and effort in creating GNU Octave, please
--- a/doc/interpreter/func.txi	Fri Dec 21 16:44:03 2018 -0500
+++ b/doc/interpreter/func.txi	Sun Dec 23 12:36:23 2018 -0800
@@ -1098,7 +1098,9 @@
 @subsection Function Locking
 
 It is sometime desirable to lock a function into memory with the @code{mlock}
-function.  This is typically used for dynamically linked functions in oct-files or mex-files that contain some initialization, and it is desirable that calling @code{clear} does not remove this initialization.
+function.  This is typically used for dynamically linked functions in
+oct-files or mex-files that contain some initialization, and it is desirable
+that calling @code{clear} does not remove this initialization.
 
 As an example,
 
--- a/doc/interpreter/image.txi	Fri Dec 21 16:44:03 2018 -0500
+++ b/doc/interpreter/image.txi	Sun Dec 23 12:36:23 2018 -0800
@@ -140,7 +140,7 @@
 an RGB color.  The color map must be of class @code{double} with values
 between 0 and 1.
 
-The following convenience functions are available for conversion between image 
+The following convenience functions are available for conversion between image
 formats.
 
 @DOCSTRING(im2double)
@@ -153,8 +153,8 @@
 
 @DOCSTRING(ind2rgb)
 
-Octave also provides tools to produce and work with movie frame structures. 
-Those structures encapsulate the image data (@qcode{"cdata"} field) together 
+Octave also provides tools to produce and work with movie frame structures.
+Those structures encapsulate the image data (@qcode{"cdata"} field) together
 with the corresponding colormap (@qcode{"colormap"} field).
 
 @DOCSTRING(getframe)
@@ -165,14 +165,15 @@
 
 @DOCSTRING(im2frame)
 
-The @code{colormap} function is used to change the colormap of the current axes or figure.
+The @code{colormap} function is used to change the colormap of the current
+axes or figure.
 
 @DOCSTRING(colormap)
 
 @DOCSTRING(iscolormap)
 
-The following functions return predefined colormaps, the same that can be 
-requested by name using the @code{colormap} function. 
+The following functions return predefined colormaps, the same that can be
+requested by name using the @code{colormap} function.
 
 @DOCSTRING(rgbplot)
 
--- a/doc/interpreter/oop.txi	Fri Dec 21 16:44:03 2018 -0500
+++ b/doc/interpreter/oop.txi	Sun Dec 23 12:36:23 2018 -0800
@@ -153,7 +153,9 @@
 For a polynomial class it makes sense to have a method to compute its roots.
 
 @example
+@group
 @EXAMPLEFILE(@polynomial/roots.m)
+@end group
 @end example
 
 We can check for the existence of the @code{roots}-method by calling:
--- a/libgui/src/m-editor/file-editor-tab.cc	Fri Dec 21 16:44:03 2018 -0500
+++ b/libgui/src/m-editor/file-editor-tab.cc	Sun Dec 23 12:36:23 2018 -0800
@@ -2145,13 +2145,9 @@
     _encoding = _new_encoding;    // consider a possible new encoding
 
     // set the desired codec (if suitable for contents)
-    QTextCodec *codec = QTextCodec::codecForName (_encoding.toLatin1 ());
-
-    if (check_valid_codec (codec))
-      {
-        save_file_as (remove_on_success);
-        return;
-      }
+    QTextCodec *codec = check_valid_codec ();
+    if (! codec)
+      return;   // No valid codec
 
     // write the file
     QTextStream out (&file);
@@ -2305,34 +2301,39 @@
     return false;
   }
 
-  bool file_editor_tab::check_valid_codec (QTextCodec *codec)
+  QTextCodec* file_editor_tab::check_valid_codec ()
   {
+    QTextCodec *codec = QTextCodec::codecForName (_encoding.toLatin1 ());
+
+    // "SYSTEM" is used as alias for locale on windows systems,
+    // which might not support "SYSTEM" codec
+    if ((! codec) && (_encoding == "SYSTEM"))
+      codec = QTextCodec::codecForLocale ();
+
     if (! codec)
       {
         QMessageBox::critical (nullptr,
                                tr ("Octave Editor"),
                                tr ("The current encoding %1\n"
                                    "can not be applied.\n\n"
-                                   "Please select another one or cancel saving!").arg (_encoding));
-
-        return true;
+                                   "Please select another one!").arg (_encoding));
+
+        return nullptr;
       }
 
     if (! codec->canEncode (_edit_area->text ()))
       {
-        int ans = QMessageBox::warning (nullptr,
-                                        tr ("Octave Editor"),
-                                        tr ("The current editor contents can not be encoded\n"
-                                            "with the selected encoding %1.\n"
-                                            "Using it will result in data loss!\n\n"
-                                            "Do you want to choose another encoding?").arg (_encoding),
-                                        QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
-
-        if (ans == QMessageBox::Yes)
-          return true;
+        QMessageBox::critical (nullptr,
+                               tr ("Octave Editor"),
+                               tr ("The current editor contents can not be encoded\n"
+                                   "with the selected encoding %1.\n"
+                                   "Using it would result in data loss!\n\n"
+                                   "Please select another one!").arg (_encoding));
+
+        return nullptr;
       }
 
-    return false;
+    return codec;
   }
 
   void file_editor_tab::handle_save_file_as_answer (const QString& saveFileName)
--- a/libgui/src/m-editor/file-editor-tab.h	Fri Dec 21 16:44:03 2018 -0500
+++ b/libgui/src/m-editor/file-editor-tab.h	Sun Dec 23 12:36:23 2018 -0800
@@ -251,7 +251,7 @@
                     bool restore_breakpoints = true);
     void save_file_as (bool remove_on_success = false);
     bool check_valid_identifier (QString file_name);
-    bool check_valid_codec (QTextCodec *codec);
+    QTextCodec* check_valid_codec (void);
 
     bool unchanged_or_saved (void);
 
--- a/libgui/src/resource-manager.cc	Fri Dec 21 16:44:03 2018 -0500
+++ b/libgui/src/resource-manager.cc	Sun Dec 23 12:36:23 2018 -0800
@@ -386,6 +386,12 @@
         QTextCodec *c = QTextCodec::codecForMib (mib);
         codecs->append (c->name ().toUpper ());
       }
+
+    // If on windows append SYSTEM even if not supported
+    if (ed_default_enc.def.toString () == "SYSTEM")
+      codecs->append (ed_default_enc.def.toString ());
+
+    // Clean up and sort list of codecs
     codecs->removeDuplicates ();
     qSort (*codecs);
   }
@@ -399,8 +405,11 @@
     // get the value from the settings file if no current encoding is given
     QString enc = current;
 
+    // Check for valid codec for the default. Allow "SYSTEM" even no valid
+    // codec exists, since codecForLocale will be chosen in this case
     bool default_exists = false;
-    if (QTextCodec::codecForName (ed_default_enc.def.toString ().toLatin1 ()))
+    if (QTextCodec::codecForName (ed_default_enc.def.toString ().toLatin1 ())
+        || (ed_default_enc.def.toString () == "SYSTEM"))
       default_exists = true;
 
     if (enc.isEmpty ())
--- a/libinterp/corefcn/data.cc	Fri Dec 21 16:44:03 2018 -0500
+++ b/libinterp/corefcn/data.cc	Sun Dec 23 12:36:23 2018 -0800
@@ -572,9 +572,12 @@
 An error message is printed if the dimensions of the arguments do not agree,
 or if either argument is complex.
 
-Programming Notes: Floating point numbers within a few eps of an integer
-will be rounded to an integer before computation for compatibility with
-@sc{matlab}.
+Programming Notes: When calculating with floating point numbers (double,
+single), values within a few eps of an integer will be rounded to that
+integer before computation for compatibility with @sc{matlab}.  Any floating
+point integers greater than @code{flintmax} (2^53 for double) will not compute
+correctly.  For larger integer values convert the input to @code{uint64} before
+calling this function.
 
 By convention,
 
@@ -582,7 +585,7 @@
 @group
 rem (@var{x}, 0) = NaN  if @var{x} is a floating point variable
 rem (@var{x}, 0) = 0    if @var{x} is an integer variable
-rem (@var{x}, @var{y})        returns a value with the signbit from @var{x}
+rem (@var{x}, @var{y})  returns a value with the signbit from @var{x}
 @end group
 @end example
 
@@ -753,9 +756,12 @@
 An error results if the dimensions of the arguments do not agree, or if
 either of the arguments is complex.
 
-Programming Notes: Floating point numbers within a few eps of an integer
-will be rounded to an integer before computation for compatibility with
-@sc{matlab}.
+Programming Notes: When calculating with floating point numbers (double,
+single), values within a few eps of an integer will be rounded to that
+integer before computation for compatibility with @sc{matlab}.  Any floating
+point integers greater than @code{flintmax} (2^53 for double) will not compute
+correctly.  For larger integer values convert the input to @code{uint64} before
+calling this function.
 
 By convention,
 
--- a/libinterp/octave-value/ov-fcn-handle.cc	Fri Dec 21 16:44:03 2018 -0500
+++ b/libinterp/octave-value/ov-fcn-handle.cc	Sun Dec 23 12:36:23 2018 -0800
@@ -1850,7 +1850,7 @@
 
 DEFMETHOD (str2func, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} str2func (@var{fcn_name})
+@deftypefn {} {} str2func (@var{fcn_name})
 Return a function handle constructed from the string @var{fcn_name}.
 
 Previous versions of Octave accepted an optional second argument,
--- a/scripts/general/flip.m	Fri Dec 21 16:44:03 2018 -0500
+++ b/scripts/general/flip.m	Sun Dec 23 12:36:23 2018 -0800
@@ -28,7 +28,6 @@
 ## Examples:
 ##
 ## @example
-## @group
 ## ## row vector
 ## flip ([1  2  3  4])
 ##       @result{}  4  3  2  1
@@ -49,7 +48,6 @@
 ## flip ([1 2; 3 4], 2)
 ##       @result{}  2  1
 ##           4  3
-## @end group
 ## @end example
 ##
 ## @seealso{fliplr, flipud, rot90, rotdim, permute, transpose}
--- a/scripts/geometry/convhull.m	Fri Dec 21 16:44:03 2018 -0500
+++ b/scripts/geometry/convhull.m	Sun Dec 23 12:36:23 2018 -0800
@@ -26,7 +26,7 @@
 ##
 ## The hull @var{H} is a linear index vector into the original set of points
 ## that specifies which points form the enclosing hull.  For 2-D inputs only,
-## the output is ordered in a counter-clockwise manner around the hull.
+## the output is ordered in a counterclockwise manner around the hull.
 ##
 ## The input @var{x} may also be a matrix with two or three columns where the
 ## first column contains x-data, the second y-data, and the optional third
--- a/scripts/help/__unimplemented__.m	Fri Dec 21 16:44:03 2018 -0500
+++ b/scripts/help/__unimplemented__.m	Sun Dec 23 12:36:23 2018 -0800
@@ -367,97 +367,118 @@
       txt = check_package (fcn, "signal");
 
     ## statistics
-    case {"addedvarplot", "addlevels", "addTerms", "adtest", ...
-          "andrewsplot", "anova1", "anova2", "anovan", "ansaribradley", ...
-          "aoctool", "barttest", "bbdesign", "betafit", "betalike", ...
-          "betastat", "binofit", "binostat", "biplot", "bootci", "bootstrp", ...
-          "boxplot", "candexch", "candgen", "canoncorr", "capability", ...
-          "capaplot", "caseread", "casewrite", "ccdesign", "cdf", ...
-          "cdfplot", "cell2dataset", "chi2gof", "chi2stat", "cholcov", ...
+    case {"addedvarplot", "addlevels", "addTerms", "adtest", "andrewsplot", ...
+          "anova", "anova1", "anova2", "anovan", "ansaribradley", ...
+          "aoctool", "bartlett_test", "barttest", "bbdesign", "betacdf", ...
+          "betafit", "betainv", "betalike", "betapdf", "betarnd", ...
+          "betastat", "binocdf", "binofit", "binoinv", "binopdf", ...
+          "binornd", "binostat", "biplot", "bootci", "bootstrp", "boxplot", ...
+          "candexch", "candgen", "canoncorr", "capability", "capaplot", ...
+          "caseread", "casewrite", "cauchy_cdf", "cauchy_inv", ...
+          "cauchy_pdf", "cauchy_rnd", "ccdesign", "cdf", "cdfplot", ...
+          "cell2dataset", "chi2cdf", "chi2gof", "chi2inv", "chi2pdf", ...
+          "chi2rnd", "chi2stat", "chisquare_test_homogeneity", ...
+          "chisquare_test_independence", "cholcov", ...
           "ClassificationBaggedEnsemble", "ClassificationDiscriminant", ...
           "ClassificationEnsemble", "ClassificationKNN", ...
           "ClassificationPartitionedEnsemble", ...
           "ClassificationPartitionedModel", "ClassificationTree", ...
-          "classify", "classregtree", "cluster", "clusterdata", "cmdscale", ...
-          "coefCI", "coefTest",  ...
-          "combnk", "compact", ...
+          "classify", "classregtree", "cloglog", "cluster", "clusterdata", ...
+          "cmdscale", "coefCI", "coefTest", "combnk", "compact", ...
           "CompactClassificationDiscriminant", ...
           "CompactClassificationEnsemble", "CompactClassificationTree", ...
           "CompactRegressionEnsemble", "CompactRegressionTree", ...
           "CompactTreeBagger", "compare", "confusionmat", "controlchart", ...
           "controlrules", "cophenet", "copulacdf", "copulafit", ...
-          "copulaparam", "copulapdf", "copularnd", "copulastat", "cordexch", ...
-          "corrcov", "covarianceParameters", "coxphfit", "createns", ...
-          "crosstab", "crossval", "cvpartition", "datasample", "dataset", ...
-          "dataset2cell", "dataset2struct", "dataset2table", "datasetfun", ...
-          "daugment", "dcovary", "dendrogram", "designMatrix", ...
-          "devianceTest", "dfittool",  ...
+          "copulaparam", "copulapdf", "copularnd", "copulastat", ...
+          "cordexch", "corrcov", "cor_test", "covarianceParameters", ...
+          "coxphfit", "createns", "crosstab", "crossval", "cvpartition", ...
+          "datasample", "dataset", "dataset2cell", "dataset2struct", ...
+          "dataset2table", "datasetfun", "daugment", "dcovary", ...
+          "dendrogram", "designMatrix", "devianceTest", "dfittool", ...
           "disttool", "droplevels", "dummyvar", "dwtest", "ecdf", ...
           "ecdfhist", "evalclusters", "evcdf", "evfit", "evinv", "evlike", ...
-          "evpdf", "evrnd", "evstat", "ExhaustiveSearcher", "expfit", ...
-          "explike", "export", "expstat", "factoran", ...
-          "ff2n", "fitdist", "fitensemble", "fitglm", "fitlm", ...
-          "fitlme", "fitlmematrix", "fitnlm", "fitted", "fixedEffects", ...
-          "fracfact", "fracfactgen", "friedman", "fsurfht", "fullfact", ...
-          "gagerr", "gamfit", "gamlike", "gamstat", ...
-          "GeneralizedLinearModel", "geomean", "geostat", "getlabels", ...
-          "getlevels", "gevcdf", "gevfit", "gevinv", "gevlike", "gevpdf", ...
-          "gevrnd", "gevstat", "gline", "glmfit", "glmval", "glyphplot", ...
+          "evpdf", "evrnd", "evstat", "ExhaustiveSearcher", "expcdf", ...
+          "expfit", "expinv", "explike", "export", "exppdf", "exprnd", ...
+          "expstat", "factoran", "fcdf", "ff2n", "finv", "fitdist", ...
+          "fitensemble", "fitglm", "fitlm", "fitlme", "fitlmematrix", ...
+          "fitnlm", "fitted", "fixedEffects", "fpdf", "fracfact", ...
+          "fracfactgen", "friedman", "frnd", "fsurfht", "fullfact", ...
+          "f_test_regression", "gagerr", "gamcdf", "gamfit", "gaminv", ...
+          "gamlike", "gampdf", "gamrnd", "gamstat", ...
+          "GeneralizedLinearModel", "geocdf", "geoinv", "geomean", ...
+          "geopdf", "geornd", "geostat", "getlabels", "getlevels", ...
+          "gevcdf", "gevfit", "gevinv", "gevlike", "gevpdf", "gevrnd", ...
+          "gevstat", "gline", "glmfit", "glmval", "glyphplot", ...
           "gmdistribution", "gname", "gpcdf", "gpfit", "gpinv", "gplike", ...
           "gplotmatrix", "gppdf", "gprnd", "gpstat", "grp2idx", "grpstats", ...
           "gscatter", "haltonset", "harmmean", "hist3", "histfit", ...
           "hmmdecode", "hmmestimate", "hmmgenerate", "hmmtrain", ...
-          "hmmviterbi", "hougen", "hygestat", "icdf", ...
+          "hmmviterbi", "hotelling_test", "hotelling_test_2", "hougen", ...
+          "hygecdf", "hygeinv", "hygepdf", "hygernd", "hygestat", "icdf", ...
           "inconsistent", "interactionplot", "invpred", "islevel", ...
           "ismissing", "isundefined", "iwishrnd", "jackknife", "jbtest", ...
           "johnsrnd", "join", "KDTreeSearcher", "kmeans", "knnsearch", ...
-          "kruskalwallis", "ksdensity", "kstest", "kstest2", "labels", ...
-          "lasso", "lassoglm", "lassoPlot", "levelcounts", "leverage", ...
-          "lhsdesign", "lhsnorm", "lillietest", "LinearMixedModel", ...
-          "LinearModel", "linhyptest", "linkage", "lognfit", "lognlike", ...
+          "kolmogorov_smirnov_cdf", "kolmogorov_smirnov_test", ...
+          "kolmogorov_smirnov_test_2", "kruskalwallis", ...
+          "kruskal_wallis_test", "ksdensity", "kstest", "kstest2", ...
+          "labels", "laplace_cdf", "laplace_inv", "laplace_pdf", ...
+          "laplace_rnd", "lasso", "lassoglm", "lassoPlot", "levelcounts", ...
+          "leverage", "lhsdesign", "lhsnorm", "lillietest", ...
+          "LinearMixedModel", "LinearModel", "linhyptest", "linkage", ...
+          "logistic_cdf", "logistic_inv", "logistic_pdf", ...
+          "logistic_regression", "logistic_rnd", "logit", "logncdf", ...
+          "lognfit", "logninv", "lognlike", "lognpdf", "lognrnd", ...
           "lognstat", "lsline", "mad", "mahal", "maineffectsplot", ...
-          "makedist", "manova1", "manovacluster", "mat2dataset", "mdscale", ...
-          "mergelevels", "mhsample", "mle", "mlecov", "mnpdf", "mnrfit", ...
-          "mnrnd", "mnrval", "multcompare", "multivarichart", "mvncdf", ...
-          "mvnpdf", "mvnrnd", "mvregress", "mvregresslike", "mvtcdf", ...
-          "mvtpdf", "mvtrnd", "NaiveBayes", "nancov", "nanmax", "nanmean", ...
-          "nanmedian", "nanmin", "nanstd", "nansum", "nanvar", "nbinfit", ...
-          "nbinstat", "ncfcdf", "ncfinv", "ncfpdf", "ncfrnd", "ncfstat", ...
-          "nctcdf", "nctinv", "nctpdf", "nctrnd", "nctstat", "ncx2cdf", ...
-          "ncx2inv", "ncx2pdf", "ncx2rnd", "ncx2stat", "negloglik", ...
-          "nlinfit", "nlintool", "nlmefit", "nlmefitsa", ...
+          "makedist", "manova", "manova1", "manovacluster", "mat2dataset", ...
+          "mcnemar_test", "mdscale", "mergelevels", "mhsample", "mle", ...
+          "mlecov", "mnpdf", "mnrfit", "mnrnd", "mnrval", "multcompare", ...
+          "multivarichart", "mvncdf", "mvnpdf", "mvnrnd", "mvregress", ...
+          "mvregresslike", "mvtcdf", "mvtpdf", "mvtrnd", "NaiveBayes", ...
+          "nancov", "nanmax", "nanmean", "nanmedian", "nanmin", "nanstd", ...
+          "nansum", "nanvar", "nbincdf", "nbinfit", "nbininv", "nbinpdf", ...
+          "nbinrnd", "nbinstat", "ncfcdf", "ncfinv", "ncfpdf", "ncfrnd", ...
+          "ncfstat", "nctcdf", "nctinv", "nctpdf", "nctrnd", "nctstat", ...
+          "ncx2cdf", "ncx2inv", "ncx2pdf", "ncx2rnd", "ncx2stat", ...
+          "negloglik", "nlinfit", "nlintool", "nlmefit", "nlmefitsa", ...
           "nlparci", "nlpredci", "nnmf", "nominal", "NonLinearModel", ...
-          "normfit", "normlike", "normplot", "normspec", "normstat", ...
+          "normcdf", "normfit", "norminv", "normlike", "normpdf", ...
+          "normplot", "normrnd", "normspec", "normstat", ...
           "optimalleaforder", "ordinal", "parallelcoords", "paramci", ...
           "paretotails", "partialcorr", "partialcorri", "pca", "pcacov", ...
-          "pcares", "pdf", "pdist", "pdist2", "pearsrnd", ...
-          "perfcurve", "plotAdded", "plotAdjustedResponse", ...
-          "plotDiagnostics", ...
-          "plotEffects", "plotInteraction", "plotResiduals", ...
-          "plotSlice", ...
-          "plsregress", "poissfit", "poisstat", ...
-          "polyconf", "polytool", "ppca", "predict", ...
-          "princomp", ...
-          "ProbDistUnivKernel", "ProbDistUnivParam", "probplot", ...
-          "procrustes", "proflik", "qrandset", "qrandstream", "random", ...
-          "randomEffects", ...
-          "randsample", "randtool", "rangesearch", "ranksum", "raylcdf", ...
-          "raylfit", "raylinv", "raylpdf", "raylrnd", "raylstat", "rcoplot", ...
-          "refcurve", "refline", "regress", "RegressionBaggedEnsemble", ...
+          "pcares", "pdf", "pdist", "pdist2", "pearsrnd", "perfcurve", ...
+          "plotAdded", "plotAdjustedResponse", "plotDiagnostics", ...
+          "plotEffects", "plotInteraction", "plotResiduals", "plotSlice", ...
+          "plsregress", "poisscdf", "poissfit", "poissinv", "poisspdf", ...
+          "poissrnd", "poisstat", "polyconf", "polytool", "ppca", ...
+          "prctile", "predict", "princomp", "ProbDistUnivKernel", ...
+          "ProbDistUnivParam", "probit", "probplot", "procrustes", ...
+          "proflik", "prop_test_2", "qqplot", "qrandset", "qrandstream", ...
+          "random", "randomEffects", "randsample", "randtool", ...
+          "rangesearch", "ranksum", "raylcdf", "raylfit", "raylinv", ...
+          "raylpdf", "raylrnd", "raylstat", "rcoplot", "refcurve", ...
+          "refline", "regress", "RegressionBaggedEnsemble", ...
           "RegressionEnsemble", "RegressionPartitionedEnsemble", ...
           "RegressionPartitionedModel", "RegressionTree", "regstats", ...
-          "relieff", "removeTerms", "residuals", "response", ...
-          "ridge", "robustdemo", "robustfit", "rotatefactors", "rowexch", ...
-          "rsmdemo", "rstool", "runstest", "sampsizepwr", "scatterhist", ...
-          "sequentialfs", "setlabels", "signrank", "signtest", "silhouette", ...
-          "slicesample", "sobolset", "squareform", "statget", "statset", ...
-          "step", "stepwise", "stepwisefit", "stepwiseglm", ...
-          "stepwiselm", "struct2dataset", "surfht", "svmclassify", ...
-          "svmtrain", "table2dataset", "tabulate", "tblread", "tblwrite", ...
-          "tdfread", "tiedrank", "TreeBagger", "trimmean", "truncate", ...
-          "tstat", "ttest", "ttest2", "unidstat", "unifit", "unifstat", ...
-          "vartest", "vartest2", "vartestn", "wblfit", "wbllike", "wblplot", ...
-          "wblstat", "wishrnd", "x2fx", "xlsread", "xptread", "ztest"}
+          "relieff", "removeTerms", "residuals", "response", "ridge", ...
+          "robustdemo", "robustfit", "rotatefactors", "rowexch", "rsmdemo", ...
+          "rstool", "runstest", "run_test", "sampsizepwr", "scatterhist", ...
+          "sequentialfs", "setlabels", "signrank", "signtest", "sign_test", ...
+          "silhouette", "slicesample", "sobolset", "squareform", "statget", ...
+          "statset", "stdnormal_cdf", "stdnormal_inv", "stdnormal_pdf", ...
+          "stdnormal_rnd", "step", "stepwise", "stepwisefit", ...
+          "stepwiseglm", "stepwiselm", "struct2dataset", "surfht", ...
+          "svmclassify", "svmtrain", "table2dataset", "tabulate", ...
+          "tblread", "tblwrite", "tcdf", "tdfread", "tiedrank", "tinv", ...
+          "tpdf", "TreeBagger", "trimmean", "trnd", "truncate", "tstat", ...
+          "ttest", "ttest2", "t_test", "t_test_2", "t_test_regression", ...
+          "unidcdf", "unidinv", "unidpdf", "unidrnd", "unidstat", ...
+          "unifcdf", "unifinv", "unifit", "unifpdf", "unifrnd", "unifstat", ...
+          "u_test", "vartest", "vartest2", "vartestn", "var_test", ...
+          "wblcdf", "wblfit", "wblinv", "wbllike", "wblpdf", "wblplot", ...
+          "wblrnd", "wblstat", "welch_test", "wienrnd", "wilcoxon_test", ...
+          "wishrnd", "x2fx", "xlsread", "xptread", "ztest", "z_test", ...
+          "z_test_2"}
       txt = check_package (fcn, "statistics");
 
     ## symbolic
--- a/scripts/linear-algebra/ishermitian.m	Fri Dec 21 16:44:03 2018 -0500
+++ b/scripts/linear-algebra/ishermitian.m	Sun Dec 23 12:36:23 2018 -0800
@@ -84,6 +84,10 @@
       ## check for exact symmetry
       retval = ! any ((A != A')(:));
     else
+      if (islogical (A))
+        ## Hack to allow norm to work.  Choose single to minimize memory.
+        A = single (A);
+      endif
       norm_x = norm (A, Inf);
       retval = norm_x == 0 || norm (A - A', Inf) / norm_x <= tol;
     endif
@@ -92,6 +96,10 @@
     if (tol == 0)
       retval = ! any ((A != -A')(:));
     else
+      if (islogical (A))
+        ## Hack to allow norm to work.  Choose single to minimize memory.
+        A = single (A);
+      endif
       norm_x = norm (A, Inf);
       retval = norm_x == 0 || norm (A + A', Inf) / norm_x <= tol;
     endif
@@ -108,6 +116,8 @@
 %!assert (ishermitian ([1, -2i; 2i, 1]))
 %!assert (ishermitian (speye (100)))
 %!assert (ishermitian (logical (eye (2))))
+%!assert (! ishermitian (logical ([1 1; 0 1])))
+%!assert (ishermitian (logical ([1 1; 0 1]), 0.5))
 %!assert (ishermitian ([0, 2i; 2i, 0], "skew"))
 %!assert (! ishermitian ([0, 2; -2, eps], "skew"))
 %!assert (ishermitian ([0, 2; -2, eps], "skew", eps))
--- a/scripts/linear-algebra/issymmetric.m	Fri Dec 21 16:44:03 2018 -0500
+++ b/scripts/linear-algebra/issymmetric.m	Sun Dec 23 12:36:23 2018 -0800
@@ -83,6 +83,10 @@
       ## check for exact symmetry
       retval = ! any ((A != A.')(:));
     else
+      if (islogical (A))
+        ## Hack to allow norm to work.  Choose single to minimize memory.
+        A = single (A);
+      endif
       norm_x = norm (A, Inf);
       retval = norm_x == 0 || norm (A - A.', Inf) / norm_x <= tol;
     endif
@@ -91,6 +95,10 @@
     if (tol == 0)
       retval = ! any ((A != -A.')(:));
     else
+      if (islogical (A))
+        ## Hack to allow norm to work.  Choose single to minimize memory.
+        A = single (A);
+      endif
       norm_x = norm (A, Inf);
       retval = norm_x == 0 || norm (A + A.', Inf) / norm_x <= tol;
     endif
@@ -107,6 +115,8 @@
 %!assert (issymmetric ([1, 2i; 2i, 1]))
 %!assert (issymmetric (speye (100)))
 %!assert (issymmetric (logical (eye (2))))
+%!assert (! issymmetric (logical ([1 1; 0 1])))
+%!assert (issymmetric (logical ([1 1; 0 1]), 0.5))
 %!assert (issymmetric ([0, 2; -2, 0], "skew"))
 %!assert (! issymmetric ([0, 2; -2, eps], "skew"))
 %!assert (issymmetric ([0, 2; -2, eps], "skew", eps))
--- a/scripts/miscellaneous/inputParser.m	Fri Dec 21 16:44:03 2018 -0500
+++ b/scripts/miscellaneous/inputParser.m	Sun Dec 23 12:36:23 2018 -0800
@@ -24,18 +24,18 @@
 ## class supports four types of arguments:
 ##
 ## @enumerate
-## @item mandatory (see @command{addRequired});
+## @item mandatory (see @code{addRequired});
 ##
-## @item optional (see @command{addOptional});
+## @item optional (see @code{addOptional});
 ##
-## @item named (see @command{addParameter});
+## @item named (see @code{addParameter});
 ##
-## @item switch (see @command{addSwitch}).
+## @item switch (see @code{addSwitch}).
 ## @end enumerate
 ##
 ## After defining the function API with these methods, the supplied arguments
-## can be parsed with the @command{parse} method and the parsing results
-## accessed with the @command{Results} accessor.
+## can be parsed with the @code{parse} method and the parsing results
+## accessed with the @code{Results} accessor.
 ##
 ## @end deftypefn
 ## @deftypefn {} {} inputParser.Parameters
@@ -47,8 +47,8 @@
 ##
 ## @end deftypefn
 ## @deftypefn {} {} inputParser.Unmatched
-## Return structure similar to @command{Results}, but for unmatched parameters.
-## See the @command{KeepUnmatched} property.
+## Return structure similar to @code{Results}, but for unmatched parameters.
+## See the @code{KeepUnmatched} property.
 ##
 ## @end deftypefn
 ## @deftypefn {} {} inputParser.UsingDefaults
@@ -68,9 +68,9 @@
 ## Set whether an error should be given for non-defined arguments.  Defaults to
 ## false.  If set to true, the extra arguments can be accessed through
 ## @code{Unmatched} after the @code{parse} method.  Note that since
-## @command{Switch} and @command{Parameter} arguments can be mixed, it is
+## @code{Switch} and @code{Parameter} arguments can be mixed, it is
 ## not possible to know the unmatched type.  If argument is found unmatched
-## it is assumed to be of the @command{Parameter} type and it is expected to
+## it is assumed to be of the @code{Parameter} type and it is expected to
 ## be followed by a value.
 ##
 ## @end deftypefn
@@ -129,16 +129,16 @@
 ## @end example
 ##
 ## @emph{Note 1}: A function can have any mixture of the four API types but
-## they must appear in a specific order.  @command{Required} arguments must be
-## first and can be followed by any @command{Optional} arguments.  Only
-## the @command{Parameter} and @command{Switch} arguments may be mixed
+## they must appear in a specific order.  @code{Required} arguments must be
+## first and can be followed by any @code{Optional} arguments.  Only
+## the @code{Parameter} and @code{Switch} arguments may be mixed
 ## together and they must appear at the end.
 ##
-## @emph{Note 2}: If both @command{Optional} and @command{Parameter} arguments
+## @emph{Note 2}: If both @code{Optional} and @code{Parameter} arguments
 ## are mixed in a function API then once a string Optional argument fails to
-## validate it will be considered the end of the @command{Optional}
+## validate it will be considered the end of the @code{Optional}
 ## arguments.  The remaining arguments will be compared against any
-## @command{Parameter} or @command{Switch} arguments.
+## @code{Parameter} or @code{Switch} arguments.
 ##
 ## @seealso{nargin, validateattributes, validatestring, varargin}
 ## @end deftypefn
@@ -150,7 +150,7 @@
 ## inputParser to implement an ordered arguments type of API
 ##
 ## @var{argname} must be a string with the name of the new argument.  The order
-## in which new arguments are added with @command{addOptional}, represents the
+## in which new arguments are added with @code{addOptional}, represents the
 ## expected order of arguments.
 ##
 ## @var{default} will be the value used when the argument is not specified.
@@ -159,7 +159,7 @@
 ## values for the argument with name @var{argname}.  Alternatively, a
 ## function name can be used.
 ##
-## See @command{help inputParser} for examples.
+## See @code{help inputParser} for examples.
 ##
 ## @emph{Note}: if a string argument does not validate, it will be considered a
 ## ParamValue key.  If an optional argument is not given a validator, anything
@@ -183,7 +183,7 @@
 ## for the parameter with name @var{argname}.  Alternatively, a function name
 ## can be used.
 ##
-## See @command{help inputParser} for examples.
+## See @code{help inputParser} for examples.
 ##
 ## @end deftypefn
 
@@ -193,7 +193,7 @@
 ## Add new parameter to the object @var{parser} of the class inputParser to
 ## implement a name/value pair type of API.
 ##
-## This is an alias for @command{addParameter} method without the
+## This is an alias for @code{addParameter} method without the
 ## @qcode{"PartialMatchPriority"} option.  See it for the help text.
 ##
 ## @end deftypefn
@@ -207,17 +207,17 @@
 ## arguments type of API.
 ##
 ## @var{argname} must be a string with the name of the new argument.  The order
-## in which new arguments are added with @command{addrequired}, represents the
+## in which new arguments are added with @code{addrequired}, represents the
 ## expected order of arguments.
 ##
 ## @var{validator} is an optional function handle to validate the given values
 ## for the argument with name @var{argname}.  Alternatively, a function name
 ## can be used.
 ##
-## See @command{help inputParser} for examples.
+## See @code{help inputParser} for examples.
 ##
 ## @emph{Note}: this can be used together with the other type of arguments but
-## it must be the first (see @command{@@inputParser}).
+## it must be the first (see @code{@@inputParser}).
 ##
 ## @end deftypefn
 
@@ -236,7 +236,7 @@
 ## then after parsing the value of @var{parse}.Results.@var{argname} will be
 ## true.
 ##
-## See @command{help inputParser} for examples.
+## See @code{help inputParser} for examples.
 ##
 ## @end deftypefn
 
@@ -245,8 +245,8 @@
 ## Parses and validates list of arguments according to object @var{parser} of
 ## the class inputParser.
 ##
-## After parsing, the results can be accessed with the @command{Results}
-## accessor.  See @command{help inputParser} for a more complete description.
+## After parsing, the results can be accessed with the @code{Results}
+## accessor.  See @code{help inputParser} for a more complete description.
 ##
 ## @end deftypefn
 
--- a/scripts/miscellaneous/inputname.m	Fri Dec 21 16:44:03 2018 -0500
+++ b/scripts/miscellaneous/inputname.m	Sun Dec 23 12:36:23 2018 -0800
@@ -20,7 +20,7 @@
 ## public domain.
 
 ## -*- texinfo -*-
-## @deftypefn {} {} inputname (@var{n})
+## @deftypefn  {} {} inputname (@var{n})
 ## @deftypefnx {} {} inputname (@var{n}, @var{ids_only})
 ## Return the name of the @var{n}-th argument to the calling function.
 ##
--- a/scripts/miscellaneous/mkoctfile.m	Fri Dec 21 16:44:03 2018 -0500
+++ b/scripts/miscellaneous/mkoctfile.m	Sun Dec 23 12:36:23 2018 -0800
@@ -107,6 +107,7 @@
 ## @code{mkoctfile}.
 ##
 ## @example
+## @group
 ##    AR
 ##    DEPEND_EXTRA_SED_PATTERN
 ##    DEPEND_FLAGS
@@ -119,19 +120,21 @@
 ##    LIBS
 ##    RANLIB
 ##    READLINE_LIBS
+## @end group
 ## @end example
 ##
 ## Octave configuration variables that are provided for informational
 ## purposes only.  Except for @samp{OCTAVE_HOME} and @samp{OCTAVE_EXEC_HOME},
 ## users may not override these variables.
 ##
-## If @env{OCTAVE_HOME} or @env{OCTAVE_EXEC_HOME} are set in the environment,
-## then other variables are adjusted accordingly with @env{OCTAVE_HOME} or
-## @env{OCTAVE_EXEC_HOME} substituted for the original value of the directory
-## specified by the @samp{--prefix} or @samp{--exec-prefix} options that were
-## used when Octave was configured.
+## If @w{@env{OCTAVE_HOME}} or @w{@env{OCTAVE_EXEC_HOME}} are set in the
+## environment, then other variables are adjusted accordingly with
+## @w{@env{OCTAVE_HOME}} or @w{@env{OCTAVE_EXEC_HOME}} substituted for the
+## original value of the directory specified by the @option{--prefix} or
+## @option{--exec-prefix} options that were used when Octave was configured.
 ##
 ## @example
+## @group
 ##    API_VERSION                 LOCALFCNFILEDIR
 ##    ARCHLIBDIR                  LOCALOCTFILEDIR
 ##    BINDIR                      LOCALSTARTUPFILEDIR
@@ -150,6 +153,7 @@
 ##    LOCALAPIFCNFILEDIR          STARTUPFILEDIR
 ##    LOCALAPIOCTFILEDIR          VERSION
 ##    LOCALARCHLIBDIR
+## @end group
 ## @end example
 ##
 ## @item --link-stand-alone
--- a/scripts/plot/draw/line.m	Fri Dec 21 16:44:03 2018 -0500
+++ b/scripts/plot/draw/line.m	Sun Dec 23 12:36:23 2018 -0800
@@ -33,7 +33,7 @@
 ## will attempt to orient scalars and vectors so the results can be plotted.
 ## This requires that one of the dimensions of the vector match either the
 ## number of rows or the number of columns of the matrix.
-## 
+##
 ## In the low-level calling form (50% higher performance) where the data is
 ## specified by name (@code{line ("xdata", @var{x}, @dots{})}) the data must be
 ## vectors.  If no data is specified (@code{line ()}) then
--- a/scripts/statistics/mean.m	Fri Dec 21 16:44:03 2018 -0500
+++ b/scripts/statistics/mean.m	Sun Dec 23 12:36:23 2018 -0800
@@ -142,6 +142,10 @@
       print_usage ();
   endswitch
 
+  ## FIXME: Delete this when the "divide-by-zero" warning is
+  ##        removed in Octave 6.0.
+  warning ("off", "Octave:divide-by-zero", "local");
+
   ## The actual mean computation
   n = size (x, dim);
   switch (mean_type)
--- a/scripts/time/datestr.m	Fri Dec 21 16:44:03 2018 -0500
+++ b/scripts/time/datestr.m	Sun Dec 23 12:36:23 2018 -0800
@@ -24,7 +24,7 @@
 ## the result in @var{str}.
 ##
 ## @var{date} is a serial date number (see @code{datenum}), a date vector (see
-## @code{datevec}), or a a string or cell array of strings. In the latter case,
+## @code{datevec}), or a string or cell array of strings.  In the latter case,
 ## it is passed to @code{datevec} to guess the input date format.
 ##
 ## @var{f} can be an integer which corresponds to one of the codes in the table