Operator Classes

The classes are nested as follows:

digraph G {
    bgcolor = transparent

    node [shape=box];
    OpMember [label="OpMember"];
    ndarray [label="np.ndarray"];
    MatchingCondition [label="MatchingCondition" ];
    PhysicalOperator [label="PhysicalOperator"];
    Operator [label="Operator" ];
    OME [label="OME" ];
    OperatorGrid [label="OperatorGrid"];

    OperatorGrid -> Operator;
    OperatorGrid -> OME;
    Operator -> PhysicalOperator [weight=100,style=dashed];
    PhysicalOperator -> ndarray [style=dashed];
    OME -> MatchingCondition [weight=100,style=dashed];
    MatchingCondition -> ndarray [style=dashed];
    Operator -> OpMember;
    OpMember -> PhysicalOperator [dir=back];
    OME -> OpMember;
    OpMember -> MatchingCondition [dir=back];

    OperatorGrid -> OpMember -> ndarray [style=invis];
}

nesting of the operator classes: solid lines means “has many”, dashed lines means “evolves into”