base

Base abstractions for binary transformations over distributions.

class pysatl_core.transformations.operations.distributions.binary.base.BinaryDistribution(left_distribution, right_distribution, *, operation, methods, sampling_strategy=None, computation_strategy=None)[source]

Bases: DerivedDistribution, ABC

Base class for binary transformations over two parent distributions.

Parameters:
__init__(left_distribution, right_distribution, *, operation, methods, sampling_strategy=None, computation_strategy=None)[source]
Parameters:
Return type:

None

property left_distribution: LightweightDistribution

Get the lightweight snapshot of the left parent distribution.

property right_distribution: LightweightDistribution

Get the lightweight snapshot of the right parent distribution.

property operation: BinaryOperationName

Get the binary operation name.

property parent_roles: tuple[ParentRole, ...]

Return parent role sequence for binary transformation.

property transformation_methods: TransformationMethodSpecsMap

Get transformation method specifications used to build this distribution.

sample(n, **options)[source]

Generate transformed samples from two parent-distribution samples.

Return type:

TypeAliasType

Parameters:
class pysatl_core.transformations.operations.distributions.binary.base.BinaryOperationName(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: StrEnum

Enumeration of supported binary operations for transformed distributions.

ADD

Sum X + Y.

SUB

Difference X - Y.

MUL

Product X * Y.

DIV

Ratio X / Y.

ADD = 'add'
SUB = 'sub'
MUL = 'mul'
DIV = 'div'
pysatl_core.transformations.operations.distributions.binary.base.binary(left_distribution, right_distribution, *, operation, methods=None)[source]

Apply a binary operation to two distributions.

Return type:

BinaryDistribution

Parameters: