Advertisement
chironex

Closure Weirdness

Jul 18th, 2011
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.75 KB | None | 0 0
  1. for index, trash in np.ndenumerate(sigv):
  2.         u = uArray[index]
  3.         k = muOverTeffArray[index]
  4.         coef = k / -2
  5.         if abs(u) > eps:
  6.             def partialIntegrandDrifting(vv):
  7.                 yy = vv*vv*(np.exp(coef*(vv-u)*(vv-u)) - np.exp(coef*(vv+u)*(vv+u)))
  8.                 if np.isnan(yy) and debug:
  9.                     print "NAN enconutered in integration!!!"
  10.                 return yy
  11.             integrand = lambda vv: sigma(vv)*partialIntegrandDrifting(vv)
  12.             quadOutput = quad(integrand, 0, upperBound)
  13.             integralMultiplier = np.sqrt(k/(2*np.pi)) / u
  14.             sigv[index] = integralMultiplier * quadOutput[0]
  15.             quadErr[index] = integralMultiplier * quadOutput[1]
  16.             if debug:
  17.                 sigvConstSig[index] = constSig*( np.exp(u*u*coef)*np.sqrt(2/(k*np.pi)) + (u + 1/(k*u))*erf(u*np.sqrt(k/2)))
  18.                 partialIntegrandArray.append(partialIntegrandDrifting)
  19.         else:
  20.             # Too small for that method, pretend u == 0
  21.             def partialIntegrandStatic(vv):
  22.                 vv2 = vv*vv
  23.                 return vv2*vv*np.exp(coef*vv2)
  24.             integrand = lambda vv: sigma(vv)*partialIntegrandStatic(vv)
  25.             quadOutput = quad(integrand, 0, upperBound)
  26.             integralMultiplier = np.sqrt(2/np.pi * k**3)
  27.             sigv[index] = integralMultiplier * quadOutput[0]
  28.             quadErr[index] = integralMultiplier * quadOutput[1]
  29.             if debug:
  30.                 sigvConstSig[index] = constSig * np.sqrt(8./(np.pi * k) )
  31.                 partialIntegrandArray.append(partialIntegrandStatic)
  32.  
  33.     if debug:
  34.         return np.column_stack((sigv,quadErr,sigvConstSig)), partialIntegrandArray
  35.     else:
  36.         return np.vstack((sigv, quadErr))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement