Open In App

tgamma() method in C/C++ with Examples

Last Updated : 01 Jun, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

The tgamma() function is defined in header math.h header in C and cmath library in C++. This function is used to compute the gamma function of an argument passed to the function.

Syntax of tgamma()

float tgamma(float x);
double tgamma(double x);
long double tgamma(long double x);

Parameters

x: The value whose gamma function is to be computed. It can be float, double or long double.

Return Value

  • This function returns the gamma function value of x. 
  • For x = 0: +inf/-inf
  • For x = -inf: NAN
  • For x = +inf: +inf
  • For x = -ve: NAN
  • For x = NAN: NAN

Errors in tgamma() Function

There are two types of errors that usually occur with tgamma() method:

  1. Range errors 
    • Overflow range error: This occurs when the magnitude of the parameter x is very large.
    • Underflow range error: This occurs when the magnitude of the parameter x is very small.
       
  2. Domain/Pole errors 
    If x is zero or a negative integer for which the function is asymptotic, it may cause a domain error or a pole error (or none, depending on implementation).

Example of tgamma Function

Below example demonstrate the use of tgamma() function in C/C++:

C




// C program to show the use of tgamma() method
#include <math.h>
#include <stdio.h>
 
int main()
{
 
    // Example 1
    float x = 0.0;
    printf("For x = %f, tgamma(x) = %f\n", x, tgamma(x));
 
    // Example 2
    x = -18.0 / 0.0;
    printf("For x = %f, tgamma(x) = %f\n", x, tgamma(x));
 
    // Example 3
    x = 10.0 / 0.0;
    printf("For x = %f, tgamma(x) = %f\n", x, tgamma(x));
 
    // Example 4
    x = 0.0 / 0.0;
    printf("For x = %f, tgamma(x) = %f", x, tgamma(x));
 
    return 0;
}


C++




// C++ program to show the use of tgamma() method
#include <cmath>
#include <iostream>
 
using namespace std;
 
// Driver code
int main()
{
 
    // Example 1
    float x = 0.0;
    cout << "For x = " << x << ", tgamma(x) = " << tgamma(x)
         << endl;
 
    // Example 2
    x = -18.0 / 0.0;
    cout << "For x = " << x << ", tgamma(x) = " << tgamma(x)
         << endl;
 
    // Example 3
    x = 10.0 / 0.0;
    cout << "For x = " << x << ", tgamma(x) = " << tgamma(x)
         << endl;
 
    // Example 4
    x = 0.0 / 0.0;
    cout << "For x = " << x
         << ", tgamma(x) = " << tgamma(x);
 
    return 0;
}


Output

For x = 0.000000, tgamma(x) = inf
For x = -inf, tgamma(x) = nan
For x = inf, tgamma(x) = inf
For x = -nan, tgamma(x) = -nan


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads