Example #1
0
        public RadicalFraction MinusFraction(RadicalFraction other)
        {
            if (other.radical != this.radical) {
                throw new ArgumentException("Radicals differ");
            }

            if (other.denominator[0] != this.denominator[0] || other.denominator[1] != this.denominator[1]) {
                other = other.Multiply(new RadicalFraction(radical, denominator[0], denominator[1], denominator[0], denominator[1]));
            }

            long[] newNumerator = new long[2];
            newNumerator[0] = this.numerator[0] - other.numerator[0];
            newNumerator[1] = this.numerator[1] - other.numerator[1];

            long[] newDenominator = new long[2];
            newDenominator[0] = this.denominator[0];
            newDenominator[1] = this.denominator[1];

            return new RadicalFraction(radical, newNumerator, newDenominator);
        }