*! version 2.0, October 2002 (SJ4-1: st0057) program define hermite version 7.0 tokenize `0' local n "`1'" local x "`2'" local w "`3'" local last = `n' + 2 tempvar p tempname i qui gen double `p' = . scalar `i' = 1 while `i' <= 10 { qui replace `p' = 0 in 1 qui replace `p' = _pi^(-0.25) in 2 qui replace `p' = `x'*sqrt(2/(_n-2))*`p'[_n-1] /* */ - sqrt((_n-3)/(_n-2))*`p'[_n-2] in 3/`last' scalar `w' = sqrt(2*`n')*`p'[`last'-1] scalar `x' = `x' - `p'[`last']/`w' if abs(`p'[`last']/`w') < 3e-14 { scalar `w' = 2/(`w'*`w') exit } scalar `i' = `i' + 1 } di in red "hermite did not converge" exit 499 end exit