function [xmin, xmax] = maxlist_eval(x, L) mode = 1; for s=1:2 mode = -mode; P = mode*1234; u = zeros(L, 1); p = zeros(L, 1); u_last = zeros(L, 1); p_last = zeros(L, 1); OFF = 1; u_last(1 + OFF) = P; u_last(0 + OFF) = 0; p_last(0 + OFF) = 0 + OFF; N = 0 + OFF; for k=1:lge(x), if (p_last(N) == (L + OFF)) m = 0; u_last(N) = P; else m = 1; end ii = 0; while mode*x(k) >= mode*u_last(ii+1+OFF) ii = ii + 1; end N = N - ii + m; for jj=(1 + OFF):(N -1) u(jj+1) = u_last(jj+ii); p(jj+1) = p_last(jj+ii) + 1; end u(N+1) = P; u(1 + OFF) = x(k); p(1 + OFF) = 1 + OFF; u_last = u; p_last = p; if (mode < 0) xmin(k) = u(N); pmmin = p(N); else xmax(k) = u(N); pmax = p(N); end end; end;