#include namespace c10 { Scalar Scalar::operator-() const { TORCH_CHECK( !isBoolean(), "torch boolean negative, the `-` operator, is not supported."); if (isFloatingPoint()) { return Scalar(-v.d); } else if (isComplex()) { return Scalar(-v.z); } else { return Scalar(-v.i); } } Scalar Scalar::conj() const { if (isComplex()) { return Scalar(std::conj(v.z)); } else { return *this; } } Scalar Scalar::log() const { if (isComplex()) { return std::log(v.z); } else if (isFloatingPoint()) { return std::log(v.d); } else { return std::log(v.i); } } } // namespace c10