Using CIL minimisation algorithms, oftentimes it is required to calculate the norm of an operator, e.g. in setting up PDHG, the 2 step sizes must be sigma * tau < (1/operator.norm())**2.
In CIL, for LinearOperator we use the PowerMethod, which is an iterative method. PowerMethod is a static method of LinearOperator and it will work with SIRF AcquisitionModels.
We cannot add a method using LinearOperator.PowerMethod from CIL as this will add a strong dependence on CIL.
We could copy the PowerMethod to SIRF at the Python level to start with.
Using CIL minimisation algorithms, oftentimes it is required to calculate the norm of an operator, e.g. in setting up PDHG, the 2 step sizes must be
sigma * tau < (1/operator.norm())**2
.In CIL, for
LinearOperator
we use thePowerMethod
, which is an iterative method.PowerMethod
is a static method ofLinearOperator
and it will work with SIRFAcquisitionModel
s.We cannot add a method using
LinearOperator.PowerMethod
from CIL as this will add a strong dependence on CIL.We could copy the
PowerMethod
to SIRF at the Python level to start with.