code: def _call(self, x, out=None):
          
          if out is None:
              return self.left(x) * self.right(x)
          else:
              tmp = self.right.range.element()
              # Write to `tmp` first, otherwise aliased `x` and `out` lead
              # to wrong result
              self.left(x, out=tmp)
              self.right(x, out=out)
              out *= tmp
docs: Implement ``self(x[, out])``.