All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class sep.operator.SepLinearOperator

java.lang.Object
   |
   +----sep.operator.SepLinearOperator

public abstract class SepLinearOperator
extends Object
implements hasAdjoint, hasHessian
This class implements a lot of often duplicated code.

TYPICAL THINGS TO IMPLMENT WHEN SUBCLASSING:
The adjoint is created with a clone, so IF YOU NEED SOMETHING TO BE A DEEP COPY, YOU SHOULD OVERRIDE createAdjoint().


Variable Index

 o adj
Pointer to the (relative) adjoint of this operator:
this.isFwd == true ---> adj.isFwd == false
this.isFwd == false ---> adj.isFwd == true
 o hess
 o input
domain of the forward operator (and range of the adjoint)
 o isFwd
true/false as the operator is the forward/adjoint
 o output
range of the forward operator (and domain of the forward)

Constructor Index

 o SepLinearOperator()
 o SepLinearOperator(SepLinearOperator)
copy constructor (shallow copy)
 o SepLinearOperator(Space)
 o SepLinearOperator(Space, boolean)
 o SepLinearOperator(Space, Space)
 o SepLinearOperator(Space, Space, boolean)

Method Index

 o addImage(Vector, Vector)
 o adjoint()
 o apply(boolean, Vector, Vector)
Apply the operator:

Depending on if the operator is the forward or adjoint:
forward: out = A(in)
adjoint: in = A(out)

CONTRAST THIS INTERFACE WITH THAT OF SepSelfAdjointOperator.apply()
 o copy()
 o createAdjoint()
 o createHessian()
 o equals(SepLinearOperator)
 o getDerivativeAt(Vector)
 o getDomain()
 o getGradientAt(Vector)
 o getHessianAt(Vector)
 o getRange()
 o image(Vector)
 o image(Vector, Vector)
 o residual(Vector, Vector, Vector)
 o setAdjoint(hasAdjoint)
 o setForward(boolean)
 o setInput(Space)
 o setOutput(Space)

Variables

 o input
 protected Space input
domain of the forward operator (and range of the adjoint)

 o output
 protected Space output
range of the forward operator (and domain of the forward)

 o isFwd
 protected boolean isFwd
true/false as the operator is the forward/adjoint

 o adj
 protected hasAdjoint adj
Pointer to the (relative) adjoint of this operator:
this.isFwd == true ---> adj.isFwd == false
this.isFwd == false ---> adj.isFwd == true

 o hess
 protected BiLinearOperatorAdjoint hess

Constructors

 o SepLinearOperator
 public SepLinearOperator()
 o SepLinearOperator
 public SepLinearOperator(Space fwdDomain,
                          Space fwdRange)
 o SepLinearOperator
 public SepLinearOperator(Space fwdDomain,
                          Space fwdRange,
                          boolean isFwd)
 o SepLinearOperator
 public SepLinearOperator(Space domainAndRange)
 o SepLinearOperator
 public SepLinearOperator(Space domainAndRange,
                          boolean isFwd)
 o SepLinearOperator
 public SepLinearOperator(SepLinearOperator src)
copy constructor (shallow copy)

Methods

 o apply
 protected abstract void apply(boolean add,
                               Vector in,
                               Vector out)
Apply the operator:

Depending on if the operator is the forward or adjoint:
forward: out = A(in)
adjoint: in = A(out)

CONTRAST THIS INTERFACE WITH THAT OF SepSelfAdjointOperator.apply()

Parameters:
add - Performs y += Ax instead of y = Ax if true (where {x,y} = {in,out} -- respectively if and only if isFwd == true)
in - Vector in the domain of the forward (altered if isFwd == false)
out - Vector in the range of the forward (altered if isFwd == true)
 o setInput
 protected void setInput(Space input)
 o setOutput
 protected void setOutput(Space output)
 o setForward
 protected void setForward(boolean isFwd)
 o setAdjoint
 protected void setAdjoint(hasAdjoint adj)
 o createAdjoint
 protected void createAdjoint()
 o equals
 public boolean equals(SepLinearOperator slo2)
 o getDomain
 public Space getDomain()
 o getRange
 public Space getRange()
 o image
 public Vector image(Vector d)
 o image
 public void image(Vector d,
                   Vector r)
 o addImage
 public void addImage(Vector d,
                      Vector r)
 o residual
 public void residual(Vector d,
                      Vector b,
                      Vector r)
 o adjoint
 public hasAdjoint adjoint()
 o getGradientAt
 public LinearOperator getGradientAt(Vector x)
 o getDerivativeAt
 public hasAdjoint getDerivativeAt(Vector x)
 o getHessianAt
 public BiLinearOperatorAdjoint getHessianAt(Vector x)
 o createHessian
 protected void createHessian()

All Packages  Class Hierarchy  This Package  Previous  Next  Index