Mercurial > octave
changeset 26621:7bb23cecb928
maint: Merge stable to default.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 24 Jan 2019 20:20:02 +0000 |
parents | c9e5a09af7af (diff) 82865ccb62c2 (current diff) |
children | 708d2db72e1c |
files | configure.ac |
diffstat | 265 files changed, 1277 insertions(+), 3910 deletions(-) [+] |
line wrap: on
line diff
--- a/NEWS Thu Jan 24 19:22:18 2019 +0000 +++ b/NEWS Thu Jan 24 20:20:02 2019 +0000 @@ -1,303 +1,62 @@ -Summary of important user-visible changes for version 5 (yyyy-mm-dd): --------------------------------------------------------------------- - - ** The determination of an object's dimensions, size, and shape by the - functions ndims, rows, columns, isscalar, isvector, isrow, iscolumn, - ismatrix, and issquare now fully depends on the function size. - Thus, any user-defined object can ensure correct treatment by the - aforementioned functions by properly overloading the "size" - function. - - ** The function randi has been recoded to produce an unbiased (all - results are equally likely) sample of integers. This may produce - different results in existing code. If it is necessary to reproduce - the exact random integer sequence as in previous versions use - - ri = imin + floor ((imax - imin + 1) * rand ()); - - ** A new core function movfun will apply a function to a sliding - window of arbitrary size on a dataset and accumulate the results. - Many common cases have been implemented using the naming - scheme movXXX where "XXX" is the function that will be applied. - For example, the moving average over a dataset is movmean. - New moving window functions: - - movfun movslice - movmad movmax movmean movmedian movmin movprod - movstd movsum movvar - - ** The functions issymmetric and ishermitian accept an option "nonskew" - or "skew" to calculate the symmetric or skew-symmetric property - of a matrix. Performance has also been increased. - - ** The function isdefinite now returns true or false rather than - -1, 0, 1. To test for a positive semi-definite matrix (old output - of 0) check whether the following two conditions hold: - - isdefinite (A) => 0 - isdefinite (A + 5*TOL, TOL) => 1 - - ** The issorted function now uses a direction option of "ascend" or - "descend" to make it compatible with both the sort function and - with Matlab. Change all uses of "ascending" and "descending" in - existing code to the new options. - - ** The strncmp and strncmpi functions now return true if the two input - strings match, even though the number of characters specified by N - exceeds the string length. This behavior more closely matches - common sense and is Matlab compatible. Example: - - Octave 5 : strncmp ("abc", "abc", 100) => true - Previously : strncmp ("abc", "abc", 100) => false - - ** The intmax, intmin, and flintmax functions now accept a variable - as input. This supports a common programming usage which is to - query the range of an existing variable. Existing code can be - simplified by removing the call to "class" that was previously - required. Example: - - x = int8 (3); - Octave 5 : range = [ intmin(x), intmax(x) ] - Previously : range = [ intmin(class(x)), intmax(class(x)) ] - - ** The ranks function has been recoded for performance and is now 25X - faster. In addition, it now supports a third argument that - specifies how to resolve the ranking of tie values. - - ** The fsolve function has been tweaked to use larger step sizes when - calculating the Jacobian of a function with finite differences. - This leads to faster convergence. The default solver options have - also changed to be Matlab compatible. This *may* result in existing - code producing different results. - - Option | New Default | Old Default - ------------------------------------------------ - FinDiffType | "forward" | "central" - MaxFunEvals | 100*length(x0) | Inf - TolFun | 1e-6 | 1e-7 - TolX | 1e-6 | 1e-7 - Updating | "off" | "on" - - ** The fminsearch function has changed default solver options for - Matlab compatibility. The accuracy option TolFun is now 1e-4 rather - than 1e-7. This *may* result in existing code producing different - results. - - ** The fminbnd function has changed defaults for Matlab compatibility. - This *may* result in existing code producing different results. - - Option | New Default | Old Default - ------------------------------------------------ - MaxFunEvals | 500 | Inf - MaxIter | 500 | Inf - TolX | 1e-4 | 1e-8 - - ** The fminunc function has changed defaults for Matlab compatibility. - This *may* result in existing code producing different results. - - Option | New Default | Old Default - ------------------------------------------------ - FinDiffType | "forward" | "central" - MaxFunEvals | 100*length(x0) | Inf - TolX | 1e-6 | 1e-7 - TolFun | 1e-6 | 1e-7 - - ** Using "clear" with no arguments now removes only local variables - from the current workspace. Global variables will no longer be - visible, but they continue to exist in the global workspace and - possibly other workspaces such as the base workspace. - This change was made for Matlab compatibility. - - ** The Octave plotting system now supports high resolution screens, - i.e, those with greater than 96 DPI which are referred to as - HiDPI/Retina monitors. - - ** Figure graphic objects have a new property "Number" which is - read-only and will return the handle (number) of the figure. - However, if the property "IntegerHandle" has been set to "off" then - the property will return an empty matrix ([]). +Summary of important user-visible changes for version 6.0 (yyyy-mm-dd): +---------------------------------------------------------------------- - ** Patch and surface graphic objects now use the "FaceNormals" property - for flat lighting. - - ** "FaceNormals" and "VertexNormals" for patch and surface graphic - objects are now calculated only when necessary to improve graphics - performance. In order for any normals to be calculated the - "FaceLighting" property must be set to "flat" (FaceNormals) or - "gouraud" (VertexNormals), AND a light object must be present in the - axes. - - ** The "Margin" property of text() objects has a new default of 3 - rather than 2. This change was made for Matlab compatibility. - - ** Printing to raster formats (bitmaps like PNG or JPEG) now uses an - OpenGL-based method by default. The print options "-opengl" - (raster) and "-painters" (vector) have been added ("qt" toolkit - only). The figure property "renderer" specifies which renderer to - use. When the property "renderermode" is "auto" Octave will select - -opengl for a raster output format and -painters for a vector output - format. - - ** A new print option "-RGBImage" has been added which captures the - pixels of a figure as an image. This is similar to screen capture - tools, except that print formatting options can be used to, for - example, change the resolution or display the image in black and - white. - - ** Two new print options for page-based formats (PDF, PostScript) have - been added. The "-fillpage" option will stretch the plot to occupy - the entire page with 0.25 inch margins all around. The "-bestfit" - option will expand the plot to take up as much room as possible on - the page without distorting the original aspect ratio of the plot. - - ** Printing using the -dtiff output device will now create compressed - images using LZW compression. This change was made for Matlab - compatibility. To produce uncompressed images use the -dtiffn - device. - - ** A new printing device is available, -ddumb, which produces ASCII art - for plots. This device is only available with the gnuplot toolkit. - - ** Printing to EPS files now uses a tight bounding box ("-tight" - argument to print) by default. This makes more sense for EPS - files which are normally embedded within other documents, and is - Matlab compatible. If necessary use the "-loose" option to - reproduce figures as they appeared in previous versions of Octave. - - ** Specifying legend position with a numeric argument is deprecated and - will be removed in Octave 7.0. Use a string argument instead. - - ** It is now possible to use files and folders containing Unicode - characters in Windows. - - ** The environment variable used by mkoctfile for linker flags is now - LDFLAGS rather than LFLAGS. LFLAGS is deprecated, and a warning - is emitted if is used, but it will continue to work until eventual - removal in Octave 7.0. - - ** The GUI requires Qt libraries. The minimum Qt4 version supported is - Qt4.8. Qt5 of any version is preferred. + ** New functions added in 6.0: - ** The FFTW library is now required to perform FFT calculations. - The FFTPACK sources have been removed from Octave. - - ** The OSMesa library is no longer used. To print invisible figures - when using OpenGL graphics, the Qt QOFFSCREENSURFACE feature must be - available and you must use the qt graphics toolkit. - - ** The str2func function no longer accepts a second "global" argument. - This argument was typically used to allow functions that accept - function names as arguments to avoid conflicts with subfunctions or - nested functions. Instead, it's best to avoid this situation - entirely and require users to pass function handles rather than - function names. - - ** The path handling functions no longer perform variable or brace - expansion on path elements and Octave's load-path is no longer - subject to these expansions. - - ** New functions added in 5: - - clearvars - isfile - isfolder - matlab.lang.makeUniqueStrings - matlab.lang.makeValidName - movegui - movfun - movie - movmad - movmax - movmean - movmedian - movmin - movprod - movslice - movstd - movsum - movvar - openfig - ordeig - savefig - uitable - - ** Legacy functions. - - The following functions have been declared legacy functions which - means they are obsolete and should not be used in any new code. - Unlike deprecated functions, however, their removal from Octave has - not yet been scheduled. - - Function | Replacement - ---------------------|------------------ - findstr | strfind - flipdim | flip - isdir | isfolder or dir_in_loadpath - isequalwithequalnans | isequaln - isstr | ischar - setstr | char - strmatch | strncmp or strcmp - strread | textscan - textread | textscan + lightangle + verLessThan ** Deprecated functions. - The following functions have been deprecated in Octave 5 and will - be removed from Octave 7 (or whatever version is the second major - release after 5): + The following functions have been deprecated in Octave 6.0 and will + be removed from Octave 8 (or whatever version is the second major + release after 6.0): Function | Replacement -----------------------|------------------ output_max_field_width | output_precision - ** The following functions were deprecated in Octave 4.2 and have been - removed from Octave 5. + ** The following functions were deprecated in Octave 4.4 and have been + removed from Octave 6.0. Function | Replacement ---------------------|------------------ - bitmax | flintmax - mahalanobis | mahal in Octave Forge statistics pkg - md5sum | hash - octave_config_info | __octave_config_info__ - onenormest | normest1 - sleep | pause - usleep | pause - wavread | audioread - wavwrite | audiowrite + chop | sprintf for visual results + desktop | isguirunning + tmpnam | tempname + toascii | double + java2mat | __java2mat__ ** Deprecated graphics properties. The following properties or allowed corresponding values have been - deprecated in Octave 5 and will be removed from Octave 7 (or - whatever version is the second major release after 5): + deprecated in Octave 6.0 and will be removed from Octave 8 (or + whatever version is the second major release after 6.0): Object | Property | Value ---------------------|-------------------------|------------------- - text | fontangle | "oblique" - uibuttongroup | fontangle | "oblique" - uicontrol | fontangle | "oblique" - uipanel | fontangle | "oblique" - uitable | fontangle | "oblique" + ** The following properties or allowed corresponding values were - deprecated in Octave 4.2 and have been removed from Octave 5: + deprecated in Octave 4.4 and have been removed from Octave 6.0: Object | Property | Value ---------------------|-------------------------|------------------- - axes | xaxislocation | "zero" - | yaxislocation | "zero" - hggroup | erasemode | - image | erasemode | - line | erasemode | - patch | erasemode | - patch | normalmode | - surface | erasemode | - surface | normalmode | - text | erasemode | - - ** The C++ function is_keyword has been deprecated in favor of - iskeyword. The old function will be removed two versions after 5. + figure | doublebuffer | + | mincolormap | + | wvisual | + | wvisualmode | + | xdisplay | + | xvisual | + | xvisualmode | + axes | drawmode | + annotation | edgecolor ("rectangle") | + text | fontweight | "demi" and "light" + uicontrol | fontweight | "demi" and "light" + uipanel | fontweight | "demi" and "light" + uibuttongroup | fontweight | "demi" and "light" + uitable | fontweight | "demi" and "light" --------------------------------------------------------- -See NEWS.4 for old news. +See NEWS.5 for old news.
--- a/configure.ac Thu Jan 24 19:22:18 2019 +0000 +++ b/configure.ac Thu Jan 24 20:20:02 2019 +0000 @@ -20,7 +20,7 @@ ### Initialize Autoconf AC_PREREQ([2.65]) -AC_INIT([GNU Octave], [5.0.90], [https://octave.org/bugs.html], [octave], +AC_INIT([GNU Octave], [6.0.0], [https://octave.org/bugs.html], [octave], [https://www.gnu.org/software/octave/]) ### Declare version numbers @@ -32,9 +32,9 @@ ## explains how to update these numbers for release and development ## versions. -OCTAVE_MAJOR_VERSION=5 +OCTAVE_MAJOR_VERSION=6 OCTAVE_MINOR_VERSION=0 -OCTAVE_PATCH_VERSION=90 +OCTAVE_PATCH_VERSION=0 dnl PACKAGE_VERSION is set by the AC_INIT VERSION argument. OCTAVE_VERSION="$PACKAGE_VERSION" @@ -850,9 +850,7 @@ RDYNAMIC_FLAG= DL_API_MSG="" dlopen_api=no -shl_load_api=no loadlibrary_api=no -dyld_api=no case $lt_cv_dlopen in dlopen) @@ -862,24 +860,12 @@ [Define to 1 if system has dlopen, dlsym, dlerror, and dlclose for dynamic linking.]) OCTAVE_CXX_FLAG([-rdynamic], [RDYNAMIC_FLAG=-rdynamic]) ;; - shl_load) - shl_load_api=yes - DL_API_MSG="shl_load" - AC_DEFINE(HAVE_SHL_LOAD_API, 1, - [Define to 1 if system has shl_load and shl_findsym for dynamic linking.]) - ;; LoadLibrary) loadlibrary_api=yes DL_API_MSG="LoadLibrary" AC_DEFINE(HAVE_LOADLIBRARY_API, 1, [Define to 1 if system has LoadLibrary for dynamic linking.]) ;; - dyld) - dyld_api=yes - DL_API_MSG="dyld" - AC_DEFINE(HAVE_DYLD_API, 1, - [Define to 1 if system has dyld for dynamic linking.]) - ;; *) AC_MSG_ERROR([Octave requires some way to perform dynamic linking.]) ;;
--- a/doc/interpreter/plot.txi Thu Jan 24 19:22:18 2019 +0000 +++ b/doc/interpreter/plot.txi Thu Jan 24 20:20:02 2019 +0000 @@ -459,6 +459,8 @@ @DOCSTRING(camlight) +@DOCSTRING(lightangle) + @DOCSTRING(meshgrid) @DOCSTRING(ndgrid)
--- a/doc/interpreter/system.txi Thu Jan 24 19:22:18 2019 +0000 +++ b/doc/interpreter/system.txi Thu Jan 24 20:20:02 2019 +0000 @@ -533,6 +533,8 @@ @DOCSTRING(compare_versions) +@DOCSTRING(verLessThan) + @DOCSTRING(license) @DOCSTRING(getrusage)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/NEWS.5 Thu Jan 24 20:20:02 2019 +0000 @@ -0,0 +1,303 @@ +Summary of important user-visible changes for version 5 (yyyy-mm-dd): +-------------------------------------------------------------------- + + ** The determination of an object's dimensions, size, and shape by the + functions ndims, rows, columns, isscalar, isvector, isrow, iscolumn, + ismatrix, and issquare now fully depends on the function size. + Thus, any user-defined object can ensure correct treatment by the + aforementioned functions by properly overloading the "size" + function. + + ** The function randi has been recoded to produce an unbiased (all + results are equally likely) sample of integers. This may produce + different results in existing code. If it is necessary to reproduce + the exact random integer sequence as in previous versions use + + ri = imin + floor ((imax - imin + 1) * rand ()); + + ** A new core function movfun will apply a function to a sliding + window of arbitrary size on a dataset and accumulate the results. + Many common cases have been implemented using the naming + scheme movXXX where "XXX" is the function that will be applied. + For example, the moving average over a dataset is movmean. + New moving window functions: + + movfun movslice + movmad movmax movmean movmedian movmin movprod + movstd movsum movvar + + ** The functions issymmetric and ishermitian accept an option "nonskew" + or "skew" to calculate the symmetric or skew-symmetric property + of a matrix. Performance has also been increased. + + ** The function isdefinite now returns true or false rather than + -1, 0, 1. To test for a positive semi-definite matrix (old output + of 0) check whether the following two conditions hold: + + isdefinite (A) => 0 + isdefinite (A + 5*TOL, TOL) => 1 + + ** The issorted function now uses a direction option of "ascend" or + "descend" to make it compatible with both the sort function and + with Matlab. Change all uses of "ascending" and "descending" in + existing code to the new options. + + ** The strncmp and strncmpi functions now return true if the two input + strings match, even though the number of characters specified by N + exceeds the string length. This behavior more closely matches + common sense and is Matlab compatible. Example: + + Octave 5 : strncmp ("abc", "abc", 100) => true + Previously : strncmp ("abc", "abc", 100) => false + + ** The intmax, intmin, and flintmax functions now accept a variable + as input. This supports a common programming usage which is to + query the range of an existing variable. Existing code can be + simplified by removing the call to "class" that was previously + required. Example: + + x = int8 (3); + Octave 5 : range = [ intmin(x), intmax(x) ] + Previously : range = [ intmin(class(x)), intmax(class(x)) ] + + ** The ranks function has been recoded for performance and is now 25X + faster. In addition, it now supports a third argument that + specifies how to resolve the ranking of tie values. + + ** The fsolve function has been tweaked to use larger step sizes when + calculating the Jacobian of a function with finite differences. + This leads to faster convergence. The default solver options have + also changed to be Matlab compatible. This *may* result in existing + code producing different results. + + Option | New Default | Old Default + ------------------------------------------------ + FinDiffType | "forward" | "central" + MaxFunEvals | 100*length(x0) | Inf + TolFun | 1e-6 | 1e-7 + TolX | 1e-6 | 1e-7 + Updating | "off" | "on" + + ** The fminsearch function has changed default solver options for + Matlab compatibility. The accuracy option TolFun is now 1e-4 rather + than 1e-7. This *may* result in existing code producing different + results. + + ** The fminbnd function has changed defaults for Matlab compatibility. + This *may* result in existing code producing different results. + + Option | New Default | Old Default + ------------------------------------------------ + MaxFunEvals | 500 | Inf + MaxIter | 500 | Inf + TolX | 1e-4 | 1e-8 + + ** The fminunc function has changed defaults for Matlab compatibility. + This *may* result in existing code producing different results. + + Option | New Default | Old Default + ------------------------------------------------ + FinDiffType | "forward" | "central" + MaxFunEvals | 100*length(x0) | Inf + TolX | 1e-6 | 1e-7 + TolFun | 1e-6 | 1e-7 + + ** Using "clear" with no arguments now removes only local variables + from the current workspace. Global variables will no longer be + visible, but they continue to exist in the global workspace and + possibly other workspaces such as the base workspace. + This change was made for Matlab compatibility. + + ** The Octave plotting system now supports high resolution screens, + i.e, those with greater than 96 DPI which are referred to as + HiDPI/Retina monitors. + + ** Figure graphic objects have a new property "Number" which is + read-only and will return the handle (number) of the figure. + However, if the property "IntegerHandle" has been set to "off" then + the property will return an empty matrix ([]). + + ** Patch and surface graphic objects now use the "FaceNormals" property + for flat lighting. + + ** "FaceNormals" and "VertexNormals" for patch and surface graphic + objects are now calculated only when necessary to improve graphics + performance. In order for any normals to be calculated the + "FaceLighting" property must be set to "flat" (FaceNormals) or + "gouraud" (VertexNormals), AND a light object must be present in the + axes. + + ** The "Margin" property of text() objects has a new default of 3 + rather than 2. This change was made for Matlab compatibility. + + ** Printing to raster formats (bitmaps like PNG or JPEG) now uses an + OpenGL-based method by default. The print options "-opengl" + (raster) and "-painters" (vector) have been added ("qt" toolkit + only). The figure property "renderer" specifies which renderer to + use. When the property "renderermode" is "auto" Octave will select + -opengl for a raster output format and -painters for a vector output + format. + + ** A new print option "-RGBImage" has been added which captures the + pixels of a figure as an image. This is similar to screen capture + tools, except that print formatting options can be used to, for + example, change the resolution or display the image in black and + white. + + ** Two new print options for page-based formats (PDF, PostScript) have + been added. The "-fillpage" option will stretch the plot to occupy + the entire page with 0.25 inch margins all around. The "-bestfit" + option will expand the plot to take up as much room as possible on + the page without distorting the original aspect ratio of the plot. + + ** Printing using the -dtiff output device will now create compressed + images using LZW compression. This change was made for Matlab + compatibility. To produce uncompressed images use the -dtiffn + device. + + ** A new printing device is available, -ddumb, which produces ASCII art + for plots. This device is only available with the gnuplot toolkit. + + ** Printing to EPS files now uses a tight bounding box ("-tight" + argument to print) by default. This makes more sense for EPS + files which are normally embedded within other documents, and is + Matlab compatible. If necessary use the "-loose" option to + reproduce figures as they appeared in previous versions of Octave. + + ** Specifying legend position with a numeric argument is deprecated and + will be removed in Octave 7.0. Use a string argument instead. + + ** It is now possible to use files and folders containing Unicode + characters in Windows. + + ** The environment variable used by mkoctfile for linker flags is now + LDFLAGS rather than LFLAGS. LFLAGS is deprecated, and a warning + is emitted if is used, but it will continue to work until eventual + removal in Octave 7.0. + + ** The GUI requires Qt libraries. The minimum Qt4 version supported is + Qt4.8. Qt5 of any version is preferred. + + ** The FFTW library is now required to perform FFT calculations. + The FFTPACK sources have been removed from Octave. + + ** The OSMesa library is no longer used. To print invisible figures + when using OpenGL graphics, the Qt QOFFSCREENSURFACE feature must be + available and you must use the qt graphics toolkit. + + ** The str2func function no longer accepts a second "global" argument. + This argument was typically used to allow functions that accept + function names as arguments to avoid conflicts with subfunctions or + nested functions. Instead, it's best to avoid this situation + entirely and require users to pass function handles rather than + function names. + + ** The path handling functions no longer perform variable or brace + expansion on path elements and Octave's load-path is no longer + subject to these expansions. + + ** New functions added in 5: + + clearvars + isfile + isfolder + matlab.lang.makeUniqueStrings + matlab.lang.makeValidName + movegui + movfun + movie + movmad + movmax + movmean + movmedian + movmin + movprod + movslice + movstd + movsum + movvar + openfig + ordeig + savefig + uitable + + ** Legacy functions. + + The following functions have been declared legacy functions which + means they are obsolete and should not be used in any new code. + Unlike deprecated functions, however, their removal from Octave has + not yet been scheduled. + + Function | Replacement + ---------------------|------------------ + findstr | strfind + flipdim | flip + isdir | isfolder or dir_in_loadpath + isequalwithequalnans | isequaln + isstr | ischar + setstr | char + strmatch | strncmp or strcmp + strread | textscan + textread | textscan + + ** Deprecated functions. + + The following functions have been deprecated in Octave 5 and will + be removed from Octave 7 (or whatever version is the second major + release after 5): + + Function | Replacement + -----------------------|------------------ + output_max_field_width | output_precision + + ** The following functions were deprecated in Octave 4.2 and have been + removed from Octave 5. + + Function | Replacement + ---------------------|------------------ + bitmax | flintmax + mahalanobis | mahal in Octave Forge statistics pkg + md5sum | hash + octave_config_info | __octave_config_info__ + onenormest | normest1 + sleep | pause + usleep | pause + wavread | audioread + wavwrite | audiowrite + + ** Deprecated graphics properties. + + The following properties or allowed corresponding values have been + deprecated in Octave 5 and will be removed from Octave 7 (or + whatever version is the second major release after 5): + + Object | Property | Value + ---------------------|-------------------------|------------------- + text | fontangle | "oblique" + uibuttongroup | fontangle | "oblique" + uicontrol | fontangle | "oblique" + uipanel | fontangle | "oblique" + uitable | fontangle | "oblique" + + ** The following properties or allowed corresponding values were + deprecated in Octave 4.2 and have been removed from Octave 5: + + Object | Property | Value + ---------------------|-------------------------|------------------- + axes | xaxislocation | "zero" + | yaxislocation | "zero" + hggroup | erasemode | + image | erasemode | + line | erasemode | + patch | erasemode | + patch | normalmode | + surface | erasemode | + surface | normalmode | + text | erasemode | + + ** The C++ function is_keyword has been deprecated in favor of + iskeyword. The old function will be removed two versions after 5. + +--------------------------------------------------------- + +See NEWS.4 for old news.
--- a/etc/RELEASE.CHECKLIST Thu Jan 24 19:22:18 2019 +0000 +++ b/etc/RELEASE.CHECKLIST Thu Jan 24 20:20:02 2019 +0000 @@ -67,6 +67,10 @@ #* Submit call for translations for GUI strings #: Completion Date: <!-----------------------------------------------------------------------------> +# Update shared library and oct file API version numbers +#* Increment oct file API version number (configure.ac:OCTAVE_API_VERSION, increment number and drop "+" suffix) +#* Increment libtool versioning (liboctave/module.mk:%canon_reldir%_%canon_reldir%_current, libinterp/module.mk:%canon_reldir%_liboctinterp_current, libgui/module.mk:%canon_reldir%_liboctgui_current) +<!-----------------------------------------------------------------------------> # Verify build process and create release candidates #* Update configure.ac with new version information #** Update AC_INIT, OCTAVE_MAJOR_VERSION, OCTAVE_MINOR_VERSION, OCTAVE_PATCH_VERSION, OCTAVE_RELEASE_DATE @@ -84,7 +88,6 @@ # Final Release #* Update version information #** Update configure.ac (AC_INIT, OCTAVE_MAJOR_VERSION, OCTAVE_MINOR_VERSION, OCTAVE_PATCH_VERSION, OCTAVE_RELEASE_DATE) -#** Update libtool versioning (configure.ac:OCTAVE_API_VERSION, liboctave/module.mk:%canon_reldir%_%canon_reldir%_current, libinterp/module.mk:%canon_reldir%_liboctinterp_current, libgui/module.mk:%canon_reldir%_liboctgui_current) #** Update NEWS (final release date) #** Update CITATION (version, year, URL) #** Update org.octave.Octave.appdata.xml (version number and release date) @@ -98,6 +101,7 @@ <!-----------------------------------------------------------------------------> # Post-Release #* Update configure.ac (AC_INIT, OCTAVE_MAJOR_VERSION, OCTAVE_MINOR_VERSION, OCTAVE_PATCH_VERSION) to next release cycle +#* Update oct file API version number (configure.ac:OCTAVE_API_VERSION, add "+" suffix) #* Remove all deprecated functions (either OCTAVE_DEPRECATED in C++ or scripts/deprecated for m-files) scheduled for deletion in default branch #* Move NEWS file to backup in etc/NEWS.X #* Create new NEWS file
--- a/etc/icons/org.octave.Octave.appdata.xml Thu Jan 24 19:22:18 2019 +0000 +++ b/etc/icons/org.octave.Octave.appdata.xml Thu Jan 24 20:20:02 2019 +0000 @@ -44,6 +44,28 @@ non-interactive programs. The Octave language is quite similar to Matlab so that most programs are easily portable. </p> + <p xml:lang="de"> + GNU Octave ist eine höhere, interpretierte Programmiersprache, die + hauptsächlich für numerische Berechnungen gedacht ist. Sie bietet + Funktionen für die numerische Lösung linearer und nichtlinearer Probleme + und für die Durchführung anderer numerischer Experimente. Darüber hinaus + bietet es umfangreiche Grafikfunktionen zur Datenvisualisierung und + -manipulation. Octave wird normalerweise mittels einer interaktiven + Befehlszeile verwendet, kann aber auch zum Schreiben nicht interaktiver + Programme verwendet werden. Die Octave-Programmiersprache ist sehr + ähnlich zu Matlab, so dass die meisten Programme leicht übertragbar sind. + </p> + <p xml:lang="fr"> + GNU Octave est un langage de programmation interprété, destiné + principalement au calcul numérique. Il fournit des fonctionnalités + pour la résolution de problèmes linéaires et non-linéaires, et pour toutes + sortes d'expériences numériques. Il s'accompagne d'un système complet + de visualisation et de manipulation des données. Octave s’utilise + généralement via son environnement en lignes de commandes interactif, + mais il peut aussi être utilisé pour écrire des programmes non + interactifs. Le langage Octave est très similaire à Matlab de telle sorte + que les programmes Matlab sont très faciles à porter sous Octave. + </p> <p> Octave has extensive tools for solving common numerical linear algebra problems, finding the roots of nonlinear equations, integrating ordinary @@ -53,6 +75,25 @@ Octave's own language, or using dynamically loaded modules written in C++, C, Fortran, or other languages. </p> + <p xml:lang="de"> + Octave verfügt über umfangreiche Werkzeuge zur Lösung gängiger + numerischer linearer Probleme der Algebra, zum Auffinden der Nullstellen + nichtlinearer Gleichungen, zur Integration gewöhnlicher Funktionen, zur + Manipulation von Polynomen und zur Integration gewöhnlicher + Differentialgleichungen und differential-algebraischer Gleichungen. Es + ist leicht erweiter- und anpassbar mittels benutzerdefinierter + Funktionen, die in Octaves eigener Programmiersprache geschrieben wurden, + oder über dynamisch geladene, in C++, C, Fortran oder anderen Sprachen + geschriebene Module. + </p> + <p xml:lang="fr"> + Octave dispose de nombreux outils pour résoudre les problèmes classiques + d'algèbre linéaire, trouver les racines d'équations non-linéaires, + intégrer les fonctions ordinaires et les équations différentielles. + Il peut très facilement être étendu en définissant de nouvelles + fonctions écrites en langage Octave ou en utilisant des modules + chargés dynamiquement, écrits en C++, C, Fortran ou autres langages. + </p> </description> <screenshots>
--- a/etc/module.mk Thu Jan 24 19:22:18 2019 +0000 +++ b/etc/module.mk Thu Jan 24 20:20:02 2019 +0000 @@ -9,6 +9,7 @@ %reldir%/NEWS.2 \ %reldir%/NEWS.3 \ %reldir%/NEWS.4 \ + %reldir%/NEWS.5 \ %reldir%/PROJECTS \ %reldir%/gdbinit
--- a/examples/code/make_int.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/examples/code/make_int.cc Thu Jan 24 20:20:02 2019 +0000 @@ -12,7 +12,6 @@ #include <octave/str-vec.h> #include <octave/defun-dld.h> -#include <octave/errwarn.h> #include <octave/interpreter.h> #include <octave/ops.h> #include <octave/ov-base.h> @@ -161,12 +160,7 @@ const octave_integer& v1 = dynamic_cast<const octave_integer&> (a1); const octave_integer& v2 = dynamic_cast<const octave_integer&> (a2); - int d = v2.integer_value (); - - if (d == 0) - warn_divide_by_zero (); - - return new octave_integer (v1.integer_value () / d); + return new octave_integer (v1.integer_value () / v2.integer_value ()); } @@ -175,12 +169,7 @@ const octave_integer& v1 = dynamic_cast<const octave_integer&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return new octave_scalar (v1.double_value () / d); + return new octave_scalar (v1.double_value () / v2.double_value ()); } DEFBINOP (ldiv, integer, integer) @@ -188,12 +177,7 @@ const octave_integer& v1 = dynamic_cast<const octave_integer&> (a1); const octave_integer& v2 = dynamic_cast<const octave_integer&> (a2); - int d = v1.integer_value (); - - if (d == 0) - warn_divide_by_zero (); - - return new octave_integer (v2.integer_value () / d); + return new octave_integer (v2.integer_value () / v1.integer_value ()); } DEFBINOP_OP (lt, integer, integer, <) @@ -210,12 +194,7 @@ const octave_integer& v1 = dynamic_cast<const octave_integer&> (a1); const octave_integer& v2 = dynamic_cast<const octave_integer&> (a2); - int d = v2.integer_value (); - - if (d == 0) - warn_divide_by_zero (); - - return new octave_integer (v1.integer_value () / d); + return new octave_integer (v1.integer_value () / v2.integer_value ()); } DEFBINOP (el_ldiv, integer, integer) @@ -223,12 +202,7 @@ const octave_integer& v1 = dynamic_cast<const octave_integer&> (a1); const octave_integer& v2 = dynamic_cast<const octave_integer&> (a2); - int d = v1.integer_value (); - - if (d == 0) - warn_divide_by_zero (); - - return new octave_integer (v2.integer_value () / d); + return new octave_integer (v2.integer_value () / v1.integer_value ()); } DEFBINOP_OP (el_and, integer, integer, &&)
--- a/libgui/graphics/QtHandlesUtils.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libgui/graphics/QtHandlesUtils.cc Thu Jan 24 20:20:02 2019 +0000 @@ -113,8 +113,6 @@ if (! mapsInitialized) { weightMap["normal"] = QFont::Normal; - weightMap["light"] = QFont::Light; - weightMap["demi"] = QFont::DemiBold; weightMap["bold"] = QFont::Bold; angleMap["normal"] = QFont::StyleNormal;
--- a/libgui/src/m-editor/file-editor-tab.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libgui/src/m-editor/file-editor-tab.cc Thu Jan 24 20:20:02 2019 +0000 @@ -618,9 +618,8 @@ else { // Otherwise, delete the newly created lexer and - // use the old, exisiting one - if (lexer) - delete lexer; + // use the old, existing one. + delete lexer; } }
--- a/libgui/src/m-editor/file-editor.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libgui/src/m-editor/file-editor.cc Thu Jan 24 20:20:02 2019 +0000 @@ -444,12 +444,9 @@ // pass a signal to. Hence, functionality is here. file_editor_tab *fileEditorTab = new file_editor_tab (m_ced); - if (fileEditorTab) - { - add_file_editor_tab (fileEditorTab, ""); // new tab with empty title - fileEditorTab->new_file (commands); // title is updated here - focus (); // focus editor and new tab - } + add_file_editor_tab (fileEditorTab, ""); // new tab with empty title + fileEditorTab->new_file (commands); // title is updated here + focus (); // focus editor and new tab } void file_editor::request_close_file (bool) @@ -1325,103 +1322,100 @@ if (! fileEditorTab) fileEditorTab = new file_editor_tab (); - if (fileEditorTab) + fileEditorTab->set_encoding (encoding); + QString result = fileEditorTab->load_file (openFileName); + if (result == "") { - fileEditorTab->set_encoding (encoding); - QString result = fileEditorTab->load_file (openFileName); - if (result == "") + // Supply empty title then have the file_editor_tab update + // with full or short name. + if (! reusing) + add_file_editor_tab (fileEditorTab, "", index); + fileEditorTab->update_window_title (false); + // file already loaded, add file to mru list here + QFileInfo file_info = QFileInfo (openFileName); + handle_mru_add_file (file_info.canonicalFilePath (), + encoding); + + if (line > 0) { - // Supply empty title then have the file_editor_tab update - // with full or short name. - if (! reusing) - add_file_editor_tab (fileEditorTab, "", index); - fileEditorTab->update_window_title (false); - // file already loaded, add file to mru list here - QFileInfo file_info = QFileInfo (openFileName); - handle_mru_add_file (file_info.canonicalFilePath (), - encoding); - - if (line > 0) - { - if (insert) - emit fetab_goto_line (fileEditorTab, line); - - if (debug_pointer) - emit fetab_insert_debugger_pointer (fileEditorTab, - line); - if (breakpoint_marker) - emit fetab_do_breakpoint_marker (insert, fileEditorTab, - line, cond); - } + if (insert) + emit fetab_goto_line (fileEditorTab, line); + + if (debug_pointer) + emit fetab_insert_debugger_pointer (fileEditorTab, + line); + if (breakpoint_marker) + emit fetab_do_breakpoint_marker (insert, fileEditorTab, + line, cond); + } + } + else + { + delete fileEditorTab; + fileEditorTab = nullptr; + + if (QFile::exists (openFileName)) + { + // File not readable: + // create a NonModal message about error. + QMessageBox *msgBox + = new QMessageBox (QMessageBox::Critical, + tr ("Octave Editor"), + tr ("Could not open file\n%1\nfor read: %2."). + arg (openFileName).arg (result), + QMessageBox::Ok, this); + + msgBox->setWindowModality (Qt::NonModal); + msgBox->setAttribute (Qt::WA_DeleteOnClose); + msgBox->show (); } else { - delete fileEditorTab; - fileEditorTab = nullptr; - - if (QFile::exists (openFileName)) + // File does not exist, should it be created? + bool create_file = true; + QMessageBox *msgBox; + + if (! settings->value ("editor/create_new_file", false).toBool ()) { - // File not readable: - // create a NonModal message about error. - QMessageBox *msgBox - = new QMessageBox (QMessageBox::Critical, - tr ("Octave Editor"), - tr ("Could not open file\n%1\nfor read: %2."). - arg (openFileName).arg (result), - QMessageBox::Ok, this); - - msgBox->setWindowModality (Qt::NonModal); - msgBox->setAttribute (Qt::WA_DeleteOnClose); - msgBox->show (); + msgBox = new QMessageBox (QMessageBox::Question, + tr ("Octave Editor"), + tr ("File\n%1\ndoes not exist. " + "Do you want to create it?").arg (openFileName), + QMessageBox::NoButton,nullptr); + QPushButton *create_button = + msgBox->addButton (tr ("Create"), QMessageBox::YesRole); + msgBox->addButton (tr ("Cancel"), QMessageBox::RejectRole); + msgBox->setDefaultButton (create_button); + msgBox->exec (); + + QAbstractButton *clicked_button = msgBox->clickedButton (); + if (clicked_button != create_button) + create_file = false; + + delete msgBox; } - else + + if (create_file) { - // File does not exist, should it be created? - bool create_file = true; - QMessageBox *msgBox; - - if (! settings->value ("editor/create_new_file", false).toBool ()) + // create the file and call the editor again + QFile file (openFileName); + if (! file.open (QIODevice::WriteOnly)) { - msgBox = new QMessageBox (QMessageBox::Question, + // error opening the file + msgBox = new QMessageBox (QMessageBox::Critical, tr ("Octave Editor"), - tr ("File\n%1\ndoes not exist. " - "Do you want to create it?").arg (openFileName), - QMessageBox::NoButton,nullptr); - QPushButton *create_button = - msgBox->addButton (tr ("Create"), QMessageBox::YesRole); - msgBox->addButton (tr ("Cancel"), QMessageBox::RejectRole); - msgBox->setDefaultButton (create_button); - msgBox->exec (); - - QAbstractButton *clicked_button = msgBox->clickedButton (); - if (clicked_button != create_button) - create_file = false; - - delete msgBox; + tr ("Could not open file\n%1\nfor write: %2."). + arg (openFileName).arg (file.errorString ()), + QMessageBox::Ok, this); + + msgBox->setWindowModality (Qt::NonModal); + msgBox->setAttribute (Qt::WA_DeleteOnClose); + msgBox->show (); } - - if (create_file) + else { - // create the file and call the editor again - QFile file (openFileName); - if (! file.open (QIODevice::WriteOnly)) - { - // error opening the file - msgBox = new QMessageBox (QMessageBox::Critical, - tr ("Octave Editor"), - tr ("Could not open file\n%1\nfor write: %2."). - arg (openFileName).arg (file.errorString ()), - QMessageBox::Ok, this); - - msgBox->setWindowModality (Qt::NonModal); - msgBox->setAttribute (Qt::WA_DeleteOnClose); - msgBox->show (); - } - else - { - file.close (); - request_open_file (openFileName); - } + file.close (); + request_open_file (openFileName); } } }
--- a/libgui/src/resource-manager.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libgui/src/resource-manager.cc Thu Jan 24 20:20:02 2019 +0000 @@ -176,13 +176,6 @@ if (! instance) instance = new resource_manager (); - if (! instance) - { - error ("unable to create resource_manager object!"); - - retval = false; - } - return retval; } @@ -294,8 +287,7 @@ delete m_settings; m_settings = new QSettings (file, QSettings::IniFormat); - if (! (m_settings - && QFile::exists (m_settings->fileName ()) + if (! (QFile::exists (m_settings->fileName ()) && m_settings->isWritable () && m_settings->status () == QSettings::NoError)) {
--- a/libgui/src/shortcut-manager.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libgui/src/shortcut-manager.cc Thu Jan 24 20:20:02 2019 +0000 @@ -172,13 +172,6 @@ if (! instance) instance = new shortcut_manager (); - if (! instance) - { - error ("unable to create shortcut_manager object!"); - - retval = false; - } - return retval; } @@ -695,19 +688,10 @@ QSettings *osc_settings = new QSettings (file, QSettings::IniFormat); - if (! osc_settings) - { - qWarning () << tr ("Failed to open %1 as Octave shortcut file") - .arg (file); - return false; - } - else - { - if (action == OSC_IMPORT) - import_shortcuts (osc_settings); // import (special action) - else if (action == OSC_EXPORT) - do_write_shortcuts (osc_settings, false); // export, (save settings) - } + if (action == OSC_IMPORT) + import_shortcuts (osc_settings); // import (special action) + else if (action == OSC_EXPORT) + do_write_shortcuts (osc_settings, false); // export, (save settings) } else {
--- a/libinterp/corefcn/__qp__.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/__qp__.cc Thu Jan 24 20:20:02 2019 +0000 @@ -89,15 +89,13 @@ qp (const Matrix& H, const ColumnVector& q, const Matrix& Aeq, const ColumnVector& beq, const Matrix& Ain, const ColumnVector& bin, - int maxit, + int maxit, double rtol, ColumnVector& x, ColumnVector& lambda, int& iter) { int info = 0; iter = 0; - double rtol = sqrt (std::numeric_limits<double>::epsilon ()); - // Problem dimension. octave_idx_type n = x.numel (); @@ -493,7 +491,7 @@ Undocumented internal function. @end deftypefn */) { - if (args.length () != 8) + if (args.length () != 9) print_usage (); const ColumnVector x0 (args(0).vector_value ()); @@ -504,7 +502,8 @@ const Matrix Ain (args(5).matrix_value ()); const ColumnVector bin (args(6).vector_value ()); const int maxit (args(7).int_value ()); - + const double rtol (args(8).double_value()); + int iter = 0; // Copy the initial guess into the working variable @@ -513,7 +512,7 @@ // Reordering the Lagrange multipliers ColumnVector lambda; - int info = qp (H, q, Aeq, beq, Ain, bin, maxit, x, lambda, iter); + int info = qp (H, q, Aeq, beq, Ain, bin, maxit, rtol, x, lambda, iter); return ovl (x, lambda, info, iter); }
--- a/libinterp/corefcn/call-stack.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/call-stack.h Thu Jan 24 20:20:02 2019 +0000 @@ -293,11 +293,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::call_stack' instead") -typedef octave::call_stack octave_call_stack; - #endif - -#endif
--- a/libinterp/corefcn/defun-int.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/defun-int.h Thu Jan 24 20:20:02 2019 +0000 @@ -80,41 +80,6 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::auto_shlib' instead") -typedef octave::auto_shlib octave_auto_shlib; - -OCTAVE_DEPRECATED (4.4, "use 'tree_evaluator::isargout' instead") -extern OCTINTERP_API bool -defun_isargout (int, int); - -OCTAVE_DEPRECATED (4.4, "use 'tree_evaluator::isargout' instead") -extern OCTINTERP_API void -defun_isargout (int, int, bool *); - -OCTAVE_DEPRECATED (4.4, "use 'octave::symbol_table::install_built_in_function' instead") -extern OCTINTERP_API void -install_builtin_function (octave_builtin::fcn f, const std::string& name, - const std::string& file, const std::string& doc, - bool can_hide_function = true); - -OCTAVE_DEPRECATED (4.4, "use 'octave::symbol_table::install_built_in_function' instead") -extern OCTINTERP_API void -install_builtin_function (octave_builtin::meth m, const std::string& name, - const std::string& file, const std::string& doc, - bool can_hide_function = true); - -OCTAVE_DEPRECATED (4.4, "use 'octave::symbol_table::alias_built_in_function' instead") -extern OCTINTERP_API void -alias_builtin (const std::string& alias, const std::string& name); - -OCTAVE_DEPRECATED (4.4, "use 'octave::symbol_table::install_built_in_dispatch' instead") -extern OCTINTERP_API void -install_builtin_dispatch (const std::string& name, const std::string& klass); - -#endif - #define FORWARD_DECLARE_FUNX(name) \ extern OCTAVE_EXPORT octave_value_list \ name (const octave_value_list&, int)
--- a/libinterp/corefcn/defun.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/defun.cc Thu Jan 24 20:20:02 2019 +0000 @@ -83,32 +83,6 @@ // Install variables and functions in the symbol tables. void -install_builtin_function (octave_builtin::fcn f, const std::string& name, - const std::string& file, const std::string& doc, - bool /* can_hide_function -- not yet implemented */) -{ - octave_value fcn (new octave_builtin (f, name, file, doc)); - - octave::symbol_table& symtab - = octave::__get_symbol_table__ ("install_builtin_function"); - - symtab.install_built_in_function (name, fcn); -} - -void -install_builtin_function (octave_builtin::meth m, const std::string& name, - const std::string& file, const std::string& doc, - bool /* can_hide_function -- not yet implemented */) -{ - octave_value fcn (new octave_builtin (m, name, file, doc)); - - octave::symbol_table& symtab - = octave::__get_symbol_table__ ("install_builtin_function"); - - symtab.install_built_in_function (name, fcn); -} - -void install_dld_function (octave_dld_function::fcn f, const std::string& name, const octave::dynamic_library& shl, const std::string& doc, bool relative) @@ -161,23 +135,6 @@ symtab.install_built_in_function (name, fval); } -void -alias_builtin (const std::string& alias, const std::string& name) -{ - octave::symbol_table& symtab = octave::__get_symbol_table__ ("alias_builtin"); - - symtab.alias_built_in_function (alias, name); -} - -void -install_builtin_dispatch (const std::string& name, const std::string& klass) -{ - octave::symbol_table& symtab - = octave::__get_symbol_table__ ("install_builtin_dispatch"); - - symtab.install_built_in_dispatch (name, klass); -} - octave::dynamic_library get_current_shlib (void) { @@ -205,19 +162,3 @@ return retval; } - -bool -defun_isargout (int nargout, int iout) -{ - octave::tree_evaluator& tw = octave::__get_evaluator__ ("defun_isargout"); - - return tw.isargout (nargout, iout); -} - -void -defun_isargout (int nargout, int nout, bool *isargout) -{ - octave::tree_evaluator& tw = octave::__get_evaluator__ ("defun_isargout"); - - return tw.isargout (nargout, nout, isargout); -}
--- a/libinterp/corefcn/display.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/display.cc Thu Jan 24 20:20:02 2019 +0000 @@ -66,14 +66,9 @@ if (! instance) { instance = new display_info (query); - - if (instance) - singleton_cleanup_list::add (cleanup_instance); + singleton_cleanup_list::add (cleanup_instance); } - if (! instance) - error ("unable to create display_info object!"); - return retval; } }
--- a/libinterp/corefcn/dot.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/dot.cc Thu Jan 24 20:20:02 2019 +0000 @@ -26,8 +26,10 @@ #include "lo-blas-proto.h" #include "mx-base.h" + +#include "builtin-defun-decls.h" +#include "defun.h" #include "error.h" -#include "defun.h" #include "parse.h" static void @@ -75,11 +77,12 @@ If the optional argument @var{dim} is given, calculate the dot products along this dimension. -This is equivalent to -@code{sum (conj (@var{X}) .* @var{Y}, @var{dim})}, -but avoids forming a temporary array and is faster. When @var{X} and -@var{Y} are column vectors, the result is equivalent to -@code{@var{X}' * @var{Y}}. +Implementation Note: This is equivalent to +@code{sum (conj (@var{X}) .* @var{Y}, @var{dim})}, but avoids forming a +temporary array and is faster. When @var{X} and @var{Y} are column vectors, +the result is equivalent to @code{@var{X}' * @var{Y}}. Although, @code{dot} +is defined for integer arrays, the output may differ from the expected result +due to the limited range of integer objects. @seealso{cross, divergence} @end deftypefn */) { @@ -177,11 +180,16 @@ else { // Non-optimized evaluation. + // FIXME: This may *not* do what the user expects. + // It might be more useful to issue a warning, or even an error, instead + // of calculating possibly garbage results. + // Think of the dot product of two int8 vectors where the multiplications + // exceed intmax. octave_value_list tmp; tmp(1) = dim + 1; tmp(0) = do_binary_op (octave_value::op_el_mul, argx, argy); - tmp = octave::feval ("sum", tmp, 1); + tmp = Fsum (tmp, 1); if (! tmp.empty ()) retval = tmp(0); } @@ -204,17 +212,23 @@ %! assert (dot (single (x), single (x)), single ([4, 20])); %!test -%! x = int8 ([1 2]); -%! y = int8 ([2 3]); +%! x = int8 ([1, 2]); +%! y = int8 ([2, 3]); %! assert (dot (x, y), 8); %!test -%! x = int8 ([1 2; 3 4]); -%! y = int8 ([5 6; 7 8]); +%! x = int8 ([1, 2; 3, 4]); +%! y = int8 ([5, 6; 7, 8]); %! assert (dot (x, y), [26 44]); %! assert (dot (x, y, 2), [17; 53]); %! assert (dot (x, y, 3), [5 12; 21 32]); +## This is, perhaps, surprising. Integer maximums and saturation mechanics +## prevent accurate value from being calculated. +%!test +%! x = int8 ([127]); +%! assert (dot (x, x), 127); + ## Test input validation %!error dot () %!error dot (1)
--- a/libinterp/corefcn/error.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/error.cc Thu Jan 24 20:20:02 2019 +0000 @@ -1819,7 +1819,7 @@ /* %!test <*51997> -%! id = "Octave:divide-by-zero"; +%! id = "Octave:logical-conversion"; %! current = warning ("query", id); %! current_all = warning (); %! previous = warning (current_all);
--- a/libinterp/corefcn/errwarn.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/errwarn.cc Thu Jan 24 20:20:02 2019 +0000 @@ -324,12 +324,6 @@ } void -warn_divide_by_zero (void) -{ - warning_with_id ("Octave:divide-by-zero", "division by zero"); -} - -void warn_empty_arg (const char *name) { warning ("%s: argument is empty matrix", name);
--- a/libinterp/corefcn/errwarn.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/errwarn.h Thu Jan 24 20:20:02 2019 +0000 @@ -164,9 +164,6 @@ const std::string& pkg = "Octave"); OCTINTERP_API extern void -warn_divide_by_zero (void); - -OCTINTERP_API extern void warn_empty_arg (const char *name); OCTINTERP_API extern void @@ -185,4 +182,13 @@ OCTINTERP_API extern void warn_wrong_type_arg (const char *name, const octave_value& tc); +#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) + +OCTAVE_DEPRECATED (6, "this function will be removed in a future version of Octave") +inline void +warn_divide_by_zero (void) +{ } + #endif + +#endif
--- a/libinterp/corefcn/event-queue.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/event-queue.h Thu Jan 24 20:20:02 2019 +0000 @@ -122,14 +122,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::event_queue' instead") -typedef octave::event_queue event_queue; - -OCTAVE_DEPRECATED (4.4, "use 'octave::event_queue_safe' instead") -typedef octave::event_queue_safe event_queue_safe; - #endif - -#endif
--- a/libinterp/corefcn/ft-text-renderer.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/ft-text-renderer.cc Thu Jan 24 20:20:02 2019 +0000 @@ -149,14 +149,9 @@ if (! instance) { instance = new ft_manager (); - - if (instance) - singleton_cleanup_list::add (cleanup_instance); + singleton_cleanup_list::add (cleanup_instance); } - if (! instance) - error ("unable to create ft_manager!"); - return retval; } @@ -245,10 +240,6 @@ if (weight == "bold") fc_weight = FC_WEIGHT_BOLD; - else if (weight == "light") - fc_weight = FC_WEIGHT_LIGHT; - else if (weight == "demi") - fc_weight = FC_WEIGHT_DEMIBOLD; else fc_weight = FC_WEIGHT_NORMAL;
--- a/libinterp/corefcn/graphics.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/graphics.cc Thu Jan 24 20:20:02 2019 +0000 @@ -5082,9 +5082,9 @@ } /* -%!testif HAVE_OPENGL, HAVE_FLTK; have_window_system () && any (strcmp ("fltk", available_graphics_toolkits ())) +%!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("qt", available_graphics_toolkits ())) %! hf = figure ("visible", "off"); -%! graphics_toolkit (hf, "fltk"); +%! graphics_toolkit (hf, "qt"); %! unwind_protect %! subplot(2,1,1); plot(rand(10,1)); subplot(2,1,2); plot(rand(10,1)); %! hax = findall (gcf (), "type", "axes"); @@ -5102,9 +5102,9 @@ %! close (hf); %! end_unwind_protect -%!testif HAVE_OPENGL, HAVE_FLTK; have_window_system () && any (strcmp ("fltk", available_graphics_toolkits ())) +%!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("qt", available_graphics_toolkits ())) %! hf = figure ("visible", "off"); -%! graphics_toolkit (hf, "fltk"); +%! graphics_toolkit (hf, "qt"); %! fpos = get (hf, "position"); %! unwind_protect %! plot (rand (3)); @@ -5122,9 +5122,9 @@ %! close (hf); %! end_unwind_protect -%!testif HAVE_OPENGL, HAVE_FLTK; have_window_system () && any (strcmp ("fltk", available_graphics_toolkits ())) +%!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("qt", available_graphics_toolkits ())) %! hf = figure ("visible", "off"); -%! graphics_toolkit (hf, "fltk"); +%! graphics_toolkit (hf, "qt"); %! fpos = get (hf, "position"); %! set (gca, "activepositionproperty", "position"); %! unwind_protect @@ -5283,8 +5283,6 @@ // Note: dataspectratio (not mode) will be set through update_aspectratios dataaspectratiomode = "auto"; - drawmode = "normal"; - fontangle = "normal"; fontname = OCTAVE_DEFAULT_FONTNAME; fontsize = 10; @@ -6116,7 +6114,9 @@ Matrix bbox = get_boundingbox (true); Matrix ticklen = get_ticklength ().matrix_value (); ticklen(0) *= std::max (bbox(2), bbox(3)); - ticklen(1) *= std::max (bbox(2), bbox(3)); + // FIXME: This algorithm is not Matlab-compatible. See bug #55483. + // Scale the results of Octave's algorithm for better visuals. + ticklen(1) *= (0.76 * std::max (bbox(2), bbox(3))); xticklen = ticksign * (mode2D ? ticklen(0) : ticklen(1)); yticklen = ticksign * (mode2D ? ticklen(0) : ticklen(1)); @@ -11219,9 +11219,7 @@ gh_manager::create_instance (void) { instance = new gh_manager (); - - if (instance) - singleton_cleanup_list::add (cleanup_instance); + singleton_cleanup_list::add (cleanup_instance); } graphics_handle @@ -11834,8 +11832,9 @@ %! setappdata (gcbf (), "cb_exec", [getappdata(gcbf (), "cb_exec") h]); %!endfunction %! -%!testif HAVE_OPENGL, HAVE_FLTK; have_window_system () && any (strcmp ("fltk", available_graphics_toolkits ())) +%!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("qt", available_graphics_toolkits ())) %! hf = figure ("visible", "off", "resizefcn", @cb); +%! graphics_toolkit (hf, "qt"); %! unwind_protect %! ## Default %! hui1 = uicontrol ("parent", hf, "interruptible", "on", "callback", @cb);
--- a/libinterp/corefcn/graphics.in.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/graphics.in.h Thu Jan 24 20:20:02 2019 +0000 @@ -3187,16 +3187,6 @@ any_property __zoom_mode__ h , Matrix () double_property __device_pixel_ratio__ hU , 1.0 - // Obsolete properties: doublebuffer, mincolormap, wvisual, wvisualmode, - // xdisplay, xvisual, xvisualmode - // FIXME: DEPRECATED: Remove in version 6. - bool_property doublebuffer hd , "on" - double_property mincolormap hd , 64 - string_property wvisual hmd , "" - radio_property wvisualmode hd , "{auto}|manual" - string_property xdisplay hd , "" - string_property xvisual hmd , "" - radio_property xvisualmode hd , "{auto}|manual" END_PROPERTIES protected: @@ -3637,7 +3627,6 @@ array_property currentpoint , Matrix (2, 3, 0.0) row_vector_property dataaspectratio mu , Matrix (1, 3, 1.0) radio_property dataaspectratiomode u , "{auto}|manual" - radio_property drawmode hd , "{normal}|fast" radio_property fontangle u , "{normal}|italic" string_property fontname u , OCTAVE_DEFAULT_FONTNAME double_property fontsize u , 10 @@ -4363,7 +4352,7 @@ string_property fontname u , OCTAVE_DEFAULT_FONTNAME double_property fontsize u , 10 radio_property fontunits SU , "inches|centimeters|normalized|{points}|pixels" - radio_property fontweight u , "light|{normal}|demi|bold" + radio_property fontweight u , "{normal}|bold" radio_property horizontalalignment mu , "{left}|center|right" radio_property interpreter u , "{tex}|none|latex" radio_property linestyle , "{-}|--|:|-.|none" @@ -4447,18 +4436,17 @@ void update_color (void) { update_font (); update_text_extent (); } void update_fontname (void) { update_font (); update_text_extent (); } void update_fontsize (void) { update_font (); update_text_extent (); } - void update_fontangle (void) { update_font (); update_text_extent (); } - - void update_fontweight (void) + void update_fontangle (void) { update_font (); update_text_extent (); - // FIXME: DEPRECATED: Remove warning with demi and light in version 6. - if (fontweight.is ("demi") || fontweight.is ("light")) + // FIXME: DEPRECATED: Remove warning for "oblique" in version 7. + if (fontangle.is ("oblique")) warning_with_id ("Octave:deprecated-property", - "Setting 'fontweight' to '%s' is deprecated, \ -use 'normal' or 'bold'.", fontweight.current_value ().c_str ()); + "Setting 'fontangle' to '%s' is deprecated, \ +use 'italic' or 'normal'.", fontangle.current_value ().c_str ()); } + void update_fontweight (void) { update_font (); update_text_extent (); } void update_interpreter (void) { update_text_extent (); } void update_horizontalalignment (void) { update_text_extent (); } @@ -5464,7 +5452,7 @@ string_property fontname u , OCTAVE_DEFAULT_FONTNAME double_property fontsize u , 10 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" - radio_property fontweight u , "light|{normal}|demi|bold" + radio_property fontweight u , "{normal}|bold" color_property foregroundcolor , color_values (0, 0, 0) radio_property horizontalalignment , "left|{center}|right" callback_property keypressfcn , Matrix () @@ -5507,17 +5495,16 @@ void update_string (void) { update_text_extent (); } void update_fontname (void) { update_text_extent (); } void update_fontsize (void) { update_text_extent (); } - void update_fontangle (void) { update_text_extent (); } - - void update_fontweight (void) + void update_fontangle (void) { update_text_extent (); - // FIXME: DEPRECATED: Remove warning with demi and light in version 6. - if (fontweight.is ("demi") || fontweight.is ("light")) + // FIXME: DEPRECATED: Remove warning for "oblique" in version 7. + if (fontangle.is ("oblique")) warning_with_id ("Octave:deprecated-property", - "Setting 'fontweight' to '%s' is deprecated, \ -use 'normal' or 'bold'.", fontweight.current_value ().c_str ()); + "Setting 'fontangle' to '%s' is deprecated, \ +use 'italic' or 'normal'.", fontangle.current_value ().c_str ()); } + void update_fontweight (void) { update_text_extent (); } void update_fontunits (const caseless_str& old_units); @@ -5577,7 +5564,7 @@ string_property fontname , OCTAVE_DEFAULT_FONTNAME double_property fontsize , 10 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" - radio_property fontweight u , "light|{normal}|demi|bold" + radio_property fontweight , "{normal}|bold" color_property foregroundcolor , color_values (0, 0, 0) color_property highlightcolor , color_values (1, 1, 1) array_property position S , default_panel_position () @@ -5610,15 +5597,7 @@ // void update_fontname (void) { update_text_extent (); } // void update_fontsize (void) { update_text_extent (); } // void update_fontangle (void) { update_text_extent (); } - - void update_fontweight (void) - { - // FIXME: DEPRECATED: Remove warning with demi and light in version 6. - if (fontweight.is ("demi") || fontweight.is ("light")) - warning_with_id ("Octave:deprecated-property", - "Setting 'fontweight' to '%s' is deprecated, \ -use 'normal' or 'bold'.", fontweight.current_value ().c_str ()); - } + // void update_fontweight (void) { update_fontweight (); } void update_units (const caseless_str& old_units); void update_fontunits (const caseless_str& old_units); @@ -5677,7 +5656,7 @@ string_property fontname , OCTAVE_DEFAULT_FONTNAME double_property fontsize , 10 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" - radio_property fontweight u , "light|{normal}|demi|bold" + radio_property fontweight , "{normal}|bold" color_property foregroundcolor , color_values (0, 0, 0) color_property highlightcolor , color_values (1, 1, 1) array_property position S , default_panel_position () @@ -5705,14 +5684,6 @@ void update_units (const caseless_str& old_units); void update_fontunits (const caseless_str& old_units); - void update_fontweight (void) - { - // FIXME: DEPRECATED: Remove warning with demi and light in version 6. - if (fontweight.is ("demi") || fontweight.is ("light")) - warning_with_id ("Octave:deprecated-property", - "Setting 'fontweight' to '%s' is deprecated, \ -use 'normal' or 'bold'.", fontweight.current_value ().c_str ()); - } }; private: @@ -5779,7 +5750,7 @@ string_property fontname u , OCTAVE_DEFAULT_FONTNAME double_property fontsize u , 10 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" - radio_property fontweight u , "light|{normal}|demi|bold" + radio_property fontweight u , "{normal}|bold" color_property foregroundcolor , color_values (0, 0, 0) callback_property keypressfcn , Matrix () callback_property keyreleasefcn , Matrix () @@ -5813,18 +5784,16 @@ void update_data (void) { update_table_extent (); } void update_fontname (void) { update_table_extent (); } void update_fontsize (void) { update_table_extent (); } - void update_fontangle (void) { update_table_extent (); } - - void update_fontweight (void) + void update_fontangle (void) { - // FIXME: DEPRECATED: Remove warning with demi and light in version 6. - if (fontweight.is ("demi") || fontweight.is ("light")) + update_table_extent (); + // FIXME: DEPRECATED: Remove warning for "oblique" in version 7. + if (fontangle.is ("oblique")) warning_with_id ("Octave:deprecated-property", - "Setting 'fontweight' to '%s' is deprecated, \ -use 'normal' or 'bold'.", fontweight.current_value ().c_str ()); - - update_table_extent (); + "Setting 'fontangle' to '%s' is deprecated, \ +use 'italic' or 'normal'.", fontangle.current_value ().c_str ()); } + void update_fontweight (void) { update_table_extent (); } }; private:
--- a/libinterp/corefcn/interpreter.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/interpreter.h Thu Jan 24 20:20:02 2019 +0000 @@ -340,29 +340,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::interpreter::recover_from_exception' instead") -static inline void -recover_from_exception (void) -{ - octave::interpreter::recover_from_exception (); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::interpreter::add_atexit_function' instead") -static inline void -add_atexit_function (const std::string& fname) -{ - octave::interpreter::add_atexit_function (fname); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::interpreter::remove_atexit_function' instead") -static inline bool -remove_atexit_function (const std::string& fname) -{ - return octave::interpreter::remove_atexit_function (fname); -} - #endif - -#endif
--- a/libinterp/corefcn/oct-errno.in.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/oct-errno.in.cc Thu Jan 24 20:20:02 2019 +0000 @@ -296,14 +296,9 @@ if (! instance) { instance = new octave_errno (); - - if (instance) - singleton_cleanup_list::add (cleanup_instance); + singleton_cleanup_list::add (cleanup_instance); } - if (! instance) - error ("unable to create errno object!"); - return retval; }
--- a/libinterp/corefcn/oct-stream.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/oct-stream.h Thu Jan 24 20:20:02 2019 +0000 @@ -461,17 +461,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::base_stream' instead") -typedef octave::base_stream octave_base_stream; - -OCTAVE_DEPRECATED (4.4, "use 'octave::stream' instead") -typedef octave::stream octave_stream; - -OCTAVE_DEPRECATED (4.4, "use 'octave::stream_list' instead") -typedef octave::stream_list octave_stream_list; - #endif - -#endif
--- a/libinterp/corefcn/pager.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/pager.cc Thu Jan 24 20:20:02 2019 +0000 @@ -426,13 +426,10 @@ { m_external_pager = new oprocstream (pgr.c_str ()); - if (m_external_pager) - { - octave::child_list& kids = m_interpreter.get_child_list (); + octave::child_list& kids = m_interpreter.get_child_list (); - kids.insert (m_external_pager->pid (), - pager_event_handler); - } + kids.insert (m_external_pager->pid (), + pager_event_handler); } }
--- a/libinterp/corefcn/pager.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/pager.h Thu Jan 24 20:20:02 2019 +0000 @@ -307,29 +307,6 @@ extern std::ostream& __diary__ (void); } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::diary_buf' instead") -typedef octave::diary_buf octave_diary_buf; - -OCTAVE_DEPRECATED (4.4, "use 'octave::diary_stream' instead") -typedef octave::diary_stream octave_diary_stream; - -OCTAVE_DEPRECATED (4.4, "use 'octave::pager_buf' instead") -typedef octave::pager_buf octave_pager_buf; - -OCTAVE_DEPRECATED (4.4, "use 'octave::pager_stream' instead") -typedef octave::pager_stream octave_pager_stream; - -OCTAVE_DEPRECATED (4.4, "use 'octave::flush_stdout' instead") -static inline void -flush_octave_stdout (void) -{ - return octave::flush_stdout (); -} - -#endif - #define octave_stdout (octave::__stdout__ ()) #define octave_diary (octave::__diary__ ())
--- a/libinterp/corefcn/variables.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/variables.cc Thu Jan 24 20:20:02 2019 +0000 @@ -1512,130 +1512,6 @@ // The following functions are deprecated. -void -mlock (void) -{ - octave::interpreter& interp = octave::__get_interpreter__ ("mlock"); - - interp.mlock (); -} - -void -munlock (const std::string& nm) -{ - octave::interpreter& interp = octave::__get_interpreter__ ("mlock"); - - return interp.munlock (nm); -} - -bool -mislocked (const std::string& nm) -{ - octave::interpreter& interp = octave::__get_interpreter__ ("mlock"); - - return interp.mislocked (nm); -} - -void -bind_ans (const octave_value& val, bool print) -{ - octave::tree_evaluator& tw = octave::__get_evaluator__ ("bind_ans"); - - tw.bind_ans (val, print); -} - -void -clear_mex_functions (void) -{ - octave::symbol_table& symtab = - octave::__get_symbol_table__ ("clear_mex_functions"); - - symtab.clear_mex_functions (); -} - -void -clear_function (const std::string& nm) -{ - octave::symbol_table& symtab = octave::__get_symbol_table__ ("clear_function"); - - symtab.clear_function (nm); -} - -void -clear_variable (const std::string& nm) -{ - octave::symbol_scope scope - = octave::__get_current_scope__ ("clear_variable"); - - if (scope) - scope.clear_variable (nm); -} - -void -clear_symbol (const std::string& nm) -{ - octave::symbol_table& symtab = octave::__get_symbol_table__ ("clear_symbol"); - - symtab.clear_symbol (nm); -} - -octave_value -lookup_function_handle (const std::string& nm) -{ - octave::symbol_scope scope - = octave::__get_current_scope__ ("lookup_function_handle"); - - octave_value val = scope ? scope.varval (nm) : octave_value (); - - return val.is_function_handle () ? val : octave_value (); -} - -octave_value -get_global_value (const std::string& nm, bool silent) -{ - octave::symbol_table& symtab = - octave::__get_symbol_table__ ("get_global_value"); - - octave_value val = symtab.global_varval (nm); - - if (val.is_undefined () && ! silent) - error ("get_global_value: undefined symbol '%s'", nm.c_str ()); - - return val; -} - -void -set_global_value (const std::string& nm, const octave_value& val) -{ - octave::symbol_table& symtab = - octave::__get_symbol_table__ ("set_global_value"); - - symtab.global_assign (nm, val); -} - -octave_value -get_top_level_value (const std::string& nm, bool silent) -{ - octave::symbol_table& symtab = - octave::__get_symbol_table__ ("get_top_level_value"); - - octave_value val = symtab.top_level_varval (nm); - - if (val.is_undefined () && ! silent) - error ("get_top_level_value: undefined symbol '%s'", nm.c_str ()); - - return val; -} - -void -set_top_level_value (const std::string& nm, const octave_value& val) -{ - octave::symbol_table& symtab = - octave::__get_symbol_table__ ("set_top_level_value"); - - symtab.top_level_assign (nm, val); -} - string_vector get_struct_elts (const std::string& text) {
--- a/libinterp/corefcn/variables.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/corefcn/variables.h Thu Jan 24 20:20:02 2019 +0000 @@ -111,50 +111,6 @@ extern OCTINTERP_API void maybe_missing_function_hook (const std::string& name); -OCTAVE_DEPRECATED (4.4, "use 'interpreter::mlock' instead") -extern OCTINTERP_API void mlock (void); - -OCTAVE_DEPRECATED (4.4, "use 'interpreter::munlock' instead") -extern OCTINTERP_API void munlock (const std::string&); - -OCTAVE_DEPRECATED (4.4, "use 'interpreter::mislocked' instead") -extern OCTINTERP_API bool mislocked (const std::string&); - -OCTAVE_DEPRECATED (4.4, "use 'tree_evaluator::bind_ans' instead") -extern OCTINTERP_API void bind_ans (const octave_value& val, bool print); - -OCTAVE_DEPRECATED (4.4, "use 'symbol_table::clear_mex_functions' instead") -extern OCTINTERP_API void clear_mex_functions (void); - -OCTAVE_DEPRECATED (4.4, "use 'symbol_table::clear_function' instead") -extern OCTINTERP_API void clear_function (const std::string& nm); - -OCTAVE_DEPRECATED (4.4, "use 'symbol_table::clear_variable' instead") -extern OCTINTERP_API void clear_variable (const std::string& nm); - -OCTAVE_DEPRECATED (4.4, "use 'symbol_table::clear_symbol' instead") -extern OCTINTERP_API void clear_symbol (const std::string& nm); - -OCTAVE_DEPRECATED (4.4, "use 'symbol_table::varval' instead") -extern OCTINTERP_API octave_value -lookup_function_handle (const std::string& nm); - -OCTAVE_DEPRECATED (4.4, "use 'symbol_table::global_varval' instead") -extern OCTINTERP_API octave_value -get_global_value (const std::string& nm, bool silent = false); - -OCTAVE_DEPRECATED (4.4, "use 'symbol_table::global_assign' instead") -extern OCTINTERP_API void -set_global_value (const std::string& nm, const octave_value& val); - -OCTAVE_DEPRECATED (4.4, "use 'symbol_table::top_level_varval' instead") -extern OCTINTERP_API octave_value -get_top_level_value (const std::string& nm, bool silent = false); - -OCTAVE_DEPRECATED (4.4, "use 'symbol_table::top_level_assign' instead") -extern OCTINTERP_API void -set_top_level_value (const std::string& nm, const octave_value& val); - OCTAVE_DEPRECATED (5, "this function will be removed in a future version of Octave") extern OCTINTERP_API string_vector get_struct_elts (const std::string& text);
--- a/libinterp/dldfcn/__init_fltk__.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/dldfcn/__init_fltk__.cc Thu Jan 24 20:20:02 2019 +0000 @@ -1852,9 +1852,6 @@ if (! instance) instance = new figure_manager (); - if (! instance) - error ("unable to create figure_manager object!"); - return retval; }
--- a/libinterp/dldfcn/audiodevinfo.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/dldfcn/audiodevinfo.cc Thu Jan 24 20:20:02 2019 +0000 @@ -2255,9 +2255,6 @@ audioplayer *recorder = new audioplayer (); - if (! recorder) - error ("__player_audioplayer__: Couldn't instantiate new audioplayer"); - bool is_function = (args(0).is_string () || args(0).is_function_handle () || args(0).is_inline_function ());
--- a/libinterp/octave-value/ov-base-int.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-base-int.cc Thu Jan 24 20:20:02 2019 +0000 @@ -325,7 +325,7 @@ template <typename T> bool -octave_base_int_matrix<T>::save_binary (std::ostream& os, bool&) +octave_base_int_matrix<T>::save_binary (std::ostream& os, bool) { dim_vector dv = this->dims (); if (dv.ndims () < 1) @@ -691,7 +691,7 @@ template <typename T> bool -octave_base_int_scalar<T>::save_binary (std::ostream& os, bool&) +octave_base_int_scalar<T>::save_binary (std::ostream& os, bool) { os.write (reinterpret_cast<char *> (&(this->scalar)), this->byte_size ()); return true;
--- a/libinterp/octave-value/ov-base-int.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-base-int.h Thu Jan 24 20:20:02 2019 +0000 @@ -91,7 +91,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool&); + bool save_binary (std::ostream& os, bool); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format); @@ -156,7 +156,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool&); + bool save_binary (std::ostream& os, bool); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format);
--- a/libinterp/octave-value/ov-base-sparse.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-base-sparse.h Thu Jan 24 20:20:02 2019 +0000 @@ -150,9 +150,6 @@ bool is_true (void) const; - OCTAVE_DEPRECATED (4.4, "use 'nzmax' instead") - octave_idx_type capacity (void) const { return nzmax (); } - bool print_as_scalar (void) const; void print (std::ostream& os, bool pr_as_read_syntax = false);
--- a/libinterp/octave-value/ov-base.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-base.cc Thu Jan 24 20:20:02 2019 +0000 @@ -941,7 +941,7 @@ } bool -octave_base_value::save_binary (std::ostream&, bool&) +octave_base_value::save_binary (std::ostream&, bool) { err_wrong_type_arg ("octave_base_value::save_binary()", type_name ()); }
--- a/libinterp/octave-value/ov-base.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-base.h Thu Jan 24 20:20:02 2019 +0000 @@ -332,10 +332,6 @@ virtual octave_idx_type numel (void) const { return dims ().numel (); } - OCTAVE_DEPRECATED (4.4, "use 'numel' instead") - virtual octave_idx_type capacity (void) const - { return numel (); } - virtual size_t byte_size (void) const { return 0; } virtual octave_idx_type nnz (void) const; @@ -676,7 +672,7 @@ virtual bool load_ascii (std::istream& is); - virtual bool save_binary (std::ostream& os, bool& save_as_floats); + virtual bool save_binary (std::ostream& os, bool save_as_floats); virtual bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-bool-mat.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-bool-mat.cc Thu Jan 24 20:20:02 2019 +0000 @@ -343,7 +343,7 @@ } bool -octave_bool_matrix::save_binary (std::ostream& os, bool& /* save_as_floats */) +octave_bool_matrix::save_binary (std::ostream& os, bool /* save_as_floats */) { dim_vector dv = dims ();
--- a/libinterp/octave-value/ov-bool-mat.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-bool-mat.h Thu Jan 24 20:20:02 2019 +0000 @@ -213,7 +213,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-bool-sparse.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-bool-sparse.cc Thu Jan 24 20:20:02 2019 +0000 @@ -202,7 +202,7 @@ } bool -octave_sparse_bool_matrix::save_binary (std::ostream& os, bool&) +octave_sparse_bool_matrix::save_binary (std::ostream& os, bool) { dim_vector dv = this->dims (); if (dv.ndims () < 1)
--- a/libinterp/octave-value/ov-bool-sparse.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-bool-sparse.h Thu Jan 24 20:20:02 2019 +0000 @@ -132,7 +132,7 @@ octave_value as_double (void) const; - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-bool.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-bool.cc Thu Jan 24 20:20:02 2019 +0000 @@ -203,7 +203,7 @@ } bool -octave_bool::save_binary (std::ostream& os, bool& /* save_as_floats */) +octave_bool::save_binary (std::ostream& os, bool /* save_as_floats */) { char tmp = (scalar ? 1 : 0); os.write (reinterpret_cast<char *> (&tmp), 1);
--- a/libinterp/octave-value/ov-bool.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-bool.h Thu Jan 24 20:20:02 2019 +0000 @@ -226,7 +226,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-cell.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-cell.cc Thu Jan 24 20:20:02 2019 +0000 @@ -887,7 +887,7 @@ } bool -octave_cell::save_binary (std::ostream& os, bool& save_as_floats) +octave_cell::save_binary (std::ostream& os, bool save_as_floats) { dim_vector dv = dims (); if (dv.ndims () < 1)
--- a/libinterp/octave-value/ov-cell.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-cell.h Thu Jan 24 20:20:02 2019 +0000 @@ -152,7 +152,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-class.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-class.cc Thu Jan 24 20:20:02 2019 +0000 @@ -1270,7 +1270,7 @@ } bool -octave_class::save_binary (std::ostream& os, bool& save_as_floats) +octave_class::save_binary (std::ostream& os, bool save_as_floats) { int32_t classname_len = class_name ().length ();
--- a/libinterp/octave-value/ov-class.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-class.h Thu Jan 24 20:20:02 2019 +0000 @@ -189,7 +189,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-complex.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-complex.cc Thu Jan 24 20:20:02 2019 +0000 @@ -324,7 +324,7 @@ } bool -octave_complex::save_binary (std::ostream& os, bool& /* save_as_floats */) +octave_complex::save_binary (std::ostream& os, bool /* save_as_floats */) { char tmp = static_cast<char> (LS_DOUBLE); os.write (reinterpret_cast<char *> (&tmp), 1);
--- a/libinterp/octave-value/ov-complex.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-complex.h Thu Jan 24 20:20:02 2019 +0000 @@ -169,7 +169,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-cx-diag.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-cx-diag.cc Thu Jan 24 20:20:02 2019 +0000 @@ -177,7 +177,7 @@ } bool -octave_complex_diag_matrix::save_binary (std::ostream& os, bool& save_as_floats) +octave_complex_diag_matrix::save_binary (std::ostream& os, bool save_as_floats) { int32_t r = matrix.rows ();
--- a/libinterp/octave-value/ov-cx-diag.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-cx-diag.h Thu Jan 24 20:20:02 2019 +0000 @@ -82,7 +82,7 @@ octave_value as_double (void) const; octave_value as_single (void) const; - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-cx-mat.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-cx-mat.cc Thu Jan 24 20:20:02 2019 +0000 @@ -410,7 +410,7 @@ } bool -octave_complex_matrix::save_binary (std::ostream& os, bool& save_as_floats) +octave_complex_matrix::save_binary (std::ostream& os, bool save_as_floats) { dim_vector dv = dims (); if (dv.ndims () < 1)
--- a/libinterp/octave-value/ov-cx-mat.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-cx-mat.h Thu Jan 24 20:20:02 2019 +0000 @@ -153,7 +153,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-cx-sparse.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-cx-sparse.cc Thu Jan 24 20:20:02 2019 +0000 @@ -219,7 +219,7 @@ bool octave_sparse_complex_matrix::save_binary (std::ostream& os, - bool& save_as_floats) + bool save_as_floats) { dim_vector dv = this->dims (); if (dv.ndims () < 1)
--- a/libinterp/octave-value/ov-cx-sparse.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-cx-sparse.h Thu Jan 24 20:20:02 2019 +0000 @@ -138,7 +138,7 @@ } #endif - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-fcn-handle.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-fcn-handle.cc Thu Jan 24 20:20:02 2019 +0000 @@ -535,7 +535,7 @@ } bool -octave_fcn_handle::save_binary (std::ostream& os, bool& save_as_floats) +octave_fcn_handle::save_binary (std::ostream& os, bool save_as_floats) { if (nm == anonymous) {
--- a/libinterp/octave-value/ov-fcn-handle.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-fcn-handle.h Thu Jan 24 20:20:02 2019 +0000 @@ -137,7 +137,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-fcn-inline.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-fcn-inline.cc Thu Jan 24 20:20:02 2019 +0000 @@ -201,7 +201,7 @@ } bool -octave_fcn_inline::save_binary (std::ostream& os, bool&) +octave_fcn_inline::save_binary (std::ostream& os, bool) { int32_t tmp = ifargs.numel (); os.write (reinterpret_cast<char *> (&tmp), 4);
--- a/libinterp/octave-value/ov-fcn-inline.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-fcn-inline.h Thu Jan 24 20:20:02 2019 +0000 @@ -74,7 +74,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-float.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-float.cc Thu Jan 24 20:20:02 2019 +0000 @@ -215,7 +215,7 @@ } bool -octave_float_scalar::save_binary (std::ostream& os, bool& /* save_as_floats */) +octave_float_scalar::save_binary (std::ostream& os, bool /* save_as_floats */) { char tmp = LS_FLOAT; os.write (reinterpret_cast<char *> (&tmp), 1);
--- a/libinterp/octave-value/ov-float.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-float.h Thu Jan 24 20:20:02 2019 +0000 @@ -241,7 +241,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-flt-complex.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-flt-complex.cc Thu Jan 24 20:20:02 2019 +0000 @@ -271,7 +271,7 @@ } bool -octave_float_complex::save_binary (std::ostream& os, bool& /* save_as_floats */) +octave_float_complex::save_binary (std::ostream& os, bool /* save_as_floats */) { char tmp = static_cast<char> (LS_FLOAT); os.write (reinterpret_cast<char *> (&tmp), 1);
--- a/libinterp/octave-value/ov-flt-complex.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-flt-complex.h Thu Jan 24 20:20:02 2019 +0000 @@ -165,7 +165,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-flt-cx-diag.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-flt-cx-diag.cc Thu Jan 24 20:20:02 2019 +0000 @@ -158,7 +158,7 @@ bool octave_float_complex_diag_matrix::save_binary (std::ostream& os, - bool& /* save_as_floats */) + bool /* save_as_floats */) { int32_t r = matrix.rows ();
--- a/libinterp/octave-value/ov-flt-cx-diag.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-flt-cx-diag.h Thu Jan 24 20:20:02 2019 +0000 @@ -80,7 +80,7 @@ octave_value as_double (void) const; octave_value as_single (void) const; - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-flt-cx-mat.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-flt-cx-mat.cc Thu Jan 24 20:20:02 2019 +0000 @@ -384,7 +384,7 @@ } bool -octave_float_complex_matrix::save_binary (std::ostream& os, bool&) +octave_float_complex_matrix::save_binary (std::ostream& os, bool) { dim_vector dv = dims (); if (dv.ndims () < 1)
--- a/libinterp/octave-value/ov-flt-cx-mat.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-flt-cx-mat.h Thu Jan 24 20:20:02 2019 +0000 @@ -149,7 +149,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-flt-re-diag.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-flt-re-diag.cc Thu Jan 24 20:20:02 2019 +0000 @@ -176,7 +176,7 @@ bool octave_float_diag_matrix::save_binary (std::ostream& os, - bool& /* save_as_floats*/) + bool /* save_as_floats*/) { int32_t r = matrix.rows ();
--- a/libinterp/octave-value/ov-flt-re-diag.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-flt-re-diag.h Thu Jan 24 20:20:02 2019 +0000 @@ -90,7 +90,7 @@ octave_value as_uint32 (void) const; octave_value as_uint64 (void) const; - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-flt-re-mat.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-flt-re-mat.cc Thu Jan 24 20:20:02 2019 +0000 @@ -461,7 +461,7 @@ } bool -octave_float_matrix::save_binary (std::ostream& os, bool&) +octave_float_matrix::save_binary (std::ostream& os, bool) { dim_vector dv = dims (); if (dv.ndims () < 1)
--- a/libinterp/octave-value/ov-flt-re-mat.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-flt-re-mat.h Thu Jan 24 20:20:02 2019 +0000 @@ -197,7 +197,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-java.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-java.cc Thu Jan 24 20:20:02 2019 +0000 @@ -2340,7 +2340,7 @@ } bool -octave_java::save_binary (std::ostream& /* os */, bool& /* save_as_floats */) +octave_java::save_binary (std::ostream& /* os */, bool /* save_as_floats */) { warning ("save: unable to save java objects, skipping");
--- a/libinterp/octave-value/ov-java.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-java.h Thu Jan 24 20:20:02 2019 +0000 @@ -81,7 +81,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-lazy-idx.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-lazy-idx.cc Thu Jan 24 20:20:02 2019 +0000 @@ -237,7 +237,7 @@ return true; } -bool octave_lazy_index::save_binary (std::ostream& os, bool& save_as_floats) +bool octave_lazy_index::save_binary (std::ostream& os, bool save_as_floats) { return save_binary_data (os, make_value (), value_save_tag, "", false, save_as_floats);
--- a/libinterp/octave-value/ov-lazy-idx.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-lazy-idx.h Thu Jan 24 20:20:02 2019 +0000 @@ -209,7 +209,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-oncleanup.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-oncleanup.cc Thu Jan 24 20:20:02 2019 +0000 @@ -134,7 +134,7 @@ bool octave_oncleanup::save_binary (std::ostream& /* os */, - bool& /* save_as_floats */) + bool /* save_as_floats */) { warning ("save: unable to save onCleanup variables, skipping");
--- a/libinterp/octave-value/ov-oncleanup.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-oncleanup.h Thu Jan 24 20:20:02 2019 +0000 @@ -72,7 +72,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-perm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-perm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -368,7 +368,7 @@ } bool -octave_perm_matrix::save_binary (std::ostream& os, bool&) +octave_perm_matrix::save_binary (std::ostream& os, bool) { int32_t sz = matrix.rows ();
--- a/libinterp/octave-value/ov-perm.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-perm.h Thu Jan 24 20:20:02 2019 +0000 @@ -218,7 +218,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-range.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-range.cc Thu Jan 24 20:20:02 2019 +0000 @@ -566,7 +566,7 @@ } bool -octave_range::save_binary (std::ostream& os, bool& /* save_as_floats */) +octave_range::save_binary (std::ostream& os, bool /* save_as_floats */) { char tmp = LS_DOUBLE; os.write (reinterpret_cast<char *> (&tmp), 1);
--- a/libinterp/octave-value/ov-range.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-range.h Thu Jan 24 20:20:02 2019 +0000 @@ -279,7 +279,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-re-diag.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-re-diag.cc Thu Jan 24 20:20:02 2019 +0000 @@ -243,7 +243,7 @@ } bool -octave_diag_matrix::save_binary (std::ostream& os, bool& save_as_floats) +octave_diag_matrix::save_binary (std::ostream& os, bool save_as_floats) { int32_t r = matrix.rows ();
--- a/libinterp/octave-value/ov-re-diag.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-re-diag.h Thu Jan 24 20:20:02 2019 +0000 @@ -95,7 +95,7 @@ octave_value as_uint32 (void) const; octave_value as_uint64 (void) const; - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-re-mat.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-re-mat.cc Thu Jan 24 20:20:02 2019 +0000 @@ -564,7 +564,7 @@ } bool -octave_matrix::save_binary (std::ostream& os, bool& save_as_floats) +octave_matrix::save_binary (std::ostream& os, bool save_as_floats) { dim_vector dv = dims ();
--- a/libinterp/octave-value/ov-re-mat.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-re-mat.h Thu Jan 24 20:20:02 2019 +0000 @@ -221,7 +221,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-re-sparse.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-re-sparse.cc Thu Jan 24 20:20:02 2019 +0000 @@ -244,7 +244,7 @@ } bool -octave_sparse_matrix::save_binary (std::ostream& os, bool& save_as_floats) +octave_sparse_matrix::save_binary (std::ostream& os, bool save_as_floats) { dim_vector dv = this->dims (); if (dv.ndims () < 1)
--- a/libinterp/octave-value/ov-re-sparse.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-re-sparse.h Thu Jan 24 20:20:02 2019 +0000 @@ -141,7 +141,7 @@ { return os.write (matrix, block_size, output_type, skip, flt_fmt); } #endif - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-scalar.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-scalar.cc Thu Jan 24 20:20:02 2019 +0000 @@ -235,7 +235,7 @@ } bool -octave_scalar::save_binary (std::ostream& os, bool& /* save_as_floats */) +octave_scalar::save_binary (std::ostream& os, bool /* save_as_floats */) { char tmp = LS_DOUBLE; os.write (reinterpret_cast<char *> (&tmp), 1);
--- a/libinterp/octave-value/ov-scalar.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-scalar.h Thu Jan 24 20:20:02 2019 +0000 @@ -244,7 +244,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-str-mat.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-str-mat.cc Thu Jan 24 20:20:02 2019 +0000 @@ -456,7 +456,7 @@ bool octave_char_matrix_str::save_binary (std::ostream& os, - bool& /* save_as_floats */) + bool /* save_as_floats */) { dim_vector dv = dims (); if (dv.ndims () < 1)
--- a/libinterp/octave-value/ov-str-mat.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-str-mat.h Thu Jan 24 20:20:02 2019 +0000 @@ -153,7 +153,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-struct.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-struct.cc Thu Jan 24 20:20:02 2019 +0000 @@ -791,7 +791,7 @@ } bool -octave_struct::save_binary (std::ostream& os, bool& save_as_floats) +octave_struct::save_binary (std::ostream& os, bool save_as_floats) { octave_map m = map_value (); @@ -1451,7 +1451,7 @@ } bool -octave_scalar_struct::save_binary (std::ostream& os, bool& save_as_floats) +octave_scalar_struct::save_binary (std::ostream& os, bool save_as_floats) { octave_map m = map_value ();
--- a/libinterp/octave-value/ov-struct.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-struct.h Thu Jan 24 20:20:02 2019 +0000 @@ -138,7 +138,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt); @@ -262,7 +262,7 @@ bool load_ascii (std::istream& is); - bool save_binary (std::ostream& os, bool& save_as_floats); + bool save_binary (std::ostream& os, bool save_as_floats); bool load_binary (std::istream& is, bool swap, octave::mach_info::float_format fmt);
--- a/libinterp/octave-value/ov-typeinfo.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-typeinfo.cc Thu Jan 24 20:20:02 2019 +0000 @@ -770,112 +770,6 @@ return type_info.register_type (t_name, c_name, val); } - bool register_unary_class_op (octave_value::unary_op op, - unary_class_op_fcn f) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_unary_class_op"); - - return type_info.register_unary_class_op (op, f); - } - - bool register_unary_op (octave_value::unary_op op, - int t, unary_op_fcn f) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_unary_op"); - - return type_info.register_unary_op (op, t, f); - } - - bool register_non_const_unary_op (octave_value::unary_op op, - int t, non_const_unary_op_fcn f) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_non_const_unary_op"); - - return type_info.register_non_const_unary_op (op, t, f); - } - - bool register_binary_class_op (octave_value::binary_op op, - binary_class_op_fcn f) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_binary_class_op"); - - return type_info.register_binary_class_op (op, f); - } - - bool register_binary_op (octave_value::binary_op op, - int t1, int t2, binary_op_fcn f) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_binary_op"); - - return type_info.register_binary_op (op, t1, t2, f); - } - - bool register_binary_class_op (octave_value::compound_binary_op op, - binary_class_op_fcn f) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_binary_class_op"); - - return type_info.register_binary_class_op (op, f); - } - - bool register_binary_op (octave_value::compound_binary_op op, - int t1, int t2, binary_op_fcn f) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_binary_op"); - - return type_info.register_binary_op (op, t1, t2, f); - } - - bool register_cat_op (int t1, int t2, cat_op_fcn f) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_cat_op"); - - return type_info.register_cat_op (t1, t2, f); - } - - bool register_assign_op (octave_value::assign_op op, - int t_lhs, int t_rhs, assign_op_fcn f) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_assign_op"); - - return type_info.register_assign_op (op, t_lhs, t_rhs, f); - } - - bool register_assignany_op (octave_value::assign_op op, - int t_lhs, assignany_op_fcn f) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_assignany_op"); - - return type_info.register_assignany_op (op, t_lhs, f); - } - - bool register_pref_assign_conv (int t_lhs, int t_rhs, int t_result) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_pref_assign_conv"); - - return type_info.register_pref_assign_conv (t_lhs, t_rhs, t_result); - } - - bool register_widening_op (int t, int t_result, - octave_base_value::type_conv_fcn f) - { - octave::type_info& type_info - = octave::__get_type_info__ ("register_widening_op"); - - return type_info.register_widening_op (t, t_result, f); - } - octave_value lookup_type (const std::string& nm) { octave::type_info& type_info
--- a/libinterp/octave-value/ov-typeinfo.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov-typeinfo.h Thu Jan 24 20:20:02 2019 +0000 @@ -286,52 +286,6 @@ const std::string& c_name, const octave_value& val); - OCTAVE_DEPRECATED(4.4, "use octave::type_info::register_unary_class_op instead") - extern bool register_unary_class_op (octave_value::unary_op op, - unary_class_op_fcn f); - - OCTAVE_DEPRECATED (4.4, "use octave::type_info::register_unary_op instead") - extern bool register_unary_op (octave_value::unary_op op, - int t, unary_op_fcn f); - - OCTAVE_DEPRECATED (4.4, "use octave::type_info::register_non_const_unary_op instead") - extern bool register_non_const_unary_op (octave_value::unary_op op, - int t, non_const_unary_op_fcn f); - - OCTAVE_DEPRECATED (4.4, "use octave::type_info::register_binary_class_op instead") - extern bool register_binary_class_op (octave_value::binary_op op, - binary_class_op_fcn f); - - OCTAVE_DEPRECATED (4.4, "use octave::type_info::register_binary_op instead") - extern bool register_binary_op (octave_value::binary_op op, - int t1, int t2, binary_op_fcn f); - - OCTAVE_DEPRECATED (4.4, "use octave::type_info::register_binary_class_op instead") - extern bool register_binary_class_op (octave_value::compound_binary_op op, - binary_class_op_fcn f); - - OCTAVE_DEPRECATED (4.4, "use octave::type_info::register_binary_op instead") - extern bool register_binary_op (octave_value::compound_binary_op op, - int t1, int t2, binary_op_fcn f); - - OCTAVE_DEPRECATED (4.4, "use octave::type_info::register_cat_op instead") - extern bool register_cat_op (int t1, int t2, cat_op_fcn f); - - OCTAVE_DEPRECATED (4.4, "use octave::type_info::register_assign_op instead") - extern bool register_assign_op (octave_value::assign_op op, - int t_lhs, int t_rhs, assign_op_fcn f); - - OCTAVE_DEPRECATED (4.4, "use octave::type_info::register_assignany_op instead") - extern bool register_assignany_op (octave_value::assign_op op, - int t_lhs, assignany_op_fcn f); - - OCTAVE_DEPRECATED (4.4, "use octave::type_info::register_pref_assign_conv instead") - extern bool register_pref_assign_conv (int t_lhs, int t_rhs, int t_result); - - OCTAVE_DEPRECATED (4.4, "use octave::type_info::register_widening_op instead") - extern bool register_widening_op (int t, int t_result, - octave_base_value::type_conv_fcn f); - extern octave_value lookup_type (const std::string& nm); extern unary_class_op_fcn lookup_unary_class_op (octave_value::unary_op op);
--- a/libinterp/octave-value/ov.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov.cc Thu Jan 24 20:20:02 2019 +0000 @@ -1106,10 +1106,6 @@ : rep (new octave_class (m, id, plist)) { } -octave_value::octave_value (const octave_value_list& l, bool) - : rep (new octave_cs_list (l)) -{ } - octave_value::octave_value (const octave_value_list& l) : rep (new octave_cs_list (l)) { }
--- a/libinterp/octave-value/ov.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave-value/ov.h Thu Jan 24 20:20:02 2019 +0000 @@ -291,9 +291,6 @@ octave_value (const octave_scalar_map& m, const std::string& id, const std::list<std::string>& plist); - OCTAVE_DEPRECATED (4.4, "note: second argument is always ignored; use octave_value (const octave_value_list&) instead") - octave_value (const octave_value_list& m, bool); - // This one is explicit because it can cause some trouble to // accidentally create a cs-list when one was not intended. explicit octave_value (const octave_value_list& m); @@ -487,10 +484,6 @@ octave_idx_type numel (void) const { return rep->numel (); } - OCTAVE_DEPRECATED (4.4, "use 'numel' instead") - octave_idx_type capacity (void) const - { return rep->numel (); } - size_t byte_size (void) const { return rep->byte_size (); } @@ -530,24 +523,12 @@ bool isempty (void) const { return rep->isempty (); } - OCTAVE_DEPRECATED (4.4, "use 'isempty' instead") - bool is_empty (void) const - { return rep->isempty (); } - bool iscell (void) const { return rep->iscell (); } - OCTAVE_DEPRECATED (4.4, "use 'iscell' instead") - bool is_cell (void) const - { return rep->iscell (); } - bool iscellstr (void) const { return rep->iscellstr (); } - OCTAVE_DEPRECATED (4.4, "use 'iscellstr' instead") - bool is_cellstr (void) const - { return rep->iscellstr (); } - bool is_real_scalar (void) const { return rep->is_real_scalar (); } @@ -590,10 +571,6 @@ bool isstruct (void) const { return rep->isstruct (); } - OCTAVE_DEPRECATED (4.4, "use 'isstruct' instead") - bool is_map (void) const - { return rep->isstruct (); } - bool is_classdef_meta (void) const { return rep->is_classdef_meta (); } @@ -609,17 +586,9 @@ bool isobject (void) const { return rep->isobject (); } - OCTAVE_DEPRECATED (4.4, "use 'isobject' instead") - bool is_object (void) const - { return rep->isobject (); } - bool isjava (void) const { return rep->isjava (); } - OCTAVE_DEPRECATED (4.4, "use 'isjava' instead") - bool is_java (void) const - { return rep->isjava (); } - bool is_cs_list (void) const { return rep->is_cs_list (); } @@ -629,10 +598,6 @@ bool isnull (void) const { return rep->isnull (); } - OCTAVE_DEPRECATED (4.4, "use 'isnull' instead") - bool is_null_value (void) const - { return rep->isnull (); } - // Are any or all of the elements in this constant nonzero? octave_value all (int dim = 0) const @@ -655,10 +620,6 @@ bool isfloat (void) const { return rep->isfloat (); } - OCTAVE_DEPRECATED (4.4, "use 'isfloat' instead") - bool is_float_type (void) const - { return rep->isfloat (); } - // Integer types. bool is_int8_type (void) const @@ -688,33 +649,17 @@ bool isinteger (void) const { return rep->isinteger (); } - OCTAVE_DEPRECATED (4.4, "use 'isinteger' instead") - bool is_integer_type (void) const - { return rep->isinteger (); } - // Other type stuff. bool islogical (void) const { return rep->islogical (); } - OCTAVE_DEPRECATED (4.4, "use 'islogical' instead") - bool is_bool_type (void) const - { return rep->islogical (); } - bool isreal (void) const { return rep->isreal (); } - OCTAVE_DEPRECATED (4.4, "use 'isreal' instead") - bool is_real_type (void) const - { return rep->isreal (); } - bool iscomplex (void) const { return rep->iscomplex (); } - OCTAVE_DEPRECATED (4.4, "use 'iscomplex' instead") - bool is_complex_type (void) const - { return rep->iscomplex (); } - bool is_scalar_type (void) const { return rep->is_scalar_type (); } @@ -724,17 +669,9 @@ bool isnumeric (void) const { return rep->isnumeric (); } - OCTAVE_DEPRECATED (4.4, "use 'isnumeric' instead") - bool is_numeric_type (void) const - { return rep->isnumeric (); } - bool issparse (void) const { return rep->issparse (); } - OCTAVE_DEPRECATED (4.4, "use 'issparse' instead") - bool is_sparse_type (void) const - { return rep->issparse (); } - // Does this constant correspond to a truth value? bool is_true (void) const @@ -959,10 +896,6 @@ string_vector string_vector_value (bool pad = false) const { return rep->string_vector_value (pad); } - OCTAVE_DEPRECATED (4.4, "use 'string_vector_value' instead") - string_vector all_strings (bool pad = false) const - { return string_vector_value (pad); } - Cell cell_value (void) const; Array<std::string> cellstr_value (void) const @@ -1336,7 +1269,7 @@ bool load_ascii (std::istream& is) { return rep->load_ascii (is); } - bool save_binary (std::ostream& os, bool& save_as_floats) + bool save_binary (std::ostream& os, bool save_as_floats) { return rep->save_binary (os, save_as_floats); } bool load_binary (std::istream& is, bool swap, @@ -1381,10 +1314,6 @@ sortmode issorted (sortmode mode = UNSORTED) const { return rep->issorted (mode); } - OCTAVE_DEPRECATED (4.4, "use 'issorted' instead") - sortmode is_sorted (sortmode mode = UNSORTED) const - { return rep->issorted (mode); } - Array<octave_idx_type> sort_rows_idx (sortmode mode = ASCENDING) const { return rep->sort_rows_idx (mode); }
--- a/libinterp/octave.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave.cc Thu Jan 24 20:20:02 2019 +0000 @@ -396,28 +396,6 @@ } } -// embedded is int here because octave_main is extern "C". - -int -octave_main (int argc, char **argv, int embedded) -{ - if (embedded) - { - if (argc > 0) - std::cerr << "warning: ignoring command line options for embedded octave\n"; - - static octave::interpreter embedded_interpreter; - return embedded_interpreter.execute (); - } - else - { - std::cerr << "warning: octave_main should only be used to create an embedded interpreter"; - - static octave::cli_application app (argc, argv); - return app.execute (); - } -} - DEFUN (isguirunning, args, , doc: /* -*- texinfo -*- @deftypefn {} {} isguirunning ()
--- a/libinterp/octave.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/octave.h Thu Jan 24 20:20:02 2019 +0000 @@ -25,8 +25,6 @@ #include "octave-config.h" -#if defined (__cplusplus) - #include <list> #include <string> @@ -54,9 +52,6 @@ bool debug_jit (void) const { return m_debug_jit; } bool echo_commands (void) const { return m_echo_commands; } - OCTAVE_DEPRECATED (4.4, "use 'gui' instead") - bool force_gui (void) const { return m_gui; } - bool forced_interactive (void) const { return m_forced_interactive; } bool forced_line_editing (void) const { return m_forced_line_editing; } bool gui (void) const { return m_gui; } @@ -64,9 +59,6 @@ bool jit_compiler (void) const { return m_jit_compiler; } bool line_editing (void) const { return m_line_editing; } - OCTAVE_DEPRECATED (4.4, "use '! gui' instead") - bool no_gui (void) const { return ! gui (); } - bool no_window_system (void) const { return m_no_window_system; } bool persist (void) const { return m_persist; } bool read_history_file (void) const { return m_read_history_file; } @@ -90,9 +82,6 @@ void debug_jit (bool arg) { m_debug_jit = arg; } void echo_commands (bool arg) { m_echo_commands = arg; } - OCTAVE_DEPRECATED (4.4, "use 'gui' instead") - void force_gui (bool arg) { m_gui = arg; } - void forced_line_editing (bool arg) { m_forced_line_editing = arg; } void forced_interactive (bool arg) { m_forced_interactive = arg; } void gui (bool arg) { m_gui = arg; } @@ -100,9 +89,6 @@ void jit_compiler (bool arg) { m_jit_compiler = arg; } void line_editing (bool arg) { m_line_editing = arg; } - OCTAVE_DEPRECATED (4.4, "this has been removed and is the default now") - void no_gui (bool) { return; } - void no_window_system (bool arg) { m_no_window_system = arg; } void persist (bool arg) { m_persist = arg; } void read_history_file (bool arg) { m_read_history_file = arg; } @@ -386,16 +372,3 @@ } #endif - -#if defined (__cplusplus) -extern "C" { -#endif - -OCTAVE_DEPRECATED (4.4, "see the Octave documentation for other options") -extern OCTINTERP_API int octave_main (int argc, char **argv, int embedded); - -#if defined (__cplusplus) -} -#endif - -#endif
--- a/libinterp/operators/op-cm-cs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-cm-cs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-cx-mat.h" @@ -47,12 +46,7 @@ = dynamic_cast<const octave_complex_matrix&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.complex_array_value () / d); + return octave_value (v1.complex_array_value () / v2.complex_value ()); } DEFBINOP_FN (pow, complex_matrix, complex, xpow) @@ -93,12 +87,7 @@ = dynamic_cast<const octave_complex_matrix&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.complex_array_value () / d); + return octave_value (v1.complex_array_value () / v2.complex_value ()); } DEFNDBINOP_FN (el_pow, complex_matrix, complex, complex_array, complex,
--- a/libinterp/operators/op-cm-s.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-cm-s.cc Thu Jan 24 20:20:02 2019 +0000 @@ -27,7 +27,6 @@ #include "mx-cm-s.h" #include "mx-cnda-s.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-cx-mat.h" @@ -50,12 +49,7 @@ = dynamic_cast<const octave_complex_matrix&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.complex_array_value () / d); + return octave_value (v1.complex_array_value () / v2.double_value ()); } DEFBINOP_FN (pow, complex_matrix, scalar, xpow) @@ -91,12 +85,7 @@ = dynamic_cast<const octave_complex_matrix&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.complex_array_value () / d); + return octave_value (v1.complex_array_value () / v2.double_value ()); } DEFNDBINOP_FN (el_pow, complex_matrix, scalar, complex_array, scalar, elem_xpow)
--- a/libinterp/operators/op-cm-scm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-cm-scm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -54,14 +53,7 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.complex_array_value () / d); - } + return octave_value (v1.complex_array_value () / v2.complex_value ()); else { MatrixType typ = v2.matrix_type ();
--- a/libinterp/operators/op-cm-sm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-cm-sm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -54,14 +53,7 @@ = dynamic_cast<const octave_sparse_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - double d = v2.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.complex_array_value () / d); - } + return octave_value (v1.complex_array_value () / v2.scalar_value ()); else { MatrixType typ = v2.matrix_type ();
--- a/libinterp/operators/op-cs-cm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-cs-cm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-complex.h" @@ -64,12 +63,7 @@ const octave_complex_matrix& v2 = dynamic_cast<const octave_complex_matrix&> (a2); - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.complex_array_value () / d); + return octave_value (v2.complex_array_value () / v1.complex_value ()); } DEFNDCMPLXCMPOP_FN (lt, complex, complex_matrix, complex, complex_array, @@ -97,12 +91,7 @@ const octave_complex_matrix& v2 = dynamic_cast<const octave_complex_matrix&> (a2); - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.complex_array_value () / d); + return octave_value (v2.complex_array_value () / v1.complex_value ()); } DEFNDBINOP_FN (el_and, complex, complex_matrix, complex, complex_array,
--- a/libinterp/operators/op-cs-cs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-cs-cs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -26,7 +26,6 @@ #include "Array-util.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-complex.h" @@ -75,12 +74,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.complex_value () / d); + return octave_value (v1.complex_value () / v2.complex_value ()); } DEFBINOP_FN (pow, complex, complex, xpow) @@ -90,12 +84,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.complex_value () / d); + return octave_value (v2.complex_value () / v1.complex_value ()); } DEFCMPLXCMPOP_OP (lt, complex, complex, <) @@ -112,12 +101,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.complex_value () / d); + return octave_value (v1.complex_value () / v2.complex_value ()); } DEFBINOP_FN (el_pow, complex, complex, xpow) @@ -127,12 +111,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.complex_value () / d); + return octave_value (v2.complex_value () / v1.complex_value ()); } DEFBINOP (el_and, complex, complex)
--- a/libinterp/operators/op-cs-m.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-cs-m.cc Thu Jan 24 20:20:02 2019 +0000 @@ -29,7 +29,6 @@ #include "mx-cs-nda.h" #include "mx-nda-cs.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-complex.h" @@ -68,12 +67,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2); - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.array_value () / d); + return octave_value (v2.array_value () / v1.complex_value ()); } DEFNDCMPLXCMPOP_FN (lt, complex, matrix, complex, array, mx_el_lt) @@ -92,12 +86,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2); - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.array_value () / d); + return octave_value (v2.array_value () / v1.complex_value ()); } DEFNDBINOP_FN (el_and, complex, matrix, complex, array, mx_el_and)
--- a/libinterp/operators/op-cs-s.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-cs-s.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-complex.h" @@ -46,12 +45,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.complex_value () / d); + return octave_value (v1.complex_value () / v2.double_value ()); } DEFBINOP_FN (pow, complex, scalar, xpow) @@ -61,12 +55,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.double_value () / d); + return octave_value (v2.double_value () / v1.complex_value ()); } DEFCMPLXCMPOP_OP (lt, complex, scalar, <) @@ -83,12 +72,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.complex_value () / d); + return octave_value (v1.complex_value () / v2.double_value ()); } DEFBINOP_FN (el_pow, complex, scalar, xpow) @@ -98,12 +82,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.double_value () / d); + return octave_value (v2.double_value () / v1.complex_value ()); } DEFBINOP (el_and, complex, scalar)
--- a/libinterp/operators/op-cs-scm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-cs-scm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -51,14 +50,8 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (SparseComplexMatrix (1, 1, v1.complex_value () / d)); - } + return octave_value (SparseComplexMatrix (1, 1, v1.complex_value () + / v2.complex_value ())); else { MatrixType typ = v2.matrix_type (); @@ -84,12 +77,7 @@ const octave_sparse_complex_matrix& v2 = dynamic_cast<const octave_sparse_complex_matrix&> (a2); - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.sparse_complex_matrix_value () / d); + return octave_value (v2.sparse_complex_matrix_value () / v1.complex_value ()); } DEFBINOP_FN (lt, complex, sparse_complex_matrix, mx_el_lt) @@ -110,15 +98,7 @@ const octave_sparse_complex_matrix& v2 = dynamic_cast<const octave_sparse_complex_matrix&> (a2); - Complex d = v1.complex_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v2.sparse_complex_matrix_value () / d); - - return retval; + return octave_value (v2.sparse_complex_matrix_value () / v1.complex_value ()); } DEFBINOP_FN (el_and, complex, sparse_complex_matrix, mx_el_and)
--- a/libinterp/operators/op-cs-sm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-cs-sm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -52,14 +51,7 @@ const octave_sparse_matrix& v2 = dynamic_cast<const octave_sparse_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - double d = v2.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (SparseComplexMatrix (1, 1, v1.complex_value () / d)); - } + return octave_value (SparseComplexMatrix (1, 1, v1.complex_value () / v2.scalar_value ())); else { MatrixType typ = v2.matrix_type (); @@ -83,15 +75,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_sparse_matrix& v2 = dynamic_cast<const octave_sparse_matrix&> (a2); - Complex d = v1.complex_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v2.sparse_matrix_value () / d); - - return retval; + return octave_value (v2.sparse_matrix_value () / v1.complex_value ()); } DEFBINOP_FN (lt, complex, sparse_matrix, mx_el_lt) @@ -110,15 +94,7 @@ const octave_complex& v1 = dynamic_cast<const octave_complex&> (a1); const octave_sparse_matrix& v2 = dynamic_cast<const octave_sparse_matrix&> (a2); - Complex d = v1.complex_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v2.sparse_matrix_value () / d); - - return retval; + return octave_value (v2.sparse_matrix_value () / v1.complex_value ()); } DEFBINOP_FN (el_and, complex, sparse_matrix, mx_el_and) @@ -136,8 +112,7 @@ { const octave_complex& v = dynamic_cast<const octave_complex&> (a); - return new octave_sparse_matrix - (SparseMatrix (v.matrix_value ())); + return new octave_sparse_matrix (SparseMatrix (v.matrix_value ())); } void
--- a/libinterp/operators/op-dm-scm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-dm-scm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -33,7 +33,6 @@ #include "mx-m-cs.h" #include "mx-cs-m.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -372,14 +371,7 @@ const octave_diag_matrix& v2 = dynamic_cast<const octave_diag_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - double d = v2.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.sparse_complex_matrix_value () / d); - } + return octave_value (v1.sparse_complex_matrix_value () / v2.scalar_value ()); else { MatrixType typ = v2.matrix_type (); @@ -396,14 +388,7 @@ = dynamic_cast<const octave_complex_diag_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - std::complex<double> d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.sparse_matrix_value () / d); - } + return octave_value (v1.sparse_matrix_value () / v2.complex_value ()); else { MatrixType typ = v2.matrix_type (); @@ -420,14 +405,7 @@ = dynamic_cast<const octave_complex_diag_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - std::complex<double> d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.sparse_complex_matrix_value () / d); - } + return octave_value (v1.sparse_complex_matrix_value () / v2.complex_value ()); else { MatrixType typ = v2.matrix_type ();
--- a/libinterp/operators/op-dm-sm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-dm-sm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -136,14 +135,7 @@ const octave_diag_matrix& v2 = dynamic_cast<const octave_diag_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - double d = v2.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.sparse_matrix_value () / d); - } + return octave_value (v1.sparse_matrix_value () / v2.scalar_value ()); else { MatrixType typ = v2.matrix_type ();
--- a/libinterp/operators/op-dms-template.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-dms-template.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ #endif #include "ops.h" -#include "errwarn.h" #include "xpow.h" #include SINCLUDE #include MINCLUDE @@ -48,22 +47,12 @@ #define MATRIX_VALUE CONCAT2(MATRIXV, _value) #define SCALAR_VALUE CONCAT2(SCALARV, _value) -template <typename T> -static T -gripe_if_zero (T x) -{ - if (x == T ()) - warn_divide_by_zero (); - - return x; -} - DEFBINOP (dmsdiv, MATRIX, SCALAR) { const OCTAVE_MATRIX& v1 = dynamic_cast<const OCTAVE_MATRIX&> (a1); const OCTAVE_SCALAR& v2 = dynamic_cast<const OCTAVE_SCALAR&> (a2); - return v1.MATRIX_VALUE () / gripe_if_zero (v2.SCALAR_VALUE ()); + return v1.MATRIX_VALUE () / v2.SCALAR_VALUE (); } DEFBINOP (sdmldiv, SCALAR, MATRIX) @@ -71,7 +60,7 @@ const OCTAVE_SCALAR& v1 = dynamic_cast<const OCTAVE_SCALAR&> (a1); const OCTAVE_MATRIX& v2 = dynamic_cast<const OCTAVE_MATRIX&> (a2); - return v2.MATRIX_VALUE () / gripe_if_zero (v1.SCALAR_VALUE ()); + return v2.MATRIX_VALUE () / v1.SCALAR_VALUE (); } DEFBINOP (dmspow, MATRIX, SCALAR)
--- a/libinterp/operators/op-fcm-fcs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fcm-fcs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-cx-mat.h" @@ -52,12 +51,7 @@ const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - FloatComplex d = v2.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v1.float_complex_array_value () / d); + return octave_value (v1.float_complex_array_value () / v2.float_complex_value ()); } DEFBINOP_FN (pow, float_complex_matrix, float_complex, xpow) @@ -101,12 +95,7 @@ const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - FloatComplex d = v2.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v1.float_complex_array_value () / d); + return octave_value (v1.float_complex_array_value () / v2.float_complex_value ()); } DEFNDBINOP_FN (el_pow, float_complex_matrix, float_complex,
--- a/libinterp/operators/op-fcm-fs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fcm-fs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -26,7 +26,6 @@ #include "mx-fcnda-fs.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-cx-mat.h" @@ -55,12 +54,7 @@ const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - float d = v2.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.float_complex_array_value () / d); + return octave_value (v1.float_complex_array_value () / v2.float_value ()); } DEFBINOP_FN (pow, float_complex_matrix, float_scalar, xpow) @@ -105,12 +99,7 @@ const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - float d = v2.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.float_complex_array_value () / d); + return octave_value (v1.float_complex_array_value () / v2.float_value ()); } DEFNDBINOP_FN (el_pow, float_complex_matrix, float_scalar, float_complex_array,
--- a/libinterp/operators/op-fcs-fcm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fcs-fcm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-complex.h" @@ -71,12 +70,7 @@ const octave_float_complex_matrix& v2 = dynamic_cast<const octave_float_complex_matrix&> (a2); - FloatComplex d = v1.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v2.float_complex_array_value () / d); + return octave_value (v2.float_complex_array_value () / v1.float_complex_value ()); } DEFNDCMPLXCMPOP_FN (lt, float_complex, float_complex_matrix, float_complex, @@ -106,12 +100,7 @@ const octave_float_complex_matrix& v2 = dynamic_cast<const octave_float_complex_matrix&> (a2); - FloatComplex d = v1.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v2.float_complex_array_value () / d); + return octave_value (v2.float_complex_array_value () / v1.float_complex_value ()); } DEFNDBINOP_FN (el_and, float_complex, float_complex_matrix, float_complex,
--- a/libinterp/operators/op-fcs-fcs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fcs-fcs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-complex.h" @@ -73,12 +72,7 @@ const octave_float_complex& v1 = dynamic_cast<const octave_float_complex&> (a1); const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - FloatComplex d = v2.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v1.float_complex_value () / d); + return octave_value (v1.float_complex_value () / v2.float_complex_value ()); } DEFBINOP_FN (pow, float_complex, float_complex, xpow) @@ -88,12 +82,7 @@ const octave_float_complex& v1 = dynamic_cast<const octave_float_complex&> (a1); const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - FloatComplex d = v1.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v2.float_complex_value () / d); + return octave_value (v2.float_complex_value () / v1.float_complex_value ()); } DEFCMPLXCMPOP_OP (lt, float_complex, float_complex, <) @@ -110,12 +99,7 @@ const octave_float_complex& v1 = dynamic_cast<const octave_float_complex&> (a1); const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - FloatComplex d = v2.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v1.float_complex_value () / d); + return octave_value (v1.float_complex_value () / v2.float_complex_value ()); } DEFBINOP_FN (el_pow, float_complex, float_complex, xpow) @@ -125,12 +109,7 @@ const octave_float_complex& v1 = dynamic_cast<const octave_float_complex&> (a1); const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - FloatComplex d = v1.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v2.float_complex_value () / d); + return octave_value (v2.float_complex_value () / v1.float_complex_value ()); } DEFBINOP (el_and, float_complex, float_complex)
--- a/libinterp/operators/op-fcs-fm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fcs-fm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -27,7 +27,6 @@ #include "mx-fcs-fnda.h" #include "mx-fnda-fcs.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-complex.h" @@ -69,12 +68,7 @@ const octave_float_complex& v1 = dynamic_cast<const octave_float_complex&> (a1); const octave_float_matrix& v2 = dynamic_cast<const octave_float_matrix&> (a2); - FloatComplex d = v1.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v2.float_array_value () / d); + return octave_value (v2.float_array_value () / v1.float_complex_value ()); } DEFNDCMPLXCMPOP_FN (lt, float_complex, float_matrix, float_complex, @@ -102,12 +96,7 @@ const octave_float_complex& v1 = dynamic_cast<const octave_float_complex&> (a1); const octave_float_matrix& v2 = dynamic_cast<const octave_float_matrix&> (a2); - FloatComplex d = v1.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v2.float_array_value () / d); + return octave_value (v2.float_array_value () / v1.float_complex_value ()); } DEFNDBINOP_FN (el_and, float_complex, float_matrix, float_complex,
--- a/libinterp/operators/op-fcs-fs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fcs-fs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-complex.h" @@ -49,12 +48,7 @@ const octave_float_complex& v1 = dynamic_cast<const octave_float_complex&> (a1); const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - float d = v2.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.float_complex_value () / d); + return octave_value (v1.float_complex_value () / v2.float_value ()); } DEFBINOP_FN (pow, float_complex, float_scalar, xpow) @@ -64,12 +58,7 @@ const octave_float_complex& v1 = dynamic_cast<const octave_float_complex&> (a1); const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - FloatComplex d = v1.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v2.float_value () / d); + return octave_value (v2.float_value () / v1.float_complex_value ()); } DEFCMPLXCMPOP_OP (lt, float_complex, float_scalar, <) @@ -86,12 +75,7 @@ const octave_float_complex& v1 = dynamic_cast<const octave_float_complex&> (a1); const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - float d = v2.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.float_complex_value () / d); + return octave_value (v1.float_complex_value () / v2.float_value ()); } DEFBINOP_FN (el_pow, float_complex, float_scalar, xpow) @@ -101,12 +85,7 @@ const octave_float_complex& v1 = dynamic_cast<const octave_float_complex&> (a1); const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - FloatComplex d = v1.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v2.float_value () / d); + return octave_value (v2.float_value () / v1.float_complex_value ()); } DEFBINOP (el_and, float_complex, float)
--- a/libinterp/operators/op-fm-fcs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fm-fcs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -29,7 +29,6 @@ #include "mx-fnda-fcs.h" #include "mx-fcs-fnda.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-re-mat.h" @@ -54,12 +53,7 @@ const octave_float_matrix& v1 = dynamic_cast<const octave_float_matrix&> (a1); const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - FloatComplex d = v2.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v1.float_array_value () / d); + return octave_value (v1.float_array_value () / v2.float_complex_value ()); } DEFBINOP_FN (pow, float_matrix, float_complex, xpow) @@ -100,12 +94,7 @@ const octave_float_matrix& v1 = dynamic_cast<const octave_float_matrix&> (a1); const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - FloatComplex d = v2.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v1.float_array_value () / d); + return octave_value (v1.float_array_value () / v2.float_complex_value ()); } DEFNDBINOP_FN (el_pow, float_matrix, float_complex, float_array,
--- a/libinterp/operators/op-fm-fs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fm-fs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-flt-re-mat.h" @@ -46,12 +45,7 @@ const octave_float_matrix& v1 = dynamic_cast<const octave_float_matrix&> (a1); const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - float d = v2.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.float_array_value () / d); + return octave_value (v1.float_array_value () / v2.float_value ()); } DEFBINOP_FN (pow, float_matrix, float_scalar, xpow) @@ -91,12 +85,7 @@ const octave_float_matrix& v1 = dynamic_cast<const octave_float_matrix&> (a1); const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - float d = v2.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.float_array_value () / d); + return octave_value (v1.float_array_value () / v2.float_value ()); } DEFNDBINOP_FN (el_pow, float_matrix, float_scalar, float_array,
--- a/libinterp/operators/op-fs-fcm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fs-fcm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -29,7 +29,6 @@ #include "mx-fs-fcnda.h" #include "mx-fcnda-fs.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-scalar.h" @@ -77,12 +76,7 @@ const octave_float_complex_matrix& v2 = dynamic_cast<const octave_float_complex_matrix&> (a2); - float d = v1.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.float_complex_array_value () / d); + return octave_value (v2.float_complex_array_value () / v1.float_value ()); } DEFNDCMPLXCMPOP_FN (lt, float_scalar, float_complex_matrix, float_scalar, @@ -112,12 +106,7 @@ const octave_float_complex_matrix& v2 = dynamic_cast<const octave_float_complex_matrix&> (a2); - float d = v1.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.float_complex_array_value () / d); + return octave_value (v2.float_complex_array_value () / v1.float_value ()); } DEFNDBINOP_FN (el_and, float_scalar, float_complex_matrix, float_scalar,
--- a/libinterp/operators/op-fs-fcs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fs-fcs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-scalar.h" @@ -49,12 +48,7 @@ const octave_float_scalar& v1 = dynamic_cast<const octave_float_scalar&> (a1); const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - FloatComplex d = v2.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v1.float_value () / d); + return octave_value (v1.float_value () / v2.float_complex_value ()); } DEFBINOP_FN (pow, float_scalar, float_complex, xpow) @@ -64,12 +58,7 @@ const octave_float_scalar& v1 = dynamic_cast<const octave_float_scalar&> (a1); const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - float d = v1.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.float_complex_value () / d); + return octave_value (v2.float_complex_value () / v1.float_value ()); } DEFCMPLXCMPOP_OP (lt, float_scalar, float_complex, <) @@ -86,12 +75,7 @@ const octave_float_scalar& v1 = dynamic_cast<const octave_float_scalar&> (a1); const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - FloatComplex d = v2.float_complex_value (); - - if (d == 0.0f) - warn_divide_by_zero (); - - return octave_value (v1.float_value () / d); + return octave_value (v1.float_value () / v2.float_complex_value ()); } DEFBINOP_FN (el_pow, float_scalar, float_complex, xpow) @@ -101,12 +85,7 @@ const octave_float_scalar& v1 = dynamic_cast<const octave_float_scalar&> (a1); const octave_float_complex& v2 = dynamic_cast<const octave_float_complex&> (a2); - float d = v1.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.float_complex_value () / d); + return octave_value (v2.float_complex_value () / v1.float_value ()); } DEFBINOP (el_and, float_scalar, float_complex)
--- a/libinterp/operators/op-fs-fm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fs-fm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-scalar.h" @@ -64,12 +63,7 @@ const octave_float_scalar& v1 = dynamic_cast<const octave_float_scalar&> (a1); const octave_float_matrix& v2 = dynamic_cast<const octave_float_matrix&> (a2); - float d = v1.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.float_array_value () / d); + return octave_value (v2.float_array_value () / v1.float_value ()); } DEFNDBINOP_FN (lt, float_scalar, float_matrix, float_scalar, @@ -97,12 +91,7 @@ const octave_float_scalar& v1 = dynamic_cast<const octave_float_scalar&> (a1); const octave_float_matrix& v2 = dynamic_cast<const octave_float_matrix&> (a2); - float d = v1.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.float_array_value () / d); + return octave_value (v2.float_array_value () / v1.float_value ()); } DEFNDBINOP_FN (el_and, float_scalar, float_matrix, float_scalar,
--- a/libinterp/operators/op-fs-fs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-fs-fs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -26,7 +26,6 @@ #include "Array-util.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-scalar.h" @@ -69,12 +68,7 @@ const octave_float_scalar& v1 = dynamic_cast<const octave_float_scalar&> (a1); const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - float d = v2.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.float_value () / d); + return octave_value (v1.float_value () / v2.float_value ()); } DEFBINOP_FN (pow, float_scalar, float_scalar, xpow) @@ -84,12 +78,7 @@ const octave_float_scalar& v1 = dynamic_cast<const octave_float_scalar&> (a1); const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - float d = v1.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.float_value () / d); + return octave_value (v2.float_value () / v1.float_value ()); } DEFBINOP_OP (lt, float_scalar, float_scalar, <) @@ -106,12 +95,7 @@ const octave_float_scalar& v1 = dynamic_cast<const octave_float_scalar&> (a1); const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - float d = v2.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.float_value () / d); + return octave_value (v1.float_value () / v2.float_value ()); } DEFBINOP_FN (el_pow, float_scalar, float_scalar, xpow) @@ -121,12 +105,7 @@ const octave_float_scalar& v1 = dynamic_cast<const octave_float_scalar&> (a1); const octave_float_scalar& v2 = dynamic_cast<const octave_float_scalar&> (a2); - float d = v1.float_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.float_value () / d); + return octave_value (v2.float_value () / v1.float_value ()); } DEFSCALARBOOLOP_OP (el_and, float_scalar, float_scalar, &&)
--- a/libinterp/operators/op-int.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-int.h Thu Jan 24 20:20:02 2019 +0000 @@ -198,11 +198,7 @@ const octave_ ## T1 ## scalar& v1 = dynamic_cast<const octave_ ## T1 ## scalar&> (a1); \ const octave_ ## T2 ## scalar& v2 = dynamic_cast<const octave_ ## T2 ## scalar&> (a2); \ \ - if (! v2.T2 ## scalar_value ()) \ - warn_divide_by_zero (); \ - \ - octave_value retval = octave_value (v1.T1 ## scalar_value () / v2.T2 ## scalar_value ()); \ - return retval; \ + return octave_value (v1.T1 ## scalar_value () / v2.T2 ## scalar_value ()); \ } \ \ DEFINTBINOP_FN (PFX ## _pow, T1 ## scalar, T2 ## scalar, xpow, T3, ^) \ @@ -212,11 +208,7 @@ const octave_ ## T1 ## scalar& v1 = dynamic_cast<const octave_ ## T1 ## scalar&> (a1); \ const octave_ ## T2 ## scalar& v2 = dynamic_cast<const octave_ ## T2 ## scalar&> (a2); \ \ - if (! v1.T1 ## scalar_value ()) \ - warn_divide_by_zero (); \ - \ - octave_value retval = octave_value (v2.T2 ## scalar_value () / v1.T1 ## scalar_value ()); \ - return retval; \ + return octave_value (v2.T2 ## scalar_value () / v1.T1 ## scalar_value ()); \ } \ \ DEFINTBINOP_OP (PFX ## _el_mul, T1 ## scalar, T2 ## scalar, *, T3) \ @@ -226,11 +218,7 @@ const octave_ ## T1 ## scalar& v1 = dynamic_cast<const octave_ ## T1 ## scalar&> (a1); \ const octave_ ## T2 ## scalar& v2 = dynamic_cast<const octave_ ## T2 ## scalar&> (a2); \ \ - if (! v2.T2 ## scalar_value ()) \ - warn_divide_by_zero (); \ - \ - octave_value retval = octave_value (v1.T1 ## scalar_value () / v2.T2 ## scalar_value ()); \ - return retval; \ + return octave_value (v1.T1 ## scalar_value () / v2.T2 ## scalar_value ()); \ } \ \ DEFINTBINOP_FN (PFX ## _el_pow, T1 ## scalar, T2 ## scalar, xpow, T3, .^) \ @@ -240,11 +228,7 @@ const octave_ ## T1 ## scalar& v1 = dynamic_cast<const octave_ ## T1 ## scalar&> (a1); \ const octave_ ## T2 ## scalar& v2 = dynamic_cast<const octave_ ## T2 ## scalar&> (a2); \ \ - if (! v1.T1 ## scalar_value ()) \ - warn_divide_by_zero (); \ - \ - octave_value retval = octave_value (v2.T2 ## scalar_value () / v1.T1 ## scalar_value ()); \ - return retval; \ + return octave_value (v2.T2 ## scalar_value () / v1.T1 ## scalar_value ()); \ } #define OCTAVE_SS_INT_BOOL_OPS(PFX, T1, T2, Z1, Z2) \ @@ -347,11 +331,7 @@ const octave_ ## TS ## scalar& v1 = dynamic_cast<const octave_ ## TS ## scalar&> (a1); \ const octave_ ## TM ## matrix& v2 = dynamic_cast<const octave_ ## TM ## matrix&> (a2); \ \ - if (! v1.TS ## scalar_value ()) \ - warn_divide_by_zero (); \ - \ - octave_value retval = octave_value (v2.TM ## array_value () / v1.TS ## scalar_value ()); \ - return retval; \ + return octave_value (v2.TM ## array_value () / v1.TS ## scalar_value ()); \ } \ \ DEFINTNDBINOP_OP (PFX ## _el_mul, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, *, TI) \ @@ -371,11 +351,7 @@ const octave_ ## TS ## scalar& v1 = dynamic_cast<const octave_ ## TS ## scalar&> (a1); \ const octave_ ## TM ## matrix& v2 = dynamic_cast<const octave_ ## TM ## matrix&> (a2); \ \ - if (! v1.TS ## scalar_value ()) \ - warn_divide_by_zero (); \ - \ - octave_value retval = octave_value (v2.TM ## array_value () / v1.TS ## scalar_value ()); \ - return retval; \ + return octave_value (v2.TM ## array_value () / v1.TS ## scalar_value ()); \ } #define OCTAVE_SM_INT_CMP_OPS(PFX, TS, TM) \ @@ -494,11 +470,7 @@ const octave_ ## TM ## matrix& v1 = dynamic_cast<const octave_ ## TM ## matrix&> (a1); \ const octave_ ## TS ## scalar& v2 = dynamic_cast<const octave_ ## TS ## scalar&> (a2); \ \ - if (! v2.TS ## scalar_value ()) \ - warn_divide_by_zero (); \ - \ - octave_value retval = octave_value (v1.TM ## array_value () / v2.TS ## scalar_value ()); \ - return retval; \ + return octave_value (v1.TM ## array_value () / v2.TS ## scalar_value ()); \ } \ \ /* DEFBINOP_FN (PFX ## _pow, TM ## matrix, TS ## scalar, xpow) */ \ @@ -521,11 +493,7 @@ const octave_ ## TM ## matrix& v1 = dynamic_cast<const octave_ ## TM ## matrix&> (a1); \ const octave_ ## TS ## scalar& v2 = dynamic_cast<const octave_ ## TS ## scalar&> (a2); \ \ - if (! v2.TS ## scalar_value ()) \ - warn_divide_by_zero (); \ - \ - octave_value retval = octave_value (v1.TM ## array_value () / v2.TS ## scalar_value ()); \ - return retval; \ + return octave_value (v1.TM ## array_value () / v2.TS ## scalar_value ()); \ } \ \ DEFINTNDBINOP_FN (PFX ## _el_pow, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, elem_xpow, TI, .^) \
--- a/libinterp/operators/op-m-cs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-m-cs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -29,7 +29,6 @@ #include "mx-nda-cs.h" #include "mx-cs-nda.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-re-mat.h" @@ -53,12 +52,7 @@ const octave_matrix& v1 = dynamic_cast<const octave_matrix&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.array_value () / d); + return octave_value (v1.array_value () / v2.complex_value ()); } DEFBINOP_FN (pow, matrix, complex, xpow) @@ -92,12 +86,7 @@ const octave_matrix& v1 = dynamic_cast<const octave_matrix&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.array_value () / d); + return octave_value (v1.array_value () / v2.complex_value ()); } DEFNDBINOP_FN (el_pow, matrix, complex, array, complex, elem_xpow)
--- a/libinterp/operators/op-m-s.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-m-s.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-re-mat.h" @@ -47,12 +46,7 @@ const octave_matrix& v1 = dynamic_cast<const octave_matrix&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.array_value () / d); + return octave_value (v1.array_value () / v2.double_value ()); } DEFBINOP_FN (pow, matrix, scalar, xpow) @@ -86,12 +80,7 @@ const octave_matrix& v1 = dynamic_cast<const octave_matrix&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.array_value () / d); + return octave_value (v1.array_value () / v2.double_value ()); } DEFNDBINOP_FN (el_pow, matrix, scalar, array, scalar, elem_xpow)
--- a/libinterp/operators/op-m-scm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-m-scm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -54,14 +53,7 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.array_value () / d); - } + return octave_value (v1.array_value () / v2.complex_value ()); else { MatrixType typ = v2.matrix_type ();
--- a/libinterp/operators/op-m-sm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-m-sm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -52,14 +51,7 @@ const octave_sparse_matrix& v2 = dynamic_cast<const octave_sparse_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - double d = v2.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.array_value () / d); - } + return octave_value (v1.array_value () / v2.scalar_value ()); else { MatrixType typ = v2.matrix_type ();
--- a/libinterp/operators/op-s-cm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-s-cm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -29,7 +29,6 @@ #include "mx-s-cnda.h" #include "mx-cnda-s.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-scalar.h" @@ -72,12 +71,7 @@ const octave_complex_matrix& v2 = dynamic_cast<const octave_complex_matrix&> (a2); - double d = v1.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.complex_array_value () / d); + return octave_value (v2.complex_array_value () / v1.double_value ()); } DEFNDCMPLXCMPOP_FN (lt, scalar, complex_matrix, scalar, complex_array, mx_el_lt) @@ -97,12 +91,7 @@ const octave_complex_matrix& v2 = dynamic_cast<const octave_complex_matrix&> (a2); - double d = v1.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.complex_array_value () / d); + return octave_value (v2.complex_array_value () / v1.double_value ()); } DEFNDBINOP_FN (el_and, scalar, complex_matrix, scalar, complex_array, mx_el_and)
--- a/libinterp/operators/op-s-cs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-s-cs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-scalar.h" @@ -48,12 +47,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.double_value () / d); + return octave_value (v1.double_value () / v2.complex_value ()); } DEFBINOP_FN (pow, scalar, complex, xpow) @@ -63,12 +57,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - double d = v1.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.complex_value () / d); + return octave_value (v2.complex_value () / v1.double_value ()); } DEFCMPLXCMPOP_OP (lt, scalar, complex, <) @@ -85,12 +74,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.double_value () / d); + return octave_value (v1.double_value () / v2.complex_value ()); } DEFBINOP_FN (el_pow, scalar, complex, xpow) @@ -100,12 +84,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - double d = v1.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.complex_value () / d); + return octave_value (v2.complex_value () / v1.double_value ()); } DEFBINOP (el_and, scalar, complex)
--- a/libinterp/operators/op-s-m.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-s-m.cc Thu Jan 24 20:20:02 2019 +0000 @@ -24,7 +24,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-scalar.h" @@ -64,12 +63,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2); - double d = v1.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.array_value () / d); + return octave_value (v2.array_value () / v1.double_value ()); } DEFNDBINOP_FN (lt, scalar, matrix, scalar, array, mx_el_lt) @@ -88,12 +82,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2); - double d = v1.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.array_value () / d); + return octave_value (v2.array_value () / v1.double_value ()); } DEFNDBINOP_FN (el_and, scalar, matrix, scalar, array, mx_el_and)
--- a/libinterp/operators/op-s-s.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-s-s.cc Thu Jan 24 20:20:02 2019 +0000 @@ -26,7 +26,6 @@ #include "Array-util.h" -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-scalar.h" @@ -70,12 +69,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.double_value () / d); + return octave_value (v1.double_value () / v2.double_value ()); } DEFBINOP_FN (pow, scalar, scalar, xpow) @@ -85,12 +79,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v1.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.double_value () / d); + return octave_value (v2.double_value () / v1.double_value ()); } DEFBINOP_OP (lt, scalar, scalar, <) @@ -107,12 +96,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.double_value () / d); + return octave_value (v1.double_value () / v2.double_value ()); } DEFBINOP_FN (el_pow, scalar, scalar, xpow) @@ -122,12 +106,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v1.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.double_value () / d); + return octave_value (v2.double_value () / v1.double_value ()); } DEFSCALARBOOLOP_OP (el_and, scalar, scalar, &&)
--- a/libinterp/operators/op-s-scm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-s-scm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -54,14 +53,8 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (SparseComplexMatrix (1, 1, v1.scalar_value () / d)); - } + return octave_value (SparseComplexMatrix (1, 1, v1.scalar_value () + / v2.complex_value ())); else { MatrixType typ = v2.matrix_type (); @@ -87,15 +80,7 @@ const octave_sparse_complex_matrix& v2 = dynamic_cast<const octave_sparse_complex_matrix&> (a2); - double d = v1.double_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v2.sparse_complex_matrix_value () / d); - - return retval; + return octave_value (v2.sparse_complex_matrix_value () / v1.double_value ()); } DEFBINOP_FN (lt, scalar, sparse_complex_matrix, mx_el_lt) @@ -115,15 +100,7 @@ const octave_sparse_complex_matrix& v2 = dynamic_cast<const octave_sparse_complex_matrix&> (a2); - double d = v1.double_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v2.sparse_complex_matrix_value () / d); - - return retval; + return octave_value (v2.sparse_complex_matrix_value () / v1.double_value ()); } DEFBINOP_FN (el_and, scalar, sparse_complex_matrix, mx_el_and)
--- a/libinterp/operators/op-s-sm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-s-sm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -49,14 +48,7 @@ const octave_sparse_matrix& v2 = dynamic_cast<const octave_sparse_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - double d = v2.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (SparseMatrix (1, 1, v1.scalar_value () / d)); - } + return octave_value (SparseMatrix (1, 1, v1.scalar_value () / v2.scalar_value ())); else { MatrixType typ = v2.matrix_type (); @@ -80,15 +72,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_sparse_matrix& v2 = dynamic_cast<const octave_sparse_matrix&> (a2); - double d = v1.double_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v2.sparse_matrix_value () / d); - - return retval; + return octave_value (v2.sparse_matrix_value () / v1.double_value ()); } DEFBINOP_FN (lt, scalar, sparse_matrix, mx_el_lt) @@ -107,15 +91,7 @@ const octave_scalar& v1 = dynamic_cast<const octave_scalar&> (a1); const octave_sparse_matrix& v2 = dynamic_cast<const octave_sparse_matrix&> (a2); - double d = v1.double_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v2.sparse_matrix_value () / d); - - return retval; + return octave_value (v2.sparse_matrix_value () / v1.double_value ()); } DEFBINOP_FN (el_and, scalar, sparse_matrix, mx_el_and)
--- a/libinterp/operators/op-scm-cm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-scm-cm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -74,14 +73,7 @@ = dynamic_cast<const octave_complex_matrix&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.complex_array_value () / d); - } + return octave_value (v2.complex_array_value () / v1.complex_value ()); else { MatrixType typ = v1.matrix_type ();
--- a/libinterp/operators/op-scm-cs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-scm-cs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -50,15 +49,7 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v2.complex_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v1.sparse_complex_matrix_value () / d); - - return retval; + return octave_value (v1.sparse_complex_matrix_value () / v2.complex_value ()); } DEFBINOP (pow, sparse_complex_matrix, complex) @@ -76,14 +67,8 @@ const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (SparseComplexMatrix (1, 1, v2.complex_value () / d)); - } + return octave_value (SparseComplexMatrix (1, 1, v2.complex_value () + / v1.complex_value ())); else { MatrixType typ = v1.matrix_type (); @@ -110,16 +95,7 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - octave_value retval; - - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v1.sparse_complex_matrix_value () / d); - - return retval; + return octave_value (v1.sparse_complex_matrix_value () / v2.complex_value ()); } DEFBINOP_FN (el_pow, sparse_complex_matrix, complex, elem_xpow)
--- a/libinterp/operators/op-scm-m.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-scm-m.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -73,14 +72,7 @@ const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.array_value () / d); - } + return octave_value (v2.array_value () / v1.complex_value ()); else { MatrixType typ = v1.matrix_type ();
--- a/libinterp/operators/op-scm-s.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-scm-s.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -53,15 +52,7 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v1.sparse_complex_matrix_value () / d); - - return retval; + return octave_value (v1.sparse_complex_matrix_value () / v2.double_value ()); } DEFBINOP (pow, sparse_complex_matrix, scalar) @@ -84,14 +75,8 @@ const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (SparseComplexMatrix (1, 1, v2.scalar_value () / d)); - } + return octave_value (SparseComplexMatrix (1, 1, v2.scalar_value () + / v1.complex_value ())); else { MatrixType typ = v1.matrix_type (); @@ -118,15 +103,7 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v1.sparse_complex_matrix_value () / d); - - return retval; + return octave_value (v1.sparse_complex_matrix_value () / v2.double_value ()); } DEFBINOP_FN (el_pow, sparse_complex_matrix, scalar, elem_xpow)
--- a/libinterp/operators/op-scm-scm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-scm-scm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -34,15 +33,10 @@ #include "sparse-xdiv.h" #include "sparse-xpow.h" +#include "ov-cx-mat.h" +#include "ov-cx-sparse.h" #include "ov-re-sparse.h" -#include "ov-cx-sparse.h" -#include "errwarn.h" -#include "ovl.h" -#include "ov.h" -#include "ov-cx-mat.h" -#include "ov-typeinfo.h" -#include "ops.h" #include "xdiv.h" #include "xpow.h" @@ -70,24 +64,6 @@ v.matrix_type ().transpose ()); } -#if 0 -DEFUNOP (incr, sparse_complex_matrix) -{ - const octave_sparse_complex_matrix& v - = dynamic_cast<const octave_sparse_complex_matrix&> (a); - - return octave_value (v.complex_matrix_value () .increment ()); -} - -DEFUNOP (decr, sparse_complex_matrix) -{ - const octave_sparse_complex_matrix& v - = dynamic_cast<const octave_sparse_complex_matrix&> (a); - - return octave_value (v.complex_matrix_value () .decrement ()); -} -#endif - // complex matrix by complex matrix ops. DEFBINOP_OP (add, sparse_complex_matrix, sparse_complex_matrix, +) @@ -103,14 +79,7 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.sparse_complex_matrix_value () / d); - } + return octave_value (v1.sparse_complex_matrix_value () / v2.complex_value ()); else { MatrixType typ = v2.matrix_type (); @@ -135,14 +104,7 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.sparse_complex_matrix_value () / d); - } + return octave_value (v2.sparse_complex_matrix_value () / v1.complex_value ()); else { MatrixType typ = v1.matrix_type (); @@ -196,11 +158,6 @@ INSTALL_UNOP_TI (ti, op_transpose, octave_sparse_complex_matrix, transpose); INSTALL_UNOP_TI (ti, op_hermitian, octave_sparse_complex_matrix, hermitian); -#if 0 - INSTALL_NCUNOP_TI (ti, op_incr, octave_sparse_complex_matrix, incr); - INSTALL_NCUNOP_TI (ti, op_decr, octave_sparse_complex_matrix, decr); -#endif - INSTALL_BINOP_TI (ti, op_add, octave_sparse_complex_matrix, octave_sparse_complex_matrix, add); INSTALL_BINOP_TI (ti, op_sub, octave_sparse_complex_matrix,
--- a/libinterp/operators/op-scm-sm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-scm-sm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -53,14 +52,7 @@ = dynamic_cast<const octave_sparse_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - double d = v2.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.sparse_complex_matrix_value () / d); - } + return octave_value (v1.sparse_complex_matrix_value () / v2.scalar_value ()); else { MatrixType typ = v2.matrix_type (); @@ -85,14 +77,7 @@ = dynamic_cast<const octave_sparse_matrix&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - Complex d = v1.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.sparse_matrix_value () / d); - } + return octave_value (v2.sparse_matrix_value () / v1.complex_value ()); else { MatrixType typ = v1.matrix_type ();
--- a/libinterp/operators/op-sm-cm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-sm-cm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -74,14 +73,7 @@ = dynamic_cast<const octave_complex_matrix&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - double d = v1.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.complex_array_value () / d); - } + return octave_value (v2.complex_array_value () / v1.scalar_value ()); else { MatrixType typ = v1.matrix_type ();
--- a/libinterp/operators/op-sm-cs.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-sm-cs.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -51,15 +50,7 @@ const octave_sparse_matrix& v1 = dynamic_cast<const octave_sparse_matrix&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v2.complex_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v1.sparse_matrix_value () / d); - - return retval; + return octave_value (v1.sparse_matrix_value () / v2.complex_value ()); } DEFBINOP (pow, sparse_matrix, complex) @@ -75,14 +66,8 @@ const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - double d = v1.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (SparseComplexMatrix (1, 1, v2.complex_value () / d)); - } + return octave_value (SparseComplexMatrix (1, 1, v2.complex_value () + / v1.scalar_value ())); else { MatrixType typ = v1.matrix_type (); @@ -108,15 +93,7 @@ const octave_sparse_matrix& v1 = dynamic_cast<const octave_sparse_matrix&> (a1); const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2); - Complex d = v2.complex_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v1.sparse_matrix_value () / d); - - return retval; + return octave_value (v1.sparse_matrix_value () / v2.complex_value ()); } DEFBINOP_FN (el_pow, sparse_matrix, complex, elem_xpow)
--- a/libinterp/operators/op-sm-m.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-sm-m.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -69,14 +68,7 @@ const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - double d = v1.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.array_value () / d); - } + return octave_value (v2.array_value () / v1.scalar_value ()); else { MatrixType typ = v1.matrix_type ();
--- a/libinterp/operators/op-sm-s.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-sm-s.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -48,15 +47,7 @@ const octave_sparse_matrix& v1 = dynamic_cast<const octave_sparse_matrix&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v1.sparse_matrix_value () / d); - - return retval; + return octave_value (v1.sparse_matrix_value () / v2.double_value ()); } DEFBINOP (pow, sparse_matrix, scalar) @@ -77,14 +68,7 @@ const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - double d = v1.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (SparseMatrix(1, 1, v2.scalar_value () / d)); - } + return octave_value (SparseMatrix(1, 1, v2.scalar_value () / v1.scalar_value ())); else { MatrixType typ = v1.matrix_type (); @@ -110,15 +94,7 @@ const octave_sparse_matrix& v1 = dynamic_cast<const octave_sparse_matrix&> (a1); const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2); - double d = v2.double_value (); - octave_value retval; - - if (d == 0.0) - warn_divide_by_zero (); - - retval = octave_value (v1.sparse_matrix_value () / d); - - return retval; + return octave_value (v1.sparse_matrix_value () / v2.double_value ()); } DEFBINOP_FN (el_pow, sparse_matrix, scalar, elem_xpow)
--- a/libinterp/operators/op-sm-scm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-sm-scm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -53,14 +52,7 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - Complex d = v2.complex_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.sparse_matrix_value () / d); - } + return octave_value (v1.sparse_matrix_value () / v2.complex_value ()); else { MatrixType typ = v2.matrix_type (); @@ -85,14 +77,7 @@ = dynamic_cast<const octave_sparse_complex_matrix&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - double d = v1.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.sparse_complex_matrix_value () / d); - } + return octave_value (v2.sparse_complex_matrix_value () / v1.scalar_value ()); else { MatrixType typ = v1.matrix_type ();
--- a/libinterp/operators/op-sm-sm.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/operators/op-sm-sm.cc Thu Jan 24 20:20:02 2019 +0000 @@ -25,7 +25,6 @@ # include "config.h" #endif -#include "errwarn.h" #include "ovl.h" #include "ov.h" #include "ov-typeinfo.h" @@ -76,14 +75,7 @@ const octave_sparse_matrix& v2 = dynamic_cast<const octave_sparse_matrix&> (a2); if (v2.rows () == 1 && v2.columns () == 1) - { - double d = v2.scalar_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v1.sparse_matrix_value () / d); - } + return octave_value (v1.sparse_matrix_value () / v2.scalar_value ()); else { MatrixType typ = v2.matrix_type (); @@ -106,14 +98,7 @@ const octave_sparse_matrix& v2 = dynamic_cast<const octave_sparse_matrix&> (a2); if (v1.rows () == 1 && v1.columns () == 1) - { - double d = v1.double_value (); - - if (d == 0.0) - warn_divide_by_zero (); - - return octave_value (v2.sparse_matrix_value () / d); - } + return octave_value (v2.sparse_matrix_value () / v1.double_value ()); else { MatrixType typ = v1.matrix_type ();
--- a/libinterp/parse-tree/bp-table.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/bp-table.cc Thu Jan 24 20:20:02 2019 +0000 @@ -274,7 +274,9 @@ print_usage (who); // elements already processed - bool seen_in = false, seen_at = false, seen_if = false; + bool seen_in = false; + bool seen_at = false; + bool seen_if = false; int pos = 0; dbstop_args tok = dbstop_none; while (pos < nargin)
--- a/libinterp/parse-tree/comment-list.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/comment-list.h Thu Jan 24 20:20:02 2019 +0000 @@ -102,14 +102,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::comment_list' instead") -typedef octave::comment_list octave_comment_list; - -OCTAVE_DEPRECATED (4.4, "use 'octave::comment_elt' instead") -typedef octave::comment_elt octave_comment_elt; - #endif - -#endif
--- a/libinterp/parse-tree/jit-typeinfo.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/jit-typeinfo.cc Thu Jan 24 20:20:02 2019 +0000 @@ -386,10 +386,6 @@ extern "C" Complex octave_jit_complex_div (Complex lhs, Complex rhs) { - // see src/OPERATORS/op-cs-cs.cc - if (rhs == 0.0) - warn_divide_by_zero (); - return lhs / rhs; } @@ -1355,10 +1351,6 @@ add_binary_fcmp (m_scalar, octave_value::op_gt, llvm::CmpInst::FCMP_UGT); add_binary_fcmp (m_scalar, octave_value::op_ne, llvm::CmpInst::FCMP_UNE); - jit_function gripe_div0 = create_external (JIT_FN (warn_divide_by_zero), - nullptr); - gripe_div0.mark_can_error (); - // divide is annoying because it might error fn = create_internal ("octave_jit_div_scalar_scalar", m_scalar, m_scalar, m_scalar); @@ -1376,7 +1368,6 @@ m_builder.CreateCondBr (check, warn_block, normal_block); m_builder.SetInsertPoint (warn_block); - gripe_div0.call (m_builder); m_builder.CreateBr (normal_block); m_builder.SetInsertPoint (normal_block);
--- a/libinterp/parse-tree/oct-parse.yy Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/oct-parse.yy Thu Jan 24 20:20:02 2019 +0000 @@ -3343,14 +3343,11 @@ = new octave_user_function (m_lexer.m_symtab_context.curr_scope (), param_list, nullptr, body); - if (fcn) - { - comment_list *tc = m_lexer.m_comment_buf.get_comment (); - - fcn->stash_trailing_comment (tc); - fcn->stash_fcn_end_location (end_fcn_stmt->line (), - end_fcn_stmt->column ()); - } + comment_list *tc = m_lexer.m_comment_buf.get_comment (); + + fcn->stash_trailing_comment (tc); + fcn->stash_fcn_end_location (end_fcn_stmt->line (), + end_fcn_stmt->column ()); // If input is coming from a file, issue a warning if the name of // the file does not match the name of the function stated in the @@ -5402,23 +5399,6 @@ } } -octave_value_list -eval_string (const std::string& str, bool silent, int& parse_status, - int nargout) -{ - octave::interpreter& interp = octave::__get_interpreter__ ("eval_string"); - - return interp.eval_string (str, silent, parse_status, nargout); -} - -octave_value -eval_string (const std::string& str, bool silent, int& parse_status) -{ - octave::interpreter& interp = octave::__get_interpreter__ ("eval_string"); - - return interp.eval_string (str, silent, parse_status); -} - DEFMETHOD (eval, interp, args, nargout, doc: /* -*- texinfo -*- @deftypefn {} {} eval (@var{try})
--- a/libinterp/parse-tree/parse.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/parse.h Thu Jan 24 20:20:02 2019 +0000 @@ -596,95 +596,4 @@ cleanup_statement_list (tree_statement_list **lst); } -OCTAVE_DEPRECATED (4.4, "use 'octave::interpreter::eval_string' instead") -extern OCTINTERP_API octave_value_list -eval_string (const std::string& str, bool silent, int& parse_status, - int nargout); - -OCTAVE_DEPRECATED (4.4, "use 'octave::interpreter::eval_string' instead") -extern OCTINTERP_API octave_value -eval_string (const std::string& str, bool silent, int& parse_status); - -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::get_help_from_file' instead") -static inline std::string -get_help_from_file (const std::string& nm, bool& symbol_found, - std::string& file) -{ - return octave::get_help_from_file (nm, symbol_found, file); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::get_help_from_file' instead") -static inline std::string -get_help_from_file (const std::string& nm, bool& symbol_found) -{ - return octave::get_help_from_file (nm, symbol_found); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::lookup_autoload' instead") -static inline std::string -lookup_autoload (const std::string& nm) -{ - return octave::lookup_autoload (nm); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::autoloaded_functions' instead") -static inline string_vector -autoloaded_functions (void) -{ - return octave::autoloaded_functions (); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::reverse_lookup_autoload' instead") -static inline string_vector -reverse_lookup_autoload (const std::string& nm) -{ - return octave::reverse_lookup_autoload (nm); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::source_file' instead") -static inline void -source_file (const std::string& file_name, - const std::string& context = "", - bool verbose = false, bool require_file = true, - const std::string& warn_for = "") -{ - octave::source_file (file_name, context, verbose, require_file, warn_for); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::feval' instead") -static inline octave_value_list -feval (const std::string& name, - const octave_value_list& args = octave_value_list (), - int nargout = 0) -{ - return octave::feval (name, args, nargout); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::feval' instead") -static inline octave_value_list -feval (octave_function *fcn, - const octave_value_list& args = octave_value_list (), - int nargout = 0) -{ - return octave::feval (fcn, args, nargout); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::feval' instead") -static inline octave_value_list -feval (const octave_value_list& args, int nargout = 0) -{ - return octave::feval (args, nargout); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::cleanup_statement_list' instead") -static inline void -cleanup_statement_list (octave::tree_statement_list **lst) -{ - octave::cleanup_statement_list (lst); -} - #endif - -#endif
--- a/libinterp/parse-tree/pt-array-list.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-array-list.h Thu Jan 24 20:20:02 2019 +0000 @@ -85,11 +85,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_array_list' instead") -typedef octave::tree_array_list tree_array_list; - #endif - -#endif
--- a/libinterp/parse-tree/pt-assign.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-assign.h Thu Jan 24 20:20:02 2019 +0000 @@ -171,14 +171,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_simple_assignment' instead") -typedef octave::tree_simple_assignment tree_simple_assignment; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_multi_assignment' instead") -typedef octave::tree_multi_assignment tree_multi_assignment; - #endif - -#endif
--- a/libinterp/parse-tree/pt-binop.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-binop.h Thu Jan 24 20:20:02 2019 +0000 @@ -185,14 +185,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_binary_expression' instead") -typedef octave::tree_binary_expression tree_binary_expression; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_boolean_expression' instead") -typedef octave::tree_boolean_expression tree_boolean_expression; - #endif - -#endif
--- a/libinterp/parse-tree/pt-bp.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-bp.h Thu Jan 24 20:20:02 2019 +0000 @@ -175,11 +175,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_breakpoint' instead") -typedef octave::tree_breakpoint tree_breakpoint; - #endif - -#endif
--- a/libinterp/parse-tree/pt-cbinop.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-cbinop.h Thu Jan 24 20:20:02 2019 +0000 @@ -87,11 +87,4 @@ = octave_value::unknown_binary_op); } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_compound_binary_expression' instead") -typedef octave::tree_compound_binary_expression tree_compound_binary_expression; - #endif - -#endif
--- a/libinterp/parse-tree/pt-cell.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-cell.h Thu Jan 24 20:20:02 2019 +0000 @@ -69,11 +69,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_cell' instead") -typedef octave::tree_cell tree_cell; - #endif - -#endif
--- a/libinterp/parse-tree/pt-check.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-check.h Thu Jan 24 20:20:02 2019 +0000 @@ -142,11 +142,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_checker' instead") -typedef octave::tree_checker tree_checker; - #endif - -#endif
--- a/libinterp/parse-tree/pt-cmd.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-cmd.h Thu Jan 24 20:20:02 2019 +0000 @@ -124,17 +124,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_command' instead") -typedef octave::tree_command tree_command; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_no_op_command' instead") -typedef octave::tree_no_op_command tree_no_op_command; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_function_def' instead") -typedef octave::tree_function_def tree_function_def; - #endif - -#endif
--- a/libinterp/parse-tree/pt-colon.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-colon.h Thu Jan 24 20:20:02 2019 +0000 @@ -109,11 +109,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_colon_expression' instead") -typedef octave::tree_colon_expression tree_colon_expression; - #endif - -#endif
--- a/libinterp/parse-tree/pt-const.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-const.h Thu Jan 24 20:20:02 2019 +0000 @@ -106,11 +106,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_constant' instead") -typedef octave::tree_constant tree_constant; - #endif - -#endif
--- a/libinterp/parse-tree/pt-decl.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-decl.h Thu Jan 24 20:20:02 2019 +0000 @@ -227,16 +227,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_decl_elt' instead") -typedef octave::tree_decl_elt tree_decl_elt; - -// tree_decl_init_list is derived from a template. - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_decl_command' instead") -typedef octave::tree_decl_command tree_decl_command; - #endif - -#endif
--- a/libinterp/parse-tree/pt-eval.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-eval.h Thu Jan 24 20:20:02 2019 +0000 @@ -662,11 +662,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_evaluator' instead") -typedef octave::tree_evaluator tree_evaluator; - #endif - -#endif
--- a/libinterp/parse-tree/pt-except.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-except.h Thu Jan 24 20:20:02 2019 +0000 @@ -168,14 +168,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_try_catch_command' instead") -typedef octave::tree_try_catch_command tree_try_catch_command; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_unwind_protect_command' instead") -typedef octave::tree_unwind_protect_command tree_unwind_protect_command; - #endif - -#endif
--- a/libinterp/parse-tree/pt-exp.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-exp.h Thu Jan 24 20:20:02 2019 +0000 @@ -158,11 +158,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_expression' instead") -typedef octave::tree_expression tree_expression; - #endif - -#endif
--- a/libinterp/parse-tree/pt-fcn-handle.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-fcn-handle.h Thu Jan 24 20:20:02 2019 +0000 @@ -155,14 +155,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_fcn_handle' instead") -typedef octave::tree_fcn_handle tree_fcn_handle; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_anon_fcn_handle' instead") -typedef octave::tree_anon_fcn_handle tree_anon_fcn_handle; - #endif - -#endif
--- a/libinterp/parse-tree/pt-funcall.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-funcall.h Thu Jan 24 20:20:02 2019 +0000 @@ -88,11 +88,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_funcall' instead") -typedef octave::tree_funcall tree_funcall; - #endif - -#endif
--- a/libinterp/parse-tree/pt-id.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-id.h Thu Jan 24 20:20:02 2019 +0000 @@ -169,14 +169,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_identifier' instead") -typedef octave::tree_identifier tree_identifier; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_black_hole' instead") -typedef octave::tree_black_hole tree_black_hole; - #endif - -#endif
--- a/libinterp/parse-tree/pt-idx.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-idx.h Thu Jan 24 20:20:02 2019 +0000 @@ -131,11 +131,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_index_expression' instead") -typedef octave::tree_index_expression tree_index_expression; - #endif - -#endif
--- a/libinterp/parse-tree/pt-jump.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-jump.h Thu Jan 24 20:20:02 2019 +0000 @@ -100,17 +100,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_break_command' instead") -typedef octave::tree_break_command tree_break_command; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_continue_command' instead") -typedef octave::tree_continue_command tree_continue_command; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_return_command' instead") -typedef octave::tree_return_command tree_return_command; - #endif - -#endif
--- a/libinterp/parse-tree/pt-loop.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-loop.h Thu Jan 24 20:20:02 2019 +0000 @@ -322,20 +322,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_while_command' instead") -typedef octave::tree_while_command tree_while_command; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_do_until_command' instead") -typedef octave::tree_do_until_command tree_do_until_command; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_simple_for_command' instead") -typedef octave::tree_simple_for_command tree_simple_for_command; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_complex_for_command' instead") -typedef octave::tree_complex_for_command tree_complex_for_command; - #endif - -#endif
--- a/libinterp/parse-tree/pt-mat.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-mat.h Thu Jan 24 20:20:02 2019 +0000 @@ -78,25 +78,4 @@ maybe_warn_string_concat (bool all_dq_strings_p, bool all_sq_strings_p); } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_matrix' instead") -typedef octave::tree_matrix tree_matrix; - -OCTAVE_DEPRECATED (4.4, "use 'octave::get_concat_class' instead") -static inline std::string -get_concat_class (const std::string& c1, const std::string& c2) -{ - return octave::get_concat_class (c1, c2); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::maybe_warn_string_concat' instead") -static inline void -maybe_warn_string_concat (bool all_dq_strings_p, bool all_sq_strings_p) -{ - octave::maybe_warn_string_concat (all_dq_strings_p, all_sq_strings_p); -} - #endif - -#endif
--- a/libinterp/parse-tree/pt-pr-code.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-pr-code.h Thu Jan 24 20:20:02 2019 +0000 @@ -196,11 +196,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_print_code' instead") -typedef octave::tree_print_code tree_print_code; - #endif - -#endif
--- a/libinterp/parse-tree/pt-select.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-select.h Thu Jan 24 20:20:02 2019 +0000 @@ -292,24 +292,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_if_clause' instead") -typedef octave::tree_if_clause tree_if_clause; - -// tree_if_command_list is derived from a template. - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_if_command' instead") -typedef octave::tree_if_command tree_if_command; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_switch_case' instead") -typedef octave::tree_switch_case tree_switch_case; - -// tree_switch_case_list is derived from a template. - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_switch_command' instead") -typedef octave::tree_switch_command tree_switch_command; - #endif - -#endif
--- a/libinterp/parse-tree/pt-stmt.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-stmt.h Thu Jan 24 20:20:02 2019 +0000 @@ -207,14 +207,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_statement' instead") -typedef octave::tree_statement tree_statement; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_statement_list' instead") -typedef octave::tree_statement_list tree_statement_list; - #endif - -#endif
--- a/libinterp/parse-tree/pt-unop.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-unop.h Thu Jan 24 20:20:02 2019 +0000 @@ -152,17 +152,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_unary_expression' instead") -typedef octave::tree_unary_expression tree_unary_expression; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_prefix_expression' instead") -typedef octave::tree_prefix_expression tree_prefix_expression; - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_postfix_expression' instead") -typedef octave::tree_postfix_expression tree_postfix_expression; - #endif - -#endif
--- a/libinterp/parse-tree/pt-walk.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt-walk.h Thu Jan 24 20:20:02 2019 +0000 @@ -295,11 +295,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree_walker' instead") -typedef octave::tree_walker tree_walker; - #endif - -#endif
--- a/libinterp/parse-tree/pt.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/pt.h Thu Jan 24 20:20:02 2019 +0000 @@ -121,11 +121,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::tree' instead") -typedef octave::tree tree; - #endif - -#endif
--- a/libinterp/parse-tree/token.h Thu Jan 24 19:22:18 2019 +0000 +++ b/libinterp/parse-tree/token.h Thu Jan 24 20:20:02 2019 +0000 @@ -201,11 +201,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::token' instead") -typedef octave::token token; - #endif - -#endif
--- a/liboctave/array/Array.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/Array.h Thu Jan 24 20:20:02 2019 +0000 @@ -334,34 +334,6 @@ void clear (octave_idx_type r, octave_idx_type c) { clear (dim_vector (r, c)); } - // Number of elements in the array. These are all synonyms. - //@{ - //! Number of elements in the array. - //! Synonymous with numel(). - //! @note This method is deprecated in favour of numel(). - OCTAVE_DEPRECATED (4.4, "use 'numel' instead") - octave_idx_type capacity (void) const { return numel (); } - - //! Number of elements in the array. - //! - //! Synonymous with numel(). - //! @note This method is deprecated in favour of numel(). - //! - //! @note - //! This is @em not the same as @c %length() at the Octave interpreter. - //! At the Octave interpreter, the function @c %length() returns the - //! length of the greatest dimension. This method returns the total - //! number of elements. - - OCTAVE_DEPRECATED (4.4, "use 'numel' instead") - octave_idx_type length (void) const { return numel (); } - - //! Number of elements in the array. - //! Synonymous with numel(). - //! @note This method is deprecated in favour of numel(). - OCTAVE_DEPRECATED (4.4, "use 'numel' instead") - octave_idx_type nelem (void) const { return numel (); } - //! Number of elements in the array. octave_idx_type numel (void) const { return slice_len; } //@} @@ -558,22 +530,10 @@ bool issquare (void) const { return (dim1 () == dim2 ()); } - OCTAVE_DEPRECATED (4.4, "use 'issquare' instead") - bool is_square (void) const - { return issquare (); } - bool isempty (void) const { return numel () == 0; } - OCTAVE_DEPRECATED (4.4, "use 'isempty' instead") - bool is_empty (void) const - { return isempty (); } - bool isvector (void) const { return dimensions.isvector (); } - OCTAVE_DEPRECATED (4.4, "use 'isvector' instead") - bool is_vector (void) const - { return isvector (); } - bool is_nd_vector (void) const { return dimensions.is_nd_vector (); } Array<T> transpose (void) const; @@ -712,10 +672,6 @@ //! Ordering is auto-detected or can be specified. sortmode issorted (sortmode mode = UNSORTED) const; - OCTAVE_DEPRECATED (4.4, "use 'issorted' instead") - sortmode is_sorted (sortmode mode = UNSORTED) const - { return issorted (mode); } - //! Sort by rows returns only indices. Array<octave_idx_type> sort_rows_idx (sortmode mode = ASCENDING) const;
--- a/liboctave/array/CMatrix.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/CMatrix.h Thu Jan 24 20:20:02 2019 +0000 @@ -111,10 +111,6 @@ bool ishermitian (void) const; - OCTAVE_DEPRECATED (4.4, "use 'ishermitian' instead") - bool is_hermitian (void) const - { return ishermitian (); } - // destructive insert/delete/reorder operations ComplexMatrix& insert (const Matrix& a, octave_idx_type r, octave_idx_type c);
--- a/liboctave/array/CSparse.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/CSparse.h Thu Jan 24 20:20:02 2019 +0000 @@ -113,10 +113,6 @@ bool ishermitian (void) const; - OCTAVE_DEPRECATED (4.4, "use 'ishermitian' instead") - bool is_hermitian (void) const - { return ishermitian (); } - SparseComplexMatrix max (int dim = -1) const; SparseComplexMatrix max (Array<octave_idx_type>& index, int dim = -1) const; SparseComplexMatrix min (int dim = -1) const;
--- a/liboctave/array/MatrixType.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/MatrixType.h Thu Jan 24 20:20:02 2019 +0000 @@ -110,31 +110,15 @@ bool isdiag (void) const { return (typ == Diagonal || typ == Permuted_Diagonal); } - OCTAVE_DEPRECATED (4.4, "use 'isdiag' instead") - bool is_diagonal (void) const - { return isdiag (); } - bool istriu (void) const { return (typ == Upper || typ == Permuted_Upper); } - OCTAVE_DEPRECATED (4.4, "use 'istriu' instead") - bool is_upper_triangular (void) const - { return istriu (); } - bool istril (void) const { return (typ == Lower || typ == Permuted_Lower); } - OCTAVE_DEPRECATED (4.4, "use 'istril' instead") - bool is_lower_triangular (void) const - { return istril (); } - bool isbanded (void) const { return (typ == Banded || typ == Banded_Hermitian); } - OCTAVE_DEPRECATED (4.4, "use 'isbanded' instead") - bool is_banded (void) const - { return isbanded (); } - bool is_tridiagonal (void) const { return (typ == Tridiagonal || typ == Tridiagonal_Hermitian); } @@ -144,10 +128,6 @@ || typ == Hermitian); } - OCTAVE_DEPRECATED (4.4, "use 'ishermitian' instead") - bool is_hermitian (void) const - { return ishermitian (); } - bool is_rectangular (void) const { return (typ == Rectangular); } bool is_known (void) const { return (typ != Unknown); }
--- a/liboctave/array/PermMatrix.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/PermMatrix.h Thu Jan 24 20:20:02 2019 +0000 @@ -60,9 +60,6 @@ octave_idx_type length (void) const { return perm_length (); } - OCTAVE_DEPRECATED (4.4, "use 'numel' instead") - octave_idx_type nelem (void) const { return numel (); } - octave_idx_type numel (void) const { return dim1 () * dim2 (); } size_t byte_size (void) const
--- a/liboctave/array/Range.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/Range.h Thu Jan 24 20:20:02 2019 +0000 @@ -80,9 +80,6 @@ octave_idx_type numel (void) const { return rng_numel; } - OCTAVE_DEPRECATED (4.4, "use 'numel' instead") - octave_idx_type nelem (void) const { return numel (); } - octave_idx_type rows (void) const { return 1; } octave_idx_type cols (void) const { return numel (); } @@ -90,10 +87,6 @@ bool isempty (void) const { return numel () == 0; } - OCTAVE_DEPRECATED (4.4, "use 'isempty' instead") - bool is_empty (void) const - { return isempty (); } - bool all_elements_are_ints (void) const; Matrix matrix_value (void) const; @@ -112,10 +105,6 @@ sortmode issorted (sortmode mode = ASCENDING) const; - OCTAVE_DEPRECATED (4.4, "use 'issorted' instead") - sortmode is_sorted (sortmode mode = ASCENDING) const - { return issorted (mode); } - octave_idx_type nnz (void) const; // Support for single-index subscripting, without generating matrix cache.
--- a/liboctave/array/Sparse.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/Sparse.h Thu Jan 24 20:20:02 2019 +0000 @@ -231,11 +231,6 @@ //! This may differ from the actual number of elements, see nnz(). octave_idx_type nzmax (void) const { return rep->length (); } - //! Amount of storage for nonzero elements. - //! Synonymous with nzmax(). - OCTAVE_DEPRECATED (4.4, "use 'nzmax' instead") - octave_idx_type capacity (void) const { return nzmax (); } - //! Actual number of nonzero terms. octave_idx_type nnz (void) const { return rep->nnz (); } @@ -246,12 +241,6 @@ return dimensions.safe_numel (); } - OCTAVE_DEPRECATED (4.4, "use 'nzmax' instead") - octave_idx_type nelem (void) const { return nzmax (); } - - OCTAVE_DEPRECATED (4.4, "use 'numel' instead") - octave_idx_type length (void) const { return numel (); } - octave_idx_type dim1 (void) const { return dimensions(0); } octave_idx_type dim2 (void) const { return dimensions(1); } @@ -471,16 +460,8 @@ bool issquare (void) const { return (dim1 () == dim2 ()); } - OCTAVE_DEPRECATED (4.4, "use 'issquare' instead") - bool is_square (void) const - { return issquare (); } - bool isempty (void) const { return (rows () < 1 || cols () < 1); } - OCTAVE_DEPRECATED (4.4, "use 'isempty' instead") - bool is_empty (void) const - { return isempty (); } - Sparse<T> transpose (void) const; T * data (void) { make_unique (); return rep->d; }
--- a/liboctave/array/boolNDArray.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/boolNDArray.cc Thu Jan 24 20:20:02 2019 +0000 @@ -67,21 +67,6 @@ return do_mx_red_op<bool, bool> (*this, dim, mx_inline_any); } -NDArray -boolNDArray::sum (int dim) const -{ - // NOTE: going via octave_idx_type is typically faster even though it - // requires a conversion. - return do_mx_red_op<octave_idx_type, bool> (*this, dim, mx_inline_count); -} - -NDArray -boolNDArray::cumsum (int dim) const -{ - // In this case, it's better to sum directly to doubles. - return do_mx_cum_op<double , bool> (*this, dim, mx_inline_cumcount); -} - boolNDArray boolNDArray::concat (const boolNDArray& rb, const Array<octave_idx_type>& ra_idx)
--- a/liboctave/array/boolNDArray.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/boolNDArray.h Thu Jan 24 20:20:02 2019 +0000 @@ -68,12 +68,6 @@ boolNDArray all (int dim = -1) const; boolNDArray any (int dim = -1) const; - OCTAVE_DEPRECATED (4.4, "convert to and operate on numeric type instead") - NDArray sum (int dim = -1) const; - - OCTAVE_DEPRECATED (4.4, "convert to and operate on numeric type instead") - NDArray cumsum (int dim = -1) const; - boolNDArray concat (const boolNDArray& rb, const Array<octave_idx_type>& ra_idx);
--- a/liboctave/array/dMatrix.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/dMatrix.h Thu Jan 24 20:20:02 2019 +0000 @@ -98,10 +98,6 @@ bool issymmetric (void) const; - OCTAVE_DEPRECATED (4.4, "use 'issymmetric' instead") - bool is_symmetric (void) const - { return issymmetric (); } - // destructive insert/delete/reorder operations Matrix& insert (const Matrix& a, octave_idx_type r, octave_idx_type c);
--- a/liboctave/array/dSparse.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/dSparse.h Thu Jan 24 20:20:02 2019 +0000 @@ -102,10 +102,6 @@ bool issymmetric (void) const; - OCTAVE_DEPRECATED (4.4, "use 'issymmetric' instead") - bool is_symmetric (void) const - { return issymmetric (); } - SparseMatrix max (int dim = -1) const; SparseMatrix max (Array<octave_idx_type>& index, int dim = -1) const; SparseMatrix min (int dim = -1) const;
--- a/liboctave/array/dim-vector.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/dim-vector.h Thu Jan 24 20:20:02 2019 +0000 @@ -424,10 +424,6 @@ return (ndims () == 2 && (xelem (0) == 1 || xelem (1) == 1)); } - OCTAVE_DEPRECATED (4.4, "use 'isvector' instead") - bool is_vector (void) const - { return isvector (); } - bool is_nd_vector (void) const { int num_non_one = 0;
--- a/liboctave/array/fCMatrix.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/fCMatrix.h Thu Jan 24 20:20:02 2019 +0000 @@ -116,10 +116,6 @@ bool ishermitian (void) const; - OCTAVE_DEPRECATED (4.4, "use 'ishermitian' instead") - bool is_hermitian (void) const - { return ishermitian (); } - // destructive insert/delete/reorder operations FloatComplexMatrix& insert (const FloatMatrix& a,
--- a/liboctave/array/fMatrix.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/fMatrix.h Thu Jan 24 20:20:02 2019 +0000 @@ -98,10 +98,6 @@ bool issymmetric (void) const; - OCTAVE_DEPRECATED (4.4, "use 'issymmetric' instead") - bool is_symmetric (void) const - { return issymmetric (); } - // destructive insert/delete/reorder operations FloatMatrix& insert (const FloatMatrix& a,
--- a/liboctave/array/idx-vector.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/array/idx-vector.h Thu Jan 24 20:20:02 2019 +0000 @@ -1023,10 +1023,6 @@ bool isvector (void) const; - OCTAVE_DEPRECATED (4.4, "use 'isvector' instead") - bool is_vector (void) const - { return isvector (); } - // FIXME: these are here for compatibility. They should be removed // when no longer in use.
--- a/liboctave/numeric/chol.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/numeric/chol.cc Thu Jan 24 20:20:02 2019 +0000 @@ -71,7 +71,7 @@ v, n, info F77_CHAR_ARG_LEN (1))); - // FIXME: Should we check info exit value and possible report an error? + // FIXME: Should we check info exit value and possibly report an error? // If someone thinks of a more graceful way of doing this // (or faster for that matter :-)), please let me know! @@ -119,7 +119,7 @@ v, n, info F77_CHAR_ARG_LEN (1))); - // FIXME: Should we check info exit value and possible report an error? + // FIXME: Should we check info exit value and possibly report an error? // If someone thinks of a more graceful way of doing this (or // faster for that matter :-)), please let me know!
--- a/liboctave/numeric/chol.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/numeric/chol.h Thu Jan 24 20:20:02 2019 +0000 @@ -39,7 +39,7 @@ typedef typename T::column_vector_type VT; typedef typename T::real_elt_type COND_T; - chol (void) : chol_mat (), xrcond (0) { } + chol (void) : chol_mat (), xrcond (0), is_upper (true) { } chol (const T& a, bool upper = true, bool calc_cond = false) : chol_mat (), xrcond (0) @@ -55,7 +55,7 @@ } chol (const chol& a) - : chol_mat (a.chol_mat), xrcond (a.xrcond) { } + : chol_mat (a.chol_mat), xrcond (a.xrcond), is_upper (a.is_upper) { } chol& operator = (const chol& a) { @@ -63,6 +63,7 @@ { chol_mat = a.chol_mat; xrcond = a.xrcond; + is_upper = a.is_upper; } return *this;
--- a/liboctave/numeric/lo-mappers.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/numeric/lo-mappers.h Thu Jan 24 20:20:02 2019 +0000 @@ -39,20 +39,9 @@ namespace math { extern OCTAVE_API bool isna (double x); - OCTAVE_DEPRECATED (4.4, "use 'math::isna' instead") - inline bool is_NA (double x) { return math::isna (x); } - extern OCTAVE_API bool isna (float x); - OCTAVE_DEPRECATED (4.4, "use 'math::isna' instead") - inline bool is_NA (float x) { return math::isna (x); } - extern OCTAVE_API bool isna (const Complex& x); - OCTAVE_DEPRECATED (4.4, "use 'math::isna' instead") - inline bool is_NA (const Complex& x) { return math::isna (x); } - extern OCTAVE_API bool isna (const FloatComplex& x); - OCTAVE_DEPRECATED (4.4, "use 'math::isna' instead") - inline bool is_NA (const FloatComplex& x) { return math::isna (x); } extern OCTAVE_API bool is_NaN_or_NA (const Complex& x); extern OCTAVE_API bool is_NaN_or_NA (const FloatComplex& x); @@ -209,19 +198,6 @@ return (isfinite (std::real (x)) && isfinite (std::imag (x))); } - OCTAVE_DEPRECATED (4.4, "use 'math::isfinite' instead") - inline bool finite (double x) { return math::isfinite (x); } - OCTAVE_DEPRECATED (4.4, "use 'math::isfinite' instead") - inline bool finite (float x) { return math::isfinite (x); } - - template <typename T> - OCTAVE_DEPRECATED (4.4, "use 'math::isfinite' instead") - bool - finite (const std::complex<T>& x) - { - return math::isfinite (x); - } - inline bool isinf (double x) { return std::isinf (x); } inline bool isinf (float x) { return std::isinf (x); } @@ -479,21 +455,4 @@ } } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::math::isfinite' instead") -inline bool xfinite (double x) { return octave::math::isfinite (x); } -OCTAVE_DEPRECATED (4.4, "use 'octave::math::isfinite' instead") -inline bool xfinite (float x) { return octave::math::isfinite (x); } - -template <typename T> -OCTAVE_DEPRECATED (4.4, "use 'octave::math::isfinite' instead") -bool -xfinite (const std::complex<T>& x) -{ - return octave::math::isfinite (x); -} - #endif - -#endif
--- a/liboctave/numeric/oct-fftw.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/numeric/oct-fftw.cc Thu Jan 24 20:20:02 2019 +0000 @@ -112,15 +112,9 @@ if (! instance) { instance = new fftw_planner (); - - if (instance) - singleton_cleanup_list::add (cleanup_instance); + singleton_cleanup_list::add (cleanup_instance); } - if (! instance) - (*current_liboctave_error_handler) - ("unable to create fftw_planner object!"); - return retval; } @@ -472,15 +466,9 @@ if (! instance) { instance = new float_fftw_planner (); - - if (instance) - singleton_cleanup_list::add (cleanup_instance); + singleton_cleanup_list::add (cleanup_instance); } - if (! instance) - (*current_liboctave_error_handler) - ("unable to create fftw_planner object!"); - return retval; }
--- a/liboctave/numeric/oct-fftw.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/numeric/oct-fftw.h Thu Jan 24 20:20:02 2019 +0000 @@ -376,31 +376,4 @@ extern OCTAVE_API std::string fftwf_version (void); } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::fftw_version' instead") -static inline std::string -octave_fftw_version (void) -{ - return octave::fftw_version (); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::fftwf_version' instead") -static inline std::string -octave_fftwf_version (void) -{ - return octave::fftwf_version (); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::fftw_planner' instead") -typedef octave::fftw_planner octave_fftw_planner; - -OCTAVE_DEPRECATED (4.4, "use 'octave::float_fftw_planner' instead") -typedef octave::float_fftw_planner octave_float_fftw_planner; - -OCTAVE_DEPRECATED (4.4, "use 'octave::fftw' instead") -typedef octave::fftw octave_fftw; - #endif - -#endif
--- a/liboctave/numeric/oct-rand.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/numeric/oct-rand.cc Thu Jan 24 20:20:02 2019 +0000 @@ -63,15 +63,9 @@ if (! instance) { instance = new rand (); - - if (instance) - singleton_cleanup_list::add (cleanup_instance); + singleton_cleanup_list::add (cleanup_instance); } - if (! instance) - (*current_liboctave_error_handler) - ("unable to create rand object!"); - return retval; }
--- a/liboctave/numeric/oct-rand.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/numeric/oct-rand.h Thu Jan 24 20:20:02 2019 +0000 @@ -287,11 +287,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand' instead") -typedef octave::rand octave_rand; - #endif - -#endif
--- a/liboctave/numeric/oct-spparms.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/numeric/oct-spparms.cc Thu Jan 24 20:20:02 2019 +0000 @@ -43,15 +43,9 @@ if (! instance) { instance = new octave_sparse_params (); - - if (instance) - singleton_cleanup_list::add (cleanup_instance); + singleton_cleanup_list::add (cleanup_instance); } - if (! instance) - (*current_liboctave_error_handler) - ("unable to create octave_sparse_params object!"); - return retval; }
--- a/liboctave/numeric/randgamma.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/numeric/randgamma.h Thu Jan 24 20:20:02 2019 +0000 @@ -44,32 +44,4 @@ } } -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_gamma<double>' instead") -inline double -oct_randg (double a) -{ - return octave::rand_gamma (a); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_gamma<float>' instead") -inline float -oct_float_randg (float a) -{ - return octave::rand_gamma (a); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_gamma<double>' instead") -inline void -oct_fill_randg (double a, octave_idx_type n, double *p) -{ - octave::rand_gamma (a, n, p); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_gamma<float>' instead") -inline void -oct_fill_float_randg (float a, octave_idx_type n, float *p) -{ - octave::rand_gamma (a, n, p); -} - #endif
--- a/liboctave/numeric/randmtzig.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/numeric/randmtzig.h Thu Jan 24 20:20:02 2019 +0000 @@ -115,123 +115,4 @@ rand_exponential<float> (octave_idx_type n, float *p); } -OCTAVE_DEPRECATED (4.4, "use 'octave::init_mersenne_twister' instead") -inline void -oct_init_by_entropy (void) -{ - octave::init_mersenne_twister (); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::init_mersenne_twister' instead") -inline void -oct_init_by_int (const uint32_t seed) -{ - octave::init_mersenne_twister (seed); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::init_mersenne_twister' instead") -inline void -oct_init_by_array (const uint32_t *init_key, const int key_length) -{ - octave::init_mersenne_twister (init_key, key_length); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::set_mersenne_twister_state' instead") -inline void -oct_set_state (const uint32_t *save) -{ - octave::set_mersenne_twister_state (save); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::get_mersenne_twister_state' instead") -inline void -oct_get_state (uint32_t *save) -{ - octave::get_mersenne_twister_state (save); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_uniform<double>' instead") -inline double -oct_randu (void) -{ - return octave::rand_uniform<double> (); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_normal<double>' instead") -inline double -oct_randn (void) -{ - return octave::rand_normal<double> (); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_exponential<double>' instead") -inline double -oct_rande (void) -{ - return octave::rand_exponential<double> (); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_uniform' instead") -inline void -oct_fill_randu (octave_idx_type n, double *p) -{ - octave::rand_uniform (n, p); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_normal' instead") -inline void -oct_fill_randn (octave_idx_type n, double *p) -{ - octave::rand_normal (n, p); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_exponential' instead") -inline void -oct_fill_rande (octave_idx_type n, double *p) -{ - octave::rand_exponential (n, p); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_uniform<float>' instead") -inline float -oct_float_randu (void) -{ - return octave::rand_uniform<float> (); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_normal<float>' instead") -inline float -oct_float_randn (void) -{ - return octave::rand_normal<float> (); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_exponential<float>' instead") -inline float -oct_float_rande (void) -{ - return octave::rand_exponential<float> (); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_uniform' instead") -inline void -oct_fill_float_randu (octave_idx_type n, float *p) -{ - octave::rand_uniform (n, p); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_normal' instead") -inline void -oct_fill_float_randn (octave_idx_type n, float *p) -{ - octave::rand_normal (n, p); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_exponential' instead") -inline void -oct_fill_float_rande (octave_idx_type n, float *p) -{ - octave::rand_exponential (n, p); -} - #endif
--- a/liboctave/numeric/randpoisson.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/numeric/randpoisson.h Thu Jan 24 20:20:02 2019 +0000 @@ -35,32 +35,4 @@ template <typename T> T rand_poisson (T L); } -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_poisson<double>' instead") -inline double -oct_randp (double L) -{ - return octave::rand_poisson (L); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_poisson<double>' instead") -inline void -oct_fill_randp (double L, octave_idx_type n, double *p) -{ - octave::rand_poisson (L, n, p); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_poisson<float>' instead") -inline float -oct_float_randp (float L) -{ - return octave::rand_poisson (L); -} - -OCTAVE_DEPRECATED (4.4, "use 'octave::rand_poisson<float>' instead") -inline void -oct_fill_float_randp (float L, octave_idx_type n, float *p) -{ - octave::rand_poisson (L, n, p); -} - #endif
--- a/liboctave/system/mach-info.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/system/mach-info.h Thu Jan 24 20:20:02 2019 +0000 @@ -53,45 +53,4 @@ } } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -class oct_mach_info -{ -public: - - typedef octave::mach_info::float_format float_format; - - OCTAVE_DEPRECATED (4.4, "use 'octave::mach_info::native_float_format' instead") - static float_format native_float_format (void) - { - return octave::mach_info::native_float_format (); - } - - OCTAVE_DEPRECATED (4.4, "use 'octave::mach_info::words_big_endian' instead") - static bool words_big_endian (void) - { - return octave::mach_info::words_big_endian (); - } - - OCTAVE_DEPRECATED (4.4, "use 'octave::mach_info::words_little_endian' instead") - static bool words_little_endian (void) - { - return octave::mach_info::words_little_endian (); - } - - OCTAVE_DEPRECATED (4.4, "use 'octave::mach_info::string_to_float_format' instead") - static float_format string_to_float_format (const std::string& str) - { - return octave::mach_info::string_to_float_format (str); - } - - OCTAVE_DEPRECATED (4.4, "use 'octave::mach_info::float_format_as_string' instead") - static std::string float_format_as_string (float_format ff) - { - return octave::mach_info::float_format_as_string (ff); - } -}; - #endif - -#endif
--- a/liboctave/system/oct-env.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/system/oct-env.cc Thu Jan 24 20:20:02 2019 +0000 @@ -85,15 +85,9 @@ if (! instance) { instance = new env (); - - if (instance) - singleton_cleanup_list::add (cleanup_instance); + singleton_cleanup_list::add (cleanup_instance); } - if (! instance) - (*current_liboctave_error_handler) - ("unable to create current working directory object!"); - return retval; }
--- a/liboctave/util/action-container.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/util/action-container.h Thu Jan 24 20:20:02 2019 +0000 @@ -225,11 +225,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::action_container' instead") -typedef octave::action_container action_container; - #endif - -#endif
--- a/liboctave/util/f77-fcn.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/util/f77-fcn.h Thu Jan 24 20:20:02 2019 +0000 @@ -45,9 +45,6 @@ # define F77_FCN(f, F) F77_FUNC (f, F) #endif -OCTAVE_DEPRECATED (4.4, "this variable is obsolete and should not be needed") -static const int f77_exception_encountered = 0; - /* The following macros are used for handling Fortran <-> C calling
--- a/liboctave/util/oct-base64.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/util/oct-base64.cc Thu Jan 24 20:20:02 2019 +0000 @@ -92,23 +92,3 @@ return retval; } } - -// Always define these functions. The macro is intended to allow the -// declarations to be hidden, not so that Octave will not provide the -// functions if they are requested. - -// #if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -bool -octave_base64_encode (const char *inc, const size_t inlen, char **out) -{ - return octave::base64_encode (inc, inlen, out); -} - -Array<double> -octave_base64_decode (const std::string& str) -{ - return octave::base64_decode (str); -} - -// #endif
--- a/liboctave/util/oct-base64.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/util/oct-base64.h Thu Jan 24 20:20:02 2019 +0000 @@ -38,16 +38,4 @@ base64_decode (const std::string& str); } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::base_64_encode' instead") -extern bool -octave_base64_encode (const char *inc, const size_t inlen, char **out); - -OCTAVE_DEPRECATED (4.4, "use 'octave::base_64_decode' instead") -extern Array<double> -octave_base64_decode (const std::string& str); - #endif - -#endif
--- a/liboctave/util/oct-mutex.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/util/oct-mutex.h Thu Jan 24 20:20:02 2019 +0000 @@ -152,26 +152,7 @@ static void init (void); static bool is_thread (void); - - OCTAVE_DEPRECATED (4.4, "use 'is_thread' instead") - static bool is_octave_thread (void) { return is_thread (); } }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (4.4, "use 'octave::mutex' instead") -typedef octave::mutex octave_mutex; - -OCTAVE_DEPRECATED (4.4, "use 'octave::base_mutex' instead") -typedef octave::base_mutex octave_base_mutex; - -OCTAVE_DEPRECATED (4.4, "use 'octave::autolock' instead") -typedef octave::autolock octave_autolock; - -OCTAVE_DEPRECATED (4.4, "use 'octave::thread' instead") -typedef octave::thread octave_thread; - #endif - -#endif
--- a/liboctave/util/oct-refcount.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/util/oct-refcount.h Thu Jan 24 20:20:02 2019 +0000 @@ -122,7 +122,4 @@ }; } -template <typename T> -using octave_refcount OCTAVE_DEPRECATED (4.4, "use 'octave::refcount' instead") = octave::refcount<T>; - #endif
--- a/liboctave/util/oct-shlib.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/util/oct-shlib.cc Thu Jan 24 20:20:02 2019 +0000 @@ -27,15 +27,6 @@ #include <map> -#if defined (HAVE_SHL_LOAD_API) -# include <cerrno> -# include <cstring> -#endif - -#if defined (HAVE_DYLD_API) -# include <mach-o/dyld.h> -#endif - extern "C" { #if defined (HAVE_DLOPEN_API) @@ -47,8 +38,6 @@ extern void * dlsym (void *, const char *); extern int dlclose (void *); # endif -#elif defined (HAVE_SHL_LOAD_API) -# include <dl.h> #elif defined (HAVE_LOADLIBRARY_API) # define WIN32_LEAN_AND_MEAN 1 # include <windows.h> @@ -265,84 +254,6 @@ return function; } -#elif defined (HAVE_SHL_LOAD_API) - - class - octave_shl_load_shlib : public dynamic_library::dynlib_rep - { - public: - - octave_shl_load_shlib (const std::string& f); - - // No copying! - - octave_shl_load_shlib (const octave_shl_load_shlib&) = delete; - - octave_shl_load_shlib& operator = (const octave_shl_load_shlib&) = delete; - - ~octave_shl_load_shlib (void); - - void * search (const std::string& name, - dynamic_library::name_mangler mangler = 0); - - bool is_open (void) const { return (search_all_loaded || library != 0); } - - private: - - shl_t library; - }; - - octave_shl_load_shlib::octave_shl_load_shlib (const std::string& f) - : dynamic_library::dynlib_rep (f), library (0) - { - file = f; - - if (file.empty()) - { - search_all_loaded = true; - return; - } - - library = shl_load (file.c_str (), BIND_IMMEDIATE, 0L); - - if (! library) - { - using namespace std; // FIXME: Why have this line? - (*current_liboctave_error_handler) ("%s", std::strerror (errno)); - } - } - - octave_shl_load_shlib::~octave_shl_load_shlib (void) - { - if (library) - shl_unload (library); - } - - void * - octave_shl_load_shlib::search (const std::string& name, - dynamic_library::name_mangler mangler) - { - void *function = nullptr; - - if (! is_open ()) - (*current_liboctave_error_handler) - ("shared library %s is not open", file.c_str ()); - - std::string sym_name = name; - - if (mangler) - sym_name = mangler (name); - - if (search_all_loaded) - int status = shl_findsym (nullptr, sym_name.c_str (), - TYPE_UNDEFINED, &function); - else - int status = shl_findsym (&library, sym_name.c_str (), - TYPE_UNDEFINED, &function); - - return function; - } - #elif defined (HAVE_LOADLIBRARY_API) class @@ -503,108 +414,6 @@ return function; } -#elif defined (HAVE_DYLD_API) - - class - octave_dyld_shlib : public dynamic_library::dynlib_rep - { - public: - - octave_dyld_shlib (void); - - // No copying! - - octave_dyld_shlib (const octave_dyld_shlib&) = delete; - - octave_dyld_shlib& operator = (const octave_dyld_shlib&) = delete; - - ~octave_dyld_shlib (void); - - void open (const std::string& f); - - void * search (const std::string& name, - dynamic_library::name_mangler mangler = nullptr); - - void close (void); - - bool is_open (void) const { return (search_all_loaded || handle != 0); } - - private: - - NSObjectFileImage img; - NSModule handle; - }; - - octave_dyld_shlib::octave_dyld_shlib (const std::string& f) - : dynamic_library::dynlib_rep (f), handle (0) - { - if (f.empty ()) - (*current_liboctave_error_handler) - ("global search is not implemented for DYLD_API"); - - int returnCode = NSCreateObjectFileImageFromFile (file.c_str (), &img); - - if (NSObjectFileImageSuccess != returnCode) - { - (*current_liboctave_error_handler) - ("got NSObjectFileImageReturnCode %d", returnCode); - - // FIXME: should use NSLinkEditError () to get - // more info on what went wrong. - } - - handle = NSLinkModule (img, file.c_str (), - (NSLINKMODULE_OPTION_RETURN_ON_ERROR - | NSLINKMODULE_OPTION_PRIVATE)); - if (! handle) - { - NSLinkEditErrors ler; - int lerno; - const char *file2; - const char *errstr = nullptr; - - NSLinkEditError (&ler, &lerno, &file2, &errstr); - - if (! errstr) - errstr = "unspecified error"; - - (*current_liboctave_error_handler) ("%s: %s", file.c_str (), errstr); - } - } - - octave_dyld_shlib::~octave_dyld_shlib (void) - { - if (handle) - NSUnLinkModule (handle, NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES); - - NSDestroyObjectFileImage (img); - } - - void * - octave_dyld_shlib::search (const std::string& name, - dynamic_library::name_mangler mangler) - { - void *function = nullptr; - - if (! is_open ()) - (*current_liboctave_error_handler) - ("bundle %s is not open", file.c_str ()); - - std::string sym_name = name; - - if (mangler) - sym_name = mangler (name); - - NSSymbol symbol = NSLookupSymbolInModule (handle, sym_name.c_str ()); - - if (symbol) - { - function = NSAddressOfSymbol (symbol); - } - - return function; - } - #endif dynamic_library::dynlib_rep * @@ -612,12 +421,8 @@ { #if defined (HAVE_DLOPEN_API) return new octave_dlopen_shlib (f); -#elif defined (HAVE_SHL_LOAD_API) - return new octave_shl_load_shlib (f); #elif defined (HAVE_LOADLIBRARY_API) return new octave_w32_shlib (f); -#elif defined (HAVE_DYLD_API) - return new octave_dyld_shlib (f); #else (*current_liboctave_error_handler) ("support for dynamically loaded libraries was unavailable or disabled when liboctave was built");
--- a/liboctave/util/oct-sort.h Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/util/oct-sort.h Thu Jan 24 20:20:02 2019 +0000 @@ -124,10 +124,6 @@ // Check whether an array is sorted. bool issorted (const T *data, octave_idx_type nel); - OCTAVE_DEPRECATED (4.4, "use 'issorted' instead") - bool is_sorted (const T *data, octave_idx_type nel) - { return issorted (data, nel); } - // Sort a matrix by rows, return a permutation // vector. void sort_rows (const T *data, octave_idx_type *idx, @@ -312,11 +308,6 @@ bool issorted (const T *data, octave_idx_type nel, Comp comp); template <typename Comp> - OCTAVE_DEPRECATED (4.4, "use 'issorted' instead") - bool is_sorted (const T *data, octave_idx_type nel, Comp comp) - { return issorted (data, nel, comp); } - - template <typename Comp> void sort_rows (const T *data, octave_idx_type *idx, octave_idx_type rows, octave_idx_type cols, Comp comp);
--- a/liboctave/util/singleton-cleanup.cc Thu Jan 24 19:22:18 2019 +0000 +++ b/liboctave/util/singleton-cleanup.cc Thu Jan 24 20:20:02 2019 +0000 @@ -45,9 +45,5 @@ if (! instance) instance = new singleton_cleanup_list (); - if (! instance) - (*current_liboctave_error_handler) - ("unable to create singleton_cleanup_list object!"); - return retval; }
--- a/octave.doap Thu Jan 24 19:22:18 2019 +0000 +++ b/octave.doap Thu Jan 24 20:20:02 2019 +0000 @@ -3,10 +3,52 @@ xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns="http://usefulinc.com/ns/doap#"> - <name xml:lang="en">GNU Octave</name> + <name>GNU Octave</name> <shortname>octave</shortname> - <shortdesc xml:lang="en">Interactive programming environment for numerical computations</shortdesc> + <shortdesc>Interactive programming environment for numerical computations</shortdesc> + <shortdesc xml:lang="ca">Entorn de programació interactiva per a càlculs numèrics</shortdesc> + <shortdesc xml:lang="de">Interaktive Programmierumgebung für numerische Berechnungen</shortdesc> + <shortdesc xml:lang="es">Entorno de programación interactiva para cálculos numéricos</shortdesc> + <shortdesc xml:lang="fr">Environnement de programmation interactif pour le calcul numérique</shortdesc> + <shortdesc xml:lang="it">Ambiente di programmazione interattivo per il calcolo numerico</shortdesc> + <shortdesc xml:lang="ja">数値計算のための対話的なプログラミング環境</shortdesc> + <shortdesc xml:lang="nl">Interactieve programmeeromgeving voor numerieke berekeningen</shortdesc> + <shortdesc xml:lang="pt">Ambiente de programação interativo para computação numérica</shortdesc> + <shortdesc xml:lang="zh">数值计算交互式编程环境</shortdesc> + + <description> + GNU Octave is a high-level interpreted language, primarily intended for + numerical computations. It provides capabilities for the numerical + solution of linear and nonlinear problems, and for performing other + numerical experiments. It also provides extensive graphics capabilities + for data visualization and manipulation. Octave is normally used through + its interactive command line interface, but it can also be used to write + non-interactive programs. The Octave language is quite similar to + Matlab so that most programs are easily portable. + </description> + <description xml:lang="de"> + GNU Octave ist eine höhere, interpretierte Programmiersprache, die + hauptsächlich für numerische Berechnungen gedacht ist. Sie bietet + Funktionen für die numerische Lösung linearer und nichtlinearer Probleme + und für die Durchführung anderer numerischer Experimente. Darüber hinaus + bietet es umfangreiche Grafikfunktionen zur Datenvisualisierung und + -manipulation. Octave wird normalerweise mittels einer interaktiven + Befehlszeile verwendet, kann aber auch zum Schreiben nicht interaktiver + Programme verwendet werden. Die Octave-Programmiersprache ist sehr + ähnlich zu Matlab, so dass die meisten Programme leicht übertragbar sind. + </description> + <description xml:lang="fr"> + GNU Octave est un langage de programmation interprété, destiné + principalement au calcul numérique. Il fournit des fonctionnalités + pour la résolution de problèmes linéaires et non-linéaires, et pour toutes + sortes d'expériences numériques. Il s'accompagne d'un système complet + de visualisation et de manipulation des données. Octave s’utilise + généralement via son environnement en lignes de commandes interactif, + mais il peut aussi être utilisé pour écrire des programmes non + interactifs. Le langage Octave est très similaire à Matlab de telle sorte + que les programmes Matlab sont très faciles à porter sous Octave. + </description> <homepage rdf:resource="https://www.octave.org" /> <license rdf:resource="https://www.gnu.org/licenses/gpl-3.0.txt" />
--- a/scripts/deprecated/chop.m Thu Jan 24 19:22:18 2019 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -## Copyright (C) 2010-2019 John W. Eaton -## -## This file is part of Octave. -## -## Octave is free software: you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <https://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {} {} chop (@var{x}, @var{ndigits}, @var{base}) -## -## @code{chop} is deprecated and will be removed in Octave version 6. -## -## Truncate elements of @var{x} to a length of @var{ndigits} such that the -## resulting numbers are exactly divisible by @var{base}. -## -## If @var{base} is not specified it defaults to 10. -## -## @example -## @group -## format long -## chop (-pi, 5, 10) -## @result{} -3.14200000000000 -## chop (-pi, 5, 5) -## @result{} -3.14150000000000 -## @end group -## @end example -## @end deftypefn - -## Deprecated in version 4.4 - -function retval = chop (x, ndigits, base = 10) - - persistent warned = false; - if (! warned) - warned = true; - warning ("Octave:deprecated-function", - "chop is obsolete and will be removed from a future version of Octave"); - endif - - if (nargin == 2 || nargin == 3) - tmp = abs (x); - - ## Avoid computing log (0). - tmp(x == 0) = 1; - - ## Digits to the left of the decimal. - tmp = floor (log10 (tmp) + 1); - - ## The expression - ## - ## round (x .* inflate) - ## - ## produces an integer that contains the digits we want to keep. - ## Multiplying by deflate puts the decimal back where it belngs. - ## - ## Further scaling and rounding with the base factor produces a - ## value with ndigits exactly divisible by base. We skip that step - ## unless base was explicitly provided. - - inflate = 10 .^ (ndigits - tmp); - deflate = 1 ./ inflate; - if (nargin == 2) - retval = deflate .* round (x .* inflate); - else - retval = base .* deflate .* round (round (x .* inflate) ./ base); - endif - else - print_usage (); - endif - -endfunction - - -## First test is necessary to provoke 1-time legacy warning -%!test -%! warning ("off", "Octave:deprecated-function", "local"); -%! chop (0, 1); - -%!assert (chop (e, 3), 2.72) -%!assert (chop (e, 4), 2.718) -%!assert (chop (e, 4, 5), 2.72) -%!assert (chop (e, 4, 7), 2.716) -%!assert (chop (-e, 3), -2.72) -%!assert (chop (-e, 4), -2.718) -%!assert (chop (-e, 4, 5), -2.72) -%!assert (chop (-e, 4, 7), -2.716) -%!assert (chop (hilb (3), 3), [1,.5,.333;.5,.333,.25;.333,.25,.2]) -%!assert (chop (hilb (3), 2, 7), [.7,.49,.35;.49,.35,.28;.35,.28,.21], 2*eps)
--- a/scripts/deprecated/comma.m Thu Jan 24 19:22:18 2019 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -## Copyright (C) 1995-2019 John W. Eaton -## -## This file is part of Octave. -## -## Octave is free software: you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <https://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {} {} , -## Array index, function argument, or command separator. -## @seealso{semicolon} -## @end deftypefn - - -## Mark file as being tested. No real test needed for a documentation .m file -%!assert (1)
--- a/scripts/deprecated/desktop.m Thu Jan 24 19:22:18 2019 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -## Copyright (C) 2013-2019 John W. Eaton -## -## This file is part of Octave. -## -## Octave is free software: you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <https://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {} {@var{used} =} desktop ("-inuse") -## -## @code{desktop} is deprecated and will be removed in Octave version 6. -## Use @code{isguirunning} for the equivalent functionality. -## -## Return true if the desktop (GUI) is currently in use. -## @seealso{isguirunning} -## @end deftypefn - -## Deprecated in version 4.4 - -function retval = desktop (arg) - - persistent warned = false; - if (! warned) - warned = true; - warning ("Octave:deprecated-function", - "desktop is obsolete and will be removed from a future version of Octave, please use isguirunning instead"); - endif - - if (nargin == 0) - if (isguirunning ()) - return; # desktop() is a NOP when GUI running - else - print_usage (); - endif - elseif (nargin > 1) - error ('desktop: only one argument, "-inuse", is allowed'); - endif - - switch (tolower (arg)) - case "-inuse" - retval = isguirunning (); - otherwise - print_usage (); - endswitch - -endfunction - - -## Test input validation -%!error <only one argument, "-inuse", is allowed> desktop (1,2) -%!error desktop ("-invalid_option")
--- a/scripts/deprecated/java2mat.m Thu Jan 24 19:22:18 2019 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -## Copyright (C) 2018-2019 John W. Eaton -## -## This file is part of Octave. -## -## Octave is free software: you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <https://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {} {} java2mat (@var{javaobj}) -## @code{java2mat} is deprecated and will be removed in Octave version 6. -## -## For the next two releases, use @code{__java2mat__} if necessary, and file -## a bug report explaining your programming use of @code{java2mat} and how it -## can't be done with other Octave functions. -## @end deftypefn - -function retval = java2mat (varargin) - - persistent warned = false; - if (! warned) - warned = true; - warning ("Octave:deprecated-function", - "java2mat is obsolete and will be removed from a future version of Octave"); - endif - - retval = __java2mat__ (varargin{:}); - -endfunction - - -## No tests needed for alias. -%!assert (1)
--- a/scripts/deprecated/module.mk Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/deprecated/module.mk Thu Jan 24 20:20:02 2019 +0000 @@ -1,15 +1,7 @@ FCN_FILE_DIRS += scripts/deprecated %canon_reldir%_FCN_FILES = \ - %reldir%/chop.m \ - %reldir%/comma.m \ - %reldir%/desktop.m \ - %reldir%/java2mat.m \ - %reldir%/output_max_field_width.m \ - %reldir%/paren.m \ - %reldir%/semicolon.m \ - %reldir%/tmpnam.m \ - %reldir%/toascii.m + %reldir%/output_max_field_width.m %canon_reldir%dir = $(fcnfiledir)/deprecated
--- a/scripts/deprecated/paren.m Thu Jan 24 19:22:18 2019 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -## Copyright (C) 1996-2019 John W. Eaton -## -## This file is part of Octave. -## -## Octave is free software: you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <https://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {} {} ( -## @deftypefnx {} {} ) -## Array index or function argument delimeter. -## @end deftypefn - - -## Mark file as being tested. No real test needed for a documentation .m file -%!assert (1)
--- a/scripts/deprecated/semicolon.m Thu Jan 24 19:22:18 2019 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -## Copyright (C) 1995-2019 John W. Eaton -## -## This file is part of Octave. -## -## Octave is free software: you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <https://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {} {} ; -## Array row or command separator. -## @seealso{comma} -## @end deftypefn - - -## Mark file as being tested. No real test needed for a documentation .m file -%!assert (1)
--- a/scripts/deprecated/tmpnam.m Thu Jan 24 19:22:18 2019 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -## Copyright (C) 2003-2019 John W. Eaton -## -## This file is part of Octave. -## -## Octave is free software: you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <https://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {} {@var{fname} =} tmpnam () -## @deftypefnx {} {@var{fname} =} tmpnam (@var{dir}) -## @deftypefnx {} {@var{fname} =} tmpnam (@var{dir}, @var{prefix}) -## @code{tmpnam} is deprecated and will be removed in Octave version 6. -## Use @code{tempname} instead. -## -## Return a unique temporary filename as a string. -## -## If @var{prefix} is omitted, a value of @qcode{"oct-"} is used. -## -## If @var{dir} is also omitted, the default directory for temporary files -## (@code{P_tmpdir} is used. If @var{dir} is provided, it must exist, -## otherwise the default directory for temporary files is used. -## -## Programming Note: Because the named file is not opened by @code{tmpnam}, -## it is possible, though relatively unlikely, that it will not be available -## by the time your program attempts to open it. If this is a concern, -## see @code{tmpfile}. The functions @code{tmpnam} and @code{tempname} are -## equivalent with the latter provided for @sc{matlab} compatibility. -## -## @strong{Caution}: @code{tmpnam} will be removed in Octave version 6, or -## whatever the version number is two releases from 4.4. Use the equivalent -## @code{tempname} in all new code. -## @seealso{tempname, mkstemp, tempdir, P_tmpdir, tmpfile} -## @end deftypefn - -function filename = tmpnam (varargin) - - persistent warned = false; - if (! warned) - warned = true; - warning ("Octave:deprecated-function", - "tmpnam is obsolete and will be removed from a future version of Octave, please use tempname instead"); - endif - - filename = tempname (varargin{:}); - -endfunction - - -## No tests needed for alias. -%!assert (1)
--- a/scripts/deprecated/toascii.m Thu Jan 24 19:22:18 2019 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -## Copyright (C) 2018-2019 Rik Wehbring -## -## This file is part of Octave. -## -## Octave is free software: you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <https://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {} {} toascii (@var{str}) -## -## @code{toascii} is deprecated and will be removed in Octave version 6. -## Use @code{double} instead. -## -## Return ASCII representation of @var{str} in a matrix. -## -## For example: -## -## @example -## @group -## toascii ("ASCII" -## @result{} [ 65, 83, 67, 73, 73 ] -## @end group -## -## @end example -## @seealso{double, char} -## @end deftypefn - -## FIXME: DEPRECATED: Remove in version 6. - -function retval = toascii (str) - - persistent warned = false; - if (! warned) - warned = true; - warning ("Octave:deprecated-function", - "toascii is obsolete and will be removed from a future version of Octave, please use double instead"); - endif - - if (nargin != 1) - print_usage (); - endif - - if (iscell (str)) - retval = cellfun (@(x) bitand (double (x), 0x7F), str, "uniformoutput", 0); - else - retval = bitand (double (str), 0x7F); # Restrict to 7-bit ASCII - endif - -endfunction - - -## First test is necessary to provoke 1-time legacy warning -%!test -%! warning ("off", "Octave:deprecated-function", "local"); -%! toascii (""); - -%!assert (toascii (char (0:127)), 0:127) -%!assert (toascii (" ":"@"), 32:64) -%!assert (toascii ("A":"Z"), 65:90) -%!assert (toascii ("[":"`"), 91:96) -%!assert (toascii ("a":"z"), 97:122) -%!assert (toascii ("{":"~"), 123:126) - -%!error toascii () -%!error toascii (1, 2)
--- a/scripts/general/quadgk.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/general/quadgk.m Thu Jan 24 20:20:02 2019 +0000 @@ -318,10 +318,6 @@ endwhile subs = [subs(1:end-1), subs(2:end)]; - ## Singularity will cause divide by zero warnings. - ## Turn off warning locally for quadgk function only. - warning ("off", "Octave:divide-by-zero", "local"); - warn_id = "Octave:quadgk:warning-termination"; if (issingle)
--- a/scripts/general/quadv.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/general/quadv.m Thu Jan 24 20:20:02 2019 +0000 @@ -152,18 +152,14 @@ %!assert (quadv (@sin, 0, pi), 2, 1e-6) ## Test weak singularities at the edge -%!test -%! warning ("off", "Octave:divide-by-zero", "local"); -%! assert (quadv (@(x) 1 ./ sqrt (x), 0, 1), 2, 2e-6); +%!assert (quadv (@(x) 1 ./ sqrt (x), 0, 1), 2, 2e-6); ## Test vector-valued functions %!assert (quadv (@(x) [(sin (x)), (sin (2 * x))], 0, pi), [2, 0], 1e-6) ## Test matrix-valued functions -%!test -%! warning ("off", "Octave:divide-by-zero", "local"); -%! assert (quadv (@(x) [ x,x,x; x,1./sqrt(x),x; x,x,x ], 0, 1), -%! [0.5,0.5,0.5; 0.5,2,0.5; 0.5,0.5,0.5], 2e-6); +%!assert (quadv (@(x) [ x,x,x; x,1./sqrt(x),x; x,x,x ], 0, 1), +%! [0.5,0.5,0.5; 0.5,2,0.5; 0.5,0.5,0.5], 2e-6); ## Test input validation %!error quadv ()
--- a/scripts/gui/uimenu.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/gui/uimenu.m Thu Jan 24 20:20:02 2019 +0000 @@ -106,8 +106,8 @@ %! uimenu (f, 'label', 'Close', 'accelerator', 'q', 'callback', 'close (gcf)'); %! uimenu (e, 'label', 'Toggle &Grid', 'accelerator', 'g', 'callback', 'grid (gca)'); -%!testif HAVE_OPENGL, HAVE_FLTK; have_window_system () && any (strcmp ("fltk", available_graphics_toolkits ())) -%! toolkit = graphics_toolkit ("fltk"); +%!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("qt", available_graphics_toolkits ())) +%! toolkit = graphics_toolkit ("qt"); %! hf = figure ("visible", "off"); %! unwind_protect %! ui = uimenu ("label", "mylabel"); @@ -116,15 +116,15 @@ %! assert (get (ui, "checked"), "off"); %! assert (get (ui, "separator"), "off"); %! assert (get (ui, "enable"), "on"); -%! assert (get (ui, "position"), 0); +%! assert (get (ui, "position"), 4); %! unwind_protect_cleanup %! close (hf); %! graphics_toolkit (toolkit); %! end_unwind_protect ## check for top level menus file and edit -%!testif HAVE_OPENGL, HAVE_FLTK; have_window_system () && any (strcmp ("fltk", available_graphics_toolkits ())) -%! toolkit = graphics_toolkit ("fltk"); +%!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("qt", available_graphics_toolkits ())) +%! toolkit = graphics_toolkit ("qt"); %! hf = figure ("visible", "off"); %! unwind_protect %! uif = findall (hf, "label", "&file"); @@ -136,8 +136,8 @@ %! graphics_toolkit (toolkit); %! end_unwind_protect -%!testif HAVE_OPENGL, HAVE_FLTK; have_window_system () && any (strcmp ("fltk", available_graphics_toolkits ())) -%! toolkit = graphics_toolkit ("fltk"); +%!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("qt", available_graphics_toolkits ())) +%! toolkit = graphics_toolkit ("qt"); %! hf = figure ("visible", "off"); %! unwind_protect %! uie = findall (hf, "label", "&edit");
--- a/scripts/help/__unimplemented__.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/help/__unimplemented__.m Thu Jan 24 20:20:02 2019 +0000 @@ -1328,7 +1328,6 @@ "varfun", "vartype", "verctrl", - "verLessThan", "vertexAttachments", "vertexNormal", "VideoReader",
--- a/scripts/help/warning_ids.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/help/warning_ids.m Thu Jan 24 20:20:02 2019 +0000 @@ -158,11 +158,6 @@ ## is obsolete and scheduled for removal from Octave. ## By default, the @code{Octave:deprecated-property} warning is enabled. ## -## @item Octave:divide-by-zero -## If the @code{Octave:divide-by-zero} warning is enabled, a -## warning is issued when Octave encounters a division by zero. -## By default, the @code{Octave:divide-by-zero} warning is enabled. -## ## @item Octave:eigs:UnconvergedEigenvalues ## If the @code{Octave:eigs:UnconvergedEigenvalues} warning is enabled then ## the eigs function will issue a warning if the number of calculated
--- a/scripts/linear-algebra/ishermitian.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/linear-algebra/ishermitian.m Thu Jan 24 20:20:02 2019 +0000 @@ -82,7 +82,7 @@ if (strcmp (skewopt, "nonskew")) if (tol == 0) ## check for exact symmetry - retval = ! any ((A != A')(:)); + retval = full (! any ((A != A')(:))); else if (islogical (A)) ## Hack to allow norm to work. Choose single to minimize memory. @@ -94,7 +94,7 @@ else ## skew-Hermitian if (tol == 0) - retval = ! any ((A != -A')(:)); + retval = full (! any ((A != -A')(:))); else if (islogical (A)) ## Hack to allow norm to work. Choose single to minimize memory. @@ -114,7 +114,7 @@ %!assert (ishermitian ([1, 2; 2, 1])) %!assert (ishermitian ([1, 2.1; 2, 1.1], 0.2)) %!assert (ishermitian ([1, -2i; 2i, 1])) -%!assert (ishermitian (speye (100))) +%!assert (ishermitian (speye (100)), true) # Return full logical value. %!assert (ishermitian (logical (eye (2)))) %!assert (! ishermitian (logical ([1 1; 0 1]))) %!assert (ishermitian (logical ([1 1; 0 1]), 0.5))
--- a/scripts/linear-algebra/issymmetric.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/linear-algebra/issymmetric.m Thu Jan 24 20:20:02 2019 +0000 @@ -81,7 +81,7 @@ if (strcmp (skewopt, "nonskew")) if (tol == 0) ## check for exact symmetry - retval = ! any ((A != A.')(:)); + retval = full (! any ((A != A.')(:))); else if (islogical (A)) ## Hack to allow norm to work. Choose single to minimize memory. @@ -93,7 +93,7 @@ else ## skew symmetry if (tol == 0) - retval = ! any ((A != -A.')(:)); + retval = full (! any ((A != -A.')(:))); else if (islogical (A)) ## Hack to allow norm to work. Choose single to minimize memory. @@ -113,7 +113,7 @@ %!assert (issymmetric ([1, 2; 2, 1])) %!assert (issymmetric ([1, 2.1; 2, 1.1], 0.2)) %!assert (issymmetric ([1, 2i; 2i, 1])) -%!assert (issymmetric (speye (100))) +%!assert (issymmetric (speye (100)), true) # Return full logical value. %!assert (issymmetric (logical (eye (2)))) %!assert (! issymmetric (logical ([1 1; 0 1]))) %!assert (issymmetric (logical ([1 1; 0 1]), 0.5))
--- a/scripts/miscellaneous/module.mk Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/miscellaneous/module.mk Thu Jan 24 20:20:02 2019 +0000 @@ -78,6 +78,7 @@ %reldir%/unzip.m \ %reldir%/validateattributes.m \ %reldir%/ver.m \ + %reldir%/verLessThan.m \ %reldir%/version.m \ %reldir%/what.m \ %reldir%/zip.m
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/miscellaneous/verLessThan.m Thu Jan 24 20:20:02 2019 +0000 @@ -0,0 +1,80 @@ +## Copyright (C) 2019 Andrew Janke +## +## This file is part of Octave. +## +## Octave is free software: you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## <https://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {} {} verLessThan (@var{package}, @var{version}) +## Return true if the installed version of the package is less than +## @var{version}. +## +## @var{package} is the name of the package to check. Use @qcode{"Octave"} as +## the @var{package} to check the version of Octave itself. +## +## @var{version} is the version to compare it to. A version is a string in the +## format accepted by @code{compare_versions}: an arbitrarily long string +## composed of numeric and period characters, possibly followed by an arbitrary +## string (e.g., @qcode{"1.2.3"}, @qcode{"0.3"}, @qcode{"0.1.2+"}, or +## @qcode{"1.2.3.4-test1"}). +## +## Examples: +## +## @example +## @group +## tf = verLessThan ("Octave", "5.0.0") +## tf = verLessThan ("io", "2.4.12") +## +## if (! verLessThan ("Octave", "5.0.0")) +## ## ... use new Octave 5.0 features ... +## endif +## @end group +## @end example +## +## @seealso{compare_versions, version, ver, pkg} +## @end deftypefn + +function retval = verLessThan (package, version) + + if (nargin != 2) + print_usage (); + endif + + if (! ischar (package) || rows (package) != 1) + error ("verLessThan: PACKAGE must be a string"); + endif + + v = ver (); + idx = find (strcmpi (package, {v.Name})); + if (isempty (idx)) + error ('verLessThan: package "%s" is not installed', package); + endif + + retval = compare_versions (v(idx).Version, version, "<"); + +endfunction + + +%!assert (! verLessThan ("Octave", "3.0.0")) +%!assert (verLessThan ("Octave", "99.9.9")) + +## Test input validation +%!error verLessThan () +%!error verLessThan ("a") +%!error verLessThan ("a", "1", "b") +%!error <package "no-such-package" is not installed> +%! verLessThan ("no-such-package", "1.1.1") +%!error <compare_versions: version numbers V1 and V2 must be strings> +%! verLessThan ("Octave", 4.1)
--- a/scripts/optimization/qp.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/optimization/qp.m Thu Jan 24 20:20:02 2019 +0000 @@ -69,18 +69,19 @@ ## the number of constraints. The algorithm is faster if the initial guess is ## feasible. ## -## @table @var -## @item options -## An optional structure containing the following parameter(s) used to define -## the behavior of the solver. Missing elements in the structure take on -## default values, so you only need to set the elements that you wish to -## change from the default. +## @var{options} is a structure specifying additional parameters which +## control the algorithm. Currently, @code{qp} recognizes these options: +## @qcode{"MaxIter"}, @qcode{"TolX"}. ## -## @table @code -## @item MaxIter (default: 200) -## Maximum number of iterations. -## @end table -## @end table +## @qcode{"MaxIter"} proscribes the maximum number of algorithm iterations +## before optimization is halted. The default value is 200. +## The value must be a positive integer. +## +## @qcode{"TolX"} specifies the termination tolerance for the unknown variables +## @var{x}. The default is @code{sqrt (eps)} or approximately 1e-8. +## +## On return, @var{x} is the location of the minimum and @var{fval} contains +## the value of the objective function at @var{x}. ## ## @table @var ## @item info @@ -112,6 +113,7 @@ ## @end table ## @end table ## @end table +## @seealso{sqp} ## @end deftypefn ## PKG_ADD: ## Discard result to avoid polluting workspace with ans at startup. @@ -120,7 +122,7 @@ function [x, obj, INFO, lambda] = qp (x0, H, varargin) if (nargin == 1 && ischar (x0) && strcmp (x0, "defaults")) - x = struct ("MaxIter", 200); + x = struct ("MaxIter", 200, "TolX", sqrt (eps)); return; endif @@ -169,6 +171,7 @@ endif maxit = optimget (options, "MaxIter", 200); + tol = optimget (options, "TolX", sqrt (eps)); ## Validate the quadratic penalty. if (! issquare (H)) @@ -243,7 +246,7 @@ endif if (! isempty (lb) && ! isempty (ub)) - rtol = sqrt (eps); + rtol = tol; for i = 1:n if (abs (lb (i) - ub(i)) < rtol*(1 + max (abs (lb(i) + ub(i))))) ## These are actually an equality constraint @@ -291,7 +294,7 @@ endif if (! isempty (A_lb) && ! isempty (A_ub)) - rtol = sqrt (eps); + rtol = tol; for i = 1:dimA_in if (abs (A_lb(i) - A_ub(i)) < rtol*(1 + max (abs (A_lb(i) + A_ub(i))))) @@ -331,7 +334,7 @@ || isa (A, "single") || isa (b, "single")) rtol = sqrt (eps ("single")); else - rtol = sqrt (eps); + rtol = tol; endif eq_infeasible = (n_eq > 0 && norm (A*x0-b) > rtol*(1+abs (b))); @@ -407,10 +410,10 @@ x0 = xbar; endif endif - + if (info == 0) ## The initial (or computed) guess is feasible. Call the solver. - [x, lambda, info, iter] = __qp__ (x0, H, q, A, b, Ain, bin, maxit); + [x, lambda, info, iter] = __qp__ (x0, H, q, A, b, Ain, bin, maxit, rtol); else iter = 0; x = x0;
--- a/scripts/optimization/sqp.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/optimization/sqp.m Thu Jan 24 20:20:02 2019 +0000 @@ -417,7 +417,7 @@ old_lambda = lambda; [p, obj_qp, INFO, lambda] = qp (x, B, c, F, g, [], [], d, C, - Inf (size (d))); + Inf (size (d)), struct ("TolX", tol)); info = INFO.info;
--- a/scripts/pkg/pkg.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/pkg/pkg.m Thu Jan 24 20:20:02 2019 +0000 @@ -417,21 +417,55 @@ else ## If files do not exist, maybe they are not local files. ## Try to download them. - external_files_mask = cellfun (@(x) isempty (glob (x)), files); - if (any (external_files_mask)) + not_local_files = cellfun (@(x) isempty (glob (x)), files); + if (any (not_local_files)) [success, msg] = mkdir (tmp_dir); if (success != 1) error ("pkg: failed to create temporary directory: %s", msg); endif - for file_idx = find (external_files_mask) - - [~, fname, fext] = fileparts (files{file_idx}); - local_files{end+1} = fullfile (tmp_dir, [fname fext]); - [~, success, msg] = urlwrite (files{file_idx}, local_files{end}); - if (success != 1) - error ("pkg: failed to read package '%s': %s", - files{file_idx}, msg); + for file = files(not_local_files) + file = file{1}; + [~, fname, fext] = fileparts (file); + tmp_file = fullfile (tmp_dir, [fname fext]); + local_files{end+1} = tmp_file; + looks_like_url = regexp (file, '^\w+://'); + if (looks_like_url) + [~, success, msg] = urlwrite (file, local_files{end}); + if (success != 1) + error ("pkg: failed downloading '%s': %s", file, msg); + endif + ## Verify that download is a tarball, + ## to protect against ISP DNS hijacking. + ## FIXME: Need a test which does not rely on external OS. + #{ + if (isunix ()) + [ok, file_descr] = ... + system (sprintf ('file "%s" | cut -d ":" -f 2', ... + local_files{end})); + if (! ok) + if (strfind (file_descr, "HTML")) + error (["pkg: Invalid package file downloaded from " ... + "%s\n" ... + "File is HTML, not a tar archive."], ... + file); + endif + else + ## Ignore: maybe something went wrong with the "file" call. + endif + endif + #} + else + looks_like_pkg_name = regexp (file, '^[\w-]+$'); + if (looks_like_pkg_name) + error (["pkg: file not found: %s.\n" ... + "This looks like an Octave Forge package name." ... + " Did you mean:\n" ... + " pkg install -forge %s"], ... + file, file); + else + error ("pkg: file not found: %s", file); + endif endif files{file_idx} = local_files{end};
--- a/scripts/plot/appearance/annotation.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/appearance/annotation.m Thu Jan 24 20:20:02 2019 +0000 @@ -480,13 +480,12 @@ hr = patch (x, y, "parent", h); - ## FIXME: DEPRECATED: Remove warn state switching in version 6. - old_warn_state = warning ("off", "Octave:deprecated-property"); propnames = rectprops ("names"); + ## FIXME: Remove in Octave 6 + propnames(strcmp ("edgecolor", propnames)) = []; for ii = 1:numel (propnames) update_rect (h, {}, propnames{ii}, hr, objtype); endfor - warning (old_warn_state); rectmenu (hui, h); set (hr, "uicontextmenu", hui);
--- a/scripts/plot/draw/ezplot3.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/draw/ezplot3.m Thu Jan 24 20:20:02 2019 +0000 @@ -77,11 +77,11 @@ %! fx = @(t) cos (t); %! fy = @(t) sin (t); %! fz = @(t) t; -%! ezplot3 (fx, fy, fz, [0, 10*pi], 100); +%! ezplot3 (fx, fy, fz, [0, 10*pi]); %!demo %! clf; %! fx = @(t) cos (t); %! fy = @(t) sin (t); %! fz = @(t) t; -%! ezplot3 (fx, fy, fz, [0, 5*pi], 100, "animate"); +%! ezplot3 (fx, fy, fz, [0, 5*pi], "animate");
--- a/scripts/plot/draw/light.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/draw/light.m Thu Jan 24 20:20:02 2019 +0000 @@ -198,7 +198,8 @@ %! ## Diffuse and specular reflection %! clf; %! h_axes = axes (); -%! [x,y,z] = meshgrid (-.2:0.04:.2, -.2:0.04:.2, -.2:0.04:.2); +%! rng = linspace (-0.2, +0.2, 12); +%! [x,y,z] = meshgrid (rng); %! val = (x.^2 + y.^2 + z.^2); %! %! fv = isosurface (x, y, z, val, .039);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/plot/draw/lightangle.m Thu Jan 24 20:20:02 2019 +0000 @@ -0,0 +1,167 @@ +## Copyright (C) 2019 Guillaume Flandin +## +## This file is part of Octave. +## +## Octave is free software: you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## <https://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {} {} lightangle (@var{az}, @var{el}) +## @deftypefnx {} {} lightangle (@var{hax}, @var{az}, @var{el}) +## @deftypefnx {} {} lightangle (@var{hl}, @var{az}, @var{el}) +## @deftypefnx {} {@var{hl} =} lightangle (@dots{}) +## @deftypefnx {} {[@var{az}, @var{el}] =} lightangle (@var{hl}) +## Add a light object to the current axes using spherical coordinates. +## +## The light position is specified by an azimuthal rotation @var{az} and an +## elevation angle @var{el}, both in degrees. +## +## If the first argument @var{hax} is an axes handle, then create a new light +## object in this axes, rather than the current axes returned by @code{gca}. +## +## If the first argument @var{hl} is a handle to a light object, then act on +## this light object rather than creating a new object. +## +## The optional return value @var{hl} is a graphics handle to the light object. +## +## Example: +## +## Add a light object to a plot +## +## @example +## @group +## @c doctest: +SKIP +## clf; +## sphere (36); +## lightangle (45, 30); +## @end group +## @end example +## +## @seealso{light, view, camlight} +## @end deftypefn + +function varargout = lightangle (varargin) + + if (nargin == 0 || nargin > 3 || nargout > 2 || (nargin > 1 && nargout > 1)) + print_usage (); + endif + + hl = hax = az = el = []; + + if (nargin == 1) + hl = varargin{1}; + if (! isscalar (hl) || ! isgraphics (hl, "light")) + error ("lightangle: HL must be a handle to a light object"); + endif + elseif (nargin == 2) + az = varargin{1}; + el = varargin{2}; + elseif (nargin == 3) + h = varargin{1}; + if (isscalar (h) && isaxes (h)) + hax = h; + elseif (isscalar (h) && isgraphics (h, "light")) + hl = h; + else + error ("lightangle: H must be a handle to an axes or light object"); + endif + az = varargin{2}; + el = varargin{3}; + endif + + if (nargin == 1) + pos = get (hl, "Position"); + [az, el] = cart2sph (pos(1), pos(2), pos(3)); + az = rad2deg (az) + 90; # see view.m + el = rad2deg (el); + varargout = { az, el }; + return; + endif + + if (! isscalar (az) || ! isnumeric (az) + || ! isscalar (el) || ! isnumeric (el)) + error ("lightangle: AZ and EL must be numeric scalars"); + endif + + if (! isempty (hl)) + hax = ancestor (hl, "axes"); + endif + + if (isempty (hax)) + hax = gca (); + endif + + if (isempty (hl)) + hl = light (hax); + endif + + pos = get (hl, "Position"); + + az = deg2rad (az - 90); + el = deg2rad (el); + + if (strcmp (get (hl, "Style"), "local")) + pos -= get (hax, "CameraTarget"); + endif + + pos = sph2cart (az, el, norm (pos)); + + if (strcmp (get (hl, "Style"), "local")) + pos += get (hax, "CameraTarget"); + endif + + set (hl, "Position", pos); + + if (nargout == 1) + varargout = { hl }; + endif + +endfunction + + +%!demo +%! clf; +%! sphere (36); +%! lightangle (45, 30); + +%!test +%! hf = figure ("visible", "off"); +%! unwind_protect +%! sphere (24); +%! hl = lightangle (45, 20); +%! assert (isgraphics (hl, "light")); +%! [az, el] = lightangle (hl); +%! assert ([45, 20], [az, el], -20*eps); +%! lightangle (hl, 90, 45); +%! [az, el] = lightangle (hl); +%! assert ([90, 45], [az, el], -20*eps); +%! pos = get (hl, "Position"); +%! assert ([1, 0, 1], pos, -20*eps); +%! hl = lightangle (gca (), 45, 20); +%! assert (isgraphics (hl, "light")); +%! unwind_protect_cleanup +%! close (hf); +%! end_unwind_protect + +## Test input validation +%!error <Invalid call> lightangle () +%!error <Invalid call> lightangle (1, 2, 3, 4) +%!error <Invalid call> [a, b] = lightangle (45, 30) +%!error <Invalid call> [a, b, c] = lightangle (45, 30) +%!error <HL must be a handle to a light object> lightangle (0) +%!error <H must be a handle to an axes or light object> lightangle (0, 90, 45) +%!error <AZ and EL must be numeric scalars> lightangle ([1 2], 0) +%!error <AZ and EL must be numeric scalars> lightangle ({1}, 0) +%!error <AZ and EL must be numeric scalars> lightangle (0, [1 2]) +%!error <AZ and EL must be numeric scalars> lightangle (0, {1})
--- a/scripts/plot/draw/module.mk Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/draw/module.mk Thu Jan 24 20:20:02 2019 +0000 @@ -54,6 +54,7 @@ %reldir%/isonormals.m \ %reldir%/isosurface.m \ %reldir%/light.m \ + %reldir%/lightangle.m \ %reldir%/line.m \ %reldir%/loglog.m \ %reldir%/loglogerr.m \
--- a/scripts/plot/draw/plotyy.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/draw/plotyy.m Thu Jan 24 20:20:02 2019 +0000 @@ -288,8 +288,9 @@ %! xlabel ("X"); %! ylabel (ax(1), "Axis 1"); %! ylabel (ax(2), "Axis 2"); -%! lcolor = get (gca, "ColorOrder")(1,:); -%! rcolor = get (gca, "ColorOrder")(2,:); +%! colororder = get (gca, "ColorOrder"); +%! lcolor = colororder(1,:); +%! rcolor = colororder(2,:); %! text (0.5, 0.5, "Left Axis", ... %! "color", lcolor, "horizontalalignment", "center", "parent", ax(1)); %! text (4.5, 80, "Right Axis", ...
--- a/scripts/plot/draw/polar.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/draw/polar.m Thu Jan 24 20:20:02 2019 +0000 @@ -335,7 +335,7 @@ lprops = {"linestyle", get(hax, "gridlinestyle"), ... "linewidth", get(hax, "linewidth"), ... - "color", get(hax, "xcolor")}; + "color", min(5.8167 * get(hax, "xcolor"), 1)}; ## "fontunits" should be first because it affects "fontsize" property. tprops(1:2:12) = {"fontunits", "fontangle", "fontname", "fontsize", ... "fontweight", "ticklabelinterpreter"};
--- a/scripts/plot/draw/private/__bar__.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/draw/private/__bar__.m Thu Jan 24 20:20:02 2019 +0000 @@ -220,7 +220,7 @@ else set (hax, "clim", [0 1], "ylimmode", "manual"); endif - set (hax, "box", "on"); + set (hax, "box", "on", "layer", "top"); endif unwind_protect_cleanup if (! isempty (oldfig))
--- a/scripts/plot/draw/private/__stem__.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/draw/private/__stem__.m Thu Jan 24 20:20:02 2019 +0000 @@ -173,9 +173,13 @@ set (h, args{:}); endif - if (! strcmp (hold_state, "add") && have_z) - set (hax, "view", [-37.5 30], - "xgrid", "on", "ygrid", "on", "zgrid", "on"); + if (! strcmp (hold_state, "add")) + if (! have_z) + set (hax, "box", "on"); + else + set (hax, "view", [-37.5 30], + "xgrid", "on", "ygrid", "on", "zgrid", "on"); + endif endif set (hax, "nextplot", hold_state);
--- a/scripts/plot/util/allchild.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/util/allchild.m Thu Jan 24 20:20:02 2019 +0000 @@ -48,8 +48,8 @@ endfunction -%!testif HAVE_OPENGL, HAVE_FLTK; have_window_system () && any (strcmp ("fltk", available_graphics_toolkits ())) -%! toolkit = graphics_toolkit ("fltk"); +%!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("qt", available_graphics_toolkits ())) +%! toolkit = graphics_toolkit ("qt"); %! hf = figure ("visible", "off"); %! unwind_protect %! l = line;
--- a/scripts/plot/util/copyobj.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/util/copyobj.m Thu Jan 24 20:20:02 2019 +0000 @@ -132,7 +132,7 @@ %! scrn = get (0, "screensize"); %! set (hobj, "position", [scrn(3)/2-pos(3)-10, scrn(4)/2-pos(4)/2, pos(3:4)]); %! drawnow (); -%! hnew = copyobj (hobj); +%! hnew = copyobj (hobj, groot); %! drawnow (); %! set (hnew, "name", "Copyobj"); %! drawnow (); @@ -162,7 +162,7 @@ %! scrn = get (0, "screensize"); %! set (hobj, "position", [scrn(3)/2-pos(3)-10, scrn(4)/2-pos(4)/2, pos(3:4)]); %! drawnow (); -%! hnew = copyobj (hobj); +%! hnew = copyobj (hobj, groot); %! drawnow (); %! set (hnew, "name", "Copyobj"); %! drawnow (); @@ -179,8 +179,9 @@ %! xlabel ("X"); %! ylabel (ax(1), "Axis 1"); %! ylabel (ax(2), "Axis 2"); -%! lcolor = get (gca, "ColorOrder")(1,:); -%! rcolor = get (gca, "ColorOrder")(2,:); +%! colororder = get (gca, "ColorOrder"); +%! lcolor = colororder(1,:); +%! rcolor = colororder(2,:); %! text (0.5, 0.5, "Left Axis", ... %! "color", lcolor, "horizontalalignment", "center", "parent", ax(1)); %! text (4.5, 80, "Right Axis", ... @@ -191,7 +192,7 @@ %! scrn = get (0, "screensize"); %! set (hobj, "position", [scrn(3)/2-pos(3)-10, scrn(4)/2-pos(4)/2, pos(3:4)]); %! drawnow (); -%! hnew = copyobj (hobj); +%! hnew = copyobj (hobj, groot); %! drawnow (); %! set (hnew, "name", "Copyobj"); %! drawnow ();
--- a/scripts/plot/util/findall.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/util/findall.m Thu Jan 24 20:20:02 2019 +0000 @@ -50,8 +50,8 @@ endfunction -%!testif HAVE_OPENGL, HAVE_FLTK; have_window_system () && any (strcmp ("fltk", available_graphics_toolkits ())) -%! toolkit = graphics_toolkit ("fltk"); +%!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("qt", available_graphics_toolkits ())) +%! toolkit = graphics_toolkit ("qt"); %! hf = figure ("visible", "off"); %! unwind_protect %! h = findall (hf);
--- a/scripts/plot/util/graphics_toolkit.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/plot/util/graphics_toolkit.m Thu Jan 24 20:20:02 2019 +0000 @@ -102,23 +102,22 @@ endfunction - -%!testif HAVE_OPENGL, HAVE_FLTK; have_window_system () && any (strcmp ("fltk", available_graphics_toolkits ())) +%!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("qt", available_graphics_toolkits ())) %! unwind_protect %! hf = figure ("visible", "off"); %! toolkit = graphics_toolkit (); %! assert (get (0, "defaultfigure__graphics_toolkit__"), toolkit); -%! graphics_toolkit (hf, "fltk"); -%! assert (graphics_toolkit (hf), "fltk"); +%! graphics_toolkit (hf, "qt"); +%! assert (graphics_toolkit (hf), "qt"); %! unwind_protect_cleanup %! close (hf); %! end_unwind_protect -%!testif HAVE_OPENGL, HAVE_FLTK; have_window_system () && any (strcmp ("gnuplot", available_graphics_toolkits ())) && any (strcmp ("fltk", available_graphics_toolkits ())) +%!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("gnuplot", available_graphics_toolkits ())) && any (strcmp ("qt", available_graphics_toolkits ())) %! old_toolkit = graphics_toolkit (); %! switch (old_toolkit) %! case {"gnuplot"} -%! new_toolkit = "fltk"; +%! new_toolkit = "qt"; %! otherwise %! new_toolkit = "gnuplot"; %! endswitch
--- a/scripts/statistics/kurtosis.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/statistics/kurtosis.m Thu Jan 24 20:20:02 2019 +0000 @@ -153,9 +153,8 @@ %!assert (kurtosis (single ([1:5 10])), single (2.9786513), eps ("single")) %!assert (kurtosis (single ([1 2]), 0), single (NaN)) -## Verify no "divide-by-zero" warnings +## Verify no warnings %!test -%! warning ("on", "Octave:divide-by-zero", "local"); %! lastwarn (""); # clear last warning %! kurtosis (1); %! assert (lastwarn (), "");
--- a/scripts/statistics/mean.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/statistics/mean.m Thu Jan 24 20:20:02 2019 +0000 @@ -142,10 +142,6 @@ 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/statistics/skewness.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/statistics/skewness.m Thu Jan 24 20:20:02 2019 +0000 @@ -152,9 +152,8 @@ %!assert (skewness (single ([1:5 10])), single (1.0513283), eps ("single")) %!assert (skewness (single ([1 2]), 0), single (NaN)) -## Verify no "divide-by-zero" warnings +## Verify no warnings %!test -%! warning ("on", "Octave:divide-by-zero", "local"); %! lastwarn (""); # clear last warning %! skewness (1); %! assert (lastwarn (), "");
--- a/scripts/testfun/assert.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/testfun/assert.m Thu Jan 24 20:20:02 2019 +0000 @@ -225,7 +225,7 @@ err.observed{end+1} = "O"; err.expected{end+1} = "E"; err.reason{end+1} = ["Class " class(cond) " != " class(expected)]; - elseif (isnumeric (cond)) + elseif (isnumeric (cond) || islogical (cond)) if (issparse (cond) != issparse (expected)) err.index{end+1} = "()"; err.observed{end+1} = "O";
--- a/scripts/testfun/private/dump_demos.m Thu Jan 24 19:22:18 2019 +0000 +++ b/scripts/testfun/private/dump_demos.m Thu Jan 24 20:20:02 2019 +0000 @@ -76,13 +76,79 @@ fprintf (fid, "%% DO NOT EDIT! Generated automatically by dump_demos.m\n"); fprintf (fid, "function %s ()\n", funcname); fprintf (fid, "set (0, 'DefaultAxesColorOrder', ...\n"); - fprintf (fid, " [ 0.00000 0.00000 1.00000 ;\n"); - fprintf (fid, " 0.00000 0.50000 0.00000 ;\n"); - fprintf (fid, " 1.00000 0.00000 0.00000 ;\n"); - fprintf (fid, " 0.00000 0.75000 0.75000 ;\n"); - fprintf (fid, " 0.75000 0.00000 0.75000 ;\n"); - fprintf (fid, " 0.75000 0.75000 0.00000 ;\n"); - fprintf (fid, " 0.25000 0.25000 0.25000 ]);\n"); + fprintf (fid, " [ 0.00000 0.44700 0.74100 ;\n"); + fprintf (fid, " 0.85000 0.32500 0.09800 ;\n"); + fprintf (fid, " 0.92900 0.69400 0.12500 ;\n"); + fprintf (fid, " 0.49400 0.18400 0.55600 ;\n"); + fprintf (fid, " 0.46600 0.67400 0.18800 ;\n"); + fprintf (fid, " 0.30100 0.74500 0.93300 ;\n"); + fprintf (fid, " 0.63500 0.07800 0.18400 ]);\n"); + fprintf (fid, "set (0, 'DefaultFigureColorMap', ...\n"); + fprintf (fid, " [ 0.2670040 0.0048743 0.3294152 ;\n"); + fprintf (fid, " 0.2726517 0.0258457 0.3533673 ;\n"); + fprintf (fid, " 0.2771063 0.0509139 0.3762361 ;\n"); + fprintf (fid, " 0.2803562 0.0742015 0.3979015 ;\n"); + fprintf (fid, " 0.2823900 0.0959536 0.4182508 ;\n"); + fprintf (fid, " 0.2832046 0.1168933 0.4371789 ;\n"); + fprintf (fid, " 0.2828093 0.1373502 0.4545959 ;\n"); + fprintf (fid, " 0.2812308 0.1574799 0.4704339 ;\n"); + fprintf (fid, " 0.2785162 0.1773480 0.4846539 ;\n"); + fprintf (fid, " 0.2747355 0.1969692 0.4972505 ;\n"); + fprintf (fid, " 0.2699818 0.2163303 0.5082545 ;\n"); + fprintf (fid, " 0.2643686 0.2354047 0.5177319 ;\n"); + fprintf (fid, " 0.2580262 0.2541617 0.5257802 ;\n"); + fprintf (fid, " 0.2510987 0.2725732 0.5325222 ;\n"); + fprintf (fid, " 0.2437329 0.2906195 0.5380971 ;\n"); + fprintf (fid, " 0.2360733 0.3082910 0.5426518 ;\n"); + fprintf (fid, " 0.2282632 0.3255865 0.5463354 ;\n"); + fprintf (fid, " 0.2204250 0.3425172 0.5492871 ;\n"); + fprintf (fid, " 0.2126666 0.3591022 0.5516350 ;\n"); + fprintf (fid, " 0.2050791 0.3753661 0.5534932 ;\n"); + fprintf (fid, " 0.1977219 0.3913409 0.5549535 ;\n"); + fprintf (fid, " 0.1906314 0.4070615 0.5560891 ;\n"); + fprintf (fid, " 0.1838194 0.4225638 0.5569522 ;\n"); + fprintf (fid, " 0.1772724 0.4378855 0.5575761 ;\n"); + fprintf (fid, " 0.1709575 0.4530630 0.5579740 ;\n"); + fprintf (fid, " 0.1648329 0.4681295 0.5581427 ;\n"); + fprintf (fid, " 0.1588454 0.4831171 0.5580587 ;\n"); + fprintf (fid, " 0.1529512 0.4980530 0.5576847 ;\n"); + fprintf (fid, " 0.1471316 0.5129595 0.5569733 ;\n"); + fprintf (fid, " 0.1414022 0.5278543 0.5558645 ;\n"); + fprintf (fid, " 0.1358330 0.5427501 0.5542887 ;\n"); + fprintf (fid, " 0.1305821 0.5576525 0.5521757 ;\n"); + fprintf (fid, " 0.1258984 0.5725631 0.5494454 ;\n"); + fprintf (fid, " 0.1221631 0.5874763 0.5460234 ;\n"); + fprintf (fid, " 0.1198724 0.6023824 0.5418306 ;\n"); + fprintf (fid, " 0.1196266 0.6172658 0.5367956 ;\n"); + fprintf (fid, " 0.1220459 0.6321070 0.5308480 ;\n"); + fprintf (fid, " 0.1276677 0.6468818 0.5239242 ;\n"); + fprintf (fid, " 0.1368349 0.6615629 0.5159668 ;\n"); + fprintf (fid, " 0.1496433 0.6761197 0.5069243 ;\n"); + fprintf (fid, " 0.1659673 0.6905190 0.4967519 ;\n"); + fprintf (fid, " 0.1855384 0.7047252 0.4854121 ;\n"); + fprintf (fid, " 0.2080305 0.7187010 0.4728733 ;\n"); + fprintf (fid, " 0.2331273 0.7324064 0.4591059 ;\n"); + fprintf (fid, " 0.2605315 0.7458020 0.4440959 ;\n"); + fprintf (fid, " 0.2900007 0.7588465 0.4278259 ;\n"); + fprintf (fid, " 0.3213300 0.7714979 0.4102927 ;\n"); + fprintf (fid, " 0.3543553 0.7837140 0.3914876 ;\n"); + fprintf (fid, " 0.3889303 0.7954531 0.3714207 ;\n"); + fprintf (fid, " 0.4249331 0.8066739 0.3500988 ;\n"); + fprintf (fid, " 0.4622468 0.8173376 0.3275447 ;\n"); + fprintf (fid, " 0.5007536 0.8274091 0.3037990 ;\n"); + fprintf (fid, " 0.5403370 0.8368582 0.2789167 ;\n"); + fprintf (fid, " 0.5808612 0.8456634 0.2530009 ;\n"); + fprintf (fid, " 0.6221708 0.8538156 0.2262237 ;\n"); + fprintf (fid, " 0.6640873 0.8613210 0.1988794 ;\n"); + fprintf (fid, " 0.7064038 0.8682063 0.1714949 ;\n"); + fprintf (fid, " 0.7488853 0.8745222 0.1450376 ;\n"); + fprintf (fid, " 0.7912731 0.8803462 0.1212910 ;\n"); + fprintf (fid, " 0.8333021 0.8857801 0.1033262 ;\n"); + fprintf (fid, " 0.8747175 0.8909453 0.0953508 ;\n"); + fprintf (fid, " 0.9152963 0.8959735 0.1004700 ;\n"); + fprintf (fid, " 0.9548396 0.9010058 0.1178764 ;\n"); + fprintf (fid, " 0.9932479 0.9061566 0.1439362 ]);\n"); + fprintf (fid, "close all\n"); fprintf (fid, "more off\n"); fprintf (fid, "diary diary.log\n");
--- a/test/deprecate-props.tst Thu Jan 24 19:22:18 2019 +0000 +++ b/test/deprecate-props.tst Thu Jan 24 20:20:02 2019 +0000 @@ -31,62 +31,24 @@ %! endif %!endfunction -## annotation rectangle "edgecolor" deprecated in 4.4, remove from version 6. -%!test -%! hf = figure ("visible", "off"); -%! unwind_protect -%! ha = annotation ("rectangle"); -%! testprop (ha, "edgecolor", "6.0"); -%! unwind_protect_cleanup -%! close (hf); -%! end_unwind_protect - -## figure "doublebuffer, mincolormap, wvisual, wvisualmode, xdisplay, -## xvisual, xvisualmode" deprecated in 4.4, remove from version 6. -%!test -%! hf = figure ("visible", "off"); -%! unwind_protect -%! testprop (hf, "doublebuffer", "6.0"); -%! testprop (hf, "mincolormap", "6.0"); -%! testprop (hf, "wvisual", "6.0"); -%! testprop (hf, "wvisualmode", "6.0"); -%! testprop (hf, "xdisplay", "6.0"); -%! testprop (hf, "xvisual", "6.0"); -%! testprop (hf, "xvisualmode", "6.0"); -%! unwind_protect_cleanup -%! close (hf) -%! end_unwind_protect - -## axes "drawmode" deprecated in 4.4, remove from version 6. -%!test -%! hf = figure ("visible", "off"); -%! unwind_protect -%! hax = axes (); -%! testprop (hax, "drawmode", "6.0"); -%! unwind_protect_cleanup -%! close (hf); -%! end_unwind_protect - -## text/uicontrol/uipanel/uibuttongroup "demi" and "light" values for -## "fontweight" property are deprecated in 4.4, remove from version 6: -## * remove "demi" and "light" options in graphics.in.h, -## QtHandlesUtils.cc and ft-text-renderer.cc -## * remove warnings from update_fontweight in graphics.in.h +## text/uicontrol/uipanel/uibuttongroup/uitable "oblique" value for +## "fontangle" property was deprecated in 5.0, remove from version 7: +## * remove "oblique" options in graphics.in.h, QtHandlesUtils.cc, +## and ft-text-renderer.cc +## * remove warnings from update_fontangle in graphics.in.h %!test %! hf = figure ("visible", "off"); %! unwind_protect %! ht = text (); -%! testprop (ht, "fontweight", "6.0", "demi"); -%! testprop (ht, "fontweight", "6.0", "light"); +%! testprop (ht, "fontangle", "7.0", "oblique"); %! hui = uicontrol (); -%! testprop (hui, "fontweight", "6.0", "demi"); -%! testprop (hui, "fontweight", "6.0", "light"); +%! testprop (hui, "fontangle", "7.0", "oblique"); %! hui = uipanel (); -%! testprop (hui, "fontweight", "6.0", "demi"); -%! testprop (hui, "fontweight", "6.0", "light"); +%! testprop (hui, "fontangle", "7.0", "oblique"); %! hui = uibuttongroup (); -%! testprop (hui, "fontweight", "6.0", "demi"); -%! testprop (hui, "fontweight", "6.0", "light"); +%! testprop (hui, "fontangle", "7.0", "oblique"); +%! hui = uitable (); +%! testprop (hui, "fontangle", "7.0", "oblique"); %! unwind_protect_cleanup %! close (hf); %! end_unwind_protect
--- a/test/jit.tst Thu Jan 24 19:22:18 2019 +0000 +++ b/test/jit.tst Thu Jan 24 20:20:02 2019 +0000 @@ -377,15 +377,11 @@ %! assert (jit_failcnt, 0); %!function test_divide () -%! state = warning ("query", "Octave:divide-by-zero").state; %! unwind_protect -%! warning ("error", "Octave:divide-by-zero"); %! for i=1:1e5 %! a = 1; %! a / 0; %! endfor -%! unwind_protect_cleanup -%! warning (state, "Octave:divide-by-zero"); %! end_unwind_protect %!endfunction
--- a/test/mk-sparse-tst.sh Thu Jan 24 19:22:18 2019 +0000 +++ b/test/mk-sparse-tst.sh Thu Jan 24 20:20:02 2019 +0000 @@ -209,12 +209,7 @@ %!assert (nnz (sparse (1,1,0)), 0) %!assert (nnz (sparse (eye (3))*0), 0) %!assert (nnz (sparse (eye (3))-sparse (eye (3))), 0) - -%!test -%! wdbz = warning ("query", "Octave:divide-by-zero"); -%! warning ("off", "Octave:divide-by-zero"); -%! assert (full (sparse (eye (3))/0), full (eye (3)/0)); -%! warning (wdbz.state, "Octave:divide-by-zero"); +%!assert (full (sparse (eye (3))/0), full (eye (3)/0)); EOF }
--- a/test/prefer.tst Thu Jan 24 19:22:18 2019 +0000 +++ b/test/prefer.tst Thu Jan 24 20:20:02 2019 +0000 @@ -176,15 +176,9 @@ %! warning (watv.state, "Octave:assign-as-truth-value"); %!test -%! wdbz = warning ("query", "Octave:divide-by-zero"); -%! warning ("off", "Octave:divide-by-zero"); %! assert (isinf (1/0)); -%! warning (wdbz.state, "Octave:divide-by-zero"); %!test -%! wdbz = warning ("query", "Octave:divide-by-zero"); -%! warning ("on", "Octave:divide-by-zero"); %! a = 1; %! b = 0; -%! fail ("isinf (a/b);", "warning", "division by zero"); -%! warning (wdbz.state, "Octave:divide-by-zero"); +%! assert (isinf (a/b));