Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for index, trash in np.ndenumerate(sigv):
- u = uArray[index]
- k = muOverTeffArray[index]
- coef = k / -2
- if abs(u) > eps:
- def partialIntegrandDrifting(vv):
- yy = vv*vv*(np.exp(coef*(vv-u)*(vv-u)) - np.exp(coef*(vv+u)*(vv+u)))
- if np.isnan(yy) and debug:
- print "NAN enconutered in integration!!!"
- return yy
- integrand = lambda vv: sigma(vv)*partialIntegrandDrifting(vv)
- quadOutput = quad(integrand, 0, upperBound)
- integralMultiplier = np.sqrt(k/(2*np.pi)) / u
- sigv[index] = integralMultiplier * quadOutput[0]
- quadErr[index] = integralMultiplier * quadOutput[1]
- if debug:
- sigvConstSig[index] = constSig*( np.exp(u*u*coef)*np.sqrt(2/(k*np.pi)) + (u + 1/(k*u))*erf(u*np.sqrt(k/2)))
- partialIntegrandArray.append(partialIntegrandDrifting)
- else:
- # Too small for that method, pretend u == 0
- def partialIntegrandStatic(vv):
- vv2 = vv*vv
- return vv2*vv*np.exp(coef*vv2)
- integrand = lambda vv: sigma(vv)*partialIntegrandStatic(vv)
- quadOutput = quad(integrand, 0, upperBound)
- integralMultiplier = np.sqrt(2/np.pi * k**3)
- sigv[index] = integralMultiplier * quadOutput[0]
- quadErr[index] = integralMultiplier * quadOutput[1]
- if debug:
- sigvConstSig[index] = constSig * np.sqrt(8./(np.pi * k) )
- partialIntegrandArray.append(partialIntegrandStatic)
- if debug:
- return np.column_stack((sigv,quadErr,sigvConstSig)), partialIntegrandArray
- else:
- return np.vstack((sigv, quadErr))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement