How to use the ratio_greater_equal() function in C++

In this shot, we will learn how to use the ratio_greater_equal() function. The ratio_greater_equal() function is available in the <ratio> header file in C++. ratio_greater_equal() is used to check whether the first ratio object is greater than or equal to the second ratio object and gives the boolean value as a result, i.e., true or false. The ratio_greater_equal() method compares the simplest form of the two ratios.

What is a ratio?

A ratio is a representation of a fraction in which the numerator and denominator are differentiated by the colon (:) symbol. The numerator and denominator can be of float data type.

Let’s understand with the help of some examples:

  • Suppose that the first ratio is 1:21 : 2 and the second ratio is 5:255 : 25. The result of the ratio_greater_equal() function is true.

  • The ratios 1:21 : 2 and 5:255 : 25 can be represented as 12\frac{1}{2} and 525\frac{5}{25} in fractional form, respectively.

  • The ratio 12\frac{1}{2} is itself a simplified form. The simplified form of 525\frac{5}{25} is 15\frac{1}{5}.

  • Now, we compare the simplified fractions, 12\frac{1}{2} and 15\frac{1}{5}. We can see that the first ratio is greater than the second ratio, and we get the final result of true.

Parameters

The ratio_greater_equal() method takes two parameters:

  • Ratio1: A ratio object to be compared with the other ratio object for greater than or equal to inequality.
  • Ratio2: Another ratio object that gets compared for greater than or equal to inequality with the previous ratio object.

Return value

ratio_greater_equal() returns the boolean result after comparison for greater than or equal to.

  • If the first ratio object is greater than or equal to the second ratio object, then the function returns true.

  • If the first ratio object is not greater than or equal to the second ratio object, then the function returns false.

Code

Let’s have a look at the code.

#include <iostream>
#include <ratio>
using namespace std;
int main()
{
typedef ratio<1, 2> ratio1;
typedef ratio<5, 25> ratio2;
if (ratio_greater_equal<ratio1, ratio2>::value)
cout<<"Ratio 1 is greater than or equal to Ratio 2";
else
cout<<"Ratio 1 is smaller than or equal to Ratio 2";
return 0;
}

Explanation

  • In lines 1 and 2, we import the required header files.

  • In line 5, we create a main() function.

  • In lines 7 and 8, we declare two ratios. Here, we use typedef to assign an alternative name to a datatype.

  • In line 10, we use the ratio_greater_equal() function as a condition in the if statement to perform the comparison between the two declared ratios. If the first ratio object is greater than or equal to the second ratio object, the if statement is executed and displays the message with the result. Here, the value variable stores the boolean result of the greater than or equal to inequality check.

  • In line 12, if the condition isn’t satisfied, i.e., the first ratio object is neither greater than nor equal to the second ratio object, then the else statement is executed and displays the result.

We can use the ratio_greater_equal() function to check whether the first ratio object is greater than or equal to the second ratio object.

Free Resources