#include "../include/Fraction.h" using namespace openshot; // Constructor Fraction::Fraction() : num(1), den(1) { } Fraction::Fraction(int num, int den) : num(num), den(den) { } // Return this fraction as a float (i.e. 1/2 = 0.5) float Fraction::ToFloat() { return float(num) / float(den); } // Return this fraction as a double (i.e. 1/2 = 0.5) double Fraction::ToDouble() { return double(num) / double(den); } int Fraction::GreatestCommonDenominator() { int first = num; int second = den; // Find the biggest whole number that will divide into both the numerator // and denominator int t; while (second != 0) { t = second; second = first % second; first = t; } return first; } void Fraction::Reduce() { // Get the greatest common denominator int GCD = GreatestCommonDenominator(); // Reduce this fraction to the smallest possible whole numbers num = num / GCD; den = den / GCD; } // Return the reciprocal as a new Fraction Fraction Fraction::Reciprocal() { // flip the fraction return Fraction(den, num); }