You are a fault localization tool, your task is find the potential buggy lines in the given method.
This is the focal method needs to be debugged.
public Complex reciprocal() {
        if (isNaN) {
            return NaN;
        }
        if (real == 0.0 && imaginary == 0.0) {
            return NaN;
        }
        if (isInfinite) {
            return ZERO;
        }
        if (FastMath.abs(real) < FastMath.abs(imaginary)) {
            double q = real / imaginary;
            double scale = 1. / (real * q + imaginary);
            return createComplex(scale * q, -scale);
        } else {
            double q = imaginary / real;
            double scale = 1. / (imaginary * q + real);
            return createComplex(scale, -scale * q);
        }
    }
The bug triggered by this test org.apache.commons.math3.complex.ComplexTest::testReciprocalZero on this test line Assert.assertEquals(Complex.ZERO.reciprocal(), Complex.INF); with the following error message: junit.framework.AssertionFailedError: expected:<(NaN, NaN)> but was:<(Infinity, Infinity)>

Please given me the potential buggy lines with the format: (line number, code) according the context provided. You should make your response concise and precise.
