[swift-users] Where did “powl” go?

Antonino Ficarra antonino.ficarra at gmail.com
Wed Jul 6 01:23:41 CDT 2016


long double math.h functions appear to not be exported in swift. I don’t know why.

This horrible hack works:

// in f80.h
extern void sqrt_f80( void *result, const void *v );
extern void pow_f80( void *result, const void *v, const void *e );
...

// in f80.c
void sqrt_f80( void *result, const void *v )	{ *(long double *)result = sqrtl( *(const long double *)v ); }
void pow_f80( void *result, const void *v, const void *e )	{ *(long double *)result = powl( *(const long double *)v,*(const long double *)e ); }
…

// in f80.swift
func sqrt( _ a:Float80 ) -> Float80		{ var result = Float80(); var v = a; sqrt_f80( &result, &v ); return result; }
func pow( _ a:Float80,_ e:Float80 ) -> Float80 { var result = Float80(); var v1 = a; var v2 = e; pow_f80( &result, &v1, &v2 ); return result; }
…

Sorry for my bad english.


> Il giorno 05 lug 2016, alle ore 19:44, Jeff Kelley via swift-users <swift-users at swift.org <mailto:swift-users at swift.org>> ha scritto:
> 
> Hello all,
> 
> 	I’m using Xcode 8.0 and Swift 3 on OS X 10.11, and I’m trying to use powl in an OS X Playground. I see the definition of the pow-related functions in math.h here:
> 
> extern float powf(float, float);
> extern double pow(double, double);
> extern long double powl(long double, long double);
> 
> But the Swift-imported version at Darwin.C.math looks like this:
> 
> public func powf(_: Float, _: Float) -> Float
> public func pow(_: Double, _: Double) -> Double
> 
> Where did powl go?
> 
> 
> Jeff Kelley
> 
> SlaunchaMan at gmail.com <mailto:SlaunchaMan at gmail.com> | @SlaunchaMan <https://twitter.com/SlaunchaMan> | jeffkelley.org <http://jeffkelley.org/>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org <mailto:swift-users at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-users


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20160706/60a9b1b3/attachment.html>


More information about the swift-users mailing list