myLogger.debug("thePPF: " + thePPF); myLogger.debug("oneOverPPf: " + oneOverPPf); myLogger.debug("thePPFsquared: " + thePPFsquared); myLogger.debug("thePPFcubed: " + thePPFcubed);
    private float calculateCQYMax() {        float thePPF = getAveragePPF();        float oneOverPPf = 1f / thePPF;        float thePPFsquared = MathUtils.pow(thePPF, 2f);        float thePPFcubed = MathUtils.pow(thePPF, 3f);        myLogger.debug("thePPF: " + thePPF);        myLogger.debug("oneOverPPf: " + oneOverPPf);        myLogger.debug("thePPFsquared: " + thePPFsquared);        myLogger.debug("thePPFcubed: " + thePPFcubed);        float theCO2 = getAverageCO2Concentration();        float oneOverCO2 = 1f / theCO2;        float theCO2squared = MathUtils.pow(theCO2, 2f);        float theCO2cubed = MathUtils.pow(theCO2, 3f);        myLogger.debug("theCO2: " + theCO2);        myLogger.debug("oneOverCO2: " + oneOverCO2);        myLogger.debug("theCO2squared: " + theCO2squared);        myLogger.debug("theCO2cubed: " + theCO2cubed);        float theCQYMax = canopyQYConstants[0] * oneOverPPf * oneOverCO2                + canopyQYConstants[1] * oneOverPPf + canopyQYConstants[2]                * oneOverPPf * theCO2 + canopyQYConstants[3] * oneOverPPf                * theCO2squared + canopyQYConstants[4] * oneOverPPf                * theCO2cubed + canopyQYConstants[5] * oneOverCO2                + canopyQYConstants[6] + canopyQYConstants[7] * theCO2                + canopyQYConstants[8] * theCO2squared + canopyQYConstants[9]                * theCO2cubed + canopyQYConstants[10] * thePPF * oneOverCO2                + canopyQYConstants[11] * thePPF + canopyQYConstants[12]                * thePPF * theCO2 + canopyQYConstants[13] * thePPF                * theCO2squared + canopyQYConstants[14] * thePPF * theCO2cubed                + canopyQYConstants[15] * thePPFsquared * oneOverCO2                + canopyQYConstants[16] * thePPFsquared + canopyQYConstants[17]                * thePPFsquared * theCO2 + canopyQYConstants[18]                * thePPFsquared * theCO2squared + canopyQYConstants[19]                * thePPFsquared * theCO2cubed + canopyQYConstants[20]                * thePPFcubed * oneOverCO2 + canopyQYConstants[21]                * thePPFcubed + canopyQYConstants[22] * thePPFcubed * theCO2                + canopyQYConstants[23] * thePPFcubed * theCO2squared                + canopyQYConstants[24] * thePPFcubed * theCO2cubed;        if ((theCQYMax < 0) || (Float.isNaN(theCQYMax))) {            theCQYMax = 0;            myLogger.debug("CQYMax is negative or NaN!");        }        myLogger.debug("theCQYMax: " + theCQYMax);        return theCQYMax;    }