euler_源码_分析
euler 是比octave还要轻量级的数学REPL 的环境, 整理简要介绍一下程序框架.
选择的版本是 euler-1.61.0.chm, 源码制作成了chm 并压缩放在我的资源空间中了.
H:\portage\sci-mathematics\euler\euler-1.61.0.chm::/index.html
main
mainloop
sort_builtin(); //排序内部函数
选择的版本是 euler-1.61.0.chm, 源码制作成了chm 并压缩放在我的资源空间中了.
H:\portage\sci-mathematics\euler\euler-1.61.0.chm::/index.html
main
mainloop
sort_builtin(); //排序内部函数
sort_command(); //排序命令
make_xors();
clear_fktext();
accuinit();
init_yacas(); //初始化解析式系统
command(); //开始接受命令的输入
scan_expression(); //扫描输入
do_assignment(expr); //根据输入解析参数调用函数.
#==========================================================================
#命令列表
737 commandtyp command_list[] = {
{"quit",c_quit,do_quit},
{"hold",c_hold,ghold},
{"shg",c_shg,show_graphics},
{"load",c_load,load_file},
{"function",c_udf,get_udf},
{"return",c_return,do_return},
{"for",c_for,do_for},
{"endif",c_endif,do_endif},
{"end",c_end,do_end},
{"break",c_break,do_break},
{"loop",c_loop,do_loop},
{"else",c_else,do_else},
{"elseif",c_elseif,do_elseif},
{"if",c_if,do_if},
{"repeat",c_repeat,do_repeat},
{"clear",c_clear,do_clear},
{"clg",c_clg,do_clg},
{"cls",c_cls,do_cls},
{"exec",c_exec,do_exec},
{"forget",c_forget,do_forget},
{"global",c_global,do_global},
{"useglobal",c_global,do_useglobal},
{"list",c_global,do_list},
{"listvar",c_global,do_listvar},
{"type",c_global,do_type},
{"dump",c_global,do_dump},
{"remove",c_global,do_remove},
{"help",c_global,do_help},
{"do",c_global,do_do},
{"memorydump",c_global,do_mdump},
{"hexdump",c_global,do_hexdump},
{"output",c_global,do_output},
{"comments",c_global,do_comments},
{"meta",c_global,do_meta},
{"postscript",c_global,do_postscript},
{"comment",c_global,do_comment},
{"trace",c_global,do_trace},
{"notebook",c_global,load_book},
{"prompt",c_global,do_prompt},
{"cd",c_global,do_cd},
{"dir",c_global,do_dir},
{"path",c_global,do_path},
{0,c_none,0}
#==========================================================================
accuinit();
init_yacas(); //初始化解析式系统
command(); //开始接受命令的输入
scan_expression(); //扫描输入
do_assignment(expr); //根据输入解析参数调用函数.
#==========================================================================
#命令列表
737 commandtyp command_list[] = {
{"quit",c_quit,do_quit},
{"hold",c_hold,ghold},
{"shg",c_shg,show_graphics},
{"load",c_load,load_file},
{"function",c_udf,get_udf},
{"return",c_return,do_return},
{"for",c_for,do_for},
{"endif",c_endif,do_endif},
{"end",c_end,do_end},
{"break",c_break,do_break},
{"loop",c_loop,do_loop},
{"else",c_else,do_else},
{"elseif",c_elseif,do_elseif},
{"if",c_if,do_if},
{"repeat",c_repeat,do_repeat},
{"clear",c_clear,do_clear},
{"clg",c_clg,do_clg},
{"cls",c_cls,do_cls},
{"exec",c_exec,do_exec},
{"forget",c_forget,do_forget},
{"global",c_global,do_global},
{"useglobal",c_global,do_useglobal},
{"list",c_global,do_list},
{"listvar",c_global,do_listvar},
{"type",c_global,do_type},
{"dump",c_global,do_dump},
{"remove",c_global,do_remove},
{"help",c_global,do_help},
{"do",c_global,do_do},
{"memorydump",c_global,do_mdump},
{"hexdump",c_global,do_hexdump},
{"output",c_global,do_output},
{"comments",c_global,do_comments},
{"meta",c_global,do_meta},
{"postscript",c_global,do_postscript},
{"comment",c_global,do_comment},
{"trace",c_global,do_trace},
{"notebook",c_global,load_book},
{"prompt",c_global,do_prompt},
{"cd",c_global,do_cd},
{"dir",c_global,do_dir},
{"path",c_global,do_path},
{0,c_none,0}
#==========================================================================
# 内部函数列表
src/builtin.c
39 builtintyp builtin_list[] =
builtintyp builtin_list[] =
index mindex
pi mpi
time mtime
epsilon mepsilon
sin msin
cos mcos
tan mtan
atan matan
acos macos
asin masin
exp mexp
log mlog
sqrt msqrt
re mre
im mim
complex mcomplex
iscomplex miscomplex
isinterval misinterval
isreal misreal
isfunction misfunction
isvar misvar
round mround
arg marg
abs mabs
sum msum
prod mprod
conj mconj
size msize
rows mrows
cols mcols
zeros mzerosmat
ones mones
diag mdiag
diag mdiag2
band mband
extrema mextrema
mesh mmesh
meshbar mmeshflat
view mview
view mview0
wait mwait
fastrandom mfastrandom
random mrandom
normal mnormalnew
fastnormal mnormal
seed mseed
shuffle mshuffle
text mtext
ctext mctext
rtext mrtext
vtext mvtext
vctext mvctext
vrtext mvrtext
vutext mvutext
vcutext mvcutext
vrutext mvrutext
textsize mtextsize
wire mwire
solid msolid
solid msolid1
plot mplot
plotarea mplotarea
plot mplot1
pixel mpixel
mark mmark
contour mcontour
dup mdup
mod mmod
format mformat
goodformat mgformat
expformat meformat
fixedformat mfformat
iformat miformat
fracformat mfracformat
color mcolor
framecolor mfcolor
wirecolor mwcolor
textcolor mtcolor
fillcolor mfillcolor
style mstyle
markerstyle mmstyle
linestyle mlstyle
linewidth mlinew
window mwindow
window mwindow0
clip mclip
clip mclip0
normaldis mgauss
invnormaldis minvgauss
fak mfak
bin mbin
logfak mlogfak
logbin mlogbin
tdis mtd
invtdis minvtd
chidis mchi
fdis mfdis
max mmax
min mmin
scale mscale
sort msort
nonzeros mnonzeros
count mstatistics
floor mfloor
ceil mceil
cumsum mcumsum
cumprod mcumprod
free mfree
shrink mshrink
input minput
max mmax1
min mmin1
eval mdo
polyval polyval
polyadd polyadd
polymult polymult
polydiv polydiv
interp dd
divdif dd
interpval ddval
divdifval ddval
polytrans polydd
polycons polyzeros
polytrunc polytrunc
char mchar
ascii mascii
lu mlu
lusolve mlusolve
fft mfft
ifft mifft
polysolve mzeros
error merror
printf mprintf
sign msign
mouse mmouse
hb mtridiag
charpoly mcharpoly
stringcompare mscompare
find mfind
setdiag msetdiag
polyroot mzeros1
argn margn
setkey msetkey
any many
changedir mcd
searchfile mdir
searchfile mdir0
bandmult wmultiply
symmult smultiply
project mproject
args margs
args margs0
setplot msetplot
scaling mscaling
holding mholding
keepsquare mkeepsquare
holding mholding0
lineinput mlineinput
interpret minterpret
evaluate mevaluate
name mname
twosides mtwosides
meshfactor mmeshfactor
setepsilon msetepsilon
localepsilon mlocalepsilon
flipx mflipx
flipy mflipy
rotleft mrotleft
rotright mrotright
shiftleft mshiftleft
shiftright mshiftright
matrix mmatrix
jacobi mjacobi
frame mframe
store mstore
restore mrestore
key mkey
errorlevel merrlevel
density mdensity
huecolor mdcolor
huegrid mdgrid
solidhue msolidh
redim mredim
resize mresize
open mopen
close mclose
putchar mputchar
putword mputword
putlongword mputlongword
getchar mgetchar
getchar mgetchar1
getword mgetword
getword mgetword1
getlongword mgetlongword
getlongword mgetlongword1
putuchar mputchar
putuword mputword
putulongword mputlongword
getuchar mgetchar
getuchar mgetchar1
getuword mgetword
getuword mgetword1
getulongword mgetlongword
getulongword mgetlongword1
getstring mgetstring
write mwrite
getvector mgetvector
eof meof
simplex msimplex
left mleft
right mright
middle mmiddle
diameter mdiameter
interval minterval
accuload maccuload
accuadd maccuadd
accuload maccuload2
accuadd maccuadd2
residuum mresiduum
accu maccu1
accure maccu1
accua maccu1
accuim maccu2
accub maccu2
expand mexpand
intersects mintersects
typeof mtype
markersize mmarkersize
bar mbar
barcolor mbarcolor
barstyle mbarstyle
map mmap1
gammaln mgammaln
gamma mgamma
gamma mgammai
brent mbrent
nelder mnelder
runge1 mrunge1
runge2 mrunge2
testkey mcode
svd msvd
toeplitz mtoeplitz
toeplitzsolve msolvetoeplitz
betai1 mbetai
besselj mbesselj
bessely mbessely
besselallr mbesselall
besseli mbesseli
besselk mbesselk
besselmodallr mbesselmodall
pswindow mpswindow
playwave mplaywav
dll mdll
beginpages mbeginframes
endpages mendframes
playpages mplayframes
pages mframes
antialiasing mantialiasing0
antialiasing mantialiasing
yacas myacas
yacasclear myacasclear
yacaseval myacaseval
39 builtintyp builtin_list[] =
builtintyp builtin_list[] =
index mindex
pi mpi
time mtime
epsilon mepsilon
sin msin
cos mcos
tan mtan
atan matan
acos macos
asin masin
exp mexp
log mlog
sqrt msqrt
re mre
im mim
complex mcomplex
iscomplex miscomplex
isinterval misinterval
isreal misreal
isfunction misfunction
isvar misvar
round mround
arg marg
abs mabs
sum msum
prod mprod
conj mconj
size msize
rows mrows
cols mcols
zeros mzerosmat
ones mones
diag mdiag
diag mdiag2
band mband
extrema mextrema
mesh mmesh
meshbar mmeshflat
view mview
view mview0
wait mwait
fastrandom mfastrandom
random mrandom
normal mnormalnew
fastnormal mnormal
seed mseed
shuffle mshuffle
text mtext
ctext mctext
rtext mrtext
vtext mvtext
vctext mvctext
vrtext mvrtext
vutext mvutext
vcutext mvcutext
vrutext mvrutext
textsize mtextsize
wire mwire
solid msolid
solid msolid1
plot mplot
plotarea mplotarea
plot mplot1
pixel mpixel
mark mmark
contour mcontour
dup mdup
mod mmod
format mformat
goodformat mgformat
expformat meformat
fixedformat mfformat
iformat miformat
fracformat mfracformat
color mcolor
framecolor mfcolor
wirecolor mwcolor
textcolor mtcolor
fillcolor mfillcolor
style mstyle
markerstyle mmstyle
linestyle mlstyle
linewidth mlinew
window mwindow
window mwindow0
clip mclip
clip mclip0
normaldis mgauss
invnormaldis minvgauss
fak mfak
bin mbin
logfak mlogfak
logbin mlogbin
tdis mtd
invtdis minvtd
chidis mchi
fdis mfdis
max mmax
min mmin
scale mscale
sort msort
nonzeros mnonzeros
count mstatistics
floor mfloor
ceil mceil
cumsum mcumsum
cumprod mcumprod
free mfree
shrink mshrink
input minput
max mmax1
min mmin1
eval mdo
polyval polyval
polyadd polyadd
polymult polymult
polydiv polydiv
interp dd
divdif dd
interpval ddval
divdifval ddval
polytrans polydd
polycons polyzeros
polytrunc polytrunc
char mchar
ascii mascii
lu mlu
lusolve mlusolve
fft mfft
ifft mifft
polysolve mzeros
error merror
printf mprintf
sign msign
mouse mmouse
hb mtridiag
charpoly mcharpoly
stringcompare mscompare
find mfind
setdiag msetdiag
polyroot mzeros1
argn margn
setkey msetkey
any many
changedir mcd
searchfile mdir
searchfile mdir0
bandmult wmultiply
symmult smultiply
project mproject
args margs
args margs0
setplot msetplot
scaling mscaling
holding mholding
keepsquare mkeepsquare
holding mholding0
lineinput mlineinput
interpret minterpret
evaluate mevaluate
name mname
twosides mtwosides
meshfactor mmeshfactor
setepsilon msetepsilon
localepsilon mlocalepsilon
flipx mflipx
flipy mflipy
rotleft mrotleft
rotright mrotright
shiftleft mshiftleft
shiftright mshiftright
matrix mmatrix
jacobi mjacobi
frame mframe
store mstore
restore mrestore
key mkey
errorlevel merrlevel
density mdensity
huecolor mdcolor
huegrid mdgrid
solidhue msolidh
redim mredim
resize mresize
open mopen
close mclose
putchar mputchar
putword mputword
putlongword mputlongword
getchar mgetchar
getchar mgetchar1
getword mgetword
getword mgetword1
getlongword mgetlongword
getlongword mgetlongword1
putuchar mputchar
putuword mputword
putulongword mputlongword
getuchar mgetchar
getuchar mgetchar1
getuword mgetword
getuword mgetword1
getulongword mgetlongword
getulongword mgetlongword1
getstring mgetstring
write mwrite
getvector mgetvector
eof meof
simplex msimplex
left mleft
right mright
middle mmiddle
diameter mdiameter
interval minterval
accuload maccuload
accuadd maccuadd
accuload maccuload2
accuadd maccuadd2
residuum mresiduum
accu maccu1
accure maccu1
accua maccu1
accuim maccu2
accub maccu2
expand mexpand
intersects mintersects
typeof mtype
markersize mmarkersize
bar mbar
barcolor mbarcolor
barstyle mbarstyle
map mmap1
gammaln mgammaln
gamma mgamma
gamma mgammai
brent mbrent
nelder mnelder
runge1 mrunge1
runge2 mrunge2
testkey mcode
svd msvd
toeplitz mtoeplitz
toeplitzsolve msolvetoeplitz
betai1 mbetai
besselj mbesselj
bessely mbessely
besselallr mbesselall
besseli mbesseli
besselk mbesselk
besselmodallr mbesselmodall
pswindow mpswindow
playwave mplaywav
dll mdll
beginpages mbeginframes
endpages mendframes
playpages mplayframes
pages mframes
antialiasing mantialiasing0
antialiasing mantialiasing
yacas myacas
yacasclear myacasclear
yacaseval myacaseval