'Perform one of the following operations (* is dot product)
C = alpha * A * B   + beta * C
C = alpha * A.T * B + beta * C
C = alpha * A * B.T + beta * C.
relu: if true, applied before output (and prior to beta addition)
The operation will be short-circuited to: out <- alpha * left * right
if beta has value 0 (the default).
Arguments:
A (Tensor): left-hand side operand.
B (Tensor): right-hand side operand.
C (Tensor): output operand
alpha (float. optional): scale A*B term
beta (float, optional): scale C term before sum
relu (bool, optional): If True apply ReLu non-linearity before
output.  Defaults to False.'

@abc.abstractmethod
def compound_dot(self, A, B, C, alpha=1.0, beta=0.0, relu=False):

    raise NotImplementedError()
