Mercurial > octave
view scripts/polynomial/polyreduce.m @ 31238:67cad4e8f866
Include graphics objects with hidden handles in axes limit calculation (bug #63095).
* libinterp/corefcn/graphics.cc (get_children_limits): Get handles to all axes
children including those with hidden handle visibility. Add BIST.
* libinterp/corefcn/graphics.in.h (text::update_position): Do not automatically
change "zliminclude" property. Axes labels are implemented as text objects, and
we don't want their extent to be included in the axis limit calculation.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sat, 24 Sep 2022 11:57:44 +0200 |
parents | 5d3faba0342e |
children | 597f3ee61a48 |
line wrap: on
line source
######################################################################## ## ## Copyright (C) 1994-2022 The Octave Project Developers ## ## See the file COPYRIGHT.md in the top-level directory of this ## distribution or <https://octave.org/copyright/>. ## ## 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{p} =} polyreduce (@var{c}) ## Reduce a polynomial coefficient vector to a minimum number of terms by ## stripping off any leading zeros. ## @seealso{polyout} ## @end deftypefn function p = polyreduce (c) if (nargin < 1) print_usage (); elseif (! isvector (c) || isempty (c)) error ("polyreduce: C must be a non-empty vector"); endif idx = find (c != 0, 1); if (isempty (idx)) p = 0; else p = c(idx:end); endif endfunction %!assert (polyreduce ([0, 0, 1, 2, 3]), [1, 2, 3]) %!assert (polyreduce ([1, 2, 3, 0, 0]), [1, 2, 3, 0, 0]) %!assert (polyreduce ([1, 0, 3]), [1, 0, 3]) %!assert (polyreduce ([0, 0, 0]), 0) %!error <Invalid call> polyreduce () %!error <C must be a non-empty vector> polyreduce ([1, 2; 3, 4]) %!error <C must be a non-empty vector> polyreduce ([])