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:
- apply()
- constructors
- copy()
- equals()
- toString()
The adjoint is created with a clone, so IF YOU NEED SOMETHING TO BE A
DEEP COPY, YOU SHOULD OVERRIDE createAdjoint().
-
adj
- Pointer to the (relative) adjoint of this operator:
this.isFwd == true ---> adj.isFwd == false
this.isFwd == false ---> adj.isFwd == true
-
hess
-
-
input
- domain of the forward operator (and range of the adjoint)
-
isFwd
- true/false as the operator is the forward/adjoint
-
output
- range of the forward operator (and domain of the forward)
-
SepLinearOperator()
-
-
SepLinearOperator(SepLinearOperator)
- copy constructor (shallow copy)
-
SepLinearOperator(Space)
-
-
SepLinearOperator(Space, boolean)
-
-
SepLinearOperator(Space, Space)
-
-
SepLinearOperator(Space, Space, boolean)
-
-
addImage(Vector, Vector)
-
-
adjoint()
-
-
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()
-
copy()
-
-
createAdjoint()
-
-
createHessian()
-
-
equals(SepLinearOperator)
-
-
getDerivativeAt(Vector)
-
-
getDomain()
-
-
getGradientAt(Vector)
-
-
getHessianAt(Vector)
-
-
getRange()
-
-
image(Vector)
-
-
image(Vector, Vector)
-
-
residual(Vector, Vector, Vector)
-
-
setAdjoint(hasAdjoint)
-
-
setForward(boolean)
-
-
setInput(Space)
-
-
setOutput(Space)
-
input
protected Space input
- domain of the forward operator (and range of the adjoint)
output
protected Space output
- range of the forward operator (and domain of the forward)
isFwd
protected boolean isFwd
- true/false as the operator is the forward/adjoint
adj
protected hasAdjoint adj
- Pointer to the (relative) adjoint of this operator:
this.isFwd == true ---> adj.isFwd == false
this.isFwd == false ---> adj.isFwd == true
hess
protected BiLinearOperatorAdjoint hess
SepLinearOperator
public SepLinearOperator()
SepLinearOperator
public SepLinearOperator(Space fwdDomain,
Space fwdRange)
SepLinearOperator
public SepLinearOperator(Space fwdDomain,
Space fwdRange,
boolean isFwd)
SepLinearOperator
public SepLinearOperator(Space domainAndRange)
SepLinearOperator
public SepLinearOperator(Space domainAndRange,
boolean isFwd)
SepLinearOperator
public SepLinearOperator(SepLinearOperator src)
- copy constructor (shallow copy)
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)
setInput
protected void setInput(Space input)
setOutput
protected void setOutput(Space output)
setForward
protected void setForward(boolean isFwd)
setAdjoint
protected void setAdjoint(hasAdjoint adj)
createAdjoint
protected void createAdjoint()
equals
public boolean equals(SepLinearOperator slo2)
getDomain
public Space getDomain()
getRange
public Space getRange()
image
public Vector image(Vector d)
image
public void image(Vector d,
Vector r)
addImage
public void addImage(Vector d,
Vector r)
residual
public void residual(Vector d,
Vector b,
Vector r)
adjoint
public hasAdjoint adjoint()
getGradientAt
public LinearOperator getGradientAt(Vector x)
getDerivativeAt
public hasAdjoint getDerivativeAt(Vector x)
getHessianAt
public BiLinearOperatorAdjoint getHessianAt(Vector x)
createHessian
protected void createHessian()
All Packages Class Hierarchy This Package Previous Next Index