Mercurial > octave
changeset 32490:2786051c63ea
maint: merge stable to default
author | Rik <rik@octave.org> |
---|---|
date | Thu, 23 Nov 2023 20:32:23 -0800 |
parents | 3531e4090f94 (current diff) a4506463f341 (diff) |
children | 65c1e3224aed ad20ce558d48 |
files | |
diffstat | 30 files changed, 162 insertions(+), 135 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/interpreter/container.txi Thu Nov 23 17:08:50 2023 -0800 +++ b/doc/interpreter/container.txi Thu Nov 23 20:32:23 2023 -0800 @@ -949,9 +949,8 @@ @cindex cs-lists Comma-separated lists @footnote{Comma-separated lists are also sometimes -informally referred to as @dfn{cs-lists}.} are the basic argument type -to all Octave functions - both for input and return arguments. In the -example +referred to as @dfn{cs-lists}.} are the basic argument type to all Octave +functions---both for input and return arguments. In the example @example max (@var{a}, @var{b}) @@ -971,14 +970,13 @@ @noindent Here, @samp{@var{x}, 2, "last"} is a comma-separated list constituting -the input arguments of @code{find}. @code{find} returns a comma -separated list of output arguments which is assigned element by -element to the comma-separated list @samp{@var{i}, @var{j}}. +the input arguments of @code{find}. @code{find} returns a comma-separated list +of output arguments which is assigned element by element to the comma-separated +list @samp{@var{i}, @var{j}}. -Another example of where comma-separated lists are used is in the -creation of a new array with @code{[]} (@pxref{Matrices}) or the -creation of a cell array with @code{@{@}} (@pxref{Basic Usage of Cell -Arrays}). In the expressions +Another example of where comma-separated lists are used is in the creation of a +new array with @code{[]} (@pxref{Matrices}) or the creation of a cell array +with @code{@{@}} (@pxref{Basic Usage of Cell Arrays}). In the expressions @example @group
--- a/doc/interpreter/expr.txi Thu Nov 23 17:08:50 2023 -0800 +++ b/doc/interpreter/expr.txi Thu Nov 23 20:32:23 2023 -0800 @@ -145,6 +145,7 @@ @end example The shape rules for @var{A}(@var{P}) are: + @itemize @bullet @item When at least one of @var{A} or @var{P} has two or more dimensions, then @var{A}(@var{P}) takes the shape of @var{P}. This happens when at least one @@ -1103,28 +1104,28 @@ @var{boolean1} is not a logical value, it is considered true if its value is nonzero, and false if its value is zero. If @var{boolean1} is an array, it is considered true only if it is non-empty and all elements are -non-zero. If @var{boolean1} evaluates to false, the result of the overall +nonzero. If @var{boolean1} evaluates to false, the result of the overall expression is false. If it is true, the expression @var{boolean2} is -evaluated in the same way as @var{boolean1}. If it is true, the result of +evaluated in the same way as @var{boolean1}. If it is true, the result of the overall expression is true. Otherwise the result of the overall expression is false. @strong{Warning:} the one exception to the equivalence with evaluating @code{all (@var{boolean1}(:))} is when @code{boolean1} an the empty array. -For @sc{MATLAB} compatibility, the truth value of an empty array is always +For @sc{matlab} compatibility, the truth value of an empty array is always @code{false} so @code{[] && true} evaluates to @code{false} even though @code{all ([])} is @code{true}. @item @var{boolean1} || @var{boolean2} @opindex || The expression @var{boolean1} is evaluated and converted to a scalar using -the equivalent of the operation @code{all (@var{boolean1}(:))}. If +the equivalent of the operation @code{all (@var{boolean1}(:))}. If @var{boolean1} is not a logical value, it is considered true if its value is nonzero, and false if its value is zero. If @var{boolean1} is an array, it is considered true only if it is non-empty and all elements are -non-zero. If @var{boolean1} evaluates to true, the result of the overall +nonzero. If @var{boolean1} evaluates to true, the result of the overall expression is true. If it is false, the expression @var{boolean2} is -evaluated in the same way as @var{boolean1}. If it is true, the result of +evaluated in the same way as @var{boolean1}. If it is true, the result of the overall expression is true. Otherwise the result of the overall expression is false.
--- a/doc/interpreter/func.txi Thu Nov 23 17:08:50 2023 -0800 +++ b/doc/interpreter/func.txi Thu Nov 23 20:32:23 2023 -0800 @@ -1987,9 +1987,11 @@ use function syntax. For example, all three of the statements @example +@group arg1 - arg2 arg1 -arg2 arg1-arg2 +@end group @end example @noindent @@ -1997,7 +1999,7 @@ @code{arg1} and @code{arg2}. The first two, however, could also have been meant as a command syntax call to function @code{arg1}, in the first case with options @code{-} and @code{arg2}, and in the second case with option -@code{-arg2}. +@option{-arg2}. Octave uses whitespace to interpret such expressions according to the following rules: @@ -2013,10 +2015,13 @@ @item Statements without any whitespace are always treated as function syntax: + @example +@group arg1+arg2 arg1&&arg2||arg3 arg1+=arg2*arg3 +@end group @end example @item @@ -2024,20 +2029,26 @@ I, j, J, e, NaN, or Inf) followed by a binary operator, the statement is treated as function syntax regardless of any whitespace or what follows the second symbol: + @example +@group 7 -arg2 pi+ arg2 j * arg2 -arg3 +@end group @end example @item If the first symbol is a function or variable and there is no whitespace separating the operator and the second symbol, the statement is treated as command syntax: + @example +@group arg1 -arg2 arg1 &&arg2 ||arg3 arg1 +=arg2*arg3 +@end group @end example @item @@ -2045,11 +2056,11 @@ as function syntax. @end itemize -Note 1: If a special-valued named constant has been redefined as a +Note 1: If a special-valued named constant has been redefined as a variable, the interpreter will still process the statement with function syntax. -Note 2: Attempting to use a variable as @code{arg1} in a command being +Note 2: Attempting to use a variable as @code{arg1} in a command being processed as command syntax will result in an error.
--- a/doc/interpreter/numbers.txi Thu Nov 23 17:08:50 2023 -0800 +++ b/doc/interpreter/numbers.txi Thu Nov 23 20:32:23 2023 -0800 @@ -435,9 +435,11 @@ in some contexts. For example: @example +@group ## x is some predefined range or vector or matrix or array x(1:2:end) += 1; # increment all odd-numbered elements x(2:2:end) -= 1; # decrement all even-numbered elements +@end group @end example The above code works correctly whether @var{x} has an odd number of elements @@ -448,9 +450,11 @@ in pitfalls like these: @example +@group a = -2 b = (0.3 - 0.2 - 0.1) x = a : b +@end group @end example Due to floating point rounding, @var{b} may or may not equal zero exactly, @@ -458,10 +462,13 @@ @var{x} may or may not include zero as its final value. Similarly: @example +@group x = 1.80 : 0.05 : 1.90 y = 1.85 : 0.05 : 1.90 +@end group @end example +@noindent is not as predictable as it looks. As of Octave 8.3, the results obtained are that @var{x} has three elements (1.80, 1.85, and 1.90), and @var{y} has only one element (1.85 but not 1.90). Thus, when using floating points in ranges, @@ -469,23 +476,27 @@ though the ending value was not touched in the above example. To avoid such pitfalls with floating-points in ranges, you should use one of -the following patterns. This change to the previous code: +the following patterns. This change to the previous code: @example +@group x = (0:2) * 0.05 + 1.80 y = (0:1) * 0.05 + 1.85 +@end group @end example +@noindent makes it much safer and much more repeatable across platforms, compilers, and compiler settings. If you know the number of elements, you can also use the @code{linspace} function (@pxref{Special Utility Matrices}), which will include the endpoints of a range. You can also make judicious use of -@code{round}, @code{floor}, @code{ceil}, @code{fix}, etc to set the +@code{round}, @code{floor}, @code{ceil}, @code{fix}, etc.@: to set the limits and the increment without getting interference from floating-point rounding. For example, the earlier example can be made safer and much more repeatable with one of the following: @example +@group a = -2 b = round ((0.3 - 0.2 - 0.1) * 1e12) / 1e12 # rounds to 12 digits c = floor (0.3 - 0.2 - 0.1) # floors as integer @@ -493,6 +504,7 @@ x = a : b y = a : c z = a : d +@end group @end example When adding a scalar to a range, subtracting a scalar from it (or subtracting a
--- a/doc/interpreter/octave.texi Thu Nov 23 17:08:50 2023 -0800 +++ b/doc/interpreter/octave.texi Thu Nov 23 20:32:23 2023 -0800 @@ -625,7 +625,7 @@ Graphics Toolkits * Customizing Toolkit Behavior:: -* Hardware vs Software Rendering:: +* Hardware vs. Software Rendering:: * Precision issues:: Matrix Manipulation
--- a/doc/interpreter/plot.txi Thu Nov 23 17:08:50 2023 -0800 +++ b/doc/interpreter/plot.txi Thu Nov 23 20:32:23 2023 -0800 @@ -2764,7 +2764,7 @@ @menu * Customizing Toolkit Behavior:: -* Hardware vs Software Rendering:: +* Hardware vs. Software Rendering:: * Precision issues:: @end menu @@ -2794,8 +2794,8 @@ @end group @end example -@node Hardware vs Software Rendering -@subsubsection Hardware vs Software Rendering +@node Hardware vs. Software Rendering +@subsubsection Hardware vs. Software Rendering @cindex opengl rendering slow windows When using the Octave for Windows installer, the user has the option to select @@ -2804,7 +2804,7 @@ (@qcode{"qt"} and @qcode{"fltk"}). Software rendering can be used to avoid rendering and printing issues due to imperfect OpenGL driver implementations for diverse graphic cards from different vendors (notably integrated Intel -graphics). As a down-side, software rendering might be considerably slower +graphics). As a downside, software rendering might be considerably slower than hardware accelerated rendering (and it might not work correctly on 32-bit platforms or WoW64). To permanently switch between hardware accelerated rendering with your graphics card drivers and software rendering, use the @@ -2813,7 +2813,7 @@ @file{@var{octave-home}\bin\opengl32.dll} @*where @var{octave-home} is the directory returned by -@ref{XREFOCTAVE_HOME, , @w{@qcode{OCTAVE_HOME}}}, i.e., the directory in which +@ref{XREFOCTAVE_HOME, , @w{@code{OCTAVE_HOME}}}, i.e., the directory in which Octave is installed (the default is @file{C:\Program Files\GNU Octave\Octave\Octave-@var{version}\mingw64}). Change the file extension to @file{.bak} for hardware rendering or to
--- a/doc/interpreter/sparse.txi Thu Nov 23 17:08:50 2023 -0800 +++ b/doc/interpreter/sparse.txi Thu Nov 23 20:32:23 2023 -0800 @@ -150,9 +150,9 @@ Note that this is the representation of these elements with the first row and column assumed to start at zero, while in Octave itself the row and -column indexing starts at one. Thus the number of elements in the -@var{i}-th column is given by @code{@var{cidx} (@var{i} + 1) - -@var{cidx} (@var{i})}. +column indexing starts at one. Thus, the number of elements in the +@var{i}-th column is given by +@code{@var{cidx} (@var{i} + 1) - @var{cidx} (@var{i})}. Although Octave uses a compressed column format, it should be noted that compressed row formats are equally possible. However, in the
--- a/doc/interpreter/vectorize.txi Thu Nov 23 17:08:50 2023 -0800 +++ b/doc/interpreter/vectorize.txi Thu Nov 23 20:32:23 2023 -0800 @@ -344,8 +344,8 @@ A special case of broadcasting that may be familiar is when all dimensions of the array being broadcast are 1, i.e., the array is a -scalar. Thus for example, operations like @code{x - 42} and @code{max -(x, 2)} are basic examples of broadcasting. +scalar. Thus, for example, operations like @code{x - 42} and +@code{max (x, 2)} are basic examples of broadcasting. For a higher-dimensional example, suppose @code{img} is an RGB image of size @code{[m n 3]} and we wish to multiply each color by a different
--- a/libinterp/corefcn/compile.cc Thu Nov 23 17:08:50 2023 -0800 +++ b/libinterp/corefcn/compile.cc Thu Nov 23 20:32:23 2023 -0800 @@ -47,13 +47,13 @@ DEFUN (__dummy_mark_1__, , , doc: /* -*- texinfo -*- -@deftypefn {} {} __dummy_mark_1__ () +@deftypefn {} {} __dummy_mark_1__ () -Dummy function that calls the c-function void dummy_mark_1 (void) +Dummy function that calls the C-function @code{void dummy_mark_1 (void)} that does nothing. -Usefull for e.g. marking start and end for Callgrind analyzis -or as an entry point for gdb. +This is useful for marking start and end for Callgrind analysis or as an entry +point for @code{gdb}. @end deftypefn */) { @@ -64,13 +64,13 @@ DEFUN (__dummy_mark_2__, , , doc: /* -*- texinfo -*- -@deftypefn {} {} __dummy_mark_2__ () +@deftypefn {} {} __dummy_mark_2__ () -Dummy function that calls the c-function void dummy_mark_2 (void) +Dummy function that calls the C-function @code{void dummy_mark_2 (void)} that does nothing. -Usefull for e.g. marking start and end for Callgrind analyzis -or as an entry point for gdb. +This is useful for marking start and end for Callgrind analysis or as an entry +point for @code{gdb}. @end deftypefn */) { @@ -81,7 +81,7 @@ DEFUN (__vm_clear_cache__, , , doc: /* -*- texinfo -*- -@deftypefn {} {@var{val} =} __vm_clear_cache__ () +@deftypefn {} {@var{val} =} __vm_clear_cache__ () Internal function. @@ -94,16 +94,18 @@ DEFUN (__vm_print_trace__, , , doc: /* -*- texinfo -*- -@deftypefn {} {@var{prints_trace} =} __vm_print_trace__ ()) +@deftypefn {} {@var{print_trace} =} __vm_print_trace__ ()) Internal function. -Print a debug trace from the VM. Toggles on or off each call. +Print a debug trace from the VM@. + +Toggles on or off each call. -There has to be a breakpoint set in some file for the trace -to actually print anything. +There has to be a breakpoint set in some file for the trace to actually print +anything. -Returns true if a trace will be printed from now on, false otherwise. +The return value is true if a trace will be printed and false otherwise. @end deftypefn */) { @@ -114,11 +116,11 @@ DEFUN (__ref_count__, args, , doc: /* -*- texinfo -*- -@deftypefn {} {@var{count} =} __ref_count__ (@var{obj})) +@deftypefn {} {@var{count} =} __ref_count__ (@var{obj})) Internal function. -Returns reference count for an object. +Return the reference count for an object. @end deftypefn */) { @@ -134,13 +136,12 @@ DEFMETHOD (__vm_is_executing__, interp, , , doc: /* -*- texinfo -*- -@deftypefn {} {@var{is_executing} =} __vm_is_executing__ ()) +@deftypefn {} {@var{is_executing} =} __vm_is_executing__ ()) Internal function. -Returns true if the VM is executing the function calling __vm_is_executing__ (). - -False otherwise. +Return true if the VM is executing the function calling +@code{__vm_is_executing__ ()}, and false otherwise. @end deftypefn */) { @@ -172,27 +173,28 @@ @table @code @item __vm_profile__ on -Start the profiler, clearing all previously collected data if there is any. +Start the profiler. Any previously collected data is cleared. @item __vm_profile__ off -Stop profiling. The collected data can later be retrieved and examined -with @code{T = profile ("info")}. +Stop profiling. The collected data can be retrieved and examined with +@code{T = profile ("info")}. @item __vm_profile__ clear Clear all collected profiler data. @item __vm_profile__ resume -Restart profiling without clearing the old data. All newly collected +Restart profiling without clearing existing data. All newly collected statistics are added to the existing ones. @item __vm_profile__ -Toggles between profiling and printing the result of the profiler. +Toggle between profiling and printing the result of the profiler. Clears the profiler on each print. @item __vm_profile__ info -Prints the profiler data. +Print the profiler data. -Not that output to a variable is not implemented yet. +Programming Note: The calling form that returns profiler data in a variable +is not implemented yet. @end table @@ -273,7 +275,7 @@ DEFMETHOD (__vm_print_bytecode__, interp, args, , doc: /* -*- texinfo -*- @deftypefn {} {@var{success} =} __vm_print_bytecode__ (@var{fn_name})) -@deftypefnx {} {@var{success} =} __vm_print_bytecode__ (@var{fn_handle})) +@deftypefnx {} {@var{success} =} __vm_print_bytecode__ (@var{fn_handle})) Internal function. @@ -348,7 +350,7 @@ DEFMETHOD (__vm_is_compiled__, interp, args, , doc: /* -*- texinfo -*- @deftypefn {} {@var{is_compiled} =} __vm_is_compiled__ (@var{fn_name}) -@deftypefnx {} {@var{is_compiled} =} __vm_is_compiled__ (@var{fn_handle}) +@deftypefnx {} {@var{is_compiled} =} __vm_is_compiled__ (@var{fn_handle}) Internal function. @@ -412,8 +414,8 @@ DEFMETHOD (__vm_compile__, interp, args, , doc: /* -*- texinfo -*- @deftypefn {} {@var{success} =} __vm_compile__ (@var{fn_name}) -@deftypefnx {} {@var{success} =} __vm_compile__ (@var{fn_name}, "clear") -@deftypefnx {} {@var{success} =} __vm_compile__ (@var{fn_name}, "print") +@deftypefnx {} {@var{success} =} __vm_compile__ (@var{fn_name}, "clear") +@deftypefnx {} {@var{success} =} __vm_compile__ (@var{fn_name}, "print") Internal function. @@ -567,27 +569,25 @@ @deftypefn {} {@var{val} =} __vm_enable__ () @deftypefnx {} {@var{old_val} =} __vm_enable__ (@var{new_val}) @deftypefnx {} {@var{old_val} =} __vm_enable__ (@var{new_val}, "local") -Query or set whether Octave automatically compiles functions to bytecode -and executes them in a virtual machine (VM). +Query or set the internal variable that determines whether Octave automatically +compiles functions to bytecode and executes them in a virtual machine (VM). -Note that the virtual machine feature is experimental. +@strong{Warning:} The virtual machine feature is experimental. -The default value is currently false, while the VM is still experimental. -Users need to explicitly call @code{__vm_enable__ (1)} to enable it. +The default value is false while the VM is still experimental. +Users must explicitly call @code{__vm_enable__ (1)} to use it. -When false, Octave uses a traditional tree walker -to evaluate statements parsed from m-code. When true, Octave translates parsed -statements to an intermediate representation that is then evaluated by a -virtual machine. +When false, Octave uses a traditional tree walker to evaluate statements parsed +from m-code. When true, Octave translates parsed statements to an intermediate +representation that is then evaluated by a virtual machine. When called from inside a function with the @qcode{"local"} option, the setting is changed locally for the function and any subroutines it calls. The original setting is restored when exiting the function. -Once compiled to bytecode, the function will always be evaluated by the -VM no matter the state of @qcode{"__vm_enable__"}, until the bytecode is -cleared, by e.g. @qcode{"clear all"} or an modification to the -function's m-file. +Once compiled to bytecode, the function will always be evaluated by the VM +regardless of the state of @code{__vm_enable__}, until the bytecode is cleared +by, e.g., @qcode{"clear all"}, or a modification to the function's m-file. @seealso{__vm_compile__}
--- a/libinterp/corefcn/graphics.cc Thu Nov 23 17:08:50 2023 -0800 +++ b/libinterp/corefcn/graphics.cc Thu Nov 23 20:32:23 2023 -0800 @@ -12134,6 +12134,7 @@ set (h, props); @end group @end example + @end itemize The three syntaxes for setting properties may appear in any combination.
--- a/libinterp/corefcn/input.cc Thu Nov 23 17:08:50 2023 -0800 +++ b/libinterp/corefcn/input.cc Thu Nov 23 20:32:23 2023 -0800 @@ -1577,7 +1577,7 @@ @deftypefnx {} {@var{old_encoding} =} mfile_encoding (@var{new_encoding}) Query or set the encoding that is used for reading m-files. -The input and output are strings naming an encoding, e.g., "utf-8". +The input and output are strings naming an encoding, e.g., @qcode{"utf-8"}. This encoding is used by Octave's parser when reading m-files unless a different encoding was set for a specific directory containing m-files using
--- a/libinterp/corefcn/pr-output.cc Thu Nov 23 17:08:50 2023 -0800 +++ b/libinterp/corefcn/pr-output.cc Thu Nov 23 20:32:23 2023 -0800 @@ -3936,6 +3936,7 @@ @end group @end example +@noindent where spaces have been added for clarity to show the sign bit, the 11-bit exponent, and the 52-bit mantissa, in that order. Together they represent @code{pi} as an IEEE 754 double precision floating point number in the normal @@ -3956,6 +3957,7 @@ @end group @end example +@noindent shown here with spaces added for clarity. Compare with the previous bit string from @code{format bit} to see the grouping into bytes and their ordering.
--- a/libinterp/corefcn/qz.cc Thu Nov 23 17:08:50 2023 -0800 +++ b/libinterp/corefcn/qz.cc Thu Nov 23 20:32:23 2023 -0800 @@ -61,7 +61,7 @@ DEFUN (qz, args, nargout, doc: /* -*- texinfo -*- -@deftypefn {} {[@var{AA}, @var{BB}, @var{Q}, @var{Z}, @var{V}, @var{W}] =} qz (@var{A}, @var{B}) +@deftypefn {} {[@var{AA}, @var{BB}, @var{Q}, @var{Z}, @var{V}, @var{W}] =} qz (@var{A}, @var{B}) @deftypefnx {} {[@var{AA}, @var{BB}, @var{Q}, @var{Z}, @var{V}, @var{W}] =} qz (@var{A}, @var{B}, @var{opt}) Compute the QZ@tie{}decomposition of a generalized eigenvalue problem. @@ -81,8 +81,8 @@ @enumerate @item @code{[@var{AA}, @var{BB}, @var{Q}, @var{Z}, @var{V}, @var{W}, @var{lambda}] = qz (@var{A}, @var{B})} -Compute the complex QZ@tie{}decomposition, generalized eigenvectors, and generalized -eigenvalues. +Compute the complex QZ@tie{}decomposition, generalized eigenvectors, and +generalized eigenvalues. @tex $$ AA = Q^T AZ, BB = Q^T BZ $$ $$ { \rm diag }(BB)AV = BV{ \rm diag }(AA) $$ @@ -102,20 +102,20 @@ @end ifnottex with @var{AA} and @var{BB} upper triangular, and @var{Q} and @var{Z} -unitary. The matrices @var{V} and @var{W} respectively contain the right +unitary. The matrices @var{V} and @var{W} respectively contain the right and left generalized eigenvectors. @item @code{[@var{AA}, @var{BB}, @var{Z} @{, @var{lambda}@}] = qz (@var{A}, @var{B}, @var{opt})} The @var{opt} argument must be equal to either @qcode{"real"} or -@qcode{"complex"}. If it is equal to @qcode{"complex"}, then this +@qcode{"complex"}. If it is equal to @qcode{"complex"}, then this calling form is equivalent to the first one with only two input arguments. If @var{opt} is equal to @qcode{"real"}, then the real QZ decomposition -is computed. In particular, @var{AA} is only guaranteed to be +is computed. In particular, @var{AA} is only guaranteed to be quasi-upper triangular with 1-by-1 and 2-by-2 blocks on the diagonal, -and @var{Q} and @var{Z} are orthogonal. The identities mentioned above +and @var{Q} and @var{Z} are orthogonal. The identities mentioned above for right and left generalized eigenvectors are only verified if @var{AA} is upper triangular (i.e., when all the generalized eigenvalues are real, in which case the real and complex QZ coincide).
--- a/libinterp/corefcn/sysdep.cc Thu Nov 23 17:08:50 2023 -0800 +++ b/libinterp/corefcn/sysdep.cc Thu Nov 23 20:32:23 2023 -0800 @@ -772,11 +772,9 @@ DEFUN (isenv, args, , doc: /* -*- texinfo -*- -@deftypefn {} {@var{val} =} isenv (@var{var}) -Check if the environment variable @var{var} exists. - -This function returns true if an environment variable with the name @var{var} -exists. Otherwise, it returns false. +@deftypefn {} {@var{tf} =} isenv (@var{var}) +Return true if the variable @var{var} is an environment variable, and false +otherwise. For example, @@ -785,7 +783,8 @@ @end example @noindent -returns true if an environment variable with the name @qcode{"PATH"} exists. +will typically return true on UNIX systems because @qcode{"PATH"} is an +environment variable for UNIX. @seealso{getenv, setenv, unsetenv} @end deftypefn */) { @@ -850,7 +849,8 @@ DEFUN (unsetenv, args, , doc: /* -*- texinfo -*- -@deftypefn {} {@var{status} =} unsetenv (@var{var}) +@deftypefn {} {} unsetenv ("@var{var}") +@deftypefnx {} {@var{status} =} unsetenv ("@var{var}") Delete the environment variable @var{var}. Return 0 if the variable was deleted, or did not exist, and -1 if an error
--- a/scripts/help/bytecode.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/help/bytecode.m Thu Nov 23 20:32:23 2023 -0800 @@ -28,8 +28,8 @@ ## Summary of commands related to Octave's bytecode interpreter. ## ## As of Octave 9, the bytecode interpreter is considered @emph{experimental}. -## The user is encouraged to test it with that in mind. All bytecode functions, -## being experimental, may be renamed in future. +## The user is encouraged to test it with that in mind. All bytecode +## functions, being experimental, may be renamed in future. ## ## To switch on the bytecode interpreter, type: @code{__vm_enable__ (1)} ##
--- a/scripts/linear-algebra/tensorprod.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/linear-algebra/tensorprod.m Thu Nov 23 20:32:23 2023 -0800 @@ -51,7 +51,7 @@ ## @var{C}. The specified @var{value} should be the total number of dimensions ## of @var{A}. ## -## Matlab Compatibility: Octave does not currently support the +## @sc{matlab} Compatibility: Octave does not currently support the ## @qcode{"@var{property_name}=@var{value}"} syntax for the ## @qcode{"NumDimensionsA"} parameter. ##
--- a/scripts/miscellaneous/jupyter_notebook.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/miscellaneous/jupyter_notebook.m Thu Nov 23 20:32:23 2023 -0800 @@ -50,8 +50,8 @@ ## ## @itemize @bullet ## @item - ## "%plot -f <format>" or "%plot --format <format>": specifies the - ## image storage format. Supported formats are: + ## "@code{%plot -f <format>}" or "@code{%plot --format <format>}": specifies + ## the image storage format. Supported formats are: ## ## @itemize @minus ## @item @@ -67,16 +67,16 @@ ## @end itemize ## ## @item - ## "%plot -r <number>" or "%plot --resolution <number>": specifies the - ## image resolution. + ## "@code{%plot -r <number>}" or "@code{%plot --resolution <number>}": + ## specifies the image resolution. ## ## @item - ## "%plot -w <number>" or "%plot --width <number>": specifies the - ## image width. + ## "@code{%plot -w <number>}" or "@code{%plot --width <number>}": specifies + ## the image width. ## ## @item - ## "%plot -h <number>" or "%plot --height <number>": specifies the - ## image height. + ## "@code{%plot -h <number>}" or "@code{%plot --height <number>}": specifies + ## the image height. ## @end itemize ## ## Examples:
--- a/scripts/optimization/optimget.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/optimization/optimget.m Thu Nov 23 20:32:23 2023 -0800 @@ -36,12 +36,12 @@ ## @code{optimget} will attempt to match @var{par} to a standard parameter ## and will return that parameter's value if a match is found. Matching is ## case insensitive and is based on character matching at the start of the -## parameter name. @code{optimget} produces an error if it finds multiple -## ambiguous matches. If no standard parameter matches are found a warning is +## parameter name. @code{optimget} produces an error if it finds multiple +## ambiguous matches. If no standard parameter matches are found a warning is ## issued. See @code{optimset} for information about the standard options ## list. ## -## Note: Only parameter names from the standard list are considered when +## Note: Only parameter names from the standard list are considered when ## matching short parameter names, and @var{par} will always be expanded to ## match a standard parameter even if an exact non-standard match exists. The ## value of a non-standard parameter that is ambigious with one or more
--- a/scripts/optimization/optimset.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/optimization/optimset.m Thu Nov 23 20:32:23 2023 -0800 @@ -125,18 +125,18 @@ ## @item Updating ## @end table ## -## This list can be extended by the user or other loaded Octave packages. An +## This list can be extended by the user or other loaded Octave packages. An ## updated valid parameters list can be queried using the no-argument form of ## @code{optimset}. ## -## Note 1: Only parameter names from the standard list are considered when +## Note 1: Only parameter names from the standard list are considered when ## matching short parameter names, and @var{par} will always be expanded ## to match a standard parameter even if an exact non-standard match exists. ## The value of a non-standard parameter that is ambigious with one or more ## standard parameters cannot be set by @code{optimset} and can only be set ## using @code{setfield} or dot notation for structs. ## -## Note 2: The optimization options structure is primarily intended for +## Note 2: The optimization options structure is primarily intended for ## manipulation of known parameters by @code{optimset} and @code{optimget}. ## Unpredictable behavior on future calls to @code{optimset} or ## @code{optimget} can result from creating non-standard or ambiguous
--- a/scripts/plot/appearance/xlim.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/plot/appearance/xlim.m Thu Nov 23 20:32:23 2023 -0800 @@ -48,7 +48,7 @@ ## The special values -Inf and Inf can be used to indicate that either ## the lower axis limit or upper axis limit should be automatically calculated. ## -## The current limit calculation "mode" may be one of +## The current limit calculation @qcode{"mode"} may be one of ## ## @table @asis ## @item @qcode{"auto"} (default)
--- a/scripts/plot/appearance/ylim.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/plot/appearance/ylim.m Thu Nov 23 20:32:23 2023 -0800 @@ -48,7 +48,7 @@ ## The special values -Inf and Inf can be used to indicate that either ## the lower axis limit or upper axis limit should be automatically calculated. ## -## The current limit calculation "mode" may be one of +## The current limit calculation @qcode{"mode"} may be one of ## ## @table @asis ## @item @qcode{"auto"} (default)
--- a/scripts/plot/appearance/zlim.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/plot/appearance/zlim.m Thu Nov 23 20:32:23 2023 -0800 @@ -48,7 +48,7 @@ ## The special values -Inf and Inf can be used to indicate that either ## the lower axis limit or upper axis limit should be automatically calculated. ## -## The current limit calculation "mode" may be one of +## The current limit calculation @qcode{"mode"} may be one of ## ## @table @asis ## @item @qcode{"auto"} (default)
--- a/scripts/plot/draw/quiver.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/plot/draw/quiver.m Thu Nov 23 20:32:23 2023 -0800 @@ -46,7 +46,7 @@ ## The optional input @var{s} is a scalar defining a scaling factor to use for ## the arrows of the field relative to the mesh spacing. A value of 1.0 will ## result in the longest vector exactly filling one grid square. A value of 0 -## or "off" disables all scaling. The default value is 0.9. +## or @qcode{"off"} disables all scaling. The default value is 0.9. ## ## The style to use for the plot can be defined with a line style, @var{style}, ## of the same format as the @code{plot} command. If a marker is specified
--- a/scripts/plot/draw/quiver3.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/plot/draw/quiver3.m Thu Nov 23 20:32:23 2023 -0800 @@ -46,7 +46,7 @@ ## The optional input @var{s} is a scalar defining a scaling factor to use for ## the arrows of the field relative to the mesh spacing. A value of 1.0 will ## result in the longest vector exactly filling one grid cube. A value of 0 -## or "off" disables all scaling. The default value is 0.9. +## or @qcode{"off"} disables all scaling. The default value is 0.9. ## ## The style to use for the plot can be defined with a line style @var{style} ## of the same format as the @code{plot} command. If a marker is specified
--- a/scripts/plot/draw/stemleaf.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/plot/draw/stemleaf.m Thu Nov 23 20:32:23 2023 -0800 @@ -42,7 +42,7 @@ ## The default stem width is 10. ## ## The output of @code{stemleaf} is composed of two parts: a -## "Fenced Letter Display," followed by the stem-and-leaf plot itself. +## "Fenced Letter Display", followed by the stem-and-leaf plot itself. ## The Fenced Letter Display is described in @cite{Exploratory Data Analysis}. ## Briefly, the entries are as shown: ##
--- a/scripts/plot/util/print.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/plot/util/print.m Thu Nov 23 20:32:23 2023 -0800 @@ -157,7 +157,7 @@ ## Caution: If Octave was built against Qt version earlier than 5.13, ## @option{-svgconvert} may lead to inaccurate rendering of image objects. ## -## @item -polymerge +## @item -polymerge ## @itemx -nopolymerge ## @itemx -polymerge-all ## When using the SVG based backend @option{-svgconvert}, faces are rendered
--- a/scripts/set/ismembertol.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/set/ismembertol.m Thu Nov 23 20:32:23 2023 -0800 @@ -28,15 +28,15 @@ ## @deftypefnx {} {@var{tf} =} ismembertol (@var{a}, @var{s}, @var{tol}) ## @deftypefnx {} {@var{tf} =} ismembertol (@var{a}, @var{s}, @var{name}, @var{value}) ## @deftypefnx {} {[@var{tf}, @var{s_idx}] =} ismembertol (@dots{}) -## Check if values are member of a set within a tolerance. +## Check if values are members of a set within a tolerance. ## ## This functions returns a logical matrix @var{tf} with the same shape as ## @var{a} which is true (1) where the element in @var{a} is close to @var{s} ## within a tolerance @var{tol} and false (0) if it is not. If @var{tol} is -## not provided, a default tolerance of @qcode{1e-6} is used. +## not specified, a default tolerance of @code{1e-6} is used. ## -## If a second output argument is requested, then the index into @var{s} of -## each matching element is also returned. +## If a second output argument is requested then the index into @var{s} of each +## matching element is also returned. ## ## The inputs @var{a} and @var{s} must be numeric values. ## @@ -50,35 +50,37 @@ ## @end group ## @end example ## -## Optional property-value pairs @var{name} and @var{value} might be given. -## For each of these pairs, the @var{name} might be one of the following -## strings: +## Optional property/value pairs may be given to change the function's +## behavior. The property may be one of following strings: ## ## @table @asis ## @item @qcode{"ByRows"} -## If set to @qcode{false} (default), all elements in @var{a} and @var{s} are -## treated separately. If set to @qcode{true}, @var{tf} contains @qcode{true} +## If set to @code{false} (default), all elements in @var{a} and @var{s} are +## treated separately. If set to @code{true}, @var{tf} will be @code{true} ## for each row in @var{a} that matches a row in @var{s} within the given ## tolerance. Two rows, @var{u} and @var{v}, are within tolerance if they -## fullfill the condition @qcode{all (abs (u-v) <= tol*max (abs ([a;s])))}. +## fulfill the condition @code{all (abs (u-v) <= tol*max (abs ([a;s])))}. ## ## @item @qcode{"OutputAllIndices"} -## If set to @qcode{false} (default), @var{s_idx} contains indices for one -## of the matches. If set to @qcode{true}, @var{s_idx} is a cell array +## If set to @code{false} (default), @var{s_idx} contains indices for one +## of the matches. If set to @code{true}, @var{s_idx} is a cell array ## containing the indices for all elements in @var{s} that are within tolerance ## of the corresponding value in @var{a}. ## ## @item @qcode{"DataScale"} -## The corresponding value @var{DS} is used to change the scale factor in the -## tolerance test to @qcode{abs(u-v) <= tol*DS}. By default, the maximum +## The provided value @var{DS} is used to change the scale factor in the +## tolerance test to @code{abs (u-v) <= tol*@var{DS}}. By default, the maximum ## absolute value in @var{a} and @var{s} is used as the scale factor. ## @end table ## ## Example: +## ## @example +## @group ## s = [1:6].' * pi; ## a = 10.^log10 (x); ## [tf, s_idx] = ismembertol (a, s); +## @end group ## @end example ## ## @seealso{ismember, lookup, unique, union, intersect, setdiff, setxor}
--- a/scripts/statistics/cov.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/statistics/cov.m Thu Nov 23 20:32:23 2023 -0800 @@ -98,7 +98,7 @@ ## @math{N}, being used to calculated each element of the covariance matrix. ## @end table ## -## Compatibility Note: Previous versions of @code{cov} treated rows +## Compatibility Note: Previous versions of @code{cov} treated rows ## @var{x} and @var{y} as multivariate random variables. This version ## attempts to maintain full compatibility with @sc{matlab} by treating ## @var{x} and @var{y} as two univariate distributions regardless of shape,
--- a/scripts/statistics/mad.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/statistics/mad.m Thu Nov 23 20:32:23 2023 -0800 @@ -44,12 +44,12 @@ ## @var{mad} = median (abs (@var{x} - median (@var{x}))) ## @end example ## -## If @var{x} is a vector, compute @code{mad} for each element in @var{x}. If +## If @var{x} is a vector, compute @code{mad} for each element in @var{x}. If ## @var{x} is an array the calculation is performed over the first ## non-singleton dimension. ## ## @code{mad} excludes NaN values from calculation similar to using the -## @qcode{omitnan} option in @code{var}, @code{mean}, and @code{median}. +## @code{omitnan} option in @code{var}, @code{mean}, and @code{median}. ## ## The optional argument @var{opt} determines whether mean or median absolute ## deviation is calculated. The default is 0 which corresponds to mean
--- a/scripts/time/datenum.m Thu Nov 23 17:08:50 2023 -0800 +++ b/scripts/time/datenum.m Thu Nov 23 20:32:23 2023 -0800 @@ -54,9 +54,9 @@ ## time component will have the value set to zero. Formats which do not ## specify a date will default to January 1st of the current year. ## -## When passing separate @var{year}, @var{month}, @var{day}, etc. arguments, -## each may be a scalar or nonscalar array. Nonscalar inputs must all be of -## the same size. Scalar inputs will be expanded to be the size of the +## When passing separate @var{year}, @var{month}, @var{day}, etc.@: arguments, +## each may be a scalar or nonscalar array. Nonscalar inputs must all be of +## the same size. Scalar inputs will be expanded to be the size of the ## nonscalar inputs. ## ## @var{p} is the year at the start of the century to which two-digit years