
OP(3LO)              Linop Reference Manual               OP(3LO)

NAME
     <type>op - A virtual base class for linear operators operat-
     ing from <type>space to <type>space.

SYNOPSIS
     #include <<type>op.h>

DESCRIPTION
     The class <type>op is a  virtual  base  class  derived  from
     <type>operator  defining the operations that must be defined
     for  a  linear  operators  operating  from  <type>space   to
     <type>space.  These  include  a  constructor,  a  destructor
     (which does not always need to be written), a Forward  func-
     tion,   and  an  Adjoint  function.  The  last  two  take  a
     <type>space and  return  a  <type>space.  In  addition,  the
     <type>op  base  class will allow a derived operator to cycle
     over the <type>spaces of a <type>spacearray automatically.

     Something to notice is there is no copy  constructor  for  a
     <type>op.  This is because all classes derived from <type>op
     can be referred to as a <type>op. The result of this is that
     <type>ops  cannot  be copied or assigned, or passed by func-
     tions. A function can be passed a pointer or reference to  a
     <type>op,  but  not  the  <type>op  itself.  In  addition, a
     <type>op cannot be a return value, nor can a reference to  a
     <type>op be a return value.

PUBLIC OPERATIONS
     virtual <type>space Forward(const <type>space &) const = 
     virtual <type>space Adjoint(const <type>space &) const = 
          These must be written  for  an  operator  derived  from
          <type>op.

     <type>spacearray Forward(const <type>spacearray &) const
     <type>spacearray Adjoint(const <type>spacearray &) const
          These cause an operator to automatically cycle over the
          <type>spaces  in a <type>spacearray, applying itself to
          each one.

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

