op_fitzinf — Evaluate the Fitzpatrick function of infinite order of an operator on a grid using Rockafellar functions.
F = op_fitzinf(B, x, xstar)
matrix. An matrix [a;bm;bp] where a, bm (b-), and bp (b+) are row vectors as defined below.
column vector. The x values of the grid on which the Fitzpatrick function is evaluated.
column vector. The x* values of the grid on which the Fitzpatrick function is evaluated.
Evaluates the Fitzpatrick function of infinite order of an operator A on a grid (x,x*) using Rockafellar functions, where B is defined as:
B : x -> conv(A*x): m union ( {a(i)} cross [bm(i),bp(i)] ) i=1 with a(1) < a(2) < ... < a(m), bm(1) <= bp(1) <= bm(2) <= bp(2) <= ... <= bm(m) <= bp(m), a(0) = bm(0) = bp(0) = -%inf, a(m+1) = bm(m+1) = bp(m+1) = %inf, m = size(B,2).
This function computes the Rockafellar functions R(A,a(k)) for all k=1..m, evaluates the functions at (x,x*), then uses LLT1d algorithm to find the maximum result. It runs in O(m^2 + m*Nx + N) time, or O(m^2) when m==Nx==Nxstar. See also plq_rock, which returns PLQ Rockafellar functions, and plq_fitzinf0, which returns PLQ Fitzpatrick functions.
F(A, %inf, x, xstar) = sup [ a*xstar + R(A,a)(x) ] a in Dom A R(A, k)(x) = { (x-a(i))*bm(i) + sum(j=i+1:k, (a(j-1)-a(j))*bm(j)) , if a(i-1) < x <= a(i) <= a(k) { (x-a(i))*bp(i) + sum(j=k:i-1, (a(j+1)-a(j))*bp(j)) , if a(k) <= a(i) <= x <= a(i+1) m = size(A, 2); Nx = size(x, 1); Nxstar = size(xstar, 1); N = Nx * Nxstar;
</listitem>