DragonFly BSD
DragonFly users List (threaded) for 2010-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: tgamma function in math library


From: Karthik Subramanian <karthik301176@xxxxxxxxx>
Date: Fri, 1 Jan 2010 23:08:32 +0530

On Fri, Jan 1, 2010 at 11:03 PM, Karthik Subramanian
<karthik301176@gmail.com> wrote:
> On Fri, Jan 1, 2010 at 10:52 PM, Pierre Abbat <phma@phma.optus.nu> wrote:
>> I just copied one of my programming projects to the laptop and attempted to
>> compile it. The compiler bombed out on the line:
>>  denom=tgamma(sh);
>> According to the man page for gamma on Linux:
>>
>>   *BSD version
>>       4.4BSD and FreeBSD libm have a gamma() function that computes the Gamma
>>       function, as one would expect.
>>
>>   glibc version
>>       Glibc has a gamma() function that is equivalent to  lgamma()  and  com‐
>>       putes  the  natural logarithm of the Gamma function.  (This is for com‐
>>       patibility reasons only.  Don’t use this function.)
>>
>> How should I write the program so that it uses tgamma() on Linux and gamma()
>> on DragonFly?
>>
>> Pierre
>> --
>> La sal en el mar es más que en la sangre.
>> Le sel dans la mer est plus que dans le sang.
>>
>
> Perhaps you could write a wrapper called gamma() that does something like this:
>
> =====
> struct    utsname *ub;
>
> /* malloc, etc. */
>
> if(uname(ub)) {
>    die();
> }
>
> if (strcmp(ub->sysname, "Linux") {
>   tgamma();
> } else {
>   gamma();
> }
> =====
>
> You could also go the #ifdef LINUX route - in which case you need to
> make sure to define LINUX
> when compiling your code on linux.
>
> There are probably better ways of doing this, I'll leave it to more
> knowledgeable people on the list
> to answer :)
>
> K.
>

Sorry, forgot to mention - you might want to look at man 3 uname (on
DragonFly - on linux it's man 2 uname.).

K.



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]