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
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]