Sorry, mostly I was just commenting on what I now see was an incorrect 
interpretation of the “// but something actually requiring high precision ...” 
comment in your example code. I’d read it as... you know, I’m not sure what I’d 
though it said... I think something that implied the code would convert the 
`Float80` data to another format with higher precision.

My mistake for not reading more carefully before replying.

- Dave Sweeris 

> On Dec 3, 2017, at 15:22, Jens Persson <j...@bitcycle.com> wrote:
> 
> I'm not sure what you mean David. That function was just part of my attempt 
> at presenting a solution to Antonino's question (that particular function is 
> from Antonino's code).
> Below is my solution to Antonino's problem again, including a perhaps clearer 
> comment in that function:
> 
> protocol Float80Convertible : BinaryFloatingPoint {
>     init(_ value: Float80)
>     var float80: Float80 { get }
> }
> extension Double : Float80Convertible {
>     var float80: Float80 { return Float80(self) }
> }
> extension Float : Float80Convertible {
>     var float80: Float80 { return Float80(self) }
> }
> 
> func maxPrecisionCalculation(input:Float80) -> Float80 {
>     return inpu
>     // In the actual use case, this would of course not just
>     // return input. Instead it would perform some computation
>     // that (in contrast to just returning input) actually needs
>     // the high precision of Float80.
> }
> 
> func someComplexCalculation<T:Float80Convertible>(input: T) -> T {
>     let input80 = input.float80
>     let output80 = maxPrecisionCalculation(input: input80)
>     return T(output80)
> }
> 
> /Jens
> 
> 
>> On Fri, Dec 1, 2017 at 11:59 PM, David Sweeris <daveswee...@mac.com> wrote:
>> 
>> 
>>> On Dec 1, 2017, at 13:18, Jens Persson via swift-users 
>>> <swift-users@swift.org> wrote:
>>> 
>>> func maxPrecisionCalculation(input:Float80) -> Float80 {
>>>     return input // but something actually reauiring high precision ...
>>> }
>> 
>> AFAIK, Float80 is the high precision format on macOS (well, Intel macs, 
>> anyway... can’t recall if Swift can target OSs old enough to run on PPC 
>> macs). I’d avoid using it, though. AFAIK it’s an x86-only format (it might 
>> even be Intel-only... 5-10 minutes of googling didn’t give me a clear answer 
>> on whether AMD’s CPUs support it).
>> 
>> I don’t know what we do with it on ARM targets, and I’m not at my computer 
>> to try to figure out.
>> 
>> Unless maybe the x86 or ARM vector extensions support 128 or 256 bit floats? 
>> I don’t think they do, but I’m not 100% on that.
>> 
>> - Dave Sweeris
> 
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to