code: function(a, b) {
  
        if (isNaN(this['n']) || isNaN(this['d'])) {
          return new Fraction(NaN);
        }
  
        if (a === undefined) {
          return new Fraction(this["s"] * this["n"] % this["d"], 1);
        }
  
        parse(a, b);
        if (0 === P["n"] && 0 === this["d"]) {
          Fraction(0, 0); // Throw DivisionByZero
        }
  
        /*
         * First silly attempt, kinda slow
         *
         return that["sub"]({
         "n": num["n"] * Math.floor((this.n / this.d) / (num.n / num.d)),
         "d": num["d"],
         "s": this["s"]
         });*/
  
        /*
         * New attempt: a1 / b1 = a2 / b2 * q + r
         * => b2 * a1 = a2 * b1 * q + b1 * b2 * r
         * => (b2 * a1 % a2 * b1) / (b1 * b2)
         */
        return new Fraction(
                this["s"] * (P["d"] * this["n"]) % (P["n"] * this["d"]),
                P["d"] * this["d"]
                );
      }
docs: Calculates the modulo of two rational numbers - a more precise fmod
  
  Ex: new Fraction('4.(3)').mod([7, 8]) => (13/3) % (7/8) = (5/6)