blackbox

This function is not yet fully documented. This is a transcript of the text-formatted help.

blackbox  Create a black-box operator
   To create a new black-box operator use the following syntax:
     BB=blackbox(A)    Create from a Matlab matrix (sparse or full)
     BB=blackbox(S)    Create general black-box operator
     BB=blackbox(BB)   Pass a black-box operator

   blackbox(A) and bbmatrix(A) do the same thing if A is a Matlab-matrix.
   To ensure that BB is a black-box operator, use BB=blackbox(BB) which
   creates an operator if necessary.

   A black-box operator can be created from a struct, S, with the fields:
     type:   String describing the operator type
     m, n:   Dimensions of the operator
     cplx:   true: complex, false: real

     f, fH:  Function handles for functions that computes
             A*x and A'*y
     arg:    Cell-array with arguments passed to f and fH.
             Set arg={} if no arguments should be given.
     list:   A list of black-box operators passed after arg.
             Set list={} of no sub-operators are used.

     tau:    Max. 2-norm of the difference between computed
             and exact product when the input is a unit vector.
     tauamp: A lower bound on the 2-norm. Technically it bounds the
             2-norm of the perturbed output when the input
             is perturbed by a unit vector.

     mmsup:  true:  f and fH can compute matrix-matrix products
             false: f and fH can only compute matrix-vector products
     mmreq:  true:  sub-operators must compute matrix-matrix products
             false: sub-operators need only compute matrix-vector products

     simp:   Handle to a function that simplifies a computation.

   (S.arg and S.list are seperate to facilitate display and optimization.)

   The quantity S.tau reflects the accuracy of the functions f and fH.
   These bounds must be satisafied for all unit vectors x and y:
      norm(A*x  - f(x,...)  ) <= tau
      norm(A'*y - fH(y,...) ) <= tau

   Note: if S.tau is unspecified, you may be unable to use iterative
   routines (e.g. bbsvds). If S.tauamp is unspecified, then you may be
   unable to use iterative routines of operators that use BB in
   certain combinations (e.g. matrix- or kronecker products).

   If you are unable to determine S.tau and S.tauamp analytically, then
   they may be estimated using bbtauest.

   See also bbmatrix, bbmult, bbtauest.