Oh and also machine learning. Search for sign or signum and machine learning, you'll find a lot of results.
On Mon, May 23, 2016 at 1:26 AM, Adam Nemecek <[email protected]> wrote: > It's not for branching based on the value, it's for calculating > mathematical functions with the sign retrieved from the value. So for the > same reason, no it should not be an enum. It should be the same type as the > type it's called on. It's that way in Haskell as well > > http://hackage.haskell.org/package/base-4.9.0.0/docs/Prelude.html#v:signum > > This function is basically in every language > > > https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign > > > https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#signum(double) > > http://en.cppreference.com/w/cpp/numeric/math/signbit > > https://golang.org/pkg/math/#Signbit > > https://msdn.microsoft.com/en-us/library/system.math.sign(v=vs.110).aspx > > It's used a bunch e.g. in dsp but also in mathematics > > > https://www.quora.com/What-are-the-real-life-applications-of-Signum-function > > This quote somewhat summarizes it "So signum shows up in many places where > discontinuous jumps must be written in closed form." > > > > On Mon, May 23, 2016 at 12:29 AM, Haravikk <[email protected]> > wrote: > >> Could you give an example of this method’s usage? Surely your value is >> either positive, negative or zero already, so this method doesn’t return >> anything more useful. >> >> In other words, anywhere that I might do this: >> >> if myValue.sign > 0 { … } >> >> I could just as easily do: >> >> if myValue > 0 { … } >> >> To the same end result surely? Unless I’m missing something it seems >> redundant. >> >> If there is a use-case for this, would it make more sense to have the >> return type as an enum with cases for Positive, Negative and Zero? >> >> On 22 May 2016, at 08:07, Adam Nemecek via swift-evolution < >> [email protected]> wrote: >> >> Howdy, >> I think that the SignedNumberType should implement a method called sign >> that will return -1 for negative numbers, 0 for 0 and 1 for positive >> numbers. This is similar to the signum method in e.g. Java and similarly >> called methods in other languages. >> >> The implementation is fairly straight forward >> >> extension SignedNumberType { >> var sign: Self { >> if self == 0 { >> return 0 >> } >> else if self > 0 { >> return 1 >> } >> return -1 >> } >> } >> >> I was trying to implement is without branching by doing (x > 0) - (x < 0) >> but I couldn't get the types right so I'm open to suggestions. >> >> >> _______________________________________________ >> swift-evolution mailing list >> [email protected] >> https://lists.swift.org/mailman/listinfo/swift-evolution >> >> >> >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
