All Packages  Class Hierarchy  This Package  Previous  Next  Index

Interface jam.operator.BiLinearOperatorAdjoint

public interface interface BiLinearOperatorAdjoint
extends JamObject, BiLinearOperator
BiLinearOperatorAdjoint is a BiLinearOperator in which the two underlying linear operators have adjoints implemented.



Should we include the PartialAdjoint as is done in HCL:
// access to the "partial adjoint" of the bilinear operator:
// Assume A:XxY --> Z is the bilinear operator.
// Then this method returns the operator x |---> (A(x))'z.
// Its adjoint is the operator y |---> (A(.)y)'z
public hasAdjoint getPartialAdjoint(Vector z);


Method Index

 o getPartialAdjoint(Vector)
A BiLinearOperator in components is A_{ijk}
Here, the first index, i, indicates the range.

Methods

 o getPartialAdjoint
 public abstract hasAdjoint getPartialAdjoint(Vector r)
A BiLinearOperator in components is A_{ijk}
Here, the first index, i, indicates the range.
By contracting A with a vector in the range, r_{i}, we get a linear operator:
B_{jk} = A_{ijk} * r_{i} (sum over i)
This is what I mean by the "partial adjoint". It is an operator with adjoint which maps the spaces:
B : domain2 ---> domain1
adj(B) : domain1 ---> domain2

Why does the adjoint of B map from domain1 instead of B itself? We use the convention that the first index from the left indicates the range index. In A_{ijk}, j is for domain1 and k is for domain2. Thus, B_{jk} maps from domain2 to domain1.


All Packages  Class Hierarchy  This Package  Previous  Next  Index