private function positiveCompare(DecimalNumber $a, DecimalNumber $b)
    {
        // compare integer length
        $intLengthCompare = $this->compareNumeric(
            strlen($a->getIntegerPart()),
            strlen($b->getIntegerPart())
        );
        if ($intLengthCompare !== 0) {
            return $intLengthCompare;
        }

        // integer parts are equal in length, compare integer part
        $intPartCompare = $this->compareBinary($a->getIntegerPart(), $b->getIntegerPart());
        if ($intPartCompare !== 0) {
            return $intPartCompare;
        }

        // integer parts are equal, compare fractional part
        return $this->compareBinary($a->getFractionalPart(), $b->getFractionalPart());
    }