def __matmul__(self, other):
    '\n        '
    from ..coefficient_array import CoefficientArray
    from .ot_transformations import lagrangeMult
    out = type(other)(dtype=other.dtype)
    if isinstance(other, CoefficientArray):
        for (key, Dl) in self.D.items():
            out[key] = (Dl * other[key])
    else:
        raise ValueError('wrong type given')
    ll = lagrangeMult(other, self.c0, self)
    return (out + ll)
def __matmul__(self, other):
    '\n        '
    from ..coefficient_array import CoefficientArray
    from .ot_transformations import lagrangeMult
    out = type(other)(dtype=other.dtype)
    if isinstance(other, CoefficientArray):
        for (key, Dl) in self.D.items():
            out[key] = (Dl * other[key])
    else:
        raise ValueError('wrong type given')
    ll = lagrangeMult(other, self.c0, self)
    return (out + ll)