﻿\$NEWTON
# SOLVE 32*X^5-64*X+31=0
X=0
F_M=32*X^5-64*X+31
%WHILE:ABS(F_M)>1E-6
  FX_M=160*X^4-64
  DX_M=-F_M/FX_M
  X=X+DX_M
  F_M=32*X^5-64*X+31
%WEND
DUMMY_M=X
\END
\$ELEMENT
# ELEMENT WEIGHT
H _ELM=1.00794
HE_ELM=4.002602
LI_ELM=6.941
BE_ELM=9.012182
B _ELM=10.811
C _ELM=12.0107
N _ELM=14.0067
O _ELM=15.9994
F _ELM=18.9984032
NE_ELM=20.1797
NA_ELM=22.98976928
MG_ELM=24.3050
AL_ELM=26.9815386
SI_ELM=28.0855
P _ELM=30.973762
S _ELM=32.065
CL_ELM=35.453
AR_ELM=39.948
K _ELM=39.0983
CA_ELM=40.078
SC_ELM=44.955912
TI_ELM=47.867
V _ELM=50.9415
CR_ELM=51.9961
MN_ELM=54.938045
FE_ELM=55.845
CO_ELM=58.933195
NI_ELM=58.6934
CU_ELM=63.546
ZN_ELM=65.38
GA_ELM=69.723
GE_ELM=72.64
AS_ELM=74.92160
SE_ELM=78.96
BR_ELM=79.904
KR_ELM=83.798
RB_ELM=85.4678
SR_ELM=87.62
Y _ELM=88.90585
ZR_ELM=91.224
NB_ELM=92.90638
MO_ELM=95.96
RU_ELM=101.07
RH_ELM=102.90550
PD_ELM=106.42
AG_ELM=107.8682
CD_ELM=112.411
IN_ELM=114.818
SN_ELM=118.710
SB_ELM=121.760
TE_ELM=127.60
I _ELM=126.90447
XE_ELM=131.293
CS_ELM=132.9054519
BA_ELM=137.327
LA_ELM=138.90547
CE_ELM=140.116
PR_ELM=140.90765
ND_ELM=144.242
SM_ELM=150.36
EU_ELM=151.964
GD_ELM=157.25
TB_ELM=158.92535
DY_ELM=162.500
HO_ELM=164.93032
ER_ELM=167.259
TM_ELM=168.93421
YB_ELM=173.054
LU_ELM=174.9668
HF_ELM=178.49
TA_ELM=180.94788
W _ELM=183.84
RE_ELM=186.207
OS_ELM=190.23
IR_ELM=192.217
PT_ELM=195.084
AU_ELM=196.966569
HG_ELM=200.59
TL_ELM=204.3833
PB_ELM=207.2
BI_ELM=208.98040
TH_ELM=232.03806
PA_ELM=231.03588
U _ELM=238.02891
\END
\$PAI
# PAI FROM ATAN(1) EXPANSION
I_M=1
P_M=0
S_M=1
DP_M=S_M/(2*I_M-1)
%WHILE:ABS(DP_M)>1E-6
  P_M=P_M+DP_M
  I_M=ANINT(I_M+1)
  S_M=-S_M
  DP_M=S_M/(2*I_M-1)
%WEND
P_M=4*P_M
\END
\$IGAMMA
# INCOMPLETE GAMMA FUNCTION
# (NUMERICAL RECIPES IN C)
# INPUT : A, X (A>0, X>=0)
# OUTPUT: IGAMMA
EPS_M=3E-7
# G_M=GAMMA(A)
Y_M=A
X_M=A
TMP_M=X_M+5.5
TMP_M=TMP_M-(X_M+0.5)*LOG(TMP_M)
SER_M=1.000000000190015
SER_M=SER_M+76.18009172947146/(Y_M+1)
SER_M=SER_M-86.50532032941677/(Y_M+2)
SER_M=SER_M+24.01409824083091/(Y_M+3)
SER_M=SER_M-1.231739572450155/(Y_M+4)
SER_M=SER_M+0.1208650973866179E-2/(Y_M+5)
SER_M=SER_M-0.5395239384953E-5/(Y_M+6)
G_M=-TMP_M+LOG(2.5066282746310005*SER_M/X_M)
%IF:X<A+1
  %IF:X<=0
    IGAMMA=0
  %ELSE
    AP_M=A
    DEL_M=1/A
    SUM_M=DEL_M
    ITER_M=0
    %WHILE:ABS(DEL_M)>ABS(SUM_M)*EPS_M
      AP_M=AP_M+1
      DEL_M=DEL_M*X/AP_M
      SUM_M=SUM_M+DEL_M
      ITER_M=ANINT(ITER_M+1)
    %WEND
    IGAMMA=SUM_M*EXP(-X+A*LOG(X)-G_M)
  %END IF
%ELSE
  FAC_M=1
  GOLD_M=0
  A0_M=1
  B0_M=0
  B1_M=1
  A1_M=X
  ITER_M=0
  REPEAT_M=1
  %WHILE:REPEAT_M
    ITER_M=ANINT(ITER_M+1)
    ANA_M=ITER_M-A
    A0_M=(A1_M+A0_M*ANA_M)*FAC_M
    B0_M=(B1_M+B0_M*ANA_M)*FAC_M
    ANF_M=ITER_M*FAC_M
    A1_M=X*A0_M+ANF_M*A1_M
    B1_M=X*B0_M+ANF_M*B1_M
    %IF:A1_M<>0
      FAC_M=1/A1_M
      GNEW_M=B1_M*FAC_M
      REPEAT_M=(ABS((GNEW_M-GOLD_M)/GNEW_M)>EPS_M)
      GOLD_M=GNEW_M
    %END IF
  %WEND
  IGAMMA=1-EXP(-X+A*LOG(X)-G_M)*GNEW_M
%END IF
\END
\$GAMMALN
# GAMMA FUNCTION
# (NUMERICAL RECIPES IN C)
# INPUT : X (X>0)
# OUTPUT: GAMMALN
# NOTE  : GAMMALN=LOG(GAMMA(X))
#         PLEASE DECLARE GAM_COF(6) BEFORE RUN
GAM_COF(1)=76.18009172947146
GAM_COF(2)=-86.50532032941677
GAM_COF(3)=24.01409824083091
GAM_COF(4)=-1.231739572450155
GAM_COF(5)=0.1208650973866179E-2
GAM_COF(6)=-0.5395239384953E-5
GAM_Y=X
GAM_TMP=X+5.5
GAM_TMP=GAM_TMP-(X+0.5)*LOG(GAM_TMP)
GAM_SER=1.000000000190015
GAM_I=0
%WHILE:(GAM_I~6)~0
  GAM_Y=GAM_Y+1
  GAM_SER=GAM_SER+GAM_COF(GAM_I+1)/GAM_Y
  GAM_I=ANINT(GAM_I+1)
%WEND
GAMMALN=-GAM_TMP+LOG(2.5066282746310005*GAM_SER/X)
\END
