
OPARRAY(3LO)         Linop Reference Manual          OPARRAY(3LO)

NAME
     <type>opArray - Class that is an array of operators.

SYNOPSIS
     #include <<type>oparray.h>

DESCRIPTION
     Class <type>opArray is an array of operators,  derived  from
     <type>operator,  which can be applied to a <type>spacearray.
     Both a <type>opArray and a <type>spacearray have two  dimen-
     sions, and applying a <type>opArray to a <type>spacearray is
     handled like matrix multiplication. That is, the rows of the
     <type>opArray   are   multiplied   by  the  columns  of  the
     <type>spacearray, and this is summed along.

     The  <type>opArray  does   not   contain   copies   of   the
     <type>operators,  but  rather  pointers  to  them. Thus, the
     <type>operators  cannot  be  changed  or  deleted,  or   the
     <type>opArray will behave strangely.

PUBLIC OPERATIONS
     <type>opArray(int i,int j=)
          Construct a <type>opArray, with the number of rows  and
          columns specified by i and j.

     <type>opArray(const <type>opArray &)
          Create a new <type>opArray with copied pointers to  the
          <type>opArray.

     <type>opArray & operator=(const <type>opArray &)
          Set the pointers to <type>operators equal to  those  of
          the <type>opArray.

     ~<type>opArray()

     const <type>operator & operator()(int i,int j=)
          Return a reference to the  <type>operator  at  position
          (i,j) in the <type>opArray.  This <type>operator cannot
          be changed, but can be applied to a spacearray.

     void set(int i, int j, <type>operator &)
     void set(int i, int j, <type>operator *)
          Set the position (i,j) to the reference or pointer to a
          <type>operator.     The    method    for   creating   a
          <type>opArray is define its size, and then  assign  the
          <type>operators into it.  A pointer to a <type>operator
          with allocated space should be used when the array will
          not be applied within the same scope as it is created.

     void setrow(int row, <type>operator &)
     void setrow(int row, <type>operator *)
          Set the entire row to the reference  or  pointer  to  a

OPARRAY(3LO)         Linop Reference Manual          OPARRAY(3LO)

          <type>operator.

     void setcol(int col, <type>operator &)
     void setcol(int col, <type>operator *)
          Set the entire column to the reference or pointer to  a
          <type>operator.

     <type>spacearray Forward(const <type>spacearray &) const
     <type>spacearray Adjoint(const <type>spacearray &) const
          These are the functions for applying a <type>opArray to
          a  <type>spacearray.  In  the  case  of Forward, if the
          <type>opArray has the same number  of  columns  as  the
          <type>spacearray   has  rows,  then  the  rows  of  the
          <type>opArray are multiplied  by  the  columns  of  the
          <type>spacearray,  and summed. This is just like matrix
          multiplication. Adjoint does the same, except with  the
          transpose of the <type>opArray.

PROTECTED VARIABLES
     int rows
     int cols
     <type>operator ** ops

PROTECTED OPERATION
     void unref()

SEE ALSO
     <type>space, <type>spacearray, <type>operator

