nifty7.operators.sandwich_operator module#
- class SandwichOperator(bun, cheese, op, _callingfrommake=False)[source]#
Bases:
EndomorphicOperator
Operator which is equivalent to the expression bun.adjoint(cheese(bun)).
Note
This operator should always be called using the make method.
- apply(x, mode)[source]#
Applies the Operator to a given x, in a specified mode.
- Parameters:
x (Field) – The input Field, defined on the Operator’s domain or target, depending on mode.
mode (int) –
TIMES
: normal applicationADJOINT_TIMES
: adjoint applicationINVERSE_TIMES
: inverse applicationADJOINT_INVERSE_TIMES
orINVERSE_ADJOINT_TIMES
: adjoint inverse application
- Returns:
The processed Field defined on the Operator’s target or domain, depending on mode.
- Return type:
- draw_sample(from_inverse=False)[source]#
Generates a sample from a Gaussian distribution with zero mean and covariance given by the operator.
May or may not be implemented. Only optional.
- Parameters:
from_inverse (bool (default : False)) – if True, the sample is drawn from the inverse of the operator
- Returns:
A sample from the Gaussian of given covariance.
- Return type:
Field or MultiField
- draw_sample_with_dtype(dtype, from_inverse=False)[source]#
Generates a sample from a Gaussian distribution with zero mean, covariance given by the operator and specified data type.
This method is implemented only for operators which actually draw samples (e.g. DiagonalOperator). Operators which process the sample (like SandwichOperator) implement only draw_sample().
May or may not be implemented. Only optional.
- Parameters:
dtype (numpy.dtype or dict of numpy.dtype) – Dtype used for sampling from this operator. If the domain of op is a MultiDomain, the dtype can either be specified as one value for all components of the MultiDomain or in form of a dictionary whose keys need to conincide the with keys of the MultiDomain.
from_inverse (bool (default : False)) – if True, the sample is drawn from the inverse of the operator
- Returns:
A sample from the Gaussian of given covariance.
- Return type:
Field or MultiField
- get_sqrt()[source]#
Return operator op which obeys self == op.adjoint @ op.
Note that this function is only implemented for operators with real spectrum.
- Returns:
Operator which is the square root of self
- Return type:
- static make(bun, cheese=None)[source]#
Build a SandwichOperator (or something simpler if possible)
- Parameters:
bun (LinearOperator) – the bun part
cheese (EndomorphicOperator) – the cheese part