function gauss_cvf, p on_error, 2 ;Return to caller if error occurs. if p lt 0. or p gt 1. then message, $ 'p must be in the interval [0.0, 1.0]' if p eq 0 then return, 1.0e12 if p eq 1 then return, -1.0e12 if (p gt 0.5) then begin p = 1 - p adjust = 1 endif else adjust = 0 below = 0 up = 1.0 while gauss_pdf(up) lt 1.0 - p do begin below = up up = 2 * up endwhile x = bisect_pdf([1.0 - p], 'gauss_pdf', up, below) if adjust then begin p = 1 - p return, -x endif else return, x end