def kapRos(numDeps, numLams, lambdas, logKappa, temp): kappaRos = [ [0.0 for i in range(numDeps)] for j in range(2) ] #double numerator, denominator, deltaLam, logdBdTau, logNumerator, logDenominator; #double logTerm, logDeltaLam, logInvKap, logInvKapRos; for iTau in range(numDeps): numerator = 0.0 #//initialize accumulator denominator = 0.0 for iLam in range(1, numLams): deltaLam = lambdas[iLam] - lambdas[iLam-1] #//lambda in cm logDeltaLam = math.log(deltaLam) logInvKap = -1.0 * logKappa[iLam][iTau] logdBdTau = Planck.dBdT(temp[0][iTau], lambdas[iLam]) logTerm = logdBdTau + logDeltaLam denominator = denominator + math.exp(logTerm) logTerm = logTerm + logInvKap; numerator = numerator + math.exp(logTerm) logNumerator = math.log(numerator) logDenominator = math.log(denominator) logInvKapRos = logNumerator - logDenominator kappaRos[1][iTau] = -1.0 * logInvKapRos #//logarithmic kappaRos[0][iTau] = math.exp(kappaRos[1][iTau]) return kappaRos #} //end method kapRos